* loop.c (struct movable): Add insert_temp, shrink savemode.
(scan_loop): Accept invariants that require copying; mark as
insert_temp.
(combine_movables): Don't combine insert_temp movables.
(move_movables): Insert copies for insert_temp movables.
Don't record the info based on regno for insert_temp's.
Hans Boehm [Fri, 28 Feb 2003 17:26:29 +0000 (17:26 +0000)]
natMethod.cc (_Jv_CallAnyMethodA): Allocate a full jvalue for each argument.
* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Allocate a full
jvalue for each argument. Simplify.
* testsuite/libjava.jni/calls.c (docall),
testsuite/libjava.jni/calls.java (longpb_f): check for argument
misalignment.
Richard Earnshaw [Fri, 28 Feb 2003 15:31:21 +0000 (15:31 +0000)]
arm.md (mulhisi3, [...]): Enable for any ARMv5e processor, not just for XScale.
* arm.md (mulhisi3, mulhisi3addsi, mulhidi3adddi): Enable for any
ARMv5e processor, not just for XScale. Instructions are predicable.
(mulhisi3tb, mulhisi3bt, mulhisi3tt): New patterns for ARMv5e.
* Makefile.am (nat_source_files): Remove
java/io/natObjectOutputStream.cc.
* Makefile.in: Regenerated.
* mauve-libgcj: Don't exclude java.io.ObjectInputOutput tests.
* java/io/ObjectStreamField.java (typename): New field.
(ObjectStreamField(String, Class)): Initialize new field.
(ObjectStreamField(String, String)): New Constructor.
(getTypeCode): Use new field.
(getTypeString): Use new field.
* java/io/ObjectOutputStream.java (writeObject): Rethrow fatal
ObjectStreamExceptions. Remember and reset old BlockDataMode.
Handle reading of Proxy classes. Never drain(), just write
TC_ENDBLOCKDATA. Rethrow ObjectStreamExceptions.
(drain): Check writeDataAsBlocks before calling writeBlockDataHeader.
(flush): Call flush(), not just drain().
(writeBoolean): Always use blockDataOutput.
(writeByte): Likewise.
(writeShort): Likewise.
(writeChar): Likewise.
(writeInt): Likewise.
(writeLong): Likewise.
(writeFloat): Likewise.
(writeDouble): Likewise.
(writeBytes): Likewise.
(putfield (put(String,Object))): Throw IllegalArgumentException if
field cannot be found.
(putfield (write(ObjectOutput))): Remember old BlockDataMode.
(writeArraySizeAndElements): Write byte[] in one go.
(writeFields): Write TC_ENDBLOCKDATA when call_write_method, otherwise
set BlockDataMode to false.
(annotateProxyClass): New method.
(defaultProtocolVersion): Now defaults to PROTOCOL_VERSION_2
(getField): No longer native.
(getMethod): Likewise.
(setBlockDataMode): Always drain() on switch, return old mode.
(static): New static code block.
* java/io/natObjectOutputStream.cc: Removed.
* java/io/ObjectInputStream.java (getField): No longer native.
(getMethod): Likewise.
(readObject): Remember and reset old BlockDataMode. Track whether
object is consumed. Handle TC_ENDBLOCKDATA, TC_PROXYCLASSDESC and
TC_LONGSTRING.
(defaultReadObject): Set BlockDataMode to false during readFields.
(resolveClass): Create new SecurityManager if necessary.
Use Class.forName() if null ClassLoader found.
(read(byte[],int,int): Copy remaining bytes to data before calling
readNextBlock().
(readFields): Set and reset BlockDataMode on call_read_method.
Catch NoSuchFieldErrors.
(setBlockDataMode): Return old mode.
(static): New static code block.
* java/io/natObjectInputStream.cc (getField): Removed.
(getMethod): Likewise.
Josef Zlomek [Fri, 28 Feb 2003 07:06:34 +0000 (08:06 +0100)]
emit-rtl.c (set_reg_attrs_for_parm): New function.
* emit-rtl.c (set_reg_attrs_for_parm): New function.
* rtl.h (set_reg_attrs_for_parm): New exported function.
* function.c (assign_parms): Use set_reg_attrs_for_parm instead of
set_reg_attrs_from_mem.
Kazu Hirata [Fri, 28 Feb 2003 00:30:50 +0000 (00:30 +0000)]
reload1.c (sext_for_mode): Remove.
* reload1.c (sext_for_mode): Remove.
(reload_cse_move2add): Use trunc_int_for_mode instead of
sext_for_mode.
(move2add_note_store): Likewise.
Reset register information if we see a set in non-integer
mode.
David Edelsohn [Thu, 27 Feb 2003 21:51:19 +0000 (21:51 +0000)]
aix43.h (ASM_SPEC): Only emit -mppc64 if no -mcpu option.
* config/rs6000/aix43.h (ASM_SPEC): Only emit -mppc64 if no -mcpu
option.
(ASM_CPU_SPEC): Use -m620 for Power3, Power4, 620, 630.
* config/rs6000/aix51.h: Same.
* config/rs6000/aix52.h: Same.
Roger Sayle [Thu, 27 Feb 2003 15:34:19 +0000 (15:34 +0000)]
cygwin.h: Don't include any other files directly.
* config/i386/cygwin.h: Don't include any other files directly.
* config/i386/mingw32.h: Don't include cygwin.h directly.
* config.gcc (cygwin, mingw32, uwin): Instead make these files
explicit in the tm_files variable.
Devang Patel [Wed, 26 Feb 2003 22:14:24 +0000 (14:14 -0800)]
decl.c (finish_enum): Merge two 'for' loops.
* decl.c (finish_enum): Merge two 'for' loops. Copy value node if required.
Postpone enum setting for template decls.
(build_enumerator): Delay copying value node until finish_enum (). Remove
#if 0'ed code.
* pt.c (tsubst_enum): Set TREE_TYPE and copy value node.
(tsubst_copy): Add check for enum type.
Nick Clifton [Wed, 26 Feb 2003 11:26:37 +0000 (11:26 +0000)]
arm.c (is_load_address): Rename to...
* config/arm/arm.c (is_load_address): Rename to... (arm_memory_load_p) ... this
and make it check for SUBREGs and constant loads that will be converted into
loads from the minipool.
(is_cirrus_insn): Rename to ... (arm_cirrus_insn_p): ... this, for consistency.
Replace test of CIRRUS_NO with CIRRUS_NOT.
(cirrus_reorg): Use renamed functions.
(note_invalid_constants): Change from a void function to bool. Add an extra
parameter, saying whether the fixups should be pushed. Return true if fixups
are needed.
(arm_reorg): Use renamed functions. Use INSN_P. Replace test of CIRRUS_NO
with CIRRUS_NOT.
* config/arm/arm.h (FLOAT_WORDS_BIG_ENDIAN): Mention that other floating point
co-processors can also affect this.
* config/arm/arm.md ("type" attribute): Add mav_farith and mav_dmult. Replace
references to "cirrus_type" attribute with "type".
* config/arm/cirrus.md ("cirrus_fpu" attribute): Delete.
("cirrus_type" attribute): Delete - use "type" instead.
("cirrus" attribute): Replace 'no' with 'not' and 'yes' with 'normal'.
Jan Hubicka [Wed, 26 Feb 2003 11:09:33 +0000 (12:09 +0100)]
objc-act.c: Include cgraph.h
* objc-act.c: Include cgraph.h
(mark_referenced_methods): New function.
(objc_init): Call it.
* objc-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Set.
* c-decl.c (finish_function): Honor can_defer_p even in unit-at-a-time
mode.
* optabs.c (expand_fix): Do not widen the input operand.
* expr.c (emit_group_store): Fix crash when converting single
register into complex register.
* Makefile.in (jump.o, regclass.o, alias.o): Add dependency on timevar.h
* alias.c: Include timevar.h
(init_alias_analysis): Set timevar
* jump.c: Include timevar.h
(rebuild_jump_labels): Set timevar
* regcalss.c: Include timevar.h
(reg_scan): Set timevar
* timevar.def (TV_ALIAS_ANALYSIS, TV_REG_SCAN, TV_REBUILD_JUMP): New
Mark Mitchell [Wed, 26 Feb 2003 05:39:01 +0000 (05:39 +0000)]
re PR c++/9683 (bug in initialization chains for static const variables from template classes)
PR c++/9683
* decl2.c (prune_vars_needing_no_initialization): Do not throw
away initializations for DECL_EXTERNAL VAR_DECLs.
(finish_file): Adjust accordingly.
* pt.c (instantiate_decl): Do not defer VAR_DECLs.
PR c++/9683
* g++.dg/template/static3.C: New test.
Phil Edwards [Wed, 26 Feb 2003 00:02:16 +0000 (00:02 +0000)]
Intro.3: Update with new (proper) names.
2003-02-25 Phil Edwards <pme@gcc.gnu.org>
* docs/doxygen/Intro.3: Update with new (proper) names.
* docs/doxygen/TODO: Update.
* docs/doxygen/run_doxygen: More comments, fix up man pages.
Fake entries for standard typedefs.
* docs/doxygen/user.cfg.in: Turn INLINE_INHERITED_MEMB back on.
* docs/html/documentation.html: Top-level man page is now called
C++Intro.
* include/std/std_limits.h: Doxygenate.
Vladimir Makarov [Tue, 25 Feb 2003 20:40:57 +0000 (20:40 +0000)]
sched-int.h (INSN_TRAP_CLASS, [...]): Move them from sched-rgn.c.
2003-02-25 Vladimir Makarov <vmakarov@redhat.com>
Richard Henderson <rth@redhat.com>
* sched-int.h (INSN_TRAP_CLASS, WORST_CLASS): Move them from
sched-rgn.c.
(add_forward_dependence): New function prototype.
* sched-rgn.c (INSN_TRAP_CLASS, WORST_CLASS): Move them to
sched-init.h.
(CONST_BASED_ADDRESS_P, may_trap_exp, haifa_classify_insn): Move
them to haifa-sched.c.
* haifa-sched.c (CONST_BASED_ADDRESS_P, may_trap_exp,
haifa_classify_insn): Move them from sched-rgn.c.
* sched-deps.c (add_dependence): Return flag of creating a new
entry.
(add_forward_dependence): New function.
(compute_forward_dependences): Use the function.
* sched-ebb.c (earliest_block_with_similiar_load): New function.
(add_deps_for_risky_insns): New function.
(schedule_ebb): Call the function.
* config/rs6000/rs6000.c (rs6000_spe_vector_types_compatible):
Remove.
(is_ev64_opaque_type): Check for TARGET_SPE and make sure type is
a vector type. Change return type to bool.
(TARGET_VECTOR_TYPES_COMPATIBLE): Remove.
(TARGET_VECTOR_OPAQUE_P): Define.
* cp/parser.c (cp_parser_init_declarator): Call vector_opaque_p
target hook.
Include target.h.
(cp_parser_init_declarator): Fix typo in function comments.