1998-08-26 14:16:54 +02:00
|
|
|
Wed Aug 26 09:30:59 1998 Nick Clifton <nickc@cygnus.com>
|
|
|
|
|
|
|
|
* config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it
|
|
|
|
already contains the return address.
|
|
|
|
|
1998-08-26 13:58:20 +02:00
|
|
|
Wed Aug 26 12:57:09 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
|
|
|
* mn10300.h (RTX_COSTS): Handle UDIV and UMOD too.
|
|
|
|
|
1998-08-26 10:40:47 +02:00
|
|
|
Wed Aug 26 16:35:37 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
|
|
|
|
|
|
|
|
* loop.c (check_dbra_loop): Add some code that would allow reversal
|
|
|
|
of some loops without a known constant loop end if it were enabled.
|
|
|
|
|
1998-08-26 10:16:23 +02:00
|
|
|
Wed Aug 26 11:08:44 1998 Gavin Romig-Koch <gavin@cygnus.com>
|
|
|
|
|
|
|
|
* mips.md (lshrsi3_internal2+2): Fix type-o.
|
|
|
|
|
1998-08-26 10:11:47 +02:00
|
|
|
Wed Aug 26 10:53:03 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
|
|
|
|
|
|
|
* system.h: Include stdarg.h/varargs.h, make sure they are ordered
|
|
|
|
correctly with regards to stdio.h.
|
|
|
|
|
|
|
|
* calls.c: Remove stdarg.h/varargs.h.
|
|
|
|
* cccp.c: Likewise.
|
|
|
|
* cexp.y: Likewise.
|
|
|
|
* combine.c: Likewise.
|
|
|
|
* cpperror.c: Likewise.
|
|
|
|
* cpplib.c: Likewise.
|
|
|
|
* cpplib.h: Likewise.
|
|
|
|
* doprint.c: Likewise.
|
|
|
|
* emit-rtl.c: Likewise.
|
|
|
|
* final.c: Likewise.
|
|
|
|
* fix-header.c: Likewise.
|
|
|
|
* gcc.c: Likewise.
|
|
|
|
* genattr.c: Likewise.
|
|
|
|
* genattrtab.c: Likewise.
|
|
|
|
* gencodes.c: Likewise.
|
|
|
|
* genconfig.c: Likewise.
|
|
|
|
* genemit.c: Likewise.
|
|
|
|
* genextract.c: Likewise.
|
|
|
|
* genflags.c: Likewise.
|
|
|
|
* genopinit.c: Likewise.
|
|
|
|
* genoutput.c: Likewise.
|
|
|
|
* genpeep.c: Likewise.
|
|
|
|
* genrecog.c: Likewise.
|
|
|
|
* mips-tfile.c: Likewise.
|
|
|
|
* prefix.c: Likewise.
|
|
|
|
* protoize.c: Likewise.
|
|
|
|
* regmove.c: Likewise.
|
|
|
|
* toplev.c: Likewise.
|
|
|
|
* tree.c: Likewise.
|
|
|
|
|
1998-08-26 08:19:46 +02:00
|
|
|
Wed Aug 26 05:09:27 1998 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>
|
|
|
|
|
|
|
|
* config/sparc/sparc.c (sparc_override_options): If not
|
|
|
|
TARGET_FPU, turn off TARGET_VIS.
|
|
|
|
* config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis.
|
|
|
|
(LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS.
|
|
|
|
* config/sparc/sparc.md (movsi_insn): Use fzeros not fzero.
|
|
|
|
(movdi_insn_sp64): Add VIS fzero alternative.
|
|
|
|
(clear_sf, clear_df): New VIS patterns.
|
|
|
|
(movsf, movdf expanders): Allow fp_zero_operand flat out when
|
|
|
|
TARGET_VIS.
|
|
|
|
(one_cmpldi2_sp64): Provide new fnot1 VIS alternative.
|
|
|
|
|
1998-08-26 01:17:35 +02:00
|
|
|
Tue Aug 25 10:57:41 1998 Mark Mitchell <mark@markmitchell.com>
|
|
|
|
|
|
|
|
* loop.c (n_times_set, n_times_used, may_not_optimize,
|
|
|
|
reg_single_usage): Convert to varrays. All uses changed.
|
|
|
|
(insert_loop_mem): Return a value.
|
|
|
|
(scan_loop): Tweak AVOID_CC_MODE_COPIES code.
|
|
|
|
(load_mems_and_recount_loop_regs_set): Likewise. Grow the arrays, if
|
|
|
|
necessary.
|
|
|
|
|
1998-08-26 00:59:03 +02:00
|
|
|
Tue Aug 25 23:57:12 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
1998-08-26 01:07:46 +02:00
|
|
|
* From Alexandre:
|
|
|
|
* configure.in: Do not set thread_file to "irix" since no such
|
|
|
|
support exists yet.
|
|
|
|
|
1998-08-26 00:59:03 +02:00
|
|
|
* sparc.md (float abs/neg splits): Check reload_completed before
|
|
|
|
calling alter_subreg.
|
|
|
|
|
1998-08-25 22:25:02 +02:00
|
|
|
Tue Aug 25 19:17:59 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New
|
|
|
|
function.
|
|
|
|
* config/sparc/sparc.h: Declare it.
|
|
|
|
* config/sparc/sparc.md (float abs/neg splits): Use it.
|
|
|
|
(all other splits): Handle SUBREGs properly where necessary.
|
|
|
|
(unnamed (1<<x)-1 V8PLUS pattern): Disable for now.
|
|
|
|
|
1998-08-25 20:50:26 +02:00
|
|
|
Tue Aug 25 19:48:46 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
|
|
|
* reorg.c (fill_simple_delay_slots): Do not abort if we encounter
|
|
|
|
an insn on the unfilled_slots_list that has no delay slots.
|
|
|
|
(fill_eager_delay_slots): Similarly.
|
|
|
|
|
1998-08-25 15:36:14 +02:00
|
|
|
Tue Aug 25 13:35:20 1998 Nick Clifton <nickc@cygnus.com>
|
|
|
|
|
|
|
|
* config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX
|
|
|
|
as an ordinary operand.
|
|
|
|
|
1998-08-25 14:55:42 +02:00
|
|
|
Tue Aug 25 12:54:57 1998 Jason Merrill <jason@yorick.cygnus.com>
|
|
|
|
|
|
|
|
* tree.c (valid_machine_attribute): Don't apply attributes to both
|
|
|
|
decl and type.
|
|
|
|
|
1998-08-25 14:23:51 +02:00
|
|
|
Tue Aug 25 12:23:20 PDT 1998 Richard Henderson <rth@cygnus.com>
|
|
|
|
|
|
|
|
* reload.c (operands_match_p): Handle rtvecs.
|
|
|
|
|
|
|
|
* i386.c (legitimate_pic_address_disp_p): New.
|
|
|
|
(legitimate_address_p): Use it.
|
|
|
|
(legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF.
|
|
|
|
Handle constant pool symbols just like statics.
|
|
|
|
(emit_pic_move): Use Pmode not SImode for clarity.
|
|
|
|
(output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks.
|
|
|
|
[UNSPEC]: New, handling what we killed above.
|
|
|
|
[PLUS]: Detect and abort on invalid symbol arithmetic.
|
|
|
|
* i386.h (CONSTANT_ADDRESS_P): Remove HIGH.
|
|
|
|
|
1998-08-25 14:01:52 +02:00
|
|
|
Tue Aug 25 12:02:23 1998 Mark Mitchell <mark@markmitchell.com>
|
|
|
|
|
|
|
|
* alias.c: Include output.h.
|
|
|
|
(DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as
|
|
|
|
different if we're in a varargs function.
|
|
|
|
* Makefile.in (alias.o): Depend on output.h
|
|
|
|
|
1998-08-25 13:43:35 +02:00
|
|
|
Tue Aug 25 19:20:12 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
|
|
|
|
|
|
|
|
* sh.h (GIV_SORT_CRITERION): Delete.
|
|
|
|
|
1998-08-25 13:02:51 +02:00
|
|
|
Tue Aug 25 13:19:46 1998 Dave Brolley <brolley@cygnus.com>
|
|
|
|
|
|
|
|
* regclass.c (regclass): Use xmalloc/free instead of alloca.
|
|
|
|
* stupid.c (stupid_life_analysis): Ditto.
|
|
|
|
* reload1.c (reload): Ditto.
|
|
|
|
|
1998-08-25 08:56:57 +02:00
|
|
|
Tue Aug 25 05:48:18 1998 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>
|
|
|
|
|
|
|
|
* config/sparc/sparc.c (arith_4096_operand, arith_add_operand,
|
|
|
|
arith_double_4096_operand, arith_double_add_operand): New
|
|
|
|
predicates.
|
|
|
|
* config/sparc/sparc.h (PREDICATE_CODES): Add them, declare them.
|
|
|
|
* config/sparc/sparc.md (adddi3, addsi3, subdi3, subsi3): Use
|
|
|
|
them to transform add/sub 4096 into add/sub -4096.
|
|
|
|
|
1998-08-25 02:37:12 +02:00
|
|
|
Mon Aug 24 23:31:03 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* loop.c (scan_loop): Allocate some slop to handle pseudos
|
|
|
|
generated by move_movables.
|
|
|
|
(load_mems_and_recount_loop_regs_set): Honor AVOID_CC_MODE_COPIES
|
|
|
|
here too.
|
|
|
|
|
1998-08-24 21:46:49 +02:00
|
|
|
Mon Aug 24 19:45:40 1998 Jim Wilson <wilson@cygnus.com>
|
|
|
|
|
|
|
|
* tree.def (DECL_RESULT): Correct documentation.
|
|
|
|
|
1998-08-24 19:19:55 +02:00
|
|
|
Tue Aug 25 01:15:27 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
|
|
|
|
|
|
|
|
* reload1.c (reload_reg_free_before_p): New argument EQUIV; Changed
|
|
|
|
all callers. Abort for RELOAD_FOR_INSN. RELOAD_FOR_OUTADDR_ADDR:
|
|
|
|
conflicts will all RELOAD_FOR_OUTPUT reloads.
|
1998-08-24 19:03:34 +02:00
|
|
|
|
|
|
|
* reload1.c (reload_cse_regs_1): When deleting a no-op move that
|
|
|
|
loads the function result, substitute with a USE.
|
|
|
|
|
1998-08-24 14:32:03 +02:00
|
|
|
Mon Aug 24 15:20:19 1998 David Edelsohn <edelsohn@mhpcc.edu>
|
|
|
|
|
|
|
|
* rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64
|
|
|
|
when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode.
|
|
|
|
(LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup.
|
|
|
|
* rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4.
|
|
|
|
(print_operand, cases 'O' and 'T'): Fix typos in lossage strings.
|
|
|
|
* rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT
|
|
|
|
operand.
|
|
|
|
(movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change
|
|
|
|
'o' to 'm' for GPR variant constraints.
|
|
|
|
|
1998-08-24 11:27:36 +02:00
|
|
|
Mon Aug 24 10:25:46 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
1998-08-24 13:06:09 +02:00
|
|
|
* loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES.
|
|
|
|
|
1998-08-24 12:26:45 +02:00
|
|
|
* h8300.h (STRIP_NAME_ENCODING): Fix typo.
|
|
|
|
|
1998-08-24 12:01:01 +02:00
|
|
|
* sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect
|
|
|
|
when the source and destination overlap.
|
|
|
|
|
1998-08-24 11:27:36 +02:00
|
|
|
* stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid
|
|
|
|
clash with global type.
|
|
|
|
|
1998-08-24 02:54:37 +02:00
|
|
|
Mon Aug 24 00:53:53 1998 Jason Merrill <jason@yorick.cygnus.com>
|
|
|
|
|
|
|
|
* fixinc.irix: Add curses.h handling from fixinc.wrap.
|
|
|
|
|
|
|
|
* c-common.c (combine_strings): Also set TREE_READONLY.
|
|
|
|
Change warn_write_strings to flag_const_strings.
|
|
|
|
* c-decl.c, c-tree.h: Likewise.
|
|
|
|
|
1998-08-23 21:48:11 +02:00
|
|
|
Sun Aug 23 18:39:11 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* config/sparc/sparc.c (sparc_emit_set_const32): If outputting a
|
|
|
|
CONST_INT, not a symbolic reference, don't use a HIGH/LO_SUM
|
|
|
|
sequence, use SET/IOR instead so CSE can see it.
|
|
|
|
* config/sparc/sparc.md (movhi_const64_special,
|
|
|
|
movsi_const64_special): New patterns necessitated by that change.
|
|
|
|
(movhi_high): Remove.
|
|
|
|
(movhi_lo_sum): Change to match an IOR.
|
|
|
|
(movdf_insn_sp32): Test TARGET_V9 not TARGET_ARCH64.
|
|
|
|
(movdf_insn_v9only): New pattern for when V9 but not ARCH64.
|
|
|
|
(movdf_insn_sp64): Test both TARGET_V9 and TARGET_ARCH64.
|
|
|
|
(movdf splits): Allow when not V9 or when not ARCH64 and integer
|
|
|
|
registers are involved.
|
|
|
|
(snesi_zero_extend split): Remove reload_completed test.
|
|
|
|
(unnamed plus and minus zero_extend sidi splits): Add it.
|
|
|
|
|
1998-08-23 14:47:24 +02:00
|
|
|
Sun Aug 23 11:56:08 1998 Mark Mitchell <mark@markmitchell.com>
|
|
|
|
|
|
|
|
* extend.texi: Remove description of extension to explicit
|
|
|
|
instantiation that is now endorsed by standard C++.
|
|
|
|
|
1998-08-23 12:43:54 +02:00
|
|
|
Sun Aug 23 09:39:09 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* config/arc/arc.c (arc_initialize_pic): Remove.
|
|
|
|
* config/arc/arc.h (INITIALIZE_PIC): Similarly, this routine does
|
|
|
|
nothing on any platform and is invoked by no-one, it does not even
|
|
|
|
appear in the documentation.
|
|
|
|
* config/sparc/sparc.h (INITIALIZE_PIC): Likewise.
|
|
|
|
* config/sparc/sparc.c (initialize_pic): Likewise.
|
|
|
|
(find_addr_reg): Remove this as well, no longer referenced after
|
|
|
|
my rewrite.
|
|
|
|
|
1998-08-23 01:21:19 +02:00
|
|
|
Sun Aug 23 00:17:14 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
|
|
|
* recog.c (validate_replace_rtx_group): New function.
|
|
|
|
* recog.h (validate_replace_rtx_group): Declare it.
|
|
|
|
* regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
|
|
|
|
the entire group of substitutions.
|
|
|
|
|
1998-08-23 00:32:53 +02:00
|
|
|
Sat Aug 22 23:31:00 1998 Klaus-Georg Adams (Klaus-Georg.Adams@chemie.uni-karlsruhe.de)
|
|
|
|
|
|
|
|
* loop.c (load_mems): Fix initializers.
|
|
|
|
|
1998-08-22 02:11:24 +02:00
|
|
|
Fri Aug 21 23:07:46 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* config/sparc/sparc.md (TFmode splits): Handle destination
|
|
|
|
registers being referenced in the address correctly.
|
|
|
|
|
1998-08-22 05:17:56 +02:00
|
|
|
* expmed.c (make_tree) [CONST_INT]: Sign extend even if
|
|
|
|
TREE_UNSIGNED, when bitsize of type's mode is larger than
|
|
|
|
HOST_BITS_PER_WIDE_INT.
|
|
|
|
|
1998-08-21 21:32:21 +02:00
|
|
|
Fri Aug 21 19:31:31 1998 Alexandre Petit-Bianco <apbianco@cygnus.com>
|
|
|
|
|
|
|
|
* tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR): New tree nodes.
|
|
|
|
* tree.h (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
|
|
|
|
EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY): New
|
|
|
|
macros.
|
|
|
|
* expr.c (expand_expr): Handle LABELED_BLOCK_EXPR and
|
|
|
|
EXIT_BLOCK_EXPR.
|
|
|
|
|
1998-08-20 20:45:48 +02:00
|
|
|
Thu Aug 20 19:43:44 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
1998-08-21 04:07:01 +02:00
|
|
|
* h8300.c (h8300_encode_label): Use '&' for tiny data items.
|
|
|
|
* h8300.h (TINY_DATA_NAME_P): Likewise.
|
|
|
|
(STRIP_NAME_ENCODING): Handle '&'.
|
|
|
|
|
1998-08-21 01:48:14 +02:00
|
|
|
* mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the
|
|
|
|
register (it could be accessed via an outer SUBREG).
|
|
|
|
(REG_OK_FOR_BASE_P): Likewwise.
|
|
|
|
(GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P.
|
|
|
|
|
1998-08-21 01:19:05 +02:00
|
|
|
* remove.c (optimize_reg_copy_3): Abort instead of silently generating
|
|
|
|
bogus rtl.
|
|
|
|
|
1998-08-20 20:45:48 +02:00
|
|
|
* jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative.
|
|
|
|
|
1998-08-20 20:39:29 +02:00
|
|
|
Thu Aug 20 17:35:20 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* config/sparc/sparc.md (movtf_insn_sp32): All memory operands
|
|
|
|
must be offsettable so the splits can be made.
|
|
|
|
|
1998-08-20 13:00:20 +02:00
|
|
|
Thu Aug 20 13:56:53 1998 Michael Meissner <meissner@cygnus.com>
|
|
|
|
|
|
|
|
* config/i386/winnt.c: Include system.h, not stdio.h to get
|
|
|
|
sys/param.h pulled in before rtl.h in case the system defines MIN
|
|
|
|
and MAX.
|
|
|
|
|
1998-08-20 12:50:39 +02:00
|
|
|
Thu Aug 20 13:44:20 1998 David Edelsohn <edelsohn@mhpcc.edu>
|
|
|
|
|
|
|
|
* rs6000.md (movqi, movhi): Add CONSTANT_P_RTX.
|
|
|
|
|
1998-08-20 12:29:22 +02:00
|
|
|
Thu Aug 20 13:15:11 1998 Dave Brolley <brolley@cygnus.com>
|
|
|
|
|
|
|
|
* stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for
|
|
|
|
arrays of bits.
|
|
|
|
* cpplib.c (cpp_define): Handle macros with parameters.
|
|
|
|
|
1998-08-19 21:43:19 +02:00
|
|
|
Wed Aug 19 21:33:19 1998 David Edelsohn <edelsohn@mhpcc.edu>
|
|
|
|
|
|
|
|
* rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
|
|
|
|
(output_toc): Use single TOC slot or llong minimal-toc for DFmode
|
|
|
|
and DImode 64-bit. Use llong for minimal-toc SFmode and
|
|
|
|
SYMBOL_REF / LABEL_REF 64-bit.
|
|
|
|
(output_function_profiler): Use llong for profiler label and ld to
|
|
|
|
load 64-bit label address.
|
|
|
|
|
1998-08-19 18:56:19 +02:00
|
|
|
Wed Aug 19 17:52:27 1998 Nick Clifton (nickc@cygnus.com)
|
|
|
|
|
|
|
|
* config/arm/thumb.md (extendqisi2_insn): Cope with REG +
|
|
|
|
OFFSET addressing.
|
|
|
|
|
1998-08-19 16:13:35 +02:00
|
|
|
Wed Aug 19 14:13:31 PDT 1998 Jeff Law (law@cygnus.com)
|
|
|
|
|
|
|
|
* version.c: Bump for snapshot.
|
|
|
|
|
1998-08-19 15:10:34 +02:00
|
|
|
Wed Aug 19 13:10:30 PDT 1998 Jeff Law (law@cygnus.com)
|
|
|
|
|
|
|
|
* version.c: Bump for snapshot.
|
|
|
|
|
1998-08-19 15:07:52 +02:00
|
|
|
Wed Aug 19 13:06:47 1998 Jason Merrill <jason@yorick.cygnus.com>
|
|
|
|
|
|
|
|
* collect2.c (extract_init_priority): Use atoi instead of strtoul.
|
|
|
|
|
1998-08-19 14:53:25 +02:00
|
|
|
Wed Aug 19 13:51:35 1998 Hans-Peter Nilsson <hp@axis.se>
|
|
|
|
|
1998-08-19 15:02:31 +02:00
|
|
|
* tm.texi (Misc): Fix typo "teh".
|
|
|
|
|
1998-08-19 14:54:49 +02:00
|
|
|
* tm.texi (PIC): Fix typo "PPIC".
|
|
|
|
|
1998-08-19 14:53:25 +02:00
|
|
|
* tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no
|
|
|
|
effect when -O2 and higher.
|
|
|
|
* invoke.texi (Optimize Options): Likewise for -fcaller-saves.
|
|
|
|
|
1998-08-19 14:49:17 +02:00
|
|
|
1998-08-19 Michael Hayes <michaelh@ongaonga.chch.cri.nz>
|
|
|
|
|
|
|
|
* regclass.c: Changed register set documentation to be consistent
|
|
|
|
with GCC behaviour.
|
|
|
|
|
|
|
|
* final.c (final_start_function) Removed redundant test for
|
|
|
|
call_fixed_regs.
|
|
|
|
|
1998-08-19 14:30:47 +02:00
|
|
|
Wed Aug 19 13:28:41 1998 Mark Mitchell <mark@markmitchell.com>
|
|
|
|
|
|
|
|
* rtl.h (rtx_function): New type.
|
|
|
|
(for_each_rtx): New function.
|
|
|
|
* rtlanal.c (for_each_rtx): Define it.
|
|
|
|
|
|
|
|
* recog.c (change_t): New type.
|
|
|
|
(change_objects, change_old_codes, change_locs, change_olds):
|
|
|
|
Replace with ...
|
|
|
|
(changes): New variable.
|
|
|
|
(validate_change): Dynamically allocate room for more changes, if
|
|
|
|
necessary. Uses changes array instead of change_objects, etc.
|
|
|
|
(apply_change_group): Use changes array instead of
|
|
|
|
change_objects, etc.
|
|
|
|
|
|
|
|
* loop.c (loop_mem_info): New type.
|
|
|
|
(loop_mems): New variable.
|
|
|
|
(loop_mems_idx): Likewise.
|
|
|
|
(looop_mems_allocated): Likewise.
|
|
|
|
(scan_loop): Remove nregs parameter.
|
|
|
|
(next_insn_in_loop): New function.
|
|
|
|
(load_mems_and_recount_loop_regs_set): Likewise.
|
|
|
|
(load_mems): Likewise.
|
|
|
|
(insert_loop_mem): Likewise.
|
|
|
|
(replace_loop_mem): Likewise.
|
|
|
|
(replace_label): Likewise.
|
|
|
|
(INSN_IN_RANGE_P): New macro.
|
|
|
|
(loop_optimize): Don't pass max_reg_num() to scan_loop.
|
|
|
|
(scan_loop): Remove nregs parameter, compute it after any new
|
|
|
|
registers are created by load_mems. Use INSN_IN_RANGE_P and
|
|
|
|
next_insn_in_loop rather than expanding them inline. Call
|
|
|
|
load_mems to load memory into pseudos, if appropriate.
|
|
|
|
(prescan_loop): Figure out whether or not there are jumps from the
|
|
|
|
loop to targets other than the label immediately following the
|
|
|
|
loop. Call insert_loop_mem to notice all the MEMs used in the
|
|
|
|
loop, if it could be safe to pull MEMs into REGs for the duration
|
|
|
|
of the loop.
|
|
|
|
(strength_reduce): Use next_insn_in_loop. Tweak comments.
|
|
|
|
|
1998-08-19 10:33:48 +02:00
|
|
|
Wed Aug 19 08:29:44 1998 Richard Earnshaw (rearnsha@arm.com)
|
|
|
|
|
|
|
|
* arm.c (arm_override_options): Remove lie about ignoring PIC flag.
|
|
|
|
|
1998-08-19 10:14:26 +02:00
|
|
|
Wed Aug 19 07:08:15 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* config/sparc/sparc.c (finalize_pic): Check for the correct
|
|
|
|
nonlocal_goto_receiver UNSPEC number.
|
|
|
|
* config/sparc/sparc.md (nonlocal_goto_receiver): Add comment
|
|
|
|
making note of this dependency existing in sparc.c
|
1998-08-19 11:02:26 +02:00
|
|
|
(negtf2_notv9 split): Give NEG SFmode.
|
|
|
|
(negsf2): Fix insn output string.
|
|
|
|
|
1998-08-18 14:40:52 +02:00
|
|
|
Tue Aug 18 12:40:27 1998 Richard Henderson <rth@cygnus.com>
|
|
|
|
|
|
|
|
* c-common.c (decl_attributes): Issue an error if the argument
|
|
|
|
to alias is not a string.
|
|
|
|
|
1998-08-18 11:34:59 +02:00
|
|
|
Tue Aug 18 10:33:30 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
1998-08-18 23:58:15 +02:00
|
|
|
* haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last
|
|
|
|
pending memory flush list.
|
|
|
|
|
1998-08-18 20:29:40 +02:00
|
|
|
* combine.c (can_combine_p): Allow combining insns with REG_RETVAL
|
|
|
|
notes.
|
|
|
|
(try_combine): Allow combining insns with REG_LIBCALL notes.
|
|
|
|
|
1998-08-18 19:49:28 +02:00
|
|
|
* expr.c (emit_block_move): Do not call memcpy as a libcall
|
|
|
|
instead build up a CALL_EXPR and call it like any other
|
|
|
|
function.
|
|
|
|
(clear_storage): Similarly for memset.
|
|
|
|
|
1998-08-18 19:14:34 +02:00
|
|
|
* regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p
|
|
|
|
on notes.
|
|
|
|
|
1998-08-18 12:26:35 +02:00
|
|
|
* Makefile.in (cplus-dem.o): Provide explicit rules for building
|
|
|
|
cplus-dem.o
|
|
|
|
|
1998-08-18 11:34:59 +02:00
|
|
|
* regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED
|
|
|
|
and REG_LIVE_LENGTH as successful substitutions are made.
|
|
|
|
|
1998-08-18 10:24:51 +02:00
|
|
|
Tue Aug 18 07:15:27 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
|
|
|
|
|
|
|
* config/sparc/sparc.c (ultra_find_type): Add empty semicolon
|
|
|
|
statement after end of loop label.
|
|
|
|
|
|
|
|
Tue Aug 18 07:13:27 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* config/sparc/sparc.c (ultra_types_avail): New variable.
|
|
|
|
(ultra_build_types_avail): New function to record mask of insn
|
|
|
|
types in ready list at this cycle.
|
|
|
|
(ultrasparc_sched_reorder): Call it.
|
|
|
|
(ultra_find_type): Use it to quicken the search. Also simplif
|
|
|
|
dependency check, don't use rtx_equal_p because we know exactly
|
|
|
|
what we are looking for.
|
|
|
|
|
1998-08-18 05:24:05 +02:00
|
|
|
Tue Aug 18 03:20:53 1998 Richard Earnshaw (rearnsha@arm.com)
|
|
|
|
|
|
|
|
* arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling
|
|
|
|
for architecture v4.
|
|
|
|
|
sparc.md (sltu, sgeu): Don't FAIL, call gen_compare_reg.
* config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call
gen_compare_reg.
(movsf_const_intreg, movsf_const_high, movsf_const_lo,
movdf_const_intreg and helper splits): New patterns to move float
constants into integer registers.
(negtf2, negdf2, abstf2, absdf2): Rework using new patterns and
splits.
From-SVN: r21813
1998-08-18 00:34:06 +02:00
|
|
|
Mon Aug 17 21:26:38 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call
|
|
|
|
gen_compare_reg.
|
|
|
|
(movsf_const_intreg, movsf_const_high, movsf_const_lo,
|
|
|
|
movdf_const_intreg and helper splits): New patterns to move float
|
|
|
|
constants into integer registers.
|
|
|
|
(negtf2, negdf2, abstf2, absdf2): Rework using new patterns and
|
|
|
|
splits.
|
|
|
|
|
1998-08-17 12:49:58 +02:00
|
|
|
Mon Aug 17 11:46:19 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
1998-08-17 22:26:47 +02:00
|
|
|
* From Graham
|
|
|
|
* tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype
|
|
|
|
to itype.
|
|
|
|
* c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem.
|
|
|
|
|
1998-08-17 22:11:04 +02:00
|
|
|
* rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that
|
|
|
|
a BASE_REGS register is needed as an intermediate when copying
|
|
|
|
a symbolic value into any register class other than BASE_REGS.
|
|
|
|
|
1998-08-17 18:37:49 +02:00
|
|
|
* expr.c (move_by_pieces): No longer static. Remove prototype.
|
|
|
|
* rtl.h (move_by_pieces): Add extern prototype.
|
|
|
|
* mips.c (expand_block_move): Handle aligned straight line copy by
|
|
|
|
calling move_by_pieces.
|
|
|
|
|
1998-08-17 12:49:58 +02:00
|
|
|
* expr.c (expand_expr): Allow assignments from TImode PARM_DECLs
|
|
|
|
and VAR_DECLs.
|
|
|
|
|
1998-08-17 11:30:15 +02:00
|
|
|
Mon Aug 17 10:28:52 1998 Mark Mitchell <mark@markmitchell.com>
|
|
|
|
|
|
|
|
* stmt.c (expand_end_loop): Tidy. Allow unconditional
|
|
|
|
jumps out of the loop to be treated as part of the exit test.
|
|
|
|
|
1998-08-17 11:08:32 +02:00
|
|
|
Mon Aug 17 10:06:11 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
|
|
|
Jeff Law <law@cygnus.com>
|
|
|
|
|
1998-08-17 12:49:58 +02:00
|
|
|
* Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty.
|
1998-08-17 13:39:32 +02:00
|
|
|
* cplus-dem.c: Delete.
|
1998-08-17 12:49:58 +02:00
|
|
|
|
|
|
|
* Makefile.in (fold-const.o): depend on $(RTL_H).
|
|
|
|
|
|
|
|
* fold-const.c: Include rtl.h to get the prototype for
|
|
|
|
`set_identifier_local_value'.
|
|
|
|
|
|
|
|
* loop.c (express_from_1): Remove unused variable `tmp'.
|
|
|
|
(combine_givs): cast the first argument of bzero to char *.
|
|
|
|
|
|
|
|
* toplev.c (display_help): Remove unused variable `looking_for_start'.
|
|
|
|
|
1998-08-17 11:08:32 +02:00
|
|
|
* c-decl.c (init_decl_processing): Remove unneeded &.
|
|
|
|
|
|
|
|
* alpha.h (alpha_initialize_trampoline): Provide prototype.
|
|
|
|
|
|
|
|
* except.c (set_exception_lang_code, set_exception_version_code):
|
|
|
|
Change parameter from `short' to `int' to avoid using a gcc
|
|
|
|
extension.
|
|
|
|
|
|
|
|
* except.h (set_exception_lang_code, set_exception_version_code):
|
|
|
|
Likewise for prototypes.
|
|
|
|
|
|
|
|
* flow.c (count_reg_references): Remove unused variables `regno'
|
|
|
|
and `i'.
|
|
|
|
|
|
|
|
* gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'.
|
|
|
|
|
|
|
|
* prefix.c (translate_name): Cast the result of `alloca'.
|
|
|
|
|
|
|
|
* varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement.
|
|
|
|
|
1998-08-17 10:25:31 +02:00
|
|
|
Mon Aug 17 09:23:42 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
|
|
|
|
1998-08-17 10:35:24 +02:00
|
|
|
* config/m68k/m68k.c: Include "system.h" instead of <stdio.h>.
|
|
|
|
Include "toplev.h".
|
|
|
|
(valid_dbcc_comparison_p): Mark mode argument as unused.
|
|
|
|
(symbolic_operand): Likewise.
|
|
|
|
(legitimize_pic_address): Likewise.
|
|
|
|
(const_uint32_operand): Likewise.
|
|
|
|
(const_sint32_operand): Likewise.
|
|
|
|
* sched.c [!INSN_SCHEDULING]: Define only dummy function
|
|
|
|
schedule_insns and comment out rest of file.
|
|
|
|
|
1998-08-17 10:25:31 +02:00
|
|
|
* m68k.c (output_move_simode_const): Use subl to move a zero into an
|
|
|
|
address register.
|
|
|
|
(output_move_[hq]imode): Likewise.
|
|
|
|
|
1998-08-17 10:18:17 +02:00
|
|
|
Mon Aug 17 09:15:47 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
|
|
|
* toplev.c (main): Enable -fstrict-aliasing for -O2 and above.
|
|
|
|
* invoke.texi: Corresponding changes.
|
|
|
|
|
1998-08-17 04:04:53 +02:00
|
|
|
Mon Aug 17 02:03:55 1998 Richard Henderson <rth@cygnus.com>
|
|
|
|
|
|
|
|
* regclass.c (allocate_reg_info): Respect MIN when clearing data.
|
|
|
|
|
sparc.c (ultra_code_from_mask, [...]): New functions to describe UltraSPARC pipeline exactly to Haifa.
* config/sparc/sparc.c (ultra_code_from_mask,
ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
ultra_find_type, ultra_schedule_insn, ultra_flush_pipeline,
ultrasparc_sched_init, ultrasparc_variable_issue,
ultra_rescan_pipeline_state, ultrasparc_sched_reorder): New
functions to describe UltraSPARC pipeline exactly to Haifa.
(ultrasparc_adjust_cost): Indicate IMUL type insns have zero cost,
as there is nothing the scheduler can do about it. Indicate that
REG_DEP_OUTPUT's collide. Fixup formatting.
* config/sparc/sparc.h (RTX_COSTS): Fixup integer multiply and
divide costs on Ultra for DImode.
(MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE):
Define.
* config/sparc/sparc.md (ieu_unnamed function unit): Rename to
ieuN and add call_no_delay_slot to type list.
(cti function unit): New unit for branches on UltraSPARC.
(subx/addx insns): Set type to misc.
(sidi zero/sign extension insns on arch64): Set type to shift.
(sign_extendhidi2_insn): Set type to sload.
From-SVN: r21767
1998-08-16 20:50:32 +02:00
|
|
|
Sun Aug 16 17:37:06 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* config/sparc/sparc.c (ultra_code_from_mask,
|
|
|
|
ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
|
|
|
|
ultra_find_type, ultra_schedule_insn, ultra_flush_pipeline,
|
|
|
|
ultrasparc_sched_init, ultrasparc_variable_issue,
|
|
|
|
ultra_rescan_pipeline_state, ultrasparc_sched_reorder): New
|
|
|
|
functions to describe UltraSPARC pipeline exactly to Haifa.
|
|
|
|
(ultrasparc_adjust_cost): Indicate IMUL type insns have zero cost,
|
|
|
|
as there is nothing the scheduler can do about it. Indicate that
|
|
|
|
REG_DEP_OUTPUT's collide. Fixup formatting.
|
|
|
|
* config/sparc/sparc.h (RTX_COSTS): Fixup integer multiply and
|
|
|
|
divide costs on Ultra for DImode.
|
|
|
|
(MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE):
|
|
|
|
Define.
|
|
|
|
* config/sparc/sparc.md (ieu_unnamed function unit): Rename to
|
|
|
|
ieuN and add call_no_delay_slot to type list.
|
|
|
|
(cti function unit): New unit for branches on UltraSPARC.
|
|
|
|
(subx/addx insns): Set type to misc.
|
|
|
|
(sidi zero/sign extension insns on arch64): Set type to shift.
|
|
|
|
(sign_extendhidi2_insn): Set type to sload.
|
|
|
|
|
1998-08-16 13:07:25 +02:00
|
|
|
Sun Aug 16 13:52:00 1998 David Edelsohn <edelsohn@mhpcc.edu>
|
|
|
|
|
|
|
|
* rs6000.c (rs6000_stack_info): Use if == 0 for sizes.
|
|
|
|
(output_epilog): Use if != 0 for offset.
|
|
|
|
(rs6000_fatal_bad_address): Prepare for Intl.
|
|
|
|
* rs6000.h (rs6000_fatal_bad_address): Declare.
|
|
|
|
* rs6000.md (movsfcc, movdfcc): Use else if.
|
|
|
|
(elf_high): Use {liu|lis}.
|
|
|
|
(elf_low): Use {cal|la}. Remove %a template from old mnemonics.
|
|
|
|
(movsi): Use rs6000_fatal_bad_address.
|
|
|
|
|
1998-08-16 02:55:56 +02:00
|
|
|
Sun Aug 16 01:53:21 1998 Richard Henderson <rth@cygnus.com>
|
|
|
|
|
|
|
|
* reload.c (find_equiv_reg): Reject equivalences separated
|
|
|
|
by a volatile instruction.
|
|
|
|
|
1998-08-16 01:23:16 +02:00
|
|
|
Sun Aug 16 00:21:44 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
|
|
|
|
|
|
|
|
* rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define.
|
|
|
|
|
1998-08-15 22:54:22 +02:00
|
|
|
Sat Aug 15 20:51:35 1998 Richard Henderson <rth@cygnus.com>
|
|
|
|
|
|
|
|
* alpha.md (movsicc): Fix mode mismatch.
|
|
|
|
|
1998-08-15 22:47:16 +02:00
|
|
|
Sat Aug 15 20:22:33 1998 H.J. Lu (hjl@gnu.org)
|
|
|
|
|
|
|
|
* config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated
|
|
|
|
return type.
|
|
|
|
* config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise.
|
|
|
|
|
1998-08-15 11:47:56 +02:00
|
|
|
Sat Aug 15 08:39:49 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove
|
|
|
|
write-only modifier from operand 1 constraint.
|
|
|
|
|
1998-08-15 09:36:04 +02:00
|
|
|
Sat Aug 15 06:28:19 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* config/sparc/sparc.c (sparc_emit_set_const64_quick1): If
|
|
|
|
emitting a XOR of -1 at the end, emit a NOT instead for combine's
|
|
|
|
sake.
|
|
|
|
(sparc_emit_set_const64): Likewise, also when computing trailing
|
|
|
|
bits do not negate low_bits and make fast_int an int.
|
|
|
|
|
1998-08-14 22:10:08 +02:00
|
|
|
Fri Aug 14 21:07:03 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
1998-08-15 02:33:57 +02:00
|
|
|
* loop.c (add_label_notes): Do not ignore references to labels
|
|
|
|
before dispatch tables. Mirrors Apr 8 change to mark_jump_label.
|
|
|
|
* gcse.c (add_label_notes): Similarly.
|
|
|
|
|
1998-08-15 00:27:50 +02:00
|
|
|
* pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding.
|
|
|
|
|
1998-08-14 22:10:08 +02:00
|
|
|
* m68k.md (adddi_dilshr32): One of the operands must be a register.
|
|
|
|
(adddi_dishl32): Similarly.
|
|
|
|
|
1998-08-14 18:28:30 +02:00
|
|
|
Fri Aug 14 14:12:59 1998 Jason Merrill <jason@yorick.cygnus.com>
|
|
|
|
|
|
|
|
* i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings.
|
|
|
|
* alias.c (memrefs_conflict_p): Add braces to shut up warnings.
|
|
|
|
* cse.c (cse_basic_block): Add parens to shut up warnings.
|
|
|
|
|
sparc.c (sparc_emit_set_const64_quick2, [...]): Fix more bugs in 64-bit constant formation.
* config/sparc/sparc.c (sparc_emit_set_const64_quick2,
sparc_emit_set_const64_longway, const64_is_2insns,
create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs
in 64-bit constant formation.
* config/sparc/sparc.md (snesi_zero_extend split): Generate
rtl for addx not subx.
(define_insn movdi_const64_special): Make available even when
HOST_BITS_PER_WIDE_INT is not 64.
(movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove.
(losum_di_medlow, sethm, setlo): Make op2 symbolic_operand.
(cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both
instances of operand 1 inside a QI subreg.
(xordi3_sp64_dbl): Remove '%' constraint for op1.
(one_cmpldi2_sp64): Fix output string.
(one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra
alternative case.
(unnamed arch64 ashift DI): Truncate shift count if greater than
63, not 31.
From-SVN: r21733
1998-08-14 16:11:34 +02:00
|
|
|
Fri Aug 14 12:58:21 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* config/sparc/sparc.c (sparc_emit_set_const64_quick2,
|
|
|
|
sparc_emit_set_const64_longway, const64_is_2insns,
|
|
|
|
create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs
|
|
|
|
in 64-bit constant formation.
|
|
|
|
* config/sparc/sparc.md (snesi_zero_extend split): Generate
|
|
|
|
rtl for addx not subx.
|
|
|
|
(define_insn movdi_const64_special): Make available even when
|
|
|
|
HOST_BITS_PER_WIDE_INT is not 64.
|
|
|
|
(movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove.
|
|
|
|
(losum_di_medlow, sethm, setlo): Make op2 symbolic_operand.
|
|
|
|
(cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both
|
|
|
|
instances of operand 1 inside a QI subreg.
|
|
|
|
(xordi3_sp64_dbl): Remove '%' constraint for op1.
|
|
|
|
(one_cmpldi2_sp64): Fix output string.
|
|
|
|
(one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra
|
|
|
|
alternative case.
|
|
|
|
(unnamed arch64 ashift DI): Truncate shift count if greater than
|
|
|
|
63, not 31.
|
|
|
|
|
1998-08-14 15:58:02 +02:00
|
|
|
Fri Aug 14 21:52:53 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
|
|
|
|
|
|
|
|
* expr.c (store_expr): Don't optimize away load-store pair
|
|
|
|
when either source or destination have a side effect.
|
|
|
|
|
1998-08-14 15:52:58 +02:00
|
|
|
Fri Aug 14 16:50:10 1998 John Carr <jfc@mit.edu>
|
|
|
|
|
1998-08-14 18:28:30 +02:00
|
|
|
* genrecog.c (add_to_sequence): Fatal error if the modes of the
|
|
|
|
operands of SET are incompatible.
|
1998-08-14 15:52:58 +02:00
|
|
|
|
|
|
|
* alpha.md: Fix max and min patterns so modes of SET operands match.
|
|
|
|
|
1998-08-14 11:23:47 +02:00
|
|
|
Fri Aug 14 12:22:55 1998 Ian Lance Taylor <ian@cygnus.com>
|
|
|
|
|
|
|
|
* configure.in: Avoid [[ by using test and changequote.
|
|
|
|
* configure: Rebuild.
|
|
|
|
|
rtl.def (CONSTANT_P_RTX): Fix typo in string name.
* rtl.def (CONSTANT_P_RTX): Fix typo in string name.
* config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc,
seqsi_special_extend, snesi_special_extend, snesi_zero_extend and
split, snedi_zero_trunc and split, seqsi_zero_extend and split,
seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di,
movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and
split, addx_extend_sp64, subx_extend_sp64, subx_extend and split):
Fix mismatching modes in SET operands.
(conditional move patterns): Fix formatting.
(unnamed subx arch64 pattern): Remove duplicate insn.
From-SVN: r21725
1998-08-14 06:30:33 +02:00
|
|
|
Fri Aug 14 01:22:31 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* rtl.def (CONSTANT_P_RTX): Fix typo in string name.
|
|
|
|
|
|
|
|
* config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc,
|
|
|
|
seqsi_special_extend, snesi_special_extend, snesi_zero_extend and
|
|
|
|
split, snedi_zero_trunc and split, seqsi_zero_extend and split,
|
|
|
|
seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di,
|
|
|
|
movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and
|
|
|
|
split, addx_extend_sp64, subx_extend_sp64, subx_extend and split):
|
|
|
|
Fix mismatching modes in SET operands.
|
|
|
|
(conditional move patterns): Fix formatting.
|
|
|
|
(unnamed subx arch64 pattern): Remove duplicate insn.
|
|
|
|
|
sparc.c (const64_operand, [...]): Get it right when HOST_BITS_PER_WIDE_INT is not 64.
* config/sparc/sparc.c (const64_operand, const64_high_operand):
Get it right when HOST_BITS_PER_WIDE_INT is not 64.
(input_operand): Fixup test for what we accept for constant
integers.
(sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give
set VOIDmode.
(safe_constDI): Remove.
(sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
gen_safe_XOR64): New functions.
(sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2,
sparc_emit_set_const64_longway, sparc_emit_set_const64): Use
them.
* config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make
available when HOST_BITS_PER_WIDE_INT is not 64.
(define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and
move before movdi_insn_sp64 pattern.
(define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove.
(define_insn sethi_di_medlow, seth44, setm44, sethh): Use
symbolic_operand as predicate for second operand.
(DImode minus split on arch32, negsi2 expander, one_cmplsi2
expander): Give set VOIDmode.
From-SVN: r21724
1998-08-14 03:49:23 +02:00
|
|
|
Fri Aug 14 00:34:34 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* config/sparc/sparc.c (const64_operand, const64_high_operand):
|
|
|
|
Get it right when HOST_BITS_PER_WIDE_INT is not 64.
|
|
|
|
(input_operand): Fixup test for what we accept for constant
|
|
|
|
integers.
|
|
|
|
(sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give
|
|
|
|
set VOIDmode.
|
|
|
|
(safe_constDI): Remove.
|
|
|
|
(sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
|
|
|
|
gen_safe_XOR64): New functions.
|
|
|
|
(sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2,
|
|
|
|
sparc_emit_set_const64_longway, sparc_emit_set_const64): Use
|
|
|
|
them.
|
|
|
|
* config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make
|
|
|
|
available when HOST_BITS_PER_WIDE_INT is not 64.
|
|
|
|
(define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and
|
|
|
|
move before movdi_insn_sp64 pattern.
|
|
|
|
(define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove.
|
|
|
|
(define_insn sethi_di_medlow, seth44, setm44, sethh): Use
|
|
|
|
symbolic_operand as predicate for second operand.
|
|
|
|
(DImode minus split on arch32, negsi2 expander, one_cmplsi2
|
|
|
|
expander): Give set VOIDmode.
|
|
|
|
|
1998-08-14 02:46:45 +02:00
|
|
|
Fri Aug 14 01:45:06 1998 Mumit Khan <khan@xraylith.wisc.edu>
|
|
|
|
|
|
|
|
* i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define.
|
|
|
|
|
1998-08-14 02:42:07 +02:00
|
|
|
Fri Aug 14 01:40:21 1998 Geoffrey Keating <geoffk@ozemail.com.au>
|
|
|
|
|
|
|
|
* rs6000/linux.h (LINK_SPEC): Pass -G args to the linker.
|
|
|
|
|
1998-08-14 02:29:30 +02:00
|
|
|
Fri Aug 14 01:23:23 1998 Richard Earnshaw (rearnsha@arm.com)
|
|
|
|
|
|
|
|
* arm/netbsd.h (TARGET_DEFAULT): Default includes software floating
|
|
|
|
point.
|
|
|
|
(CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly.
|
|
|
|
|
1998-08-14 02:20:50 +02:00
|
|
|
Fri Aug 14 01:19:08 1998 Robert Lipe <robertl@dgii.com>
|
|
|
|
|
|
|
|
* install.texi: Various SCO OpenServer tweaks.
|
|
|
|
|
1998-08-13 22:16:20 +02:00
|
|
|
Thu Aug 13 20:14:40 1998 Jim Wilson <wilson@cygnus.com>
|
|
|
|
|
1998-08-14 02:14:09 +02:00
|
|
|
* reload1.c (eliminate_regs_in_insn): Handle another case when
|
|
|
|
eliminating the frame pointer to the hard frame pointer. Add
|
|
|
|
missing ep->to_rtx check to one existing case.
|
|
|
|
|
1998-08-13 22:16:20 +02:00
|
|
|
* mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI.
|
|
|
|
|
1998-08-13 19:29:30 +02:00
|
|
|
Thu Aug 13 17:08:11 1998 Jason Merrill <jason@yorick.cygnus.com>
|
|
|
|
|
|
|
|
* tree.h: De-conditionalize init_priority code.
|
|
|
|
|
|
|
|
* mips.h (NM_FLAGS): Change from -Bp to -Bn.
|
|
|
|
* collect2.c (NM_FLAGS): Change from -p to -n.
|
|
|
|
|
|
|
|
* configure.in: Turn on collect2 for mipstx39-elf.
|
|
|
|
Handle use_collect2=no properly.
|
|
|
|
|
|
|
|
* c-common.c: De-conditionalize init_priority code.
|
|
|
|
* collect2.c (extract_init_priority, sort_ids): New fns.
|
|
|
|
(main): Call sort_ids.
|
|
|
|
Move sequence_number to file scope.
|
|
|
|
|
|
|
|
* configure.in: Handle --enable-init-priority.
|
|
|
|
* c-common.c (attrs): Add A_INIT_PRIORITY.
|
|
|
|
(init_attributes, decl_attributes): Likewise.
|
|
|
|
* tree.h (DEFAULT_INIT_PRIORITY, MAX_INIT_PRIORITY): New macros.
|
|
|
|
* tree.c (get_file_function_name_long): Split out...
|
|
|
|
(get_file_function_name): ...from here.
|
|
|
|
|
1998-08-13 18:12:55 +02:00
|
|
|
Thu Aug 13 16:09:53 1998 Martin von Loewis <loewis@informatik.hu-berlin.de>
|
|
|
|
|
|
|
|
* expr.c (safe_from_p): Change code to ERROR_MARK only when not
|
|
|
|
accessing nodes.
|
|
|
|
|
1998-08-13 17:26:46 +02:00
|
|
|
Thu Aug 13 15:24:48 1998 Jason Merrill <jason@yorick.cygnus.com>
|
|
|
|
|
1998-08-13 18:12:55 +02:00
|
|
|
* toplev.c (display_help): Add braces to shut up warnings.
|
1998-08-13 19:01:36 +02:00
|
|
|
* tree.c (simple_cst_equal): Likewise.
|
1998-08-13 18:12:55 +02:00
|
|
|
|
|
|
|
* fold-const.c (non_lvalue): Don't deal with null pointer
|
|
|
|
constants here.
|
|
|
|
(fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
|
|
|
|
|
1998-08-13 17:26:46 +02:00
|
|
|
* c-typeck.c (initializer_constant_valid_p): Allow conversion of 0
|
|
|
|
of any size to a pointer.
|
|
|
|
|
1998-08-13 15:09:40 +02:00
|
|
|
Thu Aug 13 12:53:13 1998 Jim Wilson <wilson@cygnus.com>
|
|
|
|
|
|
|
|
* i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED.
|
|
|
|
|
1998-08-12 18:27:05 +02:00
|
|
|
Wed Aug 12 17:25:18 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
1998-08-12 18:41:11 +02:00
|
|
|
* mn10300.c (REG_SAVE_BYTES): Only reserve space for registers
|
|
|
|
which will be saved.
|
|
|
|
* mn10300.md (prologue insn): Only save registers which need saving.
|
|
|
|
(epilogue insn): Similarly.
|
|
|
|
|
1998-08-12 18:27:05 +02:00
|
|
|
* mn10300.c, mn10300.h, mn10300.md: Remove "global zero register"
|
|
|
|
optimizations.
|
|
|
|
|
1998-08-12 11:42:55 +02:00
|
|
|
Wed Aug 12 12:39:16 1998 Gavin Romig-Koch <gavin@cygnus.com>
|
|
|
|
|
|
|
|
* mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for
|
|
|
|
VAR_DECL's in gp addressable sections.
|
|
|
|
|
1998-08-12 02:09:15 +02:00
|
|
|
Tue Aug 11 23:02:31 1998 John Carr <jfc@mit.edu>
|
|
|
|
|
|
|
|
* sparc.c: Change return <exp> to <exp>; return; in functions
|
|
|
|
returning void.
|
|
|
|
* sparc.md: Add empty semicolon statement after final label in
|
|
|
|
move expanders.
|
|
|
|
|
1998-08-12 01:50:23 +02:00
|
|
|
Tue Aug 11 22:42:01 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* config/sparc/sparc.md (define_insn addx_extend): Rename to
|
|
|
|
addx_extend_sp64, only allow when TARGET_ARCH64.
|
|
|
|
(define_insn addx_extend_sp32 and split): Version that works when
|
|
|
|
not TARGET_ARCH64.
|
|
|
|
(define_insn subx_extend): Likewise.
|
|
|
|
(define_split adddi3 and subdi3 with zero extension): Fixup and
|
|
|
|
correct bugs when not TARGET_ARCH64.
|
|
|
|
|
1998-08-11 15:36:42 +02:00
|
|
|
Tue Aug 11 16:04:34 1998 John Carr <jfc@mit.edu>
|
|
|
|
|
|
|
|
* except.c (set_exception_lang_code, set_exception_version_code):
|
|
|
|
Use prototype-style definition if __STDC__, to match declaration
|
|
|
|
in except.h.
|
|
|
|
|
|
|
|
* genemit.c: Change FAIL and DONE macros not to use loops.
|
|
|
|
|
1998-08-11 14:28:52 +02:00
|
|
|
Tue Aug 11 12:27:03 1998 Jim Wilson <wilson@cygnus.com>
|
|
|
|
|
1998-08-11 15:23:44 +02:00
|
|
|
* dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use
|
|
|
|
ASM_OUTPUT_DWARF2_ADDR_CONST if defined.
|
|
|
|
|
1998-08-11 14:28:52 +02:00
|
|
|
* mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16.
|
|
|
|
|
1998-08-11 12:13:57 +02:00
|
|
|
Tue Aug 11 18:12:53 1998 Dave Love <d.love@dl.ac.uk>
|
|
|
|
|
|
|
|
* README.g77: Update from Craig.
|
|
|
|
|
1998-08-11 07:54:17 +02:00
|
|
|
Tue Aug 11 04:46:01 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* config/sparc/sparc.c (sparc_emit_set_const32): INTVAL is of
|
|
|
|
type HOST_WIDE_INT.
|
|
|
|
(safe_constDI sparc_emit_set_const64_quick1,
|
|
|
|
sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
|
|
|
|
analyze_64bit_constant, const64_is_2insns,
|
|
|
|
create_simple_focus_bits): Fix some bugs when compiled on real
|
|
|
|
64-bit hosts.
|
|
|
|
(function_arg_record_value_3, function_arg_record_value_2,
|
|
|
|
function_arg_record_value): Add fully prototyped forward decls.
|
|
|
|
* config/sparc/sparc.md (define_insn cmpsi_insn_sp32): Rename back
|
|
|
|
to cmpsi_insn and use on both 64 and 32 bit targets.
|
|
|
|
(define_insn cmpsi_insn_sp64): Remove.
|
|
|
|
(define_expand zero_extendsidi2): Allow for 32-bit target too.
|
|
|
|
(define_insn zero_extendsidi2_insn): Rename to
|
|
|
|
zero_extendsidi2_insn_sp64.
|
|
|
|
(define_insn zero_extendsidi2_insn_sp32): New pattern and
|
|
|
|
assosciated forced split for it.
|
|
|
|
|
1998-08-11 09:13:17 +02:00
|
|
|
* config/sparc/sparc.c (const64_operand, const64_high_operand):
|
|
|
|
New predicates.
|
|
|
|
* config/sparc/sparc.h: Declare them.
|
|
|
|
(PREDICATE_CODES): Add them.
|
|
|
|
* config/sparc/sparc.md (movdi_lo_sum_sp64_dbl,
|
|
|
|
movdi_high_sp64_dbl, xordi3_sp64_dbl): Use them.
|
|
|
|
|
1998-08-11 02:03:39 +02:00
|
|
|
Mon Aug 10 22:57:24 1998 John Carr <jfc@mit.edu>
|
|
|
|
|
|
|
|
* config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt
|
|
|
|
in v9 case as the latter makes the Solaris assembler crash.
|
|
|
|
|
1998-08-11 01:47:28 +02:00
|
|
|
Mon Aug 10 22:39:09 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* config/sparc/sparc.c (input_operand): Do not accept a LO_SUM MEM
|
|
|
|
for TFmode when !v9. We require offsettable memory addresses.
|
|
|
|
* config/sparc/sparc.h (ALTER_HARD_SUBREG): Handle TFmode to
|
|
|
|
DFmode register number conversions.
|
|
|
|
* config/sparc/sparc.md (define_split DFmode moves): If register
|
|
|
|
is a SUBREG do alter_subreg on it before using.
|
|
|
|
(define_expand movtf): Fixup comment about alignment on v9.
|
|
|
|
(define_split TFmode moves): Don't use gen_{high,low}part, create
|
|
|
|
explicit SUBREGs instead.
|
|
|
|
|
1998-08-10 18:06:34 +02:00
|
|
|
Mon Aug 10 19:02:55 1998 John Carr <jfc@mit.edu>
|
|
|
|
|
|
|
|
* Makefile.in (mbchar.o): Depend on mbchar.c.
|
|
|
|
|
1998-08-10 07:34:44 +02:00
|
|
|
Mon Aug 10 04:28:13 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
Richard Henderson <rth@cygnus.com>
|
|
|
|
|
|
|
|
Rewrite Sparc backend for better code generation and
|
|
|
|
improved sparc64 support.
|
|
|
|
* config/sparc/sp64-elf.h: Set JUMP_TABLES_IN_TEXT_SECTION to
|
|
|
|
zero.
|
|
|
|
* config/sparc/sysv4.h: Likewise.
|
|
|
|
* config/sparc/sparc.c (v8plus_regcmp_p, sparc_operand,
|
|
|
|
move_operand, v8plus_regcmp_op, emit_move_sequence,
|
|
|
|
singlemove_string, doublemove_string, mem_aligned_8,
|
|
|
|
output_move_double, output_move_quad, output_fp_move_double,
|
|
|
|
move_quad_direction, output_fp_move_quad, output_scc_insn):
|
|
|
|
Remove.
|
|
|
|
(small_int_or_double): New predicate.
|
|
|
|
(gen_compare_reg): Remove TARGET_V8PLUS cmpdi_v8plus emission.
|
|
|
|
(legitimize_pic_address): Emit movsi_{high,lo_sum}_pic instead of
|
|
|
|
old pic_{sethi,lo_sum}_si patterns.
|
|
|
|
(mem_min_alignment): New generic function to replace
|
|
|
|
mem_aligned_8, which uses REGNO_POINTER_ALIGN information when
|
|
|
|
available and can test for arbitrary alignments. All callers
|
|
|
|
changed.
|
|
|
|
(save_regs, restore_regs, build_big_number,
|
|
|
|
output_function_prologue, output_cbranch, output_return,
|
|
|
|
sparc_flat_save_restore, sparc_flat_output_function_prologue,
|
|
|
|
sparc_flat_output_function_epilogue): Prettify
|
|
|
|
insn output.
|
|
|
|
(output_function_epilogue): Likewise and add code to output
|
|
|
|
deferred case vectors.
|
|
|
|
(output_v9branch): Likewise, add new arg INSN and use it to tack
|
|
|
|
on branch prediction settings. All callers changed.
|
|
|
|
(print_operand): Likewise and output %l44 for LO_SUMs when
|
|
|
|
TARGET_CM_MEDMID.
|
|
|
|
(sparc_splitdi_legitimate): New function to make sure DImode
|
|
|
|
splits can be run properly when !arch64.
|
|
|
|
(sparc_initialize_trampoline, sparc64_initialize_trampoline):
|
|
|
|
Reformat example code in comments.
|
|
|
|
(set_extends): Remove UNSPEC/v8plus_clear_high case.
|
|
|
|
(sparc_addr_diff_list, sparc_addr_list): New statics to keep track
|
|
|
|
of deferred case vectors we need to output.
|
|
|
|
(sparc_defer_case_vector): Record a case vector.
|
|
|
|
(sparc_output_addr_vec, sparc_output_addr_diff_vec,
|
|
|
|
sparc_output_deferred_case_vectors): New functions to output them.
|
|
|
|
(sparc_emit_set_const32): New function to form 32-bit constants in
|
|
|
|
registers when that requires more than one instruction.
|
|
|
|
(safe_constDI, sparc_emit_set_const64_quick1,
|
|
|
|
sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
|
|
|
|
analyze_64bit_constant, const64_is_2insns,
|
|
|
|
create_simple_focus_bits, sparc_emit_set_const64): New functions
|
|
|
|
which do the same for 64-bit constants when arch64.
|
|
|
|
(sparc_emit_set_symbolic_const64): New function to emit address
|
|
|
|
loading for all code models on v9.
|
|
|
|
* config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Do not make
|
|
|
|
%g1 fixed when arch64, unfix %g0 when TARGET_LIVE_G0.
|
|
|
|
(ALTER_HARD_SUBREG): Fix thinko, return REGNO + 1 not 1.
|
|
|
|
(SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Fix
|
|
|
|
inaccuracies in comments, add symbolic and text_segment operands
|
|
|
|
when TARGET_CM_MEDANY and TARGET_CM_EMBMEDANY respectively. Use
|
|
|
|
GENERAL_REGS in these cases as a temp REG is needed to load these
|
|
|
|
addresses into a register properly.
|
|
|
|
(EXTRA_CONSTRAINT): Document more accurately, remove Q case as it
|
|
|
|
is no longer used.
|
|
|
|
(GO_IF_LEGITIMATE_ADDRESS): Allow TFmode for LO_SUM on v9 since fp
|
|
|
|
quads are guarenteed to have 16-byte alignment.
|
|
|
|
(LEGITIMIZE_ADDRESS): For SYMBOL_REF, CONST, and LABEL_REF use
|
|
|
|
copy_to_suggested_reg instead of explicit LO_SUM and HIGH.
|
|
|
|
(ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC): New macros for
|
|
|
|
deferred case vector implementation.
|
|
|
|
(ASM_OUTPUT_ADDR_VEC_ELT): Use fputc to output newline.
|
|
|
|
(ASM_OUTPUT_ADDR_DIFF_ELT): Parenthesize LABEL in macro calls.
|
|
|
|
Generate "internal label - label" instead of "label - 1b".
|
|
|
|
(PRINT_OPERAND_ADDRESS): For LO_SUM use %l44 on TARGET_CM_MEDMID.
|
|
|
|
(PREDICATE_CODES): Remove sparc_operand, move_operand,
|
|
|
|
v8plus_regcmp_op. Add small_int_or_double, input_operand, and
|
|
|
|
zero_operand.
|
|
|
|
(doublemove_string, output_block_move, output_fp_move_double,
|
|
|
|
output_fp_move_quad, output_move_double, output_move_quad,
|
|
|
|
output_scc_insn, singlemove_string, mem_aligned_8, move_operand,
|
|
|
|
sparc_operand, v8plus_regcmp_op, v8plus_regcmp_p): Remove externs.
|
|
|
|
(sparc_emit_set_const32, sparc_emit_set_const64,
|
|
|
|
sparc_emit_set_symbolic_const64, input_operand, zero_operand,
|
|
|
|
mem_min_alignment, small_int_or_double): Add externs.
|
|
|
|
* config/sparc/sparc.md: Document the many uses of UNSPEC and
|
|
|
|
UNSPEC_VOLATILE in this backend.
|
|
|
|
(define_function_unit ieu): Rename to ieu_unnamed. Add move and
|
|
|
|
unary to types which execute in it.
|
|
|
|
(define_function_unit ieu_shift): Rename to ieu0.
|
|
|
|
(define_function_unit ieu1): New, executes compare, call, and
|
|
|
|
uncond_branch type insns.
|
|
|
|
(define_function_units for type fdivs, fdivd, fsqrt): These
|
|
|
|
execute in the fpu multiply unit not the adder on UltraSparc.
|
|
|
|
(define_expand cmpdi): Disallow TARGET_V8PLUS.
|
|
|
|
(define_insn cmpsi_insn): Rename to cmpsi_insn_sp32.
|
|
|
|
(define_insn cmpsi_insn_sp64): New, same as sp32 variant except it
|
|
|
|
allows the arith_double_operand predicate and rHI constraint when
|
|
|
|
TARGET_ARCH64.
|
|
|
|
(define_insn cmpdi_sp64, cmpsf_fpe, cmpdf_fpe, cmptf_fpe,
|
|
|
|
cmpsf_fp, cmpdf_fp, cmptf_fp, sltu_insn, neg_sltu_insn,
|
|
|
|
neg_sltu_minux_x, neg_sltu_plus_x, sgeu_insn, neg_sgeu_insn,
|
|
|
|
sltu_plus_x, sltu_plus_x, sltu_plus_x_plus_y, x_minus_sltu,
|
|
|
|
sgeu_plus_x, x_minus_sgeu, movqi_cc_sp64, movhi_cc_sp64,
|
|
|
|
movsi_cc_sp64, movdi_cc_sp64, movsf_cc_sp64, movdf_cc_sp64,
|
|
|
|
movtf_cc_sp64, movqi_cc_reg_sp64, movhi_cc_reg_sp64,
|
|
|
|
movsi_cc_reg_sp64, movdi_cc_reg_sp64, movsf_cc_reg_sp64,
|
|
|
|
movdf_cc_reg_sp64, movtf_cc_reg_sp64, zero_extendhisi2_insn,
|
|
|
|
cmp_siqi_trunc, cmp_siqi_trunc_set, sign_extendhisi2_insn,
|
|
|
|
sign_extendqihi2_insn, sign_extendqisi2_insn,
|
|
|
|
sign_extendqidi2_insn, sign_extendhidi2_insn,
|
|
|
|
extendsfdf2, extendsftf2, extenddftf2, truncdfsf2, trunctfsf2,
|
|
|
|
trunctfdf2, floatsisf2, floatsidf2, floatsitf2, floatdisf2,
|
|
|
|
floatdidf2, floatditf2, fix_truncsfsi2, fix_truncdfsi2,
|
|
|
|
fix_trunctfsi2, fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2,
|
|
|
|
adddi3_sp64, addsi3, cmp_ccx_plus, cmp_cc_plus_set, subdi_sp64,
|
|
|
|
subsi3, cmp_minus_ccx, cmp_minus_ccx_set, mulsi3, muldi3,
|
|
|
|
muldi3_v8plus, cmp_mul_set, mulsidi3, mulsidi3_v8plus,
|
|
|
|
const_mulsidi3_v8plus, mulsidi3_sp32, const_mulsidi3,
|
|
|
|
smulsi3_highpart_v8plus, unnamed subreg mult,
|
|
|
|
const_smulsi3_highpart_v8plus, smulsi3_highpart_sp32,
|
|
|
|
const_smulsi3_highpart, umulsidi3_v8plus, umulsidi3_sp32,
|
|
|
|
const_umulsidi3, const_umulsidi3_v8plus, umulsi3_highpart_v8plus,
|
|
|
|
const_umulsi3_highpart_v8plus, umulsi3_highpart_sp32,
|
|
|
|
const_umulsi3_highpart, divsi3, divdi3, cmp_sdiv_cc_set, udivsi3,
|
|
|
|
udivdi3, cmp_udiv_cc_set, smacsi, smacdi, umacdi, anddi3_sp64,
|
|
|
|
andsi3, and_not_di_sp64, and_not_si, iordi3_sp64, iorsi3,
|
|
|
|
or_not_di_sp64, or_not_si, xordi3_sp64, xorsi3, xor_not_di_sp64,
|
|
|
|
xor_not_si, cmp_cc_arith_op, cmp_ccx_arith_op,
|
|
|
|
cmp_cc_arith_op_set, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
|
|
|
|
cmp_cc_xor_not_set, cmp_ccx_xor_not_set, cmp_cc_arith_op_not,
|
|
|
|
cmp_ccx_arith_op_not, cmp_cc_arith_op_not_set,
|
|
|
|
cmp_ccx_arith_op_not_set, negdi2_sp64, cmp_cc_neg, cmp_ccx_neg,
|
|
|
|
cmp_cc_set_neg, cmp_ccx_set_neg, one_cmpldi2_sp64, cmp_cc_not,
|
|
|
|
cmp_ccx_not, cmp_cc_set_not, cmp_ccx_set_not, addtf3, adddf3,
|
|
|
|
addsf3, subtf3, subdf3, subsf3, multf3, muldf3, mulsf3,
|
|
|
|
muldf3_extend, multf3_extend, divtf3, divdf3, divsf3, negtf2,
|
|
|
|
negdf2, negsf2, abstf2, absdf2, abssf2, sqrttf2, sqrtdf2, sqrtsf2,
|
|
|
|
ashlsi3, ashldi3, unnamed DI ashift, cmp_cc_ashift_1,
|
|
|
|
cmp_cc_set_ashift_1, ashrsi3, ashrdi3, unnamed DI ashiftrt,
|
|
|
|
ashrdi3_v8plus, lshrsi3, lshrdi3, unnamed DI lshiftrt,
|
|
|
|
lshrdi3_v8plus, tablejump_sp32, tablejump_sp64, call_address_sp32,
|
|
|
|
call_symbolic_sp32, call_address_sp64, call_symbolic_sp64,
|
|
|
|
call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
|
|
|
|
call_address_untyped_struct_value_sp32,
|
|
|
|
call_symbolic_untyped_struct_value_sp32, call_value_address_sp32,
|
|
|
|
call_value_symbolic_sp32, call_value_address_sp64,
|
|
|
|
call_value_symbolic_sp64, branch_sp32, branch_sp64,
|
|
|
|
flush_register_windows, goto_handler_and_restore,
|
|
|
|
goto_handler_and_restore_v9, goto_handler_and_restore_v9_sp64,
|
|
|
|
flush, all ldd/std peepholes, return_qi, return_hi, return_si,
|
|
|
|
return_addsi, return_di, return_adddi, return_sf, all call+jump
|
|
|
|
peepholes, trap, unnamed trap insns): Prettify output strings.
|
|
|
|
(define_insn anddi3_sp32, and_not_di_sp32, iordi3_sp32,
|
|
|
|
or_not_di_sp32, xordi3_sp32, xor_not_di_sp32, one_cmpldi2):
|
|
|
|
Likewise and force + implement splits for integer cases.
|
|
|
|
(define_insn return_sf_no_fpu): Likewise and allow to match when
|
|
|
|
no-fpu because of our subreg SFmode splits.
|
|
|
|
(define_insn zero_extendqihi2, zero_extendqisi2_insn,
|
|
|
|
zero_extendqidi2_insn, zero_extendhidi2_insn,
|
|
|
|
zero_extendsidi2_insn, sign_extendsidi2_insn): Likewise and use
|
|
|
|
input_operand for second operand.
|
|
|
|
(cmp_minus_cc, cmp_minus_cc_set): Likewise and use
|
|
|
|
reg_or_0_operand for operand 2 so new splits can use it.
|
|
|
|
(cmp_zero_extendqisi2, cmp_zero_extendqisi2_set, cmp_cc_plus,
|
|
|
|
cmp_cc_xor_not): Likewise and don't forget to check TARGET_LIVE_G0
|
|
|
|
too.
|
|
|
|
(cmp_zero_extract, cmp_zero_extract_sp64): Likewise and allow
|
|
|
|
CONST_DOUBLEs for operand 2.
|
|
|
|
(define_insn move_label_di): Likewise and label distance
|
|
|
|
optimization because it no longer works with new deferred case
|
|
|
|
vector scheme. To be revisited.
|
|
|
|
(define_insn x_minus_y_minus_sltu, x_minus_sltu_plus_y): Likewise
|
|
|
|
and allow reg_or_0_operand and J constraint for second operand.
|
|
|
|
(define_insn jump): Set branch predict taken on V9.
|
|
|
|
(define_insn tablejump): Emit LABEL_REF + PLUS memory address for
|
|
|
|
new deferred case vector scheme.
|
|
|
|
(define_insn pic_tablejump_32, pic_tablejump_64): Remove.
|
|
|
|
(define_insn negdi2_sp32): Force + implement splits.
|
|
|
|
(define_insn negsi2, one_cmplsi2): Rename to negsi2_not_liveg0 and
|
|
|
|
one_cmplsi2_not_liveg0 respectively, and create expander of original
|
|
|
|
names which emit special rtl for TARGET_LIVE_G0.
|
|
|
|
(define_insn cmpdi_v8plus, scc_si, scc_di): Remove.
|
|
|
|
(define_insn seq, sne, slt, sge, sle, sltu, sgeu): Don't do
|
|
|
|
gen_compare_reg, FAIL instead.
|
|
|
|
(define_insn sgtu, sleu): Likewise and check gen_s*() return
|
|
|
|
values when trying to reverse condition codes, if they FAIL then
|
|
|
|
do likewise.
|
|
|
|
(define_insn snesi_zero, neg_snesi_zero, snesi_zero_extend,
|
|
|
|
snedi_zero, neg_snedi_zero, snedi_zero_trunc, seqsi_zero,
|
|
|
|
neg_seqsi_zero, seqsi_zero_extend, seqdi_zero, neg_seqdi_zero,
|
|
|
|
seqdi_zero_trunc, x_plus_i_ne_0, x_minus_i_ne_0, x_plus_i_eq_0,
|
|
|
|
x_minus_i_eq_0): Add new splits to perform these multi-insn cases,
|
|
|
|
set output string to # to indicate they are mandatory splits.
|
|
|
|
(define_insn pic_lo_sum_si, pic_sethi_si, pic_lo_sum_di,
|
|
|
|
pic_sethi_di, move_pic_label_si): Remove.
|
|
|
|
(define_insn movsi_low_sum, movsi_high, movsi_lo_sum_pic,
|
|
|
|
movsi_high_pic, movsi_pic_label_reg): New patterns to take their
|
|
|
|
place.
|
|
|
|
(define_expand movsi_pic_label_ref, define_insn
|
|
|
|
movsi_high_pic_label_ref, movsi_lo_sum_pic_label_ref): New
|
|
|
|
expander and insns to handle PIC label references and deferred
|
|
|
|
case vectors.
|
|
|
|
(define_insn get_pc_via_rdpc): Comment out as it is no longer
|
|
|
|
used.
|
|
|
|
(define_expand movqi, movhi, movsi, movdi, movsf, movdf, movtf):
|
|
|
|
Rewrite to not use emit_move_sequence, make use of new constant
|
|
|
|
formation code, and new splits for all multi-insn cases.
|
|
|
|
(define_insn movqi_insn): Remove sethi case, it can never happen.
|
|
|
|
Use reg_or_zero_operand instead of const0_rtx explicit test,
|
|
|
|
use input_operand instead of move_operand for source, and use
|
|
|
|
general_operand now for dest.
|
|
|
|
(define_insn movhi_insn): Similar but leave sethi case.
|
|
|
|
(define_insn lo_sum_qi, store_qi, store_hi): Remove.
|
|
|
|
(define_insn sethi_hi lo_sum_hi): Rename to movhi_high and
|
|
|
|
movhi_lo_sum respectively, prettify output string.
|
|
|
|
(define_insn movsi_zero_liveg0): New pattern to put zero into a
|
|
|
|
register when needed on TARGET_LIVE_G0.
|
|
|
|
(define_insn movsi_insn): Use general_operand and input_operand
|
|
|
|
for dest and src respectively. Simplify applicability test.
|
|
|
|
Prettify output strings, and add clr alternative for J
|
|
|
|
constraint.
|
|
|
|
(define_insn movdi_sp32_v9, movdi_sp32, define_splits for
|
|
|
|
deprecated std and reg-reg DI moves): Remove and...
|
|
|
|
(define_insn movdi_insn_sp32, movdi_insn_sp64): Replace with new
|
|
|
|
implementation which uses forced splits for all non-single insn
|
|
|
|
cases.
|
|
|
|
(define_split DI move cases on !arch64): New splits to handle all
|
|
|
|
situations of 64-bit double register DImode on 32bit, and
|
|
|
|
unaligned registers and memory addresses for all subtargets.
|
|
|
|
(define_insn movsf_const_insn, movdf_const_insn, store_sf):
|
|
|
|
Remove.
|
|
|
|
(define_insn movsf_insn, movsf_no_f_insn): Use general_operand and
|
|
|
|
input_operand for dest and src respectively, prettify output
|
|
|
|
strings.
|
|
|
|
(define_insn movdf_insn, movdf_no_e_insn, store_df,
|
|
|
|
movtf_const_insn, movtf_insn, movtf_no_e_insn, store_tf): Remove
|
|
|
|
and...
|
|
|
|
(define_insn movdf_insn_sp32, movdf_no_e_insn_sp32,
|
|
|
|
movdf_insn_sp64, movdf_no_e_insn_sp64, movtf_insn,
|
|
|
|
movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_sp64,
|
|
|
|
movtf_no_e_insn_sp64) Replace with new
|
|
|
|
implementation which uses forced splits for all non-single insn
|
|
|
|
cases.
|
|
|
|
(define_split DF move cases): New splits in similar vein to DI
|
|
|
|
move counterparts.
|
|
|
|
(define_insn sethi_di_medlow, sethi_di_medium_pic,
|
|
|
|
sethi_di_embmedany_data, sethi_di_embmedany_text, sethi_di_sp64,
|
|
|
|
movdi_sp64_insn): Remove old v9 code model and constant loading
|
|
|
|
support insns and..
|
|
|
|
(define_insn pic_lo_sum_di, pic_sethi_di,
|
|
|
|
sethi_di_medlow_embmedany_pic, sethi_di_medlow, losum_di_medlow,
|
|
|
|
seth44, setm44, setl44, sethh, setlm, sethm, setlo,
|
|
|
|
embmedany_sethi, embmedany_losum, embmedany_brsum,
|
|
|
|
embmedany_textuhi, embmedany_texthi, embmedany_textulo,
|
|
|
|
embmedany_textlo, movdi_lo_sum_sp64_cint, movdi_lo_sum_sp64_dbl,
|
|
|
|
movdi_high_sp64_cint, movdi_high_sp64_dbl): Replace with new
|
|
|
|
scheme, using unspecs, secondary reloads, and one to one sparc
|
|
|
|
insn to rtl insn mapping for better scheduling and code gen.
|
|
|
|
(define_expand reload_indi, reload_outdi): Reload helpers for
|
|
|
|
MEDANY and EMBMEDANY symbol address loading cases which require a
|
|
|
|
temporary register.
|
|
|
|
(define_expand movsicc): Remove v8plus_regcmp cases.
|
|
|
|
(define_insn movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc,
|
|
|
|
cmp_zero_extendqidi2, cmp_zero_extendqidi2_set, cmp_qidi_trunc,
|
|
|
|
cmp_diqi_trunc_set): New patterns used by some of the new scc
|
|
|
|
splits on arch64.
|
|
|
|
(define_insn xordi3_sp64_dbl): New pattern used for constant
|
|
|
|
formation when crossing from 32-bit targets.
|
|
|
|
(define_insn movsi_cc_reg_v8plus, v8plus_clear_high, and helper
|
|
|
|
split): Remove.
|
|
|
|
(define_insn addx, subx): Make visible and prettify.
|
|
|
|
(define_insn adddi3_insn_sp32): Likewise and force split.
|
|
|
|
(define_insn addx_extend, subx_extend, unnamed): New patterns for
|
|
|
|
64bit scc split usage.
|
|
|
|
(define_insn unnamed plusDI zero_extend, unnamed minusDI
|
|
|
|
zero_extend, subdi3): Force and implement splits.
|
|
|
|
|
|
|
|
* final.c (final_scan_insn): Don't output labels if target
|
|
|
|
specifies ASM_OUTPUT_ADDR_{DIFF}_VEC. Do these macro operations
|
|
|
|
instead.
|
|
|
|
|
|
|
|
* reorg.c (dbr_schedule): When taking on BR_PRED notes at the end,
|
|
|
|
don't forget to walk inside SEQUENCESs too as these are what the
|
|
|
|
delay slot scheduler will create.
|
|
|
|
|
1998-08-10 03:23:59 +02:00
|
|
|
Mon Aug 10 01:21:01 1998 Richard Henderson <rth@cygnus.com>
|
|
|
|
|
|
|
|
* alpha.md (extxl+1,+2): New patterns to work around
|
|
|
|
combine lossage.
|
|
|
|
|
1998-08-08 20:21:59 +02:00
|
|
|
Sat Aug 8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org)
|
|
|
|
|
|
|
|
* rs6000.c (rs6000_allocate_stack_space) Fix typo which
|
|
|
|
caused bad assembly code to be generated.
|
|
|
|
|
1998-08-08 19:53:54 +02:00
|
|
|
Sat Aug 8 18:53:28 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
|
|
|
* netbsd.h: Fix typo.
|
|
|
|
|
1998-08-03 00:10:44 +02:00
|
|
|
Mon Aug 3 00:06:42 1998 Robert Lipe <robertl@dgii.com>
|
|
|
|
|
|
|
|
* config.sub: Fix typo.
|
|
|
|
|
1998-08-02 18:00:15 +02:00
|
|
|
Sun Aug 2 22:39:08 1998 Hans-Peter Nilsson <hp@axis.se>
|
|
|
|
|
|
|
|
* invoke.texi (Environment Variables): Typo: Change "ascpects"
|
|
|
|
into "aspects".
|
|
|
|
(Running Protoize): Typo: Change "ther" into "other".
|
|
|
|
|
1998-08-02 01:49:55 +02:00
|
|
|
Sun Aug 2 00:42:50 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
|
|
|
* i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
|
|
|
|
* m68k/netbsd.h: Likewise.
|
|
|
|
* ns32k/netbsd.h: Likewise.
|
|
|
|
* sparc/netbsd.h: Likewise.
|
|
|
|
|
1998-08-01 20:00:15 +02:00
|
|
|
Sat Aug 1 17:59:30 1998 Richard Henderson <rth@cygnus.com>
|
|
|
|
|
|
|
|
* ginclude/va-alpha.h (va_list): Use a typedef, not a define.
|
|
|
|
* ginclude/va-clipper.h (va_list): Likewise.
|
|
|
|
|
1998-07-31 19:30:57 +02:00
|
|
|
Fri Jul 31 20:22:02 1998 Michael Meissner <meissner@cygnus.com>
|
|
|
|
|
|
|
|
* rs6000.c (rs6000_override_options): If big endian and -Os, use
|
|
|
|
load/store multiple instructions unless user overrides.
|
|
|
|
|
1998-07-31 18:10:57 +02:00
|
|
|
Fri Jul 31 17:08:59 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
|
|
|
* ns32k/netbsd.h: Fix typo.
|
|
|
|
|
1998-07-31 14:29:10 +02:00
|
|
|
Fri Jul 31 10:23:55 1998 Doug Evans <devans@canuck.cygnus.com>
|
|
|
|
|
|
|
|
* m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number
|
|
|
|
labels with .debugsym if no parallel insns.
|
|
|
|
|
1998-07-30 21:16:39 +02:00
|
|
|
Thu Jul 30 19:15:53 1998 Richard Henderson <rth@cygnus.com>
|
|
|
|
|
|
|
|
* alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
|
|
|
|
(fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap.
|
|
|
|
|
1998-07-30 19:07:25 +02:00
|
|
|
Thu Jul 30 19:50:15 1998 David Edelsohn <edelsohn@mhpcc.edu>
|
|
|
|
|
|
|
|
* rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
|
|
|
|
(AR_FOR_TARGET): Define.
|
|
|
|
|
1998-07-30 14:30:30 +02:00
|
|
|
Thu Jul 30 12:29:12 1998 Mark Mitchell <mark@markmitchell.com>
|
|
|
|
|
|
|
|
* dyn-string.h: New file.
|
|
|
|
* dyn-string.c: Likewise.
|
|
|
|
* Makefile.in (OBJS): Add dyn-string.o.
|
|
|
|
(dwarf2out.o): Add dyn-string.h dependency.
|
|
|
|
(dyn-string.o): List dependencies.
|
|
|
|
* dwarf2out.c: Include dyn-string.h.
|
|
|
|
(ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy.
|
|
|
|
(addr_const_to_string): Take a dyn_string_t, not a char* as a
|
|
|
|
prototype. Use dyn_string_append rather than strcat, throughout.
|
|
|
|
(addr_to_string): Use dyn_string_t.
|
|
|
|
|
1998-07-30 12:38:22 +02:00
|
|
|
Thu Jul 30 13:08:07 1998 Ken Raeburn <raeburn@cygnus.com>
|
|
|
|
|
|
|
|
Function entry/exit profiling instrumentation:
|
|
|
|
* expr.h (profile_function_entry_libfunc,
|
|
|
|
profile_function_exit_libfunc): Declare new variables.
|
|
|
|
* optabs.c: Define them here.
|
|
|
|
(init_optabs): Initialize them.
|
|
|
|
* tree.h (struct tree_decl): New flag
|
|
|
|
no_instrument_function_entry_exit.
|
|
|
|
(DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro.
|
|
|
|
* c-decl.c (duplicate_decls): Merge it.
|
|
|
|
* c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION.
|
|
|
|
(init_attributes): Use it for "no_instrument_function".
|
|
|
|
(decl_attributes): Handle it, for functions that have not yet been
|
|
|
|
compiled. Set decl flag.
|
|
|
|
* flags.h (flag_instrument_function_entry_exit): Declare new
|
|
|
|
variable.
|
|
|
|
* toplev.c (flag_instrument_function_entry_exit): Define it here.
|
|
|
|
(f_options): New option "instrument-functions".
|
|
|
|
* function.h (struct function): New field instrument_entry_exit.
|
|
|
|
* function.c (current_function_instrument_entry_exit): New
|
|
|
|
variable.
|
|
|
|
(push_function_context_to, pop_function_context_from): Save and
|
|
|
|
restore.
|
|
|
|
(expand_function_start): Set current_ variable, maybe emit return
|
|
|
|
label and entry profile call.
|
|
|
|
(expand_function_end): Maybe emit exit profile call.
|
|
|
|
|
1998-07-30 02:00:16 +02:00
|
|
|
Thu Jul 30 00:58:34 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
|
|
|
* i386.md (movqi): When optimizing a load of (const_int 1) into a
|
|
|
|
NON_QI_REG_P, pretend the register is SImode.
|
|
|
|
|
1998-07-30 00:51:47 +02:00
|
|
|
Wed Jul 29 23:49:23 1998 Todd Vierling <tv@netbsd.org>
|
|
|
|
|
|
|
|
* configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
|
|
|
|
Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
|
|
|
|
manufacturer id for ns32k.
|
|
|
|
* configure: Regenerated.
|
|
|
|
* config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
|
|
|
|
* config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
|
|
|
|
* config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
|
|
|
|
* config/m68k/netbsd.h: Same.
|
|
|
|
* config/ns32k/netbsd.h: Same.
|
|
|
|
* config/sparc/netbsd.h: Same.
|
|
|
|
|
1998-07-29 23:41:01 +02:00
|
|
|
Wed Jul 29 22:39:21 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
|
|
|
* unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO
|
|
|
|
or UNROLL_COMPLETELY loop that starts with a jump to its
|
|
|
|
exit code.
|
|
|
|
|
1998-07-29 21:35:05 +02:00
|
|
|
Wed Jul 29 22:18:14 1998 David Edelsohn <edelsohn@mhpcc.edu>
|
|
|
|
|
|
|
|
* rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS.
|
|
|
|
* rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT.
|
|
|
|
(print_operand, case 'B'): Don't fall through.
|
|
|
|
(print_operand, case 'S'): Correct mask begin/end computation.
|
|
|
|
Use HOST_BITS_PER_WIDE_INT.
|
|
|
|
* rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG.
|
|
|
|
(CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT.
|
|
|
|
* rs6000/aix41.h (CPP_PREDEFINES): Same.
|
|
|
|
* rs6000/aix43.h (CPP_PREDEFINES): Same.
|
|
|
|
|
1998-07-29 16:11:16 +02:00
|
|
|
Wed Jul 29 11:47:10 1998 Nick Clifton <nickc@cygnus.com>
|
|
|
|
|
|
|
|
* config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber
|
|
|
|
constraint from second alternative.
|
|
|
|
|
1998-07-29 01:47:28 +02:00
|
|
|
Tue Jul 28 23:29:04 1998 Jason Merrill <jason@yorick.cygnus.com>
|
|
|
|
|
|
|
|
* configure.in: Fix --without/--disable cases for local-prefix,
|
|
|
|
gxx-include-dir and checking.
|
|
|
|
|
1998-07-29 01:13:44 +02:00
|
|
|
Tue Jul 28 22:01:23 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* configure.in (enable_haifa): Set by default for sparc64 too.
|
|
|
|
configure: Rebuilt.
|
|
|
|
|
1998-07-29 00:30:29 +02:00
|
|
|
Tue Jul 28 23:29:04 1998 Jason Merrill <jason@yorick.cygnus.com>
|
|
|
|
|
|
|
|
* i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
|
|
|
|
* i386/winnt.c (associated_type): New fn.
|
|
|
|
(i386_pe_valid_type_attribute_p): New fn.
|
|
|
|
(i386_pe_check_vtable_importexport): Remove.
|
|
|
|
(i386_pe_dllexport_p): Use associated_type.
|
|
|
|
(i386_pe_dllimport_p): Likewise.
|
|
|
|
|
|
|
|
From Antonio M. O. Neto <anmendes@cruzeironet.com.br>:
|
|
|
|
* i386.c (i386_valid_type_attribute_p): Also accept
|
|
|
|
attributes for METHOD_TYPEs.
|
|
|
|
|
1998-07-29 00:19:53 +02:00
|
|
|
Tue Jul 28 23:17:39 1998 Peter Gerwinski <peter@gerwinski.de>
|
|
|
|
|
|
|
|
* tree.c (build_range_type): Copy TYPE_SIZE_UNIT.
|
|
|
|
|
1998-07-28 23:33:41 +02:00
|
|
|
Tue Jul 28 22:31:12 1998 Craig Burley <burley@gnu.org>
|
|
|
|
|
|
|
|
* gcc.c: Fix commentary describing %g, %u, %U, and %O.
|
|
|
|
|
1998-07-29 00:06:42 +02:00
|
|
|
* gcc.c (do_spec_1): Fix handling of %g%O and %U%O to prevent
|
|
|
|
them from generating a new base name for each occurence of
|
|
|
|
a specific suffix.
|
1998-07-28 23:33:41 +02:00
|
|
|
|
1998-07-28 14:54:04 +02:00
|
|
|
1998-07-28 Vladimir N. Makarov <vmakarov@cygnus.com>
|
|
|
|
|
|
|
|
* cse.c (cse_insn): Enable subsitution inside libcall only for REG,
|
|
|
|
SUBREG, MEM.
|
|
|
|
* rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE.
|
|
|
|
|
1998-08-13 17:26:46 +02:00
|
|
|
|
1998-07-28 13:45:32 +02:00
|
|
|
|
|
|
|
* cplus-dem.c (type_kind_t): New type.
|
|
|
|
(demangle_template_value_parm): Add type_kind_t parameter. Rely
|
|
|
|
on this paramter, rather than demangling the type again.
|
|
|
|
(demangle_integral_value): Pass tk_integral.
|
|
|
|
(demangle_template_: Pass the value returned from do_type.
|
|
|
|
(do_type): Return a type_kind_t. Pass tk_integral to
|
|
|
|
demangle_template_value_parm for array bounds.
|
|
|
|
(demangle_fund_type): Likewise.
|
|
|
|
|
1998-07-27 23:42:35 +02:00
|
|
|
Mon Jul 27 00:54:41 1998 Jason Merrill <jason@yorick.cygnus.com>
|
|
|
|
|
|
|
|
* tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are
|
|
|
|
identical.
|
|
|
|
|
1998-07-27 23:20:00 +02:00
|
|
|
Mon Jul 27 22:18:36 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
|
|
|
* pa.c (move_operand): Accept CONSTANT_P_RTX.
|
|
|
|
|
1998-07-27 16:37:00 +02:00
|
|
|
Mon Jul 27 17:18:52 1998 Dave Brolley <brolley@cygnus.com>
|
|
|
|
|
|
|
|
* stor-layout.c (layout_type): Handle arrays of bits, for Chill.
|
|
|
|
|
|
|
|
* expr.c (get_inner_reference): Handle zero-based, unsigned, array
|
|
|
|
index conversion.
|
|
|
|
|
1998-07-27 15:53:24 +02:00
|
|
|
Mon Jul 27 14:51:33 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
|
|
|
* mn10300.h (DEBUGGER_AUTO_OFFSET): Define.
|
|
|
|
(DEBUGGER_ARG_OFFSET): Likewise.
|
|
|
|
|
|
|
|
* mn10300.md (movsf): Remove last change. Not needed.
|
|
|
|
|
1998-07-27 14:51:56 +02:00
|
|
|
Mon Jul 27 14:22:36 1998 Dave Brolley <brolley@cygnus.com>
|
|
|
|
|
|
|
|
* c-lex.c (yylex): Fix boundary conditions in character literal and
|
|
|
|
string literal loops.
|
|
|
|
|
1998-07-27 13:56:18 +02:00
|
|
|
Mon Jul 27 11:43:54 1998 Stan Cox <scox@cygnus.com>
|
|
|
|
|
|
|
|
* longlong.h (count_leading_zeros): Sparclite scan instruction was
|
|
|
|
being invoked incorrectly.
|
|
|
|
|
|
|
|
* i386.c (ix86_prologue): Added SUBTARGET_PROLOGUE invocation.
|
|
|
|
* i386/cygwin32.h (STARTFILE_SPEC, LIB_SPEC, SUBTARGET_PROLOGUE):
|
|
|
|
Add -pg support.
|
|
|
|
* i386/win32.h: New file. Hybrid mingw32.h/cygwin32.h configuration.
|
|
|
|
* configure.in: Added i[34567]86-*-win32
|
|
|
|
* config.sub: Ditto.
|
|
|
|
* configure: Rebuilt.
|
|
|
|
|
1998-07-26 02:12:12 +02:00
|
|
|
Sun Jul 26 01:11:12 1998 H.J. Lu (hjl@gnu.org)
|
|
|
|
|
1998-07-26 02:34:10 +02:00
|
|
|
* i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating
|
|
|
|
the frame pointer and compiling PIC code and reload has not completed.
|
|
|
|
|
1998-07-26 02:12:12 +02:00
|
|
|
* i386.c (output_to_reg): Add code to emulate non-popping DImode
|
|
|
|
case.
|
|
|
|
|
1998-07-26 02:03:18 +02:00
|
|
|
Sun Jul 26 01:01:32 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
|
|
|
* regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head.
|
|
|
|
|
1998-07-26 00:30:24 +02:00
|
|
|
Sat Jul 25 23:29:23 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
|
|
|
|
|
|
|
|
* Makefile.in (install-info): Only try to update the info
|
|
|
|
directory file if it exists in the first place.
|
|
|
|
|
1998-07-24 22:11:35 +02:00
|
|
|
Fri Jul 24 18:58:37 1998 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de>
|
1998-07-24 18:04:27 +02:00
|
|
|
|
|
|
|
* rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete.
|
|
|
|
|
1998-07-24 15:21:44 +02:00
|
|
|
Fri Jul 24 14:20:26 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
|
|
|
* mn10300.md (movqi, movhi, movsi, movsf): Correctly handle
|
|
|
|
CONST_DOUBLE source.
|
|
|
|
|
1998-07-24 13:23:45 +02:00
|
|
|
Fri Jul 24 11:17:04 1998 Nick Clifton <nickc@cygnus.com>
|
|
|
|
|
|
|
|
* config/arm/thumb.c (thumb_print_operand): Decode %_ in asm
|
|
|
|
strings as the insertion of USER_LABEL_PREFIX.
|
|
|
|
* config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a
|
|
|
|
valid code.
|
|
|
|
* config/arm/thumb.md: Use %_ as a prefix to gcc library function
|
|
|
|
calls.
|
|
|
|
|
1998-07-23 21:14:18 +02:00
|
|
|
Thu Jul 23 18:53:20 1998 Jim Wilson <wilson@cygnus.com>
|
|
|
|
|
|
|
|
* dbxout.c (dbxout_range_type): Only call dbxout_type_index for
|
|
|
|
already defined type.
|
|
|
|
|
1998-07-23 14:51:00 +02:00
|
|
|
Thu Jul 23 13:49:41 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
|
|
|
* expr.c (check_max_integer_computation_mode): Allow conversions
|
|
|
|
of constant integers to MAX_INTEGER_COMPUTATION_MODE.
|
|
|
|
(expand_expr): Likewise.
|
|
|
|
|
1998-07-23 14:09:42 +02:00
|
|
|
Thu Jul 23 11:12:06 1998 Alexandre Petit-Bianco <apbianco@cygnus.com>
|
|
|
|
|
|
|
|
* expr.c (expand_expr): Expand RETURN_EXPR.
|
|
|
|
|
1998-07-23 13:01:33 +02:00
|
|
|
Thu Jul 23 11:00:29 1998 Jim Wilson <wilson@cygnus.com>
|
|
|
|
|
|
|
|
* dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION.
|
|
|
|
|
1998-07-22 19:16:20 +02:00
|
|
|
Wed Jul 22 19:10:00 1998 Catherine Moore <clm@cygnus.com>
|
|
|
|
|
|
|
|
* dwarf2out.c (output_aranges): Call stripattributes
|
|
|
|
for TEXT_SECTION references.
|
|
|
|
(output_line_info): Likewise.
|
|
|
|
|
1998-07-22 18:14:27 +02:00
|
|
|
Wed Jul 22 14:08:54 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* profile.c (branch_prob): Call allocate_reg_info after outputting
|
|
|
|
profile rtl in instrument_arcs.
|
|
|
|
|
1998-07-22 14:50:10 +02:00
|
|
|
Wed Jul 22 12:47:49 1998 Jim Wilson <wilson@cygnus.com>
|
|
|
|
|
|
|
|
* fixinc.irix (math.h): Install wrapper instead of copying.
|
|
|
|
|
1998-07-22 14:38:23 +02:00
|
|
|
Wed Jul 22 12:37:14 1998 Alexandre Petit-Bianco <apbianco@cygnus.com>
|
|
|
|
|
|
|
|
* tree.def (EXPR_WITH_FILE_LOCATION): Defined as an 'e' expression
|
|
|
|
so WFL are expanded correctly when contained in a COMPOUND_EXPR.
|
|
|
|
* tree.h (EXPR_WFL_EMIT_LINE_NOTE): Change macro not to use
|
|
|
|
lang_flag_0. Added documentation in the flag table.
|
|
|
|
|
1998-07-22 00:31:39 +02:00
|
|
|
Tue Jul 21 23:28:35 1998 Klaus Kaempf <kkaempf@rmi.de>
|
|
|
|
|
|
|
|
* cccp.c (do_include): Fix vax c style include handling.
|
|
|
|
|
1998-07-21 20:16:29 +02:00
|
|
|
Tue Jul 21 13:28:19 1998 Jason Merrill <jason@yorick.cygnus.com>
|
|
|
|
|
|
|
|
* cplus-dem.c (do_type): Use demangle_template_value_parm for arrays.
|
|
|
|
|
|
|
|
Sun Jul 12 01:27:05 1998 Jason Merrill <jason@yorick.cygnus.com>
|
|
|
|
|
|
|
|
* fold-const.c (non_lvalue): Don't deal with null pointer
|
|
|
|
constants here.
|
|
|
|
(fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
|
|
|
|
|
1998-07-21 14:56:31 +02:00
|
|
|
Tue Jul 21 15:49:31 1998 David Edelsohn <edelsohn@mhpcc.edu>
|
|
|
|
|
|
|
|
* rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX.
|
|
|
|
* rs6000.md (movsi, movdi): Add CONSTANT_P_RTX.
|
|
|
|
* rs6000.c (short_cint_operand): Add CONSTANT_P_RTX.
|
|
|
|
(u_short_cint_operand): Same.
|
|
|
|
(reg_or_cint_operand): Same.
|
|
|
|
(logical_operand): Same.
|
|
|
|
(input_operand): Same.
|
|
|
|
(reg_or_short_operand): Use u_short_cint_operand.
|
|
|
|
|
1998-07-21 10:57:27 +02:00
|
|
|
Tue Jul 21 08:56:42 1998 Richard Henderson <rth@cygnus.com>
|
|
|
|
|
|
|
|
* alpha.md (fix_truncdfsi2, fix_truncsfsi2): Remove the define_expands,
|
|
|
|
but keep the insns and splits. Adjust so when the ultimate destination
|
|
|
|
is memory, use cvtql.
|
|
|
|
|
1998-07-21 10:54:29 +02:00
|
|
|
Tue Jul 21 08:55:09 1998 Richard Henderson <rth@cygnus.com>
|
|
|
|
|
|
|
|
* flow.c (regno_uninitialized): Fixed regs are never uninitialized.
|
|
|
|
|
1998-07-21 01:38:58 +02:00
|
|
|
Tue Jul 21 00:31:01 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
1998-07-21 09:52:35 +02:00
|
|
|
* gcc.c (do_spec): Call "error" not "warning".
|
|
|
|
|
1998-07-21 01:56:42 +02:00
|
|
|
* configure.in: Fix minor problems with gas feature detection code.
|
|
|
|
* configure: Rebuilt.
|
|
|
|
|
1998-07-21 01:38:58 +02:00
|
|
|
* gcc.c (do_spec): Issue a warning for '%[]' usage.
|
|
|
|
|
|
|
|
* Undo this change.
|
|
|
|
* gcc.c: Delete %[spec] support.
|
|
|
|
(do_spec_1, case '('): Likewise.
|
|
|
|
(do_spec_1, case '['): Call error.
|
|
|
|
|
1998-07-21 01:04:58 +02:00
|
|
|
Mon Jul 20 22:34:17 1998 Richard Henderson <rth@cygnus.com>
|
|
|
|
|
|
|
|
* alpha.h (CPP_SPEC): Tidy. Hook to cpp_cpu and cpp_subtarget.
|
|
|
|
(CPP_SUBTARGET_SPEC): Default to empty string.
|
|
|
|
(CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New.
|
|
|
|
(EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New.
|
|
|
|
* alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker).
|
|
|
|
* alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New.
|
|
|
|
(LIB_SPEC): Tidy.
|
|
|
|
* alpha/linux.h (CPP_PREDEFINES): Tidy.
|
|
|
|
* alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New.
|
|
|
|
* alpha/netbsd.h (CPP_PREDEFINES): Tidy.
|
|
|
|
* alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC.
|
|
|
|
* alpha/win-nt.h (CPP_PREDEFINES): Likewise.
|
|
|
|
* alpha/vsf.h (CPP_PREDEFINES): Likewise.
|
|
|
|
(CPP_SUBTARGET_SPEC): New. Do this instead of overriding CPP_SPEC.
|
|
|
|
* alpha/vxworks.h: Likewise.
|
|
|
|
|
mips.md (reload_outsi): Added missing REGNO call.
* mips.md (reload_outsi): Added missing REGNO call.
(smulsi3_highpart, umulsi3_highpart): Provide prototype for function pointer.
(mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use another
match_operator and compare the codes.
* mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero.
* MIPS multiply pattern fixes:
* mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add union
classes for HI, LO, or HILO plus general registers.
(GENERATE_MADD): Deleted.
* mips.md (mulsi3_mult3): Don't disparage output-LO alternative. Add
TARGET_MAD to condition.
(mulsi3): Test HAVE_mulsi3_mult3, not specific flags.
(mul_acc_si): Expand GENERATE_MADD here; it's the only use. Use "*d" for
accumulator, to give preference to LO initially but not during reload.
From-SVN: r21305
1998-07-20 21:53:04 +02:00
|
|
|
Mon Jul 20 22:51:57 1998 Ken Raeburn <raeburn@cygnus.com>
|
|
|
|
|
|
|
|
* mips.md (reload_outsi): Added missing REGNO call.
|
|
|
|
(smulsi3_highpart, umulsi3_highpart): Provide prototype for
|
|
|
|
function pointer.
|
|
|
|
(mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use
|
|
|
|
another match_operator and compare the codes.
|
|
|
|
|
|
|
|
* mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero.
|
|
|
|
|
|
|
|
* MIPS multiply pattern fixes:
|
|
|
|
* mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
|
|
|
|
Add union classes for HI, LO, or HILO plus general registers.
|
|
|
|
(GENERATE_MADD): Deleted.
|
|
|
|
* mips.md (mulsi3_mult3): Don't disparage output-LO alternative.
|
|
|
|
Add TARGET_MAD to condition.
|
|
|
|
(mulsi3): Test HAVE_mulsi3_mult3, not specific flags.
|
|
|
|
(mul_acc_si): Expand GENERATE_MADD here; it's the only use. Use
|
|
|
|
"*d" for accumulator, to give preference to LO initially but not
|
|
|
|
during reload.
|
|
|
|
|
1998-07-20 15:35:38 +02:00
|
|
|
Mon Jul 20 16:16:38 1998 Dave Brolley <brolley@cygnus.com>
|
|
|
|
|
|
|
|
* configure.in (enable_c_mbchar): New configure option.
|
|
|
|
(extra_cpp_objs): Always available now.
|
|
|
|
|
|
|
|
* cexp.y (mbchar.h): #include it.
|
|
|
|
(yylex): Handle Multibyte characters in character literals.
|
|
|
|
|
|
|
|
* cccp.c (mbchar.h): #include it.
|
|
|
|
(main): Set character set based on LANG environment variable.
|
|
|
|
(rescan): Handle multibyte characters in comments.
|
|
|
|
(skip_if_group): See above.
|
|
|
|
(validate_else): See above.
|
|
|
|
(skip_to_end_of_comment): See above.
|
|
|
|
(macarg1): See above.
|
|
|
|
(discard_comments): See above.
|
|
|
|
(rescan): Handle multibyte characters in string and character literals.
|
|
|
|
(collect_expansion): See above.
|
|
|
|
(skip_quoted_string): See above.
|
|
|
|
(macroexpand): See above.
|
|
|
|
(macarg1): See above.
|
|
|
|
(discard_comments): See above.
|
|
|
|
(change_newlines): See above.
|
|
|
|
|
|
|
|
* c-lex.c (mbchar.h): #include it.
|
|
|
|
(GET_ENVIRONMENT): New macro.
|
|
|
|
(init_lex): Set character set based on LANG environment variable.
|
|
|
|
(yylex): Handle multibyte characters in character literals.
|
|
|
|
(yylex): Handle multibyte characters in string literals.
|
|
|
|
|
|
|
|
* Makefile.in (mbchar.o): New target.
|
|
|
|
(cccp$(exeext)): @extra_cpp_objs@ is always available.
|
|
|
|
(cppmain$(exeext)): @extra_cpp_objs@ is always available.
|
|
|
|
|
|
|
|
* mbchar.[ch]: New files for multibyte character handling.
|
|
|
|
|
1998-07-20 04:20:07 +02:00
|
|
|
Mon Jul 20 01:11:11 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
|
|
|
|
|
|
|
* jump.c (jump_optimize): When simplifying noop moves and
|
|
|
|
PUSH_ROUNDING, fix thinko so we use same criterion for identifying
|
|
|
|
the PUSHes to rewrite in second loop as we did in the first.
|
|
|
|
|
1998-07-19 07:28:57 +02:00
|
|
|
Sun Jul 19 08:23:53 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
|
|
|
|
|
|
|
* cplus-dem.c (demangle_nested_args): Make function definition
|
|
|
|
static to match the prototype.
|
|
|
|
|
1998-07-17 17:00:11 +02:00
|
|
|
Fri Jul 17 14:58:44 1998 Richard Henderson <rth@cygnus.com>
|
|
|
|
|
|
|
|
* alloca.c: Respect USE_C_ALLOCA.
|
|
|
|
* gencheck.c (xmalloc): Ignore __GNUC__ for definition.
|
|
|
|
* gengenrtl.c (xmalloc): Likewise.
|
|
|
|
|
1998-07-17 16:46:06 +02:00
|
|
|
Fri Jul 17 14:18:14 1998 Richard Henderson <rth@cygnus.com>
|
|
|
|
|
|
|
|
* loop.h (struct induction): Add no_const_addval.
|
|
|
|
* loop.c (the_movables, reg_address_cost): New variables.
|
|
|
|
(init_loop): Init reg_address_cost.
|
|
|
|
(loop_optimize): Call end_alias_analysis.
|
|
|
|
(scan_loop): Init the_movables.
|
|
|
|
(record_giv): Init induction->no_const_addval.
|
|
|
|
(basic_induction_var) [PLUS]: Use rtx_equal_p instead of ==.
|
|
|
|
[REG]: Rearrange loop search test to catch more cases.
|
|
|
|
(general_induction_var): Return success not benefit; take an extra
|
|
|
|
argument for that. Change all callers.
|
|
|
|
(simplify_giv_expr) [PLUS]: Always combine invariants. Use sge_plus.
|
|
|
|
[MULT]: Use rtx_equal_p instead of ==. Combine simple invariants.
|
|
|
|
[default]: Search the_movables for additional combinations.
|
|
|
|
(sge_plus_constant, sge_plus): New functions.
|
|
|
|
(express_from_1): New function.
|
|
|
|
(express_from): Always define. Rewrite using express_from_1.
|
|
|
|
(combine_givs_p): Handle more cases. Ignore address cost.
|
|
|
|
(cmp_combine_givs_stats): New function.
|
|
|
|
(combine_givs_used_once, combine_givs_benefit_from): New functions.
|
|
|
|
(combine_givs): Rewrite to do best-fit combination.
|
|
|
|
|
|
|
|
* fold-const.c (operand_equal_p): Handle RTL_EXPR.
|
|
|
|
(fold): Do a complete (A*C)+(B*C) association check.
|
|
|
|
|
1998-07-17 13:22:40 +02:00
|
|
|
Fri Jul 17 11:21:55 1998 Jim Wilson <wilson@cygnus.com>
|
|
|
|
|
|
|
|
* function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT.
|
|
|
|
|
1998-07-17 12:53:58 +02:00
|
|
|
Fri Jul 17 11:48:55 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
|
|
|
* mn10300.c (MODES_TIEABLE_P): Fix typo.
|
|
|
|
|
1998-07-17 05:34:34 +02:00
|
|
|
Fri Jul 17 03:26:12 1998 Rihcard Earnshaw (rearnsha@arm.com)
|
|
|
|
|
|
|
|
* tree.c (valid_machine_attribute): Only create a new type variant if
|
|
|
|
there is a decl to use it.
|
|
|
|
|
1998-07-17 00:45:47 +02:00
|
|
|
Thu Jul 16 14:48:04 1998 Nick Clifton <nickc@cygnus.com>
|
|
|
|
|
|
|
|
* gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have
|
|
|
|
a suffix.
|
|
|
|
|
1998-07-16 22:00:55 +02:00
|
|
|
Fri Jul 17 03:24:40 1998 Hans-Peter Nilsson <hp@axis.se>
|
|
|
|
|
|
|
|
* extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may
|
|
|
|
be deleted"
|
|
|
|
|
1998-07-16 15:54:53 +02:00
|
|
|
Thu Jul 16 14:48:47 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
1998-07-16 16:10:24 +02:00
|
|
|
* mn10300.c (count_tst_insns): New arg oreg_countp. Callers changed.
|
|
|
|
Simplify tests for clearing an address register.
|
|
|
|
(expand_prologue): Corresponding changes.
|
|
|
|
|
1998-07-16 15:54:53 +02:00
|
|
|
* mn10300.md (movXX patterns): Make sure the destination is an
|
|
|
|
ADDRESS_REG when substituting "zero_areg" for (const_int 0).
|
|
|
|
(logical patterns): Split into expanders + patterns
|
|
|
|
(zero and sign extension patterns): Similarly.
|
|
|
|
(shift patterns): Similarly.
|
|
|
|
|
1998-07-16 02:22:39 +02:00
|
|
|
Thu Jul 16 01:17:44 1998 Richard Henderson <rth@cygnus.com>
|
|
|
|
|
|
|
|
* loop.c (emit_iv_add_mult): Scan the entire insn list generated
|
|
|
|
for the sequence, recording base values.
|
|
|
|
|
1998-07-15 12:50:48 +02:00
|
|
|
Wed Jul 15 10:49:55 1998 Richard Henderson <rth@cygnus.com>
|
|
|
|
|
|
|
|
* i386.h (CPP_CPU_SPEC): Remove -Asystem(unix).
|
|
|
|
|
1998-07-14 16:18:56 +02:00
|
|
|
Tue Jul 14 14:15:30 1998 Nick Clifton <nickc@cygnus.com>
|
|
|
|
|
|
|
|
* gcc.c: Remove ANSI-C ism from --help code.
|
|
|
|
|
|
|
|
* toplev.c: Support --help with USE_CPPLIB.
|
|
|
|
|
1998-07-14 15:52:04 +02:00
|
|
|
Tue Jul 14 14:46:08 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
1998-07-14 22:06:10 +02:00
|
|
|
* configure.in: Rework gas feature code to work with symlink based
|
|
|
|
source trees.
|
|
|
|
|
1998-07-14 21:59:53 +02:00
|
|
|
* extend.texi: Clarify some issues related to local variables
|
|
|
|
assigned to explicit registers.
|
|
|
|
|
1998-07-14 16:53:36 +02:00
|
|
|
* mn10300.md (mulsi): Turn into expander + pattern.
|
|
|
|
|
1998-07-14 15:52:04 +02:00
|
|
|
* mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a
|
|
|
|
alternative.
|
|
|
|
|
1998-07-14 09:45:31 +02:00
|
|
|
Tue Jul 14 07:41:59 1998 Richard Earnshaw (rearnsha@arm.com)
|
|
|
|
|
|
|
|
* arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h.
|
|
|
|
|
1998-07-14 04:05:24 +02:00
|
|
|
Tue Jul 14 03:02:44 1998 Jeffrey A Law (law@cygnus.com)
|
|
|
|
|
|
|
|
* version.c: Bump again to distinguish mainline tree from the
|
|
|
|
egcs-1.1 branch.
|
|
|
|
|
1998-08-26 01:35:58 +02:00
|
|
|
See ChangeLog.0 for earlier changes.
|
1998-06-08 03:21:38 +02:00
|
|
|
|
|
|
|
Local Variables:
|
|
|
|
add-log-time-format: current-time-string
|
|
|
|
End:
|