OSDN Git Service

Revert more of previous change
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 08bdfae..ca9c959 100644 (file)
+2001-04-05  Bernd Schmidt  <bernds@redhat.com>
+
+       * sched-deps.c (sched_analyze_insn): Revert more of the March 27
+       change.
+
+2001-04-04  Zack Weinberg  <zackw@stanford.edu>
+
+       * config.gcc: Remove default for xm_file.  Clean up local
+       machine type handling.  Remove settings of xm_file to
+       something that doesn't exist.  In the big switch, set xm_file,
+       don't append to it (the value before the big switch is always
+       null).  Don't force build_xm_file or host_xm_file to have a value.
+       * configure.in: Remove default for xm_file.  Do not special       
+       case $cpu/xm-$cpu.h not existing.                          
+       * configure: Regenerate.
+
+2001-04-04  Diego Novillo  <dnovillo@redhat.com>
+
+       * simplify-rtx.c (simplify_binary_operation): Check for overflow
+       when folding integer division and modulo operations.
+
+2001-04-04  Andrew MacLeod  <amacleod@redhat.com>
+
+       * dwarf2out.c (output_cfi): Add 'for_eh' parameter, use PTR_SIZE 
+       instead of DWARF2_ADDR_SIZE for EH addresses.
+       (output_call_frame_info): Use PTR_SIZE instead of DWARF2_ADDR_SIZE for 
+       EH addresses.
+
+2001-04-04  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/ia64.h (IA64_UNWIND_INFO): Disable.
+       * config/ia64/t-glibc (LIB2ADDEH): Disable.
+       * config/ia64/t-ia64 (LIB2ADDEH): Disable.
+
+2001-04-04  Richard Henderson  <rth@redhat.com>
+
+       * configure.in (gcc_cv_as_leb128): Escape "." in regexp.
+       * configure: Rebuilt.
+
+2001-04-04  Jakub Jelinek  <jakub@redhat.com>
+
+       * gcse.c (delete_null_pointer_checks_1): Add delete_list argument,
+       push insns to delete to it instead of deleting them.
+       (delete_null_pointer_checks): Delete insns from delete_list after
+       all delete_null_pointer_checks_1 passes are done.
+
+2001-04-04  Richard Henderson  <rth@redhat.com>
+
+       * configure.in (gcc_cv_as_leb128): Tweek minor number extraction.
+       * configure: Rebuilt.
+
+2001-04-04  Zack Weinberg  <zackw@stanford.edu>
+
+       * expr.h: Remove #ifdef FUNCTION_CONVERSION_BUG logic.
+       * config/romp/xm-romp.h: Delete.
+
+2001-04-04  Bernd Schmidt  <bernds@redhat.com>
+
+       * sched-deps.c (sched_analyze_insn): Partially revert March 27
+       change.
+
+2001-04-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
+
+       * emit-rtl.c (mark_label_nuses) Increment the label uses for
+       all labels present in rtx.
+       (try_split) Call new function for all split insns.
+
+2001-04-04  Jakub Jelinek  <jakub@redhat.com>
+
+       * recog.c (validate_replace_rtx_1): Instead of aborting just make
+       sure the change won't be validated.
+
+Wed Apr  4 00:45:38 EDT 2001  John Wehle  (john@feith.com)
+
+       * rtl.h (set_noop_p): Declare.
+       * flow.c (set_noop_p): Move from here ...
+       * rtlanal.c (set_noop_p): ... to here and enhance.
+       * cse.c (delete_trivially_dead_insns): Use it.
+       * gcse.c (hash_scan_set): Likewise.
+       * jump.c (delete_noop_moves): Likewise.
+       * recog.c (split_all_insns): Likewise.
+
+2001-04-04  Alan Modra  <alan@linuxcare.com.au>
+
+       * dwarf2out.c (dwarf2out_frame_debug_expr): Support adjusting
+       stack pointer via a LO_SUM.  Ditto for setting a temp register
+       used to save to the stack.  Set cfa_temp when setting fp, and
+       allow matches to cfa_temp in addition to cfa_store when saving
+       regs.  Handle POST_INC and LO_SUM register stores.  Document the
+       changes and errors in rule 12 doco.
+
+       * pa.c (set_reg_plus_d, store_reg, load_reg): Return last insn.
+       (actual_fsize, local_fsize, save_fregs): Move for store_reg to see.
+       (load_reg): Move closer to epilogue code.
+       (DO_FRAME_NOTES): Define to control the following..
+       (FRP): Define to set RTX_FRAME_RELATED_P on insns.
+       (hppa_expand_prologue): Use FRP and REG_FRAME_RELATED_EXPR
+       notes as necessary.
+       (hppa_expand_epilogue): Likewise.
+
+2001-04-03  Richard Henderson  <rth@redhat.com>
+
+       * configure.in (gcc_cv_as_leb128): Reject gas before 2.11.
+       * configure: Rebuild.
+
+2001-04-03  Richard Henderson  <rth@redhat.com>
+
+       * rtl.h (LCT_THROW): New.
+       * calls.c (emit_library_call_value_1): Handle it.
+       * except.c (connect_post_landing_pads): Use it.
+
+2001-04-03  Zack Weinberg  <zackw@stanford.edu>
+
+       * gansidecl.h: Delete file.
+       * configure.in: Change all refs to gansidecl.h to use
+       ansidecl.h.  Adjust *_file_list so they know where ansidecl.h
+       lives.
+       * configure: Regenerate.
+
+       * Makefile.in (intl.o): Don't depend on gansidecl.h.
+       * defaults.h: s/gansidecl.h/ansidecl.h/ in comment.
+       * ggc.h, config/fr30/fr30.h, config/mcore/mcore.c:
+       Don't include gansidecl.h.
+       * intl.c, main.c, version.c, fixinc/fixlib.h,
+       fixinc/procopen.c, fixinc/server.c: Include ansidecl.h not
+       gansidecl.h.
+
+Tue Apr  3 19:41:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (ix86_force_to_memory, ix86_free_from_memory):
+       Update for 64bit.
+
+2001-04-03  Zack Weinberg  <zackw@stanford.edu>
+
+       * config/i386/xm-beos.h, config/i386/xm-isc.h,
+       config/i386/xm-next.h, config/i386/xm-sco.h,
+       config/i386/xm-sco5.h, config/m68k/xm-plexus.h,
+       config/m88k/xm-m88k.h: Delete.
+
+       * config/i386/xm-djgpp.h: Don't define __MSDOS__.
+       * config/romp/xm-romp.h: Don't define bcopy.
+       * config/rs6000/xm-beos.h: Don't define bcopy, HAVE_VPRINTF,
+       HAVE_PUTENV, HAVE_RENAME, or USE_C_ALLOCA.
+
+       * config.gcc: Remove references to deleted files.
+
+       14 xm-host.h remain, 1 xm-cpu.h.
+
+2001-04-03  Jakub Jelinek  <jakub@redhat.com>
+           David S. Miller  <davem@pierdol.cobaltmicro.com>
+           Andrew MacLeod  <amacleod@redhat.com>
+
+       Use byte offsets in SUBREGs instead of words.
+
+       * alias.c (nonlocal_mentioned_p): Use subreg_regno function.
+       * caller-save.c (mark_set_regs): Change callers of subreg_hard_regno
+       to pass new argument.
+       (add_stored_regs): Use subreg_regno_offset function.
+       * calls.c (expand_call): For non-paradoxical SUBREG take endianess
+       into account.
+       (precompute_arguments): Use gen_lowpart_SUBREG.
+       * combine.c (try_combine): Replace explicit XEXP with SUBREG_REG.
+       (combine_simplify_rtx): Rework to use SUBREG_BYTE.
+       (simplify_set): Rework to use SUBREG_BYTE.
+       (expand_field_assignment): Use SUBREG_BYTE.
+       (make_extraction): Use SUBREG_BYTE.
+       (if_then_else_cond): Use SUBREG_BYTE.
+       (apply_distributive_law): Use SUBREG_BYTE and fixup subreg comments.
+       (gen_lowpart_for_combine): Compute full byte offset.
+       * cse.c (mention_regs): Use SUBREG_BYTE.
+       (remove_invalid_subreg_refs): Rework to use SUBREG_BYTE.
+       (canon_hash): Use SUBREG_BYTE.
+       (fold_rtx): Pass SUBREG_BYTE div UNITS_PER_WORD to operand_subword.
+       (gen_lowpart_if_possible): Formatting.
+       * dbxout.c (dbxout_symbol_location): Compute SUBREG hard regnos
+       correctly.
+       * dwarf2out.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
+       (mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
+       (loc_descriptor): Fixup explicit XEXP into SUBREG_REG
+       * dwarfout.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
+       (output_mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
+       (output_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
+       * emit-rtl.c (gen_rtx_SUBREG): New function, used to verify
+       certain invariants about SUBREGs the compiler creates.
+       (gen_lowpart_SUBREG): New function.
+       (subreg_hard_regno): New function to get the final register number.
+       (gen_lowpart_common): Use SUBREG_BYTE.
+       (gen_imagpart): Spacing nits.
+       (subreg_realpart_p): Use SUBREG_BYTE.
+       (gen_highpart): Use SUBREG_BYTE.
+       (subreg_lowpart_p): Always compute endian corrected goal offset,
+       even at the byte level, then compare against that.
+       (constant_subword): New function, pulled out all constant cases
+       from operand_subword and changed second argument name to offset.
+       (operand_subword): Detect non REG/SUBREG/CONCAT/MEM cases early
+       and call constant_subword to do the work.  Return const0_rtx if
+       looking for a word outside of OP.
+       (operand_subword_force): Change second arg name to offset.
+       * expmed.c (store_bit_field): Use SUBREG_BYTE.
+       (store_split_bit_field): Use SUBREG_BYTE.
+       (extract_bit_field): Use SUBREG_BYTE.
+       (extract_split_bit_field): Use SUBREG_BYTE.
+       (expand_shift): Use SUBREG_BYTE.
+       * expr.c (store_expr, expand_expr): Use gen_lowpart_SUBREG.
+       * final.c (alter_subreg) Use subreg_hard_regno and SUBREG_BYTE.
+       * flow.c (set_noop_p): Use SUBREG_BYTE.
+       (mark_set_1): Remove ALTER_HARD_SUBREG. Use subreg_regno_offset instead.
+       * function.c (fixup_var_refs_1): Fixup explicit XEXP into a SUBREG_REG.
+       (fixup_memory_subreg): Use SUBREG_BYTE and remove byte endian
+       correction code.
+       (optimize_bit_field): Use SUBREG_BYTE.
+       (purge_addressof_1): Use SUBREG_BYTE.
+       (purge_single_hard_subreg_set): Use subreg_regno_offset function.
+       (assign_params): Mark arguments SUBREG_PROMOTED_VAR_P if they are
+       actually promoted by the caller and PROMOTE_FOR_CALLS_ONLY is true.
+       * gengenrtl.c (special_rtx): Add SUBREG.
+       * global.c (mark_reg_store): Use SUBREG_BYTE.
+       (set_preference): Rework to use subreg_regno_offset and SUBREG_BYTE.
+       * ifcvt (noce_emit_move_insn): Use SUBREG_BYTE.
+       * integrate.c (copy_rtx_and_substitute): Use SUBREG_BYTE and make sure
+       final byte offset is congruent to subreg's mode size.
+       (subst_constants): Use SUBREG_BYTE.
+       (mark_stores): Use subreg_regno_offset function.
+       * jump.c (rtx_renumbered_equal_p, true_regnum): Use subreg_regno_offset
+       function and SUBREG_BYTE.
+       * local-alloc.c (combine_regs): Use subreg_regno_offset function.
+       (reg_is_born): Use subreg_hard_regno.
+       * recog.c (valid_replace_rtx_1): Use SUBREG_BYTE and remove byte
+       endian correction code.  Don't combine subregs unless resulting
+       offset aligns with type.  Fix subreg constant extraction for DImode.
+       Simplify SUBREG of VOIDmode CONST_DOUBLE.
+       (general_operand): Remove dead mode_altering_drug code.
+       (indirect_operand): Use SUBREG_BYTE.
+       (constrain_operands): Use subreg_regno_offset function.
+       * reg-stack.c (get_true_reg): Use subreg_regno_offset function.
+       * regmove.c (regmove_optimize): Use SUBREG_BYTE.
+       (optimize_reg_copy_3): Use gen_lowpart_SUBREG.
+       * regs.h (REG_SIZE): Allow target to override.
+       (REGMODE_NATURAL_SIZE): New macro which target can override.
+       * reload.c (reload_inner_reg_of_subreg): subreg_regno should be used
+       on the entire subreg rtx.
+       (push_reload): Use SUBREG_BYTE in comments and code.
+       (find_dummy_reload): Use subreg_regno_offset.  Only adjust offsets
+       for hard registers inside subregs.
+       (operands_match_p): Use subreg_regno_offset.
+       (find_reloads): Use SUBREG_BYTE and only advance offset for subregs
+       containing hard regs.
+       (find_reload_toplev): Use SUBREG_BYTE.  Remove byte endian
+       corrections when fixing up MEM subregs.
+       (find_reloads_address_1): Use SUBREG_BYTE, subreg_regno, and
+       subreg_regno_offset where appropriate.
+       (find_reloads_subreg_address): Use SUBREG_BYTE.  Remove
+       byte endian corrections when fixing up MEM subregs.
+       (subst_reloads): When combining two subregs, make sure final
+       offset is congruent to subreg's mode size.
+       (find_replacement): Use SUBREG_BYTE and subreg_regno_offset.
+       (refers_to_regno_for_reload_p): Use subreg_regno.
+       (reg_overlap_mentioned_for_reload_p): Use subreg_regno_offset.
+       * reload1.c (eliminate_regs) Use SUBREG_BYTE. Remove byte endian
+       correction code for memory subreg fixups.
+       (forget_old_reload_1): Use subreg_regno_offset.
+       (choose_reload_regs): Use subreg_regno.
+       (emit_input_reload_insns): Use SUBREG_BYTE.
+       (reload_combine_note_store): Use subreg_regno_offset.
+       (move2add_note_store): Use subreg_regno_offset.
+       * resource.c (update_live_status, mark_referenced_resources): Use
+       subreg_regno function.
+       (mark_set_resources): Use subreg_regno function.
+       * rtl.h (SUBREG_WORD): Rename to SUBREG_BYTE.
+       (subreg_regno_offset, subreg_regno): Define prototypes.
+       (subreg_hard_regno, constant_subword, gen_rtx_SUBREG): Newi functions.
+       (gen_lowpart_SUBREG): Add prototype.
+       * rtl.texi (subreg): Update to reflect new byte offset representation.
+       Add mentioning of the effect that BYTES_BIG_ENDIAN has on subregs now.
+       * rtlanal.c (refers_to_regno_p): Use subreg_regno.
+       (reg_overlap_mentioned_p): Use subreg_regno.
+       (replace_regs); Make sure final offset of combined subreg is
+       congruent to size of subreg's mode.
+       (subreg_regno_offset): New function.
+       (subreg_regno): New function.
+       * sched-vis.c (print_value): Change SUBREG_WORD to SUBREG_BYTE.
+       * sdbout.c (sdbout_symbol): Compute offset using alter_subreg.
+       * stmt.c (expand_anon_union_decl): Use gen_lowpart_SUBREG.
+       * tm.texi (ALTER_HARD_SUBREG): Remove, it is now dead.
+       (SUBREG_REGNO_OFFSET): Describe SUBREG_REGNO_OFFSET overrides.
+       * config/a29k/a29k.c (gpc_reg_operand): Use subreg_regno.
+       (a29k_get_reloaded_address): Use SUBREG_BYTE.
+       (print_operand): Use SUBREG_BYTE.
+       * config/alpha/alpha.c (print_operand_address): Use SUBREG_BYTE.
+       * config/arm/arm.c (arm_reload_in_hi): Use SUBREG_BYTE.
+       (arm_reload_out_hi): Use SUBREG_BYTE.
+       * config/d30v/d30v.c (d30v_split_double): Use subreg_regno_offset
+       instead of SUBREG_WORD.
+       (d30v_print_operand_memory_reference): Use subreg_regno_offset.
+       * config/dsp16xx/dsp16xx.md (extendqihi2, zero_extendqihi2): Fix
+       SUBREG creation to use byte offset.
+       * config/h8300/h8300.md (Unnamed HImode zero extraction and 16bit
+       inverted load insns): Fix explicit rtl subregs to use byte
+       offsets.
+       * config/i370/i370.md (cmpstrsi, movstrsi, mulsi3, divsi3,
+       udivsi3, umodsi3): Generate SUBREGs with byte offsets.
+       * config/i860/i860.c (single_insn_src_p): Use SUBREG_BYTE.
+       * config/i860/i860.md (mulsi3_big): Fixup explicit SUBREGs in rtl
+       to use byte offsets.
+       (unnamed fmlow.dd insn): Fixup SUBREGS to use byte offsets.
+       * config/i960/i960.md (extendhisi2): Generate SUBREGs with byte
+       offsets, also make sure it is congruent to SUBREG's mode size.
+       (extendqisi2, extendqihi2, zero_extendhisi2, zero_extendqisi2,
+       unnamed ldob insn): Generate SUBREGs with byte offset.
+       (zero_extendqihi2): SUBREG's are byte offsets.
+       * config/m68hc11/m68hc11.c (m68hc11_gen_lowpart): Use SUBREG_BYTE.
+       (m68hc11_gen_highpart): Use SUBREG_BYTE.
+       * config/m68k/m68k.md (zero_extendhisi2, zero_extendqihi2,
+       zero-extendqisi2): Generate SUBREGs with byte offset.
+       (umulsidi3, mulsidi3, subreghi1ashrdi_const32,
+       subregsi1ashrdi_const32, subreg1lshrdi_const32): Fixup explicit
+       subregs in rtl to use byte offsets.
+       * config/m88k/m88k.md (extendsidi2): fixup subregs to use byte offset.
+       * config/mips/mips.c (mips_move_1word): Use subreg_regno_offset.
+       (mips_move_2words): Use subreg_regno_offset.
+       (mips_secondary_reload_class): Use subreg_regno_offset.
+       * config/mips/mips.md (DImode plus, minus, move, and logical op
+       splits): Fixup explicit subregs in rtl to use byte offsets.
+       * config/mn10200/mn10200.c (print_operand): Use subreg_regno function.
+       * config/mn10300/mn10300.c (print_operand): Use subreg_regno function.
+       * config/ns32k/ns32k.md (udivmoddisi4): Fix explicit subregs in
+       rtl to use byte offsets.
+       * config/pa/pa.c (emit_move_sequence): Use SUBREG_BYTE.
+       * config/pa/pa.md (floatunssisf2, floatunssidf2, mulsi3): fix explicit
+       subregs to use byte offsets.
+       * config/pdp11/pdp11.md (zero_extendhisi2, modhi3, modhi3+1):
+       Fixup explicit subregs in rtl to use byte offsets.
+       * config/romp/romp.c (memory_offset_in_range_p): Use SUBREG_BYTE
+       and remove byte endian correction code.
+       * config/sh/sh.c (output_movedouble): Use subreg_regno.
+       (gen_ashift_hi): Use SUBREG_BYTE.
+       (regs_used): Use subreg_regno_offset.
+       (machine_dependent_reorg): Use subreg_regno_offset.
+       * config/sh/sh.h (INDEX_REGISTER_RTX_P): Use SUBREG_BYTE.
+       * config/sh/sh.md (DImode and DFmode move splits): Use subreg_regno.
+       (movdf_i4): Subregs are byte offsets now.
+       * config/sparc/sparc.c (ultra_find_type): Use SUBREG_BYTE.
+       * config/sparc/sparc.h (ALTER_HARD_SUBREG): Removed.
+       (REGMODE_NATURAL_SIZE): Override.
+       (REG_SIZE): For SUBREG check float mode on SUBREG_REG's mode.
+       * config/sparc/sparc.md (TFmode move splits): Generate SUBREGs
+       with byte offsets.
+       (zero_extendhisi2, zero_extendqidi2_insn, extendhisi2,
+       extendqihi2, sign_extendqihi2_insn, sign_extendqisi2_insn,
+       extendqidi2): Generate SUBREGs with byte offsets, also make sure
+       it is congruent to SUBREG's mode size.
+       (smulsi3_highpart_v8plus): Fix explicit subregs in rtl to use byte
+       offsets.
+       (cmp_siqi_trunc, cmp_siqi_trunc_set, cmp_diqi_trunc,
+       cmp_diqi_trunc_set, lshrdi3_v8plus+1, lshrdi3_v8plus+2,
+       lshrdi3_v8plus+3, lshrdi3_v8plus+4): Use proper
+       SUBREG_BYTE offset for non-paradoxical subregs in patterns.
+       * config/v850/v850.c (print_operand, output_move_double): Use
+       subreg_regno function.
+
+2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
+
+       * configure.in (target_subdir): Use target_alias, not target.
+       * configure: Rebuilt.
+
+       * config/sh/crtn.asm (init, fini): Restore r15 from r14, not the
+       other way round.
+       * config/sh/crti.asm: Fix typos in comments.
+
+2001-04-03  Alan Modra  <alan@linuxcare.com.au>
+
+       * pa.h: Revise comments for TARGET_NO_SPACE_REGS and
+       TARGET_FAST_INDIRECT_CALLS.
+       * pa.c (override_options): TARGET_NO_SPACE_REGS is now OK with
+       -fPIC.  Don't warn.
+       (return_addr_rtx): Short circuit export stub matching when
+       TARGET_NO_SPACE_REGS.
+       (output_millicode_call): For out of range calls, make -fPIC
+       take precedence, then TARGET_PORTABLE_RUNTIME, then ble.  Don't
+       return before delay slot checks when TARGET_PORTABLE_RUNTIME.
+       * pa.md: Modify length attr calculation of all millicode insns to
+       match above.
+
+2001-04-02  Geoffrey Keating  <geoffk@redhat.com>
+
+       * configure.in (gcc_cv_as_leb128): Correct name of cache variable.
+       Require at least 2.11 in the version test.  Specifically check
+       for and reject GAS version 2.10.90.
+       * configure: regenerate.
+
+2001-04-03  Alan Modra  <alan@linuxcare.com.au>
+
+       * pa.c (override_options): Remove PIC profiling warning.
+       (hp_profile_labelno): Delete.
+       (hp_profile_label_rtx): Delete.
+       (hp_profile_label_name): Delete.
+       (pa_add_gc_roots): Remove reference to hp_profile_label_rtx.
+       (output_function_prologue): Remove profiling code and all tests on
+       profile_flag.  Move store of PIC_OFFSET_TABLE_REGNUM now that
+       merge_sp_adjust_with_store can work for PIC and profiling.
+       (hppa_expand_epilogue): Remove profile_flag test.
+       (hppa_can_use_return_insn_p): Likewise.
+       (hppa_init_pic_save): Emit before tail_recursion_reentry, and
+       cater for PROFILE_HOOK.
+       (hppa_profile_hook): New function.
+       * pa.h (FUNCTION_PROFILER): Now does nothing.
+       (PROFILE_HOOK): Define.
+       (hppa_profile_hook): Declare.
+       (PROFILE_BEFORE_PROLOGUE): Delete.
+       (ASM_OUTPUT_REG_PUSH): Delete.
+       (ASM_OUTPUT_REG_POP): Delete.
+       * pa.md (call_profiler): Turn it into a call insn, and don't `use'
+       r24.  Accept function name operand, and use this and a locally
+       generated label to calculate pc-rel offset to func start.
+
+2001-04-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * $(HOST_PREFIX_1)errors.o, $(HOST_PREFIX_1)ggc-none.o,
+       ggc-common.o, ggc-simple.o, ggc-page.o, ggc-none.o: Depend on
+       $(SYSTEM_H).
+
+2001-04-03  Alan Modra  <alan@linuxcare.com.au>
+
+       * dwarf2out.c (dwarf2out_frame_debug_expr): Move errant HIGH and
+       LO_SUM cases to where they belong.
+
+2001-04-02  Richard Henderson  <rth@redhat.com>
+
+       * except.h (lang_eh_type_covers): Mark extern.
+       (lang_eh_runtime_type): Likewise.
+
+2001-04-02  Zack Weinberg  <zackw@stanford.edu>
+
+       * genattr.c, gencheck.c, gencodes.c, genconfig.c, genflags.c,
+       gengenrtl.c:  Wrap generated header in multiple-include guard.
+       Improve error checking.
+
+2001-04-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * configure.in: Don't check for putenv.
+       * configure: Regenerate.
+       * gcc.c (putenv): Don't define.
+       * vax/xm-vms.h: Handle putenv.
+
+2001-04-02  Jakub Jelinek  <jakub@redhat.com>
+
+       * ifcvt.c (noce_emit_move_insn): New.
+       (noce_try_store_flag, noce_try_store_flag_constants,
+       noce_try_store_flag_inc, noce_try_store_flag_mask,
+       noce_try_cmove, noce_try_cmove_arith, noce_try_minmax,
+       noce_try_abs): Use it.
+       (noce_process_if_block): Likewise.
+       For STRICT_LOW_PART, take mode from its SUBREG.
+
+2001-04-02  Jakub Jelinek  <jakub@redhat.com>
+
+       * fold-const.c (fold): Before optimizing unsigned comparison with
+       0x7fffffffU, make sure arg0 is integral type.
+
+2001-04-02  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-tree.texi: Document representation of wide strings.
+
+2001-04-01  Richard Henderson  <rth@redhat.com>
+
+       * except.h (expand_builtin_dwarf_fp_regnum): Declare.
+
+Sun Apr  1 11:49:05 CEST 2001  Jan Hubicka  <jH@suse.cz>
+
+       * i386.md: remove obsoleted comments.
+       (adddi_?): Rename to adddi_?_rex64; disable for 32bit.
+       (x86_movsicc_0_m1_rex64): Rename to x86_movdicc_0_m1_rex64;
+       fix output template.
+
+2001-03-31  Marek Michalkiewicz  <marekm@linux.org.pl>
+
+       * config/avr/libgcc.S (__mulhi3): Optimize previous change.
+
+2001-03-30  Bernd Schmidt  <bernds@redhat.com>
+
+       * loop.c (load_mems): When generating a load from a pseudo, update
+       REGNO_LAST_UID.
+
+Fri Mar 30 17:36:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (ix86_split_long_move): Use change address to compensate
+       stack pointer change in push instruction.
+
+Fri Mar 30 00:31:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (sse_movdfcc_eq): Fix constraint (sse_mov?fcc splitter): Use operands_match_p
+       instead of rtx_equal_p; fix the output template.
+
+Fri Mar 30 00:21:41 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (ix86_expand_setcc): Support 64bit.
+       (ix86_expand_int_movcc): Likewise.
+       * i386.md (movdicc_rex64, x86_movsicc_0_m1_rex64, movdicc_c_rex64):
+       New patterns.
+
+       * i386.md (allocate_stack_worker): Turn to expander.
+       (allocate_stack_worker_1, allocate_stack_worker_rex64): New insns.
+
+       * i386.c (print_reg): Do not print x86_64 style regs on IA-32
+
+2001-03-29  Richard Henderson  <rth@redhat.com>
+
+       * libgcc2.c [L__main]: Include unwind-dw2-fde.h instead of frame.h.
+
+2001-03-28  Matthew Hiller  <hiller@redhat.com>
+
+       * config/mn10300/mn10300.md (cmpsi): Fix first alternative's
+       output template.
+
+       * MAINTAINERS: Added self.
+
+2001-03-28  Richard Henderson  <rth@redhat.com>
+
+       * Makefile.in (cs-tconfig.h): Depend on CONFIG_H, not GCONFIG_H.
+       Use ALL_CFLAGS not HOST_CFLAGS for sjlj detection.
+
+2001-03-28  Jim Wilson  <wilson@redhat.com>
+
+       * config/ia64/ia64.md (movtf): Change DImode to TFmode in calls to
+       operand_subword.
+
+2001-03-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * toplev.h (fatal_error): Add ATTRIBUTE_NORETURN.
+
+       * tradcif.y (yyerror): Likewise.  Add format specifier in call to
+       `error'.
+
+       * tradcpp.c (macroexpand): Likewise for call to `error_with_line'.
+
+2001-03-28  DJ Delorie  <dj@redhat.com>
+
+       * Makefile.in (stage1_build): Revert CFLAGS patch.
+
+2001-03-28  Marek Michalkiewicz  <marekm@linux.org.pl>
+
+       * config/avr/libgcc.S (__mulhi3): Correct tests to exit the loop
+       when multiplier or multiplicand is zero.
+
+2001-03-28  Bernd Schmidt  <bernds@redhat.com>
+
+       * cselib.c (hash_rtx): Don't do tail recursion elimination by hand.
+
+       * config/ia64/ia64.c (update_set_flags): New function, broken out of
+       rtx_needs_barrier.
+       (set_src_needs_barrier): Likewise.
+       (rtx_needs_barrier): For SET case, use these two functions.  Rework
+       PARALLEL case to handle all inputs before all outputs.
+       (emit_insn_group_barriers): Call init_insn_group_barriers only if we
+       saw a label and no stop bit since then.
+       (maybe_rotate, process_epilogue): Add prototypes.
+
+2001-03-28  Richard Henderson  <rth@redhat.com>
+
+       * config/rs6000/rs6000.h (EPILOGUE_USES): Use TARGET_AIX,
+       not TARGET_TOC for special toc restore handling.
+       * config/rs6000/rs6000.md (eh_return): Likewise.
+
+2001-03-28  Richard Henderson  <rth@redhat.com>
+
+       * config/sparc/sparc.c (eligible_for_epilogue_delay): False if
+       current_function_calls_eh_return.
+       (output_function_epilogue): Handle eh_return.
+       * config/sparc/sparc.h (DOESNT_NEED_UNWINDER): Remove.
+       (EH_RETURN_DATA_REGNO): New.
+       (EH_RETURN_STACKADJ_RTX): New.
+       (EH_RETURN_HANDLER_RTX): New.
+       * config/sparc/sparc.md (call/short branch peepholes): Check
+       can_throw_internal instead of in_same_eh_region.
+
+       * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space
+       for eh_return data registers.
+       (rs6000_emit_prologue): Save eh_return data registers.
+       (rs6000_emit_epilogue): Force inline restores if eh_return.
+       Restore eh_return data registers.  Mind EH_RETURN_STACKADJ_RTX.
+       * config/rs6000/rs6000.h (rs6000_stack_t): Add ehrd_offset.
+       (EH_RETURN_DATA_REGNO, EH_RETURN_STACKADJ_RTX): New.
+       (EPILOGUE_USES): True for TOC_REGISTER if calls_eh_return and
+       the target uses one.
+       * config/rs6000/rs6000.md (eh_epilogue, eh_reg_restore): Remove.
+       (return_eh_si, return_eh_di): Remove.
+       (eh_return): New, from corpse of eh_epilogue.
+       (eh_set_lr_si, eh_set_lr_di): New.
+
+       * config/i386/i386.c (general_no_elim_operand): Disallow virtual regs.
+       (ix86_save_reg): If maybe_eh_return, true for EH_RETURN_DATA_REGNOs.
+       True for pic register if current_function_calls_eh_return.
+       (ix86_expand_epilogue): Change "emit_return" argument into "style".
+       Handle eh_return requirements.
+       * config/i386/i386.h (EH_RETURN_DATA_REGNO): New.
+       (EH_RETURN_STACKADJ_RTX): New.
+       * config/i386/i386.md (exception_receiver): Remove.
+       (eh_return, eh_return_1): New.
+       * config/i386/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
+
+       * config/alpha/alpha.c (alpha_sa_mask): Add EH_RETURN_DATA_REGNOs.
+       (alpha_mark_machine_status): No eh_epilogue_sp_ofs ...
+       (alpha_expand_epilogue): ... use EH_RETURN_STACKADJ_RTX instead.
+       * config/alpha/alpha.h (machine_function): Remove eh_epilogue_sp_ofs.
+       (EH_RETURN_DATA_REGNO): New.
+       (EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX): New.
+       * config/alpha/alpha.md (eh_epilogue): Remove.
+       (exception_receiver): Use $26 for ldgp input.
+       * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
+
+2001-03-28  Richard Henderson  <rth@redhat.com>
+
+       * except.c: Rewrite entirely for IA-64 ABI exception handling.
+       * except.h: Likewise.
+
+       * Makefile.in (LIB2ADDEH): Mention unwind-dw2*.c
+       (LIB2ADDEHDEP): New.
+       (LIB2FUNCS_EH): Remove.
+       (LIB2ADD): Remove LIB2ADDEH.
+       (libgcc.mk): Pass LIB2ADDEHDEP, don't pass LIB2FUNCS_EH.
+       (LIBGCC_DEPS): Use LIB2ADDEHDEP.
+       (crt{begin,end}[S].o): Likewise.
+       (except.o): Update includes.
+       * mklibgcc.in: Remove LIB2FUNCS_EH, add LIB2ADDEH, LIB2ADDEHDEP.
+       (libgcc2_c_dep): Use LIB2ADDEHDEP.
+
+       * basic-block.h (struct basic_block_def): Remove eh_beg, eh_end.
+       * bb-reorder.c (reorder_basic_blocks): Don't disable for EH.
+       * builtins.def (BUILT_IN_EH_RETURN_DATA_REGNO): New.
+       * builtins.c (expand_builtin): Implement it.
+       [BUILT_IN_EH_RETURN]: Update for nr arguments change.
+       * c-common.c (c_common_nodes_and_builtins): Declare it.
+       * c-decl.c (init_decl_processing): Update __builtin_eh_return.
+       * calls.c (libfunc_nothrow): Remove.
+       (emit_library_call_value_1): Don't call it.
+       * crtstuff.c: Include unwind-dw2-fde.h instead of frame.h.
+       * dwarf2.h (dwarf_call_frame_info): Add dwarf2.1 elements.
+       (DW_EH_PE_*): New defines for pointer encoding in .eh_frame.
+       * dwarf2out.c (struct dw_fde_struct): Add uses_eh_lsda, funcdef_number.
+       (current_funcdef_number): Globalize.
+       (output_call_frame_info): Emit frame data if an lsda is needed.
+       Generate augmentation for personality routine.  Don't play with
+       difference symbols.
+       (dwarf2out_begin_prologue): Record funcdef_number.
+       * dwarf2out.h (current_funcdef_number): Declare.
+       * expr.c (expand_expr): Update for except.h name changes.
+       Remove POPDCC_EXPR, POPDHC_EXPR.  Add EXC_PTR_EXPR.
+       * expr.h (LTI_throw, LTI_rethrow): Remove.
+       (LTI_sjthrow, LTI_sjpopnthrow, LTI_terminate): Remove.
+       (LTI_eh_rtime_match): Remove.
+       (LTI_unwind_resume, LTI_eh_personality): Add.
+       (LTI_unwind_sjlj_register, LTI_unwind_sjlj_unregister): Add.
+       * final.c (final): Don't call check_exception_handler_labels,
+       init_insn_eh_region, or free_insn_eh_region.
+       (final_scan_insn): Always emit debug labels for
+       NOTE_INSN_EH_REGION notes.
+       * flags.h (flag_new_exceptions): Remove.
+       * flow.c (entry_exit_blocks): Remove eh_beg, eh_end.
+       (record_active_eh_regions): Remove.
+       (count_basic_blocks): Check all instructions for REG_EH_REGION.
+       Use can_throw_internal.
+       (find_basic_blocks_1): Likewise.
+       (move_stray_eh_region_notes): Remove.
+       (find_label_refs): No eh_return_stub_label.
+       (make_edges): Likewise.  No init/free_eh_nesting_info.  Handle RESX.
+       (make_eh_edge): No eh_nest_info.  Update for reachable_handlers
+       changes.
+       (delete_unreachable_blocks): Don't track deleted handlers.
+       (flow_delete_block): Use maybe_remove_eh_handler.
+       (delete_eh_regions): Remove.
+       (merge_blocks): Don't check for eh region match.
+       (mark_regs_live_at_end): Handle EH_RETURN_DATA_REGNO,
+       EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX.
+       (init_propagate_block_info): Disable dead frame store optimization
+       when current_function_calls_eh_return.
+       (dump_bb): Don't print eh_beg, eh_end.
+       * function.c (fixup_var_refs): No catch_clauses.
+       (expand_function_end): Likewise.  Call expand_eh_return before
+       the return register use.  Call sjlj_emit_function_exit_after.
+       (expand_function_start): Force pseudo DECL_RESULT if sjlj exceptions.
+       * function.h (struct function): Add calls_eh_return, uses_eh_lsda.
+       * ifcvt.c (dead_or_predicable): Remove eh region check.
+       * integrate.c (function_cannot_inline_p): Disallow __builtin_eh_return.
+       Don't check for EH vs parameters.
+       (expand_inline_function_eh_labelmap, eif_eh_map): Remove.
+       (expand_inline_function): Call duplicate_eh_regions.
+       (copy_insn_list): Don't handle NOTE_INSN_EH_REGION_BEG/END.
+       (copy_insn_notes): Remap REG_EH_REGION notes.
+       (copy_rtx_and_substitute): Remove SYMBOL_REF_NEED_ADJUST check.
+       * integrate.h (struct inline_remap): Add local_return_label.
+       * jump.c (jump_optimize_1): Don't init/free_insn_eh_region, nor
+       check_exception_handler_labels, nor exception_optimize.
+       (find_cross_jump): No EH region check.
+       * optabs.c (init_optabs): Update for changed eh libfuncs.
+       * rtl.def (RESX): New.
+       * rtl.h (SYMBOL_REF_NEED_ADJUST): Remove.
+       * stmt.c (expand_decl_cleanup): Simplify using_eh_for_cleanups_p
+       checks.  Update for except.h name changes.
+       (expand_cleanups): Likewise.
+       (expand_dcc_cleanup, expand_dhc_cleanup): Remove.
+       * toplev.c (dump_file_index, dump_file): Add .02.eh dump.
+       (compile_file): Call init_eh before init_optabs.  Don't
+       output_exception_table here.
+       (rest_of_compilation): Call convert_from_eh_region_ranges,
+       convert_to_eh_region_ranges, output_function_exception_table.
+       Don't emit_eh_context.
+       * tree.def (POPDHC_EXPR, POPDCC_EXPR): Remove.
+       (EXC_PTR_EXPR): New.
+
+       * md.texi (eh_epilogue): Remove.
+       (eh_return): Document.
+       * tm.texi (EH_RETURN_DATA_REGNO): Document.
+       (EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX): Document.
+
+       * eh-common.h: Remove file.
+       * frame-dwarf2.c, frame.c, frame.h: Remove files.
+       * libgcc2.c (L_eh): Remove.
+
+       * unwind-dw2-fde.c: New file, largely copied from frame.c.
+       * unwind-dw2-fde.h: New file.
+       * unwind-dw2.c: New file, largely cribbed from frame-dwarf2.c.
+       * unwind-sjlj.c, unwind.h, unwind.inc: New files.
+       * libgcc-std.ver: Update for eh symbols.
+
+2001-03-27  Richard Henderson  <rth@redhat.com>
+
+       * regmove.c (perhaps_ends_bb_p): Use can_throw_internal to
+       reduce false positives.
+       (regmove_optimize): Disable if flag_non_call_exceptions.
+
+       * stmt.c (expand_return): Remove always true predicate.
+       (expand_decl_cleanup_no_eh): Remove dead code.
+
+       * sched-deps.c (sched_analyze_insn): Consolidate scheduling
+       barrier code.  Add a scheduling barrier if a non-call insn
+       can throw internally.
+
+       * rtlanal.c (rtx_addr_can_trap_p): Virtual registers cannot trap.
+       Auto-inc addresses trap only if their base register does.
+
+       * except.c (can_throw_internal): Rename from can_throw.
+       * except.h, resource.c: Update references.
+
+       * integrate.c (copy_insn_list): Use returnjump_p.
+       (copy_insn_notes): Recurse for CALL_PLACEHOLDER.
+
+       * function.h (struct function): Move all boolean valued fields
+       to single bit fields at the end of the struct.
+
+       * bb-reorder.c, dwarf2out.c, except.c, except.h, flow.c,
+       jump.c, toplev.c:
+       Rename asynchronous_exceptions to flag_non_call_exceptions.
+
+       * gthr-single.h (UNUSED): New.  Distinguish between how C
+       and C++ mark unused function arguments.  Use throughout.
+
+       * Makefile.in (cs-tconfig.h): Copy USING_SJLJ_EXCEPTIONS
+       value to target configuration header.
+       * configure.in (CONFIG_SJLJ_EXCEPTIONS): New.
+       * config.in, configure: Rebuild.
+       * except.h (USING_SJLJ_EXCEPTIONS): New.  Define based on
+       configuration and target defines.
+       (exceptions_via_longjmp): Remove.
+       * dwarf2out.c, except.c, final.c, toplev.c, config/ia64/ia64.c:
+       Use USING_SJLJ_EXCEPTIONS instead of exceptions_via_longjmp.
+
+       * except.h (flag_non_call_exceptions): Move ...
+       * flags.h: ... here.
+
+       * combine.c (distribute_notes) [REG_EH_REGION]: If non-call
+       exceptions, put the note on the trapping instruction.
+
+       * flags.h (flag_new_exceptions): Remove.
+       * toplev.c: Don't set it.
+       * final.c: Don't check it.
+       * except.c: Provide stub definition.
+
+       * flow.c (tidy_fallthru_edges): Don't combine complex edges.
+       (calculate_global_regs_live): Kill call-clobbered registers
+       across exception edges.
+       * reg-stack.c (convert_regs_1): Kill the entire target stack
+       across non-call exception edges.
+
+       * flow.c (cleanup_cfg): Take no argument.
+       * output.h, sibcall.c, toplev.c: Update all calls.
+
+2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * configure.in: Don't check for bcopy.
+       * configure, config.in: Regenerate.
+
+       * system.h: Don't define or prototype bcopy, instead poison it.
+
+2001-03-27  Richard Henderson  <rth@redhat.com>
+
+       * function.c (expand_function_start): Set DECL_REGISTER on
+       a pseudo used for DECL_RESULT.
+
+       * rtl.h (LCT_NORETURN): New.
+       * calls.c (emit_library_call_value_1): Handle it.
+
+2001-03-27  Stan Shebs  <shebs@apple.com>
+
+       * objc/objc-act.c (objc_init): Use dump_base_name.
+       (gen_declaration): Clear the buffer arg.
+       (gen_declaration_1): New function, body of gen_declaration.
+       (adorn_decl): Call gen_declaration_1 instead of gen_declaration.
+       (gen_method_decl): Ditto, plus always clear buffer arg.
+       (error_with_ivar): Simplify.
+       (warn_with_method): Ditto.
+       (build_message_expr): Don't clear buffers.
+       (dump_interface): Ditto.
+       (objc_debug): Ditto.
+       (build_keyword_selector): Clear the buffer by only zeroing
+       the first element.
+       (objc_implementation_context): Declare.
+       (start_class): Warn about missing @end.
+       (finish_objc): Ditto.
+
+2001-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * reload1.c (eliminate_regs): Don't abort on MEM USEs.
+
+2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * Makefile.in (SYSTEM_H): Define.
+       Depend on $(SYSTEM_H), not system.h.
+
+       * objc/Make-lang.in: Depend on $(SYSTEM_H), not system.h.
+
+2001-03-27  Jim Wilson  <wilson@redhat.com>
+
+       * final.c (final_scan_insn, case NOTE_INSN_BASIC_BLOCK): Call
+       IA64_UNWIND_EMIT.
+       * config/ia64/ia64.c (block_num, need_copy_state): New static vars.
+       (process_epilogue): New static function.
+       (process_set): Call process_epilogue instead of emitting .restore
+       directly.
+       (process_for_unwind_directive): Handle NOTE_INSN_BASIC_BLOCK.
+
+       * flow.c (struct reg_cond_life_info): New fields orig_condition
+       and stores.
+       (init_propagate_block_info): Set new fields.
+       (mark_regno_cond_dead): Set and use new fields.
+       (flush_reg_cond_reg_1): Likewise.
+       (and_reg_cond, case AND): Check for redundant AND conditions.
+       (mark_used_reg): Delete unnecessary clears before freeing splay trees.
+       Set new fields.
+
+2001-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cppmacro.c (stringify_arg): Null terminate strings.
+
+2001-03-27  Zack Weinberg  <zackw@stanford.edu>
+
+       * config.gcc (m68hc11-*-*, m68hc12-*-*): Convert to new tm.h
+       inclusion style.  xm-m68hc11.h no longer exists.
+       * config/m68hc11/xm-m68hc11.h: Delete file.
+       * config/m68hc11/m68hc12.h: Convert to new tm.h inclusion style.
+
+       * config/m68hc11/m68hc11.h: Convert to new tm.h inclusion style.
+       Don't define GCC_VERSION, N_, or PARAMS; don't include
+       gansidecl.h or stdio.h.  Define inhibit_libc here.
+       Make code conditioned on #if GCC_VERSION > 2095 unconditional.
+       Delete code conditioned on #if GCC_VERSION == 2095.
+
+       * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c:
+       Make code conditioned on #if GCC_VERSION > 2095 unconditional.
+       Delete code conditioned on #if GCC_VERSION == 2095.
+
+2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * system.h: Include symcat.h.
+       (STRINGIFY): Don't define.
+
+       * configure.in: Adjust comment.
+
+       * builtins.c: Use STRINGX, not STRINGIFY.
+       * gencheck.c: Likewise.
+       * gengenrtl.c: Likewise.
+       * protoize.c: Likewise.
+
+       * cpplex.c: Don't include symcat.h.
+       * cpplib.c: Likewise.
+
+       * gansidecl.h (HAVE_STRINGIZE): Don't define.
+
+2001-03-27  Alan Modra  <alan@linuxcare.com.au>
+
+       * c-typeck.c (digest_init): Fold init expression.
+
+2001-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * sbitmap.c (sbitmap_copy): Call memcpy, not bcopy.
+
+2001-03-27  Alan Modra  <alan@linuxcare.com.au>
+
+       * except.c (eh_regs): Save results of build_pointer_type to a temp
+       as FUNCTION_VALUE macro may evaluate its args multiple times.
+
+2001-03-26  Mark Mitchell  <mark@codesourcery.com>
+
+       * c-common.h (DECL_NUM_STMTS): New macro.
+       * c-decl.c (duplicate_decls): Copy DECL_NUM_STMTS, not
+       DECL_FRAME_SIZE.
+       (pushdecl): Likewise.
+       * c-semantics.c (add_stmt): Update DECL_NUM_STMTS.
+       * integrate.c (expand_inline_function): Don't check
+       DECL_FRAME_SIZE.
+       * print-tree.c (print_node): Don't print it.
+       * toplev.c (rest_of_compilation): Don't try to inline when
+       flag_no_inline is on.
+       * tree.h (DECL_FRAME_SIZE): Remove.
+       (tree_decl): Adjust accordingly.
+
+2001-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * combine.c (try_combine): Use memcpy, not bcopy.
+
+       * genattrtab.c (expand_units): Likewise.
+
+Mon Mar 26 15:55:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (push mem DI peep2): New.
+       (mov 0, mov -1 peep2): Handle 64bit.
+       (lea to arithmetics peep2): Handle 64bit leas.
+       (rsp arithmetics to push/pop peep2s): New.
+
+       * i386.md (truncdfsf2_3, trunctfsf2_2): Change predicate to memory_operand.
+
+Mon Mar 26 14:35:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (struct machine_function): Add save_varrargs_registers.
+       (ix86_save_varrargs_registers): New macro.
+       (ix86_frame_layout): Support 64bit; support red zones and varrargs area.
+       (ix86_expand_prologue): Likewise.
+       (ix86_emit_epilogue_esp_adjustement): Likewise.
+       (ix86_expand_epilogue): Likewise.
+       * i386.md (pro_epilogue_adjust_stack): Turn to expander; support 64bit.
+       (pro_epilogue_adjust_stack_1): New insn.
+       (pro_epilogue_adjust_stack_rex64): Likewise.
+       * i386.h (MASK_NO_RED_ZONE): New constant.
+       (TARGET_RED_ZONE): New macro.
+       (TARGET_OPTIONS): Add "red-zone" and "no-red-zone"
+       (RED_ZONE_SIZE): New constant.
+       (RED_ZONE_RESERVE): New constant.
+
+2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * toplev.c (set_float_handler): Use memcpy, not bcopy.
+
+2001-03-25  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.md (umodqi3): Output a tab instead of a
+       space.
+       (modqi3): Likewise.
+       (umodhi3): Likewise.
+       (modhi3): Likewise.
+
+2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * mkconfig.sh (DEFINES): Handle entries with '='.
+
+       * config.gcc: Don't use i370/xm-mvs.h or ns32k/xm-pc532-min.h.
+       Set xm_defines to MACRO=value instead.
+
+       * i370/xm-mvs.h: Delete.
+
+       * ns32k/xm-pc532-min.h: Likewise.
+
+Sun Mar 25 15:01:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (ashldi3, ashrdi3, lshrdi3): Change predicates to
+       shiftdi_operand;
+       use ix86_expand_binary_operator
+       (?sh??i_?): Disable for 64bit.
+       * i386.h (PREDICATE_CODES): Add shiftdi_operand.
+       * i386.c (shiftdi_operand): New predicate.
+
+       * (ashldi3_1_rex64, ashldi3_cmp_rex64, ashlsi3_1_zext, ashlsi3_cmp_zext,
+       ashrdi3_63_rex64, ashrdi3_1_one_bit_rex64, ashrdi3_1_rex64,
+       ashrdi3_one_bit_cmp_rex64, ashrdi3_cmp_rex64, ashrsi3_31_zext,
+       ashrsi3_1_one_bit_zext, ashrsi3_1_zext, ashrsi3_one_bit_cmp_zext,
+       ashrsi3_cmp_zext, lshrdi3_1_one_bit_rex64, lshrdi3_1_rex64,
+       lshrdi3_cmp_one_bit_rex64, lshrdi3_cmp_rex64, lshrsi3_1_one_bit_zext,
+       lshrsi3_1_zext, lshrsi3_cmp_one_bit_zext, lshrsi3_cmp_zext,
+       rotlsi3_1_one_bit_rex64, rotldi3_1_rex64,
+       rotlsi3_1_one_bit_zext, rotlsi3_1_zext, rotrdi3_1_one_bit_rex64,
+       rotrdi3_1_rex64, rotrsi3_1_one_bit_zext, rotrsi3_1_zext): New patterns.
+       (rotldi3, rotrdi3): New expanders.
+
+Sun Mar 25 14:25:33 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (movstrsi): Move offline.
+       (movstrdi): New.
+       (strmovdi_rex64): New.
+       (strmov?i): Accept 64bit.
+       (strmov?i_rex64): New.
+       (strmov?i_rex_1): New.
+       (strmov?i_1): Disable for 64bit.
+       (rep_mov?i_rex64): New.
+       (rep_mov?i): Disable for 64bit.
+       (clrstrsi): Move offline.
+       (strset?i_rex64): New.
+       (strset?i: Accept 64bit.
+       (rep_stos?i): Disable for 64bit.
+       (rep_stos?i_rex64): New.
+       (strset?i_rex_1): New.
+       (strset?i_1): Disable for 64bit.
+       (cmpstrsi): Accept 64bit.
+       (cmpstrsi_nz_1): Rename to cmpstrqi_nz_1; Disable for 64bit.
+       (cmpstrqi_nz_rex_1): New.
+       (cmpstrsi_1): Rename to cmpstrqi_1; Disable for 64bit.
+       (strlensi): Move offline.
+       (strlendi): New.
+       (strlenqi_1): Disable for 64bit; fix constraints.
+       (strlenqi_rex_1): New.
+       * i386.c (ix86_adjust_counter): New static function.
+       (ix86_zero_extend_to_Pmode): Likewise.
+       (ix86_expand_aligntest): Likweise.
+       (ix86_expand_strlensi_unroll_1): Make static; update for 64bit.
+       (ix86_expand_movstr): New global function.
+       (ix86_expand_clrstr): New global function.
+       (ix86_expand_strlen): New global function.
+       * i386-protos.h (ix86_expand_movstr, ix86_expand_clrstr,
+       ix86_expand_strlen): Declare.
+       (ix86_expand_strlensi_unroll_1): Delete.
+
+Sat Mar 24 23:15:19 CET 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (cmpdi): Fix operand predicates.
+       (cmpdi_ccno_1_rex64, cmpdi_minus_1_rex64, cmpdi_1_rex64,
+        cmpdi_1_insn_rex64): New patterns.
+       (adddi3): Turn to expander.
+       (adddi3_1, adddi3_carry_rex64, adddi3_cc_rex64): New patterns.
+       (addsi3_carry_zext): New pattern.
+       (adddi_?_rex64): New patterns and splitters.
+       (addsi_?_zext): New patterns.
+       (subsi3_carry_zext): New pattern.
+       (subdi_?_rex64): New patterns and splitters.
+       (iorsi_?_zext): New patterns.
+       (iordi_?_rex64): New patterns and splitters.
+       (iorsi_?_zext): New patterns.
+       (iorsi_?_zext_imm): New patterns.
+       (xorsi_?_zext): New patterns.
+       (xordi_?_rex64): New patterns and splitters.
+       (xorsi_?_zext): New patterns.
+       (negdi*): New patterns.
+       (one_cmpldi*): Likewise.
+       (one_cmplsi*_zext, negsi*_zext): Likewise.
+       (testqi_ext_3_rex64): New pattern.
+
+Sat Mar 24 21:13:28 CET 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386-protos.h (ix86_split_long_move): Return void.
+       * i386.c (ix86_split_to_parts): Handle 64bit target.
+       (ix86_split_long_move): Likewise.
+       * i386.md (all calls to ix86_split_long_move): Update.
+
+2001-03-23  Richard Henderson  <rth@redhat.com>
+
+       * config/mips/iris4.h (ASM_OUTPUT_ASCII): Rename local variables
+       to avoid shadowing arguments.
+
 2001-03-23  Jakub Jelinek  <jakub@redhat.com>
 
        * varasm.c (make_decl_rtl): Don't append var_labelno discriminator
 
        * varasm.c (make_decl_rtl): Add TREE_PUBLIC check to abort test.
        (assemble_alias): Call make_decl_rtl.
-       
+
 Fri Mar 23 16:59:08 2001  J"orn Rennecke <amylaar@redhat.com>
 
        * stor-layout.c (layout_type): Give OFFSET_TYPE a MODE_INT type.
@@ -149,7 +1213,7 @@ Wed Mar 21 20:33:26 CET 2001  Jan Hubicka  <jh@suse.cz>
        (ix86_expand_branch): DImode comparison is simple for x86_64.
        (memory_address_length): Recognize memory addresses formed using
        PRE/POST modify.
-       (ix86_data_alignment, ix86_local_alignment): Align arrays to 16 bytes 
+       (ix86_data_alignment, ix86_local_alignment): Align arrays to 16 bytes
        for x86_64.
        * i386.h (TARGET_USE_SAHF): Disable for 64bit.
 
@@ -217,7 +1281,7 @@ Tue Mar 20 20:15:06 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
        i386_pe_mark_dllimport.
 
 2001-03-20  David Billinghurst <David.Billinghurst@riotinto.com>
-  
+
        * config/i386/cygwin.h: Include <stdio.h> Declare and constify
        functions i386_pe_*.
 
@@ -293,7 +1357,7 @@ Mon Mar 19 18:53:54 CET 2001  Jan Hubicka  <jh@suse.cz>
 
 2001-03-16  Andrew Haley  <aph@cambridge.redhat.com>
 
-        * config/ia64/libgcc-ia64.ver: Add __ia64_backtrace.
+       * config/ia64/libgcc-ia64.ver: Add __ia64_backtrace.
 
 2001-03-19  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
 
@@ -3790,8 +4854,6 @@ Thu Feb  1 07:22:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
 2001-01-31  Alan Modra <alan@linuxcare.com.au>
 
-       * (hppa_init_pic_save): Emit the pic offset table
-       reg save after last_parm_insn.
        * pa.c (hppa_init_pic_save): New function.
        * pa.h (hppa_init_pic_save): Declare.
        * pa.md (call, call_value, sibcall, sibcall_value): Use