Michael Hayes [Mon, 8 Feb 1999 14:00:37 +0000 (14:00 +0000)]
c4x.c (c4x_legitimize_address): Don't generate a LO_SUM address for HImode or HFmode but instead force address...
* config/c4x/c4x.c (c4x_legitimize_address): Don't generate a
LO_SUM address for HImode or HFmode but instead force address into
a register so that it is offsettable.
(c4x_emit_move_sequence): Handle LO_SUM immediate address.
Mon Feb 8 11:50:50 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
* parse.h: DECL_P renamed JDECL_P.
* parse.y: DECL_P replaced by JDECL_P.
(build_array_from_name): Always use pointer's type.
(patch_bc_statement): Extra code to search continue target in a
for loop. Fixed comments. Continue target is current loop when
unlabeled.
Fri Jan 29 18:19:02 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
* lex.c (java_read_char): Fixed utf8 decoding.
(java_unicode_2_utf8): Fixed utf8 encoding in the 0x800-0xffff
range.
* parse.y (valid_builtin_assignconv_identity_widening_p): Fixed
comments. Local variable `all_primitive' is gone. Broadened
acceptance of `0' to floating point targets. `long' can now be
widened to `double' or `float'.
(valid_method_invocation_conversion_p): Added leading
comment. Fixed tabulation.
(build_string_concatenation): Optimize out left or right empty
string constants.
Kaveh R. Ghazi [Sat, 6 Feb 1999 07:38:50 +0000 (07:38 +0000)]
cppfiles.c (read_and_prescan): Cast the result of `xrealloc' to U_CHAR* when assigning to one.
* cppfiles.c (read_and_prescan): Cast the result of `xrealloc' to
U_CHAR* when assigning to one. Ensure the values of a ?: operator
have the same type.
* cppinit.c (initialize_char_syntax): Use K&R function definition.
Support for ARM9
* config/arm/arm.c (all_procs): Add arm9 and arm9tdmi.
* config/arm/arm.h ((TARGET_CPU_arm9, TARGET_CPUD_arm9tdmi): Define.
(TARGET_CPU_DEFAULT): Rework to support ARM9.
(CPP_CPU_ARCH_SPEC): Likewise.
(enum processor_type): Likewise.
* config/arm/arm.md (attr cpu): Add arm9.
General scheduling changes
* config/arm/arm.c (MAX_INSNS_SKIPPED): Delete.
(max_insns_skipped): New variable.
(arm_override_options): If generating hard floating point code for
the FPA, emit code for version 3.
When optimizing for space, don't synthesize constants.
Reword several flags based on the requested processor and optimization
level.
(use_return_insn): New argument iscond, all callers changed. Don't
use a return insn if it will be conditional and that would be
expensive; eg on StrongARM.
(arm_adjust_cost): Anti- and output- dependencies normally have no
cost.
(load_multiple_sequence): Newer ARMs don't benefit from ldm if
the sequence is short.
(final_prescan_insn): Use max_insns_skipped instead of
MAX_INSNS_SKIPPED. Note whether we will make a return instruction
conditional, and aviod this if it would be expensive.
* config/arm/arm.md (scheduling attributes and function units):
Rewrite to better describe ARM8, 9 and StrongARM.
* config/arm/arm.md (*movhi_insn_littleend): Make op0 predicate
s_register_operand.
(*ifcompare_plus_move): Use arm_rhs_operand in place of
arm_rhsm_operand. Rework constraints.
(*if_plus_move): Likewise.
(*ifcompare_move_plus): Likewise.
(*if_move_plus): Likewise.
(*ifcompre_arith_move): Likewise.
(*if_arith_move): Likewise.
(*ifcompare_move_arith): Likewise.
(*if_move_arith): Likewise.
* config/arm/xm-netbsd.h: Don't include arm/xm-arm.h.
Benjamin Kosnik [Fri, 5 Feb 1999 11:46:16 +0000 (11:46 +0000)]
c-common.c (decl_attributes): Fix reserved space for init_priority.
�
Fri Feb 5 11:49:49 1999 Benjamin Kosnik <bkoz@loony.cygnus.com>
* c-common.c (decl_attributes): Fix reserved space for init_priority.
* tree.h (MAX_RESERVED_INIT_PRIORITY): New macro.
Benjamin Kosnik [Fri, 5 Feb 1999 11:46:14 +0000 (11:46 +0000)]
c-common.c (decl_attributes): Fix reserved space for init_priority.
�
Fri Feb 5 11:49:49 1999 Benjamin Kosnik <bkoz@loony.cygnus.com>
* c-common.c (decl_attributes): Fix reserved space for init_priority.
* tree.h (MAX_RESERVED_INIT_PRIORITY): New macro.
Benjamin Kosnik [Fri, 5 Feb 1999 11:46:10 +0000 (11:46 +0000)]
c-common.c (decl_attributes): Fix reserved space for init_priority.
�
Fri Feb 5 11:49:49 1999 Benjamin Kosnik <bkoz@loony.cygnus.com>
* c-common.c (decl_attributes): Fix reserved space for init_priority.
* tree.h (MAX_RESERVED_INIT_PRIORITY): New macro.
Andrew Haley [Fri, 5 Feb 1999 07:58:05 +0000 (07:58 +0000)]
class.c (make_class_data): The superclass of an interface should be null, not class Object.
1999-02-05 Andrew Haley <aph@cygnus.com>
* class.c (make_class_data): The superclass of an interface should
be null, not class Object.
* lex.c (java_lex): Sign extend hex literals.
Jason Merrill [Fri, 5 Feb 1999 02:47:00 +0000 (21:47 -0500)]
decl2.c: Remove flag_init_priority.
* decl2.c: Remove flag_init_priority. Always enable initp stuff.
(start_objects, finish_objects): Only use special
init_priority code if the user specified a priority.
(do_ctors, do_dtors): Use DEFAULT_INIT_PRIORITY for the non-initp
objects.
Jason Merrill [Fri, 5 Feb 1999 02:42:48 +0000 (21:42 -0500)]
pt.c (unify): Call coerce_template_parms with the COMPLAIN flag turned off.
* pt.c (unify): Call coerce_template_parms with the COMPLAIN flag
turned off.
* lex.c (retrofit_lang_decl): Split out...
(build_lang_decl): From here.
* decl.c (pushdecl): Call it for functions generated by the middle
end that don't have DECL_LANG_SPECIFIC.
* decl2.c: Remove flag_init_priority. Always enable initp stuff.
(start_objects, finish_objects): Only use special
init_priority code if the user specified a priority.
(do_ctors, do_dtors): Use DEFAULT_INIT_PRIORITY for the non-initp
objects.
J"orn Rennecke [Thu, 4 Feb 1999 23:10:46 +0000 (23:10 +0000)]
loop.c (first_loop_store_insn): New file-scope variable.
* loop.c (first_loop_store_insn): New file-scope variable.
(prescan_loop): Set it.
(check_dbra_loop): Check if a store depends on a register
that is set after the store.
J"orn Rennecke [Thu, 4 Feb 1999 14:19:36 +0000 (14:19 +0000)]
loop.c (scan_loop): New argument loop_cont.
* loop.c (scan_loop): New argument loop_cont. Changed caller.
(strength_reduce): New argument loop_cont. Changed caller.
Before clearing not_every_iteration after a label, check if
we are not already past LOOP_CONT.
Andrew Haley [Thu, 4 Feb 1999 08:15:41 +0000 (08:15 +0000)]
class.c (build_utf8_ref): Output signatures using '.' as a separator, rather than '/'.
1999-02-04 Andrew Haley <aph@cygnus.com>
* class.c (build_utf8_ref): Output signatures using '.' as a
separator, rather than '/'.
(make_class_data): Likewise.
mips.md ([u]divmodsi4,[u]divmoddi4,[u]divsi3,[u]divdi3, [...]): Don't copy the "zero" argument to a register before calling gen_div_trap.
* config/mips/mips.md ([u]divmodsi4,[u]divmoddi4,[u]divsi3,[u]divdi3,
[u]modsi3,[u]moddi3) : Don't copy the "zero" argument to a register
before calling gen_div_trap.
Marc Espie [Wed, 3 Feb 1999 22:01:05 +0000 (23:01 +0100)]
Makefile.in (xgcc$(exeext)): Remove choose-temp, pexecute and mkstemp.
* Makefile.in (xgcc$(exeext)): Remove choose-temp, pexecute and
mkstemp. Get them from libiberty.
(COLLECT2_OBJS): Similarly for choose-temp, cplus-dem and mkstemp.
(PROTO_OBJS): Similarly for choose-temp, getopt, getopt1 and pexecute.
(cplus-dem.o, pexecute.o, choose-temp.o): Remove build rules.
(mkstemp.o, getopt1.o, getopt.o): Likewise.
Marc Espie [Wed, 3 Feb 1999 21:56:50 +0000 (22:56 +0100)]
Make-lang.in (GXX_OBJS): Remove choose-temp.o, pexecute.o and mkstemp.o.
* Make-lang.in (GXX_OBJS): Remove choose-temp.o, pexecute.o and
mkstemp.o. Get them from libiberty now.
(DEMANGLER_PROG): Simlarly, temove getopt.o getopt1.o.
Bernd Schmidt [Wed, 3 Feb 1999 20:11:56 +0000 (20:11 +0000)]
reload1.c (reload_cse_regs_1): Undo Jan 16 patch.
* reload1.c (reload_cse_regs_1): Undo Jan 16 patch.
* reload.c (find_reusable_reload): New function, broken out of
push_reload. Add code to verify that none of the involved
outputs are subject to earlyclobbers.
(push_reload): Break out new function find_reusable_reload.
Delete "register" keyword for IN, OUT args.
J"orn Rennecke [Wed, 3 Feb 1999 12:48:48 +0000 (12:48 +0000)]
loop.h (express_from): Declare.
* loop.h (express_from): Declare.
(struct induction): Replace derived flag with derived_from pointer.
* loop.c (strength_reduce, record_giv, recombine_givs): Likewise.
(express_from): No longer static.
* unroll.c (find_splittable_givs): Replace derived with derived_from.
When processing an address giv with which another giv has been
combined that has also been derived from a third giv, handle like
having combined with the third giv.
Set splittable_regs_updates appropriately for derived givs.
Jim Wilson [Tue, 2 Feb 1999 22:39:13 +0000 (22:39 +0000)]
Patch to fix canadian cross build problem with libcpp.a.
* Makefile.in: Change all uses of AR to AR_FOR_TARGET. Change all uses
of HOST_AR to AR. Likewise for AR_FLAGS, RANLIB, and RANLIB_TEST.
(RANLIB_TEST): Test to see if ranlib exists. Only test absolute file
names if host == target.
(HOST_AR, HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Delete.
(AR_FLAGS_FOR_TARGET): Renamed from AR_FOR_TARGET_FLAGS.
(AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST): Delete rules
setting them to *_FOR_TARGET.
* cross-make (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST):
Delete.
Bob Manson [Tue, 2 Feb 1999 21:22:52 +0000 (21:22 +0000)]
Bob Manson <manson@charmed.cygnus.com>
Bob Manson <manson@charmed.cygnus.com>
* resource.c, resource.h: New files.
* haifa-sched.c (regno_use_in): Moved to rtlanal.c.
(split_block_insns): Moved to recog.c.
(update_flow_info): Make public.
* reorg.c: Moved the functions dealing with computing resource
usage to resource.c.
* sched.c (regno_use_in): Moved to rtlanal.c.
(update_flow_info): Make public.
(schedule_insns): Use split_block_insns.
* recog.c (split_block_insns): New function.
Jeffrey A Law [Tue, 2 Feb 1999 19:06:58 +0000 (19:06 +0000)]
i386.md (ashlsi3): Turn into a define_expand an anonymous pattern.
* i386.md (ashlsi3): Turn into a define_expand an anonymous pattern.
Make the anonymous pattern match when ! optimize_size.
(ashlsi3 size optimizer): New pattern.