OSDN Git Service

2001-02-14 Joel Sherrill <joel@OARcorp.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 3a4eeaf..63b4edd 100644 (file)
+2001-02-14     Joel Sherrill <joel@OARcorp.com>
+
+       * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
+       -Acpu() and -Amachine() to eliminate warnings.
+
+2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
+
+2002-02-14  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300-protos.h: Update the prototype for
+       const_costs.
+       * config/h8300/h8300.c (const_costs): Treat SET as a little
+       more expensive operation.
+       * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
+       reference to const_costs.
+
+2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
+
+2002-02-14  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/5503:
+       * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
+       use arguments from newtype.
+
+2002-02-13  Eric Christopher  <echristo@redhat.com>
+
+       * config/mips/mips.c (override_options): Add check for march/mipsX
+       on the same command line. Fix error message in cpu processing.
+       Remove architecture and ISA checks.
+
+2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
+
+        * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
+
+        * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
+
+2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
+
+        * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
+        alternatives.
+        ("*movv8hi_internal1"): Same.
+        ("*movv16qi_internal1"): Same.
+        ("*movv4sf_internal1"): Same.
+
+        * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
+        not push_reload for altivec modes.
+
+2002-02-13  Joel Sherrill  <joel@OARcorp.com>
+
+       * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
+       all RTEMS targets including removal of #includes from config/*/rtems*.h
+       file and adding them to tm_file setting. Added xm_defines=POSIX to
+       many targets.
+       * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
+       * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
+       * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
+       * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
+       * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
+       config/m68k/rtemself.h: Ditto.
+       * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
+       config/mips/rtems64.h: Ditto.
+       * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
+       * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
+       Ditto.
+       * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
+       config/sparc/rtemself.h: Ditto.
+       * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
+       * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
+       arm-rtems stanza closer to other arm-elf targets and made arm-rtems
+       more like arm-elf.
+       * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
+       config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
+       target made more similar to i386-elf.
+       * config/i386/t-rtems-i386: Added soft float support and multilibs.
+       * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
+       be similar to config/m68k/t-m68kelf.
+       * gthr-rtems.h: Encapsulate with extern "C" for C++.
+
+Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
+
+       * regmove.c (kill_value): Handle subregs.
+
+Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (mul patterns): Allow memory operand to be first;
+       add expanders where needed; fix constraints.
+       (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
+       Allow memory operand to be the first.
+
+       * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
+       operands.
+
+2002-02-13  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/5681:
+       * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
+       GET_MODE (x).
+
+2002-02-13  Jakub Jelinek  <jakub@redhat.com>
+
+       PR optimization/5547:
+       * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
+       all valid IA-32 address modes involving non-scaled %ebx and
+       GOT/GOTOFF as displacement.
+
+2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
+       after emitting ltorg insns.
+
+       * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
+       *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
+       *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
+       *abssf2): Fix "op_type" attribute.
+
+2002-02-13  Douglas B Rupp  <rupp@gnat.com>
+
+       * mkconfig.sh: Avoid using a subshell redirect.
+       ($output.T): Change to $(output)T.
+       (ENABLE_NLS): Remove unneeded undef.
+
+       * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
+       * config/alpha/x-vms (libsubdir): Define.
+
+       * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
+       register frame procedures. Optimize retrieving context.
+
+       * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
+       (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
+       * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
+
+Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
+       Make same change as for find_base_value.
+
+2002-02-13  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
+       of QImode and SImode.
+
+2002-02-13  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
+       length computation of movsi.
+       * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
+
+2002-02-13  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.md (subqi3): Tighten the predicate for
+       operands[2] to register_operand.
+
+Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
+
+2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
+
+        * config/rs6000/rs6000.md: Use predicate altivec_register_operand
+        for altivec_lvx* and altivec_stvx*.
+        ("*movv4si_internal"): Add constraint for loading from GPRs.
+        ("*movv8hi_internal1"): Same.
+        ("*movv16qi_internal1"): Same.
+        ("*movv4sf_internal1"): Same.
+
+        * config/rs6000/rs6000.c (altivec_register_operand): New.
+
+        * config/rs6000/rs6000.h (PREDICATE_CODES): Add
+        altivec_register_operand.
+
+2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
+       handle SYMBOL_REF.
+
+2002-02-13  Stan Shebs  <shebs@apple.com>
+
+        * c-typeck.c (digest_init): Handle vectors.
+        (really_start_incremental_init): Same.
+        (pop_init_level): Same.
+        (process_init_element): Same.
+
+        * varasm.c (output_constant): Same.
+
+        * expr.c (clear_storage): Same.
+        (store_constructor): Same.
+
+2002-02-12  Eric Christopher  <echristo@redhat.com>
+
+       * explow.c (hard_function_value): Add comment explaining
+       signed/unsigned comparison.
+
+2002-02-12  Jakub Jelinek  <jakub@redhat.com>
+
+       * jump.c (never_reached_warning): Add finish argument.
+       If finish is NULL, stop on CODE_LABEL, otherwise stop before first
+       real insn after end.
+       * rtl.h (never_reached_warning): Adjust prototype.
+       * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
+       * cfgrtl.c (flow_delete_block): Pass b->end as finish to
+       never_reached_warning.
+
+2002-02-12  Graham Stott  <grahams@redhat.com>
+
+       * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
+
+2002-02-12  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
+       logical shifts on H8/300.
+       (shift_alg_si): Improve several shifts on H8/300.
+       (get_shift_alg): Likewise.
+
+2002-02-12  Graham Stott  <grahams@redhat.com>
+
+       * config/pa/pa.c (compute_movstrsi_length): Fix typos.
+
+Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
+       Handle #ifdef POINTERS_EXTEND_UNSIGNED.
+
+2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
+       non-CONST_INT through default_assemble_integer.
+       <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
+       <case 8>: Abort for CONST_DOUBLE.
+
+2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
+       is specified.
+       * config/pa/pa-linux.h (LIB_SPEC): Delete.
+       * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
+
+2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
+
+       * config/stormy16/stormy16.md (zero_extendqihi2): New.
+
+2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
+
+       * regrename.c (regrename_optimize): Don't accept a
+       part-clobbered register if the replaced register is not part
+       clobbered.
+
+       * calls.c (store_one_arg): In the non-BLKmode non-partial case,
+       take padding into account when computing the argument value.
+
+       * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
+
+       * combine.c (try_combine): Apply substitutions in
+       CALL_INSN_FUNCTION_USAGE too.
+
+2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
+
+        * config/rs6000/rs6000.c (altivec_init_builtins): Handle
+        __builtin_altivec_abs*.
+        (bdesc_abs): New.
+
+        * config/rs6000/rs6000.h (rs6000_builtins): Add
+        ALTIVEC_BUILTIN_ABS*.
+
+        * config/rs6000/altivec.h: Use const char for builtins expecting
+        literals.
+        (vec_abs): New versions for C and C++.
+        (vec_abss): Same.
+
+2002-02-10  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
+       using Pmode.
+
+2002-02-10  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
+       constant definition from h8300.md.
+       (FRAME_POINTER_REGNUM): Likewise.
+       * config/h8300/h8300.md (define_constants): Add FP_REG.
+
+2002-02-10  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.c (print_operand): Remove redundant code.
+
+2002-02-10  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
+       * config/h8300/h8300.c (byte_reg): Make it static.
+
+2002-02-10  Richard Henderson  <rth@redhat.com>
+
+       PR c/5623
+       * c-typeck.c (incomplete_type_error): Handle flexible array members.
+
+2002-02-10  Richard Henderson  <rth@redhat.com>
+
+       PR c++/5624
+       * tree.c (append_random_chars): Don't abort if main_input_filename
+       does not exist.
+
+2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
+
+2002-02-10  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
+       (pushhi1): Likewise.
+
+2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
+       * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
+
+2002-02-09  David O'Brien  <obrien@FreeBSD.org>
+
+       * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
+       remove MASK_VIS.
+       (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
+
+2002-02-09  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
+       a half of an SImode register on H8/300.
+
+Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (movdi_2): Add missing '!'.
+
+2002-02-09  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.h: Fix formatting.  Remove commented-out
+       definitions.
+
+2002-02-09  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.md (length): Correct the distance valid
+       for the short branch.
+
+2002-02-09  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.md (iorhi3): Tighten the predicates.
+
+2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
+       registers in SImode.
+       (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
+       part-clobbered.
+
+       * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
+       patch.
+
+       Contribute sh64-elf.
+       2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
+       (sh_cannot_modify_jumps_p): New function.
+       2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
+       (sh_ms_bitfield_layout_p): New function.
+       2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
+                   Zack Weinberg  <zack@codesourcery.com>
+       * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
+       expand_simple_binop instead of expand_binop.
+       2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
+       use of .quad and .uaquad.
+       * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
+       TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
+       2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.md (movdi_const, movdi_const_32bit,
+       movdi_const_16bit): Make sure all CONSTs have modes.
+       (sym2PIC): Ditto, but by adjusting all callers.
+       * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
+       if the prologue calls the SHmedia argument decoder or register
+       saver.
+       2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
+       (TARGET_ASM_ALIGNED_DI_OP): Likewise.
+       (sh_expand_epilogue): Don't emit USE of return target register.
+       (prepare_move_operands): Legitimize DImode PIC addresses.
+       (sh_media_register_for_return): Skip tr0, used to initialize the
+       PIC register.
+       (sh_expand_prologue): Remove explicit USE of return register.
+       (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
+       CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
+       * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
+       (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
+       (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
+       EXTRA_CONSTRAINT_T.
+       (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
+       (MOVI_SHORI_BASE_OPERAND_P): New.
+       (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
+       (EXTRA_CONSTRAINT_T): Define in terms of them.
+       (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
+       * config/sh/sh.md (movsi_media, movsi_media_nofpu,
+       movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
+       alternatives supporting TARGET_REGS.
+       (UNSPEC_GOTPLT): New constant.
+       (movdi split): Move incrementing of LABEL_NUSES...
+       (movdi_const, movdi_const_32bit): Here.  Use
+       MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
+       (movdi_const_16bit): New.
+       (call, call_value) [flag_pic]: Use GOTPLT.
+       (call_pop, call_value_pop): New expands.
+       (call_pop_compact, call_pop_rettramp): New insns.
+       (call_value_pop_compact, call_value_pop_rettramp): New insns.
+       (sibcall) [flag_pic]: Use GOT.
+       (builtint_setjmp_receiver): Remove bogus, unused expand.
+       (GOTaddr2picreg): Implement for SHcompact and SHmedia.
+       (*pt, *ptb, ptrel): New insns.
+       (sym2GOT): Handle DImode GOT.
+       (sym2GOTPLT, symGOTPLT2reg): New expands.
+       (sym2PIC): New expand.
+       (shcompact_return_tramp): Use GOTPLT to return trampoline.
+       (shcompact_return_tramp_i): Use return register explicitly.
+       * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
+       disable flag_reorder_blocks.
+       2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.md (sibcall_compact): Reorder return, uses and
+       clobbers, for clarity.
+       (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
+       restoring of r0 in macl as MAYBE_DEAD.
+       2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
+       * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
+       alter_subreg all over.
+       (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
+       reload, instead of emitting instructions that would require
+       reloading.
+       (casesi_load_media): Add missing modes.
+       2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
+       as used if the argument decoder is called.
+       2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
+       Pmode, then extend it to DImode if necessary.
+       2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
+       * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
+       constants in FPU-enabled SHmedia, let them be loaded from memory.
+       2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
+       Adjust whitespace in assembly output templates.
+       2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
+       * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
+       mode of if_then_else.
+       2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
+       sh.h.
+       2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
+                   Joern Rennecke <amylaar@redhat.com>
+       * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
+       (SUBTARGET_CPP_PTR_SPEC): New.
+       (SUBTARGET_CPP_SPEC): Remove.
+       2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
+       * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
+       Fix typo in previous checkin.
+       2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
+       * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
+       2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
+                   Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
+       what single FP register can hold for SHmedia target.
+       2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
+                   Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
+       Do not split into SUBREG.
+       2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
+       and added new functions as specified in SH5 ABI r9.
+       2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
+       8-byte boundary.
+       2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.c (dump_table): Add const0_rtx in calls of
+       gen_consttable_4 and gen_consttable_8.  Emit multiple labels
+       and consttable_window_ends.
+       2001-06-03  Graham Stott  <grahams@redhat,com>
+       * config/sh/sh.md (movdi split): Remove unused variable last_insn.
+       2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.c (print_operand): Handle floating-point pair,
+       vector and matrix registers.
+       * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
+       vector modes into account.
+       * config/sh/sh.md (movv2sf): Split move between registers into
+       movdf.
+       (movv4sf, movv16sf): Introduce insns that get split only after
+       reload.
+       * config/sh/shmedia.h: Fix Copyright dates.
+       * config/sh/ushmedia.h: Likewise.  Move loop counter
+       declarations into conditionals that uses them.
+       (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
+       loop boundary.
+       * config/sh/sshmedia.h: Fix Copyright dates.
+       (sh_media_PUTCFG): Fix constraints.
+       2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
+       ptrmemfunc_vbit_in_delta for SH5.
+       2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
+       * invoke.texi: Likewise.
+       2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
+       GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
+       GCC_pop_shmedia_regs_nofpu): New global symbols.
+       * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
+       * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
+       * config/sh/sh.c (calc_live_regs): Account for PR's saving in
+       compact function with nonlocal labels.
+       (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
+       (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
+       (initial_elimination_offset): Account for their stack space.
+       * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
+       * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
+       movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
+       movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
+       least one of the operands to be a register.
+       (movv2sf): Likewise.  Renamed to movv2sf_i.
+       (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
+       prepare_move_operands() before emitting SHmedia insns.
+       2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
+       Don't save nor initialize r12.  Don't mis-align the stack.
+       Pad the code with a nop.
+       * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
+       stack.
+       2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
+       * gcc/longlong.h (__umulsidi3, count_leading_zeros)
+       [__SHMEDIA__]: Implement.
+       2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.md: Set latency of `pt' closer to reality.
+       (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
+       movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
+       Set move, load and store type attributes.
+       * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
+       * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
+       profiling.
+       * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
+       * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
+       * config/sh/sh.c (sh_media_register_for_return): New function.
+       (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
+       branch-target register.
+       (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
+       * config/sh/sh.md (return_media_i): Use any call-clobbered
+       branch-target register.
+       (return_media): If r18 wasn't copied in the prologue, copy it
+       here.
+       * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
+       Clear class FP0_REGS.
+       * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
+       from elf.h.
+       2001-03-08  DJ Delorie  <dj@redhat.com>
+       * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
+       2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
+       2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
+       2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
+       return value correctly for call_cookie.
+       2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/crt1.asm (start): Modified so as to call
+       ___setup_argv_and_call_main.
+       2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
+       SHmedia mode.
+       2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
+       (STRIP_NAME_ENCODING): Use it.
+       (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
+       2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
+       prepare_scc_operands().
+       * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
+       (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
+       2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
+       2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
+       * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
+       used in shcompact_incoming_args.
+       * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
+       change.
+       * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
+       mode.
+       * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
+       Adjust accordingly.
+       * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
+       Simplify.  Adjust.  Add sanity check.
+       * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
+       FPU_SINGLE_BIT.
+       * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
+       TARGET_SHCOMPACT.
+       (udivsi3, divsi3): Use them.
+       (force_mode_for_call): New insn.
+       (call, call_value, sibcall_value): Emit it before SHcompact
+       calls.
+       2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.md (call, call_value, sibcall): Make sure the
+       call cookie is non-NULL before taking its value.
+       2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
+       * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
+       2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.md (shcompact_incoming_args): Set argument memory
+       block.
+       * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
+       * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
+       temporary for stack adjusts.  Use MACL and MACH to pass
+       arguments to shcompact_incoming_args.
+       * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
+       clobber r1.
+       * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
+       (nested_trampoline): Load static chain address into r1.
+       * config/sh/sh.md (movdi_media splits): Fix sign-extension.
+       2001-01-07  Alexandre Oliva  <aoliva@redhat.com
+       * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
+       fp_arith_reg_operand().
+       2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.md (casesi): Sign-extend the first two operands,
+       and use signed compares for them.
+       * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
+       4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
+       ones properly aligned.
+       (find_barrier): Account for extra alignment needed for 8-byte wide
+       constants.
+       (machine_dependent_reorg): Require a label for the second 4-byte
+       constant after an 8-byte one.
+       * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
+       change.
+       2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
+       last_float when switching float modes.
+       * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
+       auto-increment for general-purpose registers.
+       * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
+       result.
+       * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
+       for stack adjust.
+       * config/sh/sh.c (sh_builtin_saveregs): Support using all
+       registers for varargs.
+       2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
+       * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
+       CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
+       (CALL_COOKIE_INT_REG_SHIFT): Adjust.
+       (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
+       call_cookie accordingly.
+       (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
+       (SHCOMPACT_BYREF): Likewise.
+       (SHCOMPACT_FORCE_ON_STACK): New macro.
+       * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
+       (sh_builtin_saveregs): Likewise.
+       * config/sh/lib1funcs.asm (shcompact_call_trampoline,
+       shcompact_incoming_args): Use new shift values.  Support
+       sequences of consecutive and non-consecutive pushes/pops.
+       * config/sh/sh.md (return): Don't explicitly use PR_REG.
+       2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
+       * config/sh/sh.h (TEXT_SECTION): Define.
+       * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
+       2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
+       * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
+       return values on FPU-enabled SHmedia.
+       (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
+       FPU-enabled SHmedia.
+       (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
+       value is returned in a non-FP reg and is not returned by
+       reference.
+       * config/sh/sh.md (shcompact_return_tramp_i): Change type to
+       jump_ind.
+       2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
+       (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
+       quad-aligned to be passed by callee-copy reference.
+       2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
+       * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
+       2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
+       copying low-numbered FP regs to r7 and r8.
+       * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
+       FP regs to general-purpose regs only if the copy was passed on the
+       stack.
+       * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
+       copying FP reg to r9.
+       * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
+       copy FP regs to general-purpose regs only in outgoing calls.
+       * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
+       change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
+       HOST_WIDE_INT.
+       * config/sh/sh.h (struct sh_args): Document all fields.
+       (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
+       passed partially on the stack should not consider making
+       sibcalls.
+       * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
+       stack_regs only for incoming calls.  When passing FP args,
+       make sure there are FP regs available before modifying
+       call_cookie.
+       (SHCOMPACT_BYREF): Pass double args in general-purpose
+       registers by reference.
+       2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
+       attempt to generate sibcalls if the caller got any arguments
+       by reference.
+       * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
+       * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
+       to 8-byte boundaries.
+       * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
+       * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
+       * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
+       stored in the stack.
+       * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
+       for the offsets to have the ISA bit set.
+       (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
+       invocation.  Use beq instead of bgt to mark end of sequence of
+       loads.
+       (shcompact_incoming_args): Fix store of r2.  Use beq instead of
+       bgt to mark end of sequence of stores.
+       * config/sh/sh.c (arith_operand): Don't check whether
+       CONST_OK_FOR_J for now.
+       * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
+       instead of long for conversion.
+       2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.c (print_operand_address): Convert INTVAL to int
+       before passing it to fprintf.
+       2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
+       Call set_fpscr before reading/writing SR.
+       * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
+       Call set_fpscr.
+       * config/sh/lib1funcs.asm: Add `.align 2' directives before
+       SHmedia code.
+       (FMOVD_WORKS): Define on SH5 with FPU.
+       (set_fpscr): Define on SH5.  Remove separate _fpscr_values
+       setting.
+       * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
+       _fpscr_values.
+       2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
+       * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
+       address.
+       (ia_main_table): Ditto.
+       2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
+       * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
+       the definitions from sh.h.
+       * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
+       TARGET_SH5.
+       (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
+       * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
+       * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
+       2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
+       Increment LABEL_NUSES.
+
+       * config/sh/sh.h (SIZE_TYPE): Define as conditional on
+       TARGET_SH5.
+       (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
+       defined.
+       * config/sh/elf.h (SIZE_TYPE): Likewise.
+       * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
+       * config/sh/lib1funcs.asm (shcompact_call_trampoline,
+       shcompact_incoming_args): Load switch table addresses using
+       datalabel.
+       * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
+       (NO_BUILTIN_SIZE_TYPE): Define.
+       (SIZE_TYPE): Don't define.
+       * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
+       * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
+       definition of __SH5__=32 for -m5-compact-nofpu.
+       * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
+       ADDR_DIFF_VEC.
+       2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
+       2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
+       (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
+       (INSN_LENGTH_ALIGNMENT): Likewise.
+       2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.md (call, call_value, sibcall): Simplify
+       copying of non-branch-target register.
+       2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
+       * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
+       * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
+       2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
+       floating-point values as structs.
+       (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
+       (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
+       general-purpose register.
+       (SH5_PROTOTYPED_FLOAT_ARG): New macro.
+       2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
+       * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
+       * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
+       (ENCODE_SECTION_INFO): Enclose variables and constants in
+       DATALABEL unspecs.
+       (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
+       (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
+       (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
+       * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
+       only for LABEL_REFs.  For SYMBOL_REFs, prepend
+       SH_DATALABEL_ENCODING to the symbol name.
+       * config/sh/sh.md (indirect_jump): Use SUBREG instead of
+       convert_mode().
+       2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
+       UNSPEC_DATALABEL.
+       * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
+       * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
+       (DATALABEL_REF_P): Don't require CONST.
+       (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
+       REL label.
+       2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
+       right.
+       2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.md (movsi_media, call, call_value, sibcall):
+       Use shallow_copy_rtx and PUT_MODE to change the mode of
+       SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
+       * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
+       on SHmedia using GENERAL_REGs.
+       * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
+       bltu_media_i): Fix reversion of conditions.
+       2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
+       * config/sh/sh.c (output_far_jump): Save r13 in macl.
+       2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
+       2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
+       (GCC_nested_trampoline): Likewise.
+       * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
+       * config/sh/sh.c (gen_datalabel_ref): Define.
+       * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
+       (INITIALIZE_TRAMPOLINE): Likewise.
+       (TRAMPOLINE_ADJUST_ADDRESS): Define.
+       (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
+       (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
+       (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
+       * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
+       (ic_invalidate): Adjust for SH5.
+       (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
+       * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
+       _nested_trampoline.
+       2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
+       (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
+       2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
+       * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
+       2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.c (target_reg_operand): Match only target-branch
+       registers and pseudos that aren't virtual registers.
+       * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
+       Copy operands that don't match target_reg_operand to pseudos.
+       (call_media, call_value_media, sibcall_media): Use
+       target_reg_operand instead of target_operand.
+       2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
+       * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
+       * config/sh/sh.c (target_reg_operand): Match hardware registers
+       other than branch-target registers.
+       * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
+       * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
+       (fpscr_values) [SH5 == 32]: Define.
+       * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
+       * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
+       Handle function addresses coming in SUBREGs.
+       2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/lib1funcs.asm (shcompact_call_trampoline,
+       shcompact_return_trampoline): Use datalabel where appropriate.
+       2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
+       general-purpose register to copy one branch-target register to
+       another.
+       2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.c (target_operand): Accept LABEL_REFs and
+       SYMBOL_REFs with VOIDmode.
+       * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
+       bltu_media_i): New insns.
+       2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
+       (INIT_CUMULATIVE_ARGS): Likewise.
+       2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
+       * machmode.def (V16SFmode): New mode.
+       * c-common.c (type_for_mode): Support V2SF and V16SF.
+       * tree.c (build_common_tree_nodes_2): Likewise.
+       * tree.h (tree_index): Likewise.
+       * calls.c (emit_call_1): Take args_so_far.  Adjust all
+       callers.  Introduce CALL_POPS_ARGS.
+       * tm.texi (CALL_POPS_ARGS): Document.
+       * config/sh/crt1.asm: Implement in SHmedia mode.
+       * config/sh/crti.asm, config/sh/crtn.asm: Likewise
+       * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
+       (DBX_REGISTER_NUMBER): Renumber registers for SH5.
+       * config/sh/lib1funcs.asm: Disable functions unused in SH5.
+       Implement divsi and udivsi in SHmedia mode.  Introduce
+       SHcompact trampolines.
+       * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
+       only in SHmedia64.
+       (regno_reg_class): Rewrite.
+       (fp_reg_names): Remove.
+       (sh_register_names, sh_additional_register_names): New.
+       (print_operand): Added `u'.  Support SUBREGs in addresses.
+       Add parentheses around shifted CONSTs.
+       (output_file_start): Output .mode and .abi directives.
+       (shiftcosts, addsubcosts, multcosts): Adjust.
+       (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
+       (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
+       (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
+       bytes, not registers.  Take into account the need for the
+       SHcompact incoming args trampoline.  Adjust all callers.
+       (sh_expand_prologue): Take stack_regs into account.  Call
+       incoming args trampoline.  Keep stack aligned as per SH5 ABI.
+       (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
+       stack aligned as per SH5 ABI.
+       (sh_builtin_saveregs): Support SH5 ABI.
+       (sh_build_va_list, sh_va_start): Likewise.
+       (initial_elimination_offset): Take alignment into account.
+       Compute location of PR according to the SH5 stack frame.
+       (arith_reg_operand): Reject branch-target registers.
+       (shmedia_6bit_operand): New.
+       (logical_operand): Use CONST_OK_FOR_P on SHmedia.
+       (target_reg_operand): Match DImode only.  Accept SUBREGs.
+       (target_operand): New.
+       * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
+       (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
+       SIBCALL_REGS for SHmedia.
+       (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
+       (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
+       (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
+       (TARGET_SWITCHES): New SH5 flags.
+       (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
+       VALID_REGISTER_P to disable unsupported registers.
+       (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
+       (POINTER_SIZE, PARM_BOUNDARY): Adjust.
+       (FUNCTION_ARG_PADDING): Define.
+       (FASTEST_ALIGNMENT): Adjust.
+       (SH_REGISTER_NAMES_INITIALIZER): New.
+       (sh_register_names): Declare.
+       (DEBUG_REGISTER_NAMES): Define.
+       (REGISTER_NAMES): Define based on sh_register_names.
+       (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
+       (sh_additional_register_names): Declare.
+       (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
+       (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
+       (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
+       (REGISTER_NATURAL_MODE): Define.
+       (FIRST_PSEUDO_REGISTER): Adjust.
+       (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
+       (HARD_REGNO_CALL_PART_CLOBBERED): Define.
+       (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
+       (VECTOR_MODE_SUPPORTED_P): Define.
+       (REG_CLASS_CONTENTS): Adjust.
+       (SMALL_REGISTER_CLASSES): Adjust.
+       (REG_ALLOC_ORDER): Adjust.
+       (INDEX_REG_CLASS): Adjust.
+       (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
+       (CONST_OK_FOR_LETTER_P): Adjust.
+       (PREFERRED_RELOAD_CLASS): Adjust.
+       (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
+       (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
+       (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
+       (FIRST_FP_PARM_REG): Adjust.
+       (CALL_POPS_ARGS): Define.
+       (FUNCTION_ARG_REGNO_P): Adjust.
+       (struct sh_args): New fields.
+       (GET_SH_ARG_CLASS): Adjust.
+       (INIT_CUMULATIVE_ARGS): Adjust.
+       (INIT_CUMULATIVE_INCOMING_ARGS): Define.
+       (FUNCTION_ARG_ADVANCE): Adjust.
+       (FUNCTION_ARG): Adjust.
+       (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
+       (FUNCTION_ARG_CALLEE_COPIES): Define.
+       (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
+       (STRICT_ARGUMENT_NAMING): Define.
+       (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
+       (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
+       (SH5_WOULD_BE_PARTIAL_NREGS): Define.
+       (SETUP_INCOMING_VARARGS): Adjust.
+       (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
+       (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
+       (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
+       (SUBREG_OK_FOR_INDEX_P): Adjust.
+       (EXTRA_CONSTRAINT_S): Update.
+       (EXTRA_CONSTRAINT_T): New.
+       (EXTRA_CONSTRAINT): Adjust.
+       (GO_IF_LEGITIMATE_INDEX): Adjust.
+       (GO_IF_LEGITIMATE_ADDRESS): Adjust.
+       (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
+       (MOVE_MAX): Adjust.
+       (MAX_MOVE_MAX): Define.
+       (Pmode): Adjust.
+       (CONST_COSTS): Adjust.
+       (REGISTER_MOVE_COST): Adjust.
+       (BRANCH_COST): Adjust.
+       (TEXT_SECTION_ASM_OP): Adjust.
+       (DBX_REGISTER_NUMBER): Adjust.
+       (ASM_OUTPUT_DOUBLE_INT): New.
+       (UNALIGNED_DOUBLE_INT_ASM_OP): New.
+       (PREDICATE_CODES): Adjust.
+       (PROMOTE_MODE): Adjust.
+       (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
+       * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
+       (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
+       (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
+       (DR0_REG, DR2_REG, DR4_REG): Renumber.
+       (TR0_REG, TR1_REG, TR2_REG): New.
+       (XD0_REG): Renumber.
+       (UNSPEC_COMPACT_ARGS): New.
+       (type): Added pt and ptabs.
+       (length): Default to 4 on SHmedia.  Default pt length to 12
+       and     20 on SHmedia32 and SHmedia64, respectively.
+       (pt): New function unit.
+       (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
+       Add whitespace between operands of SHmedia instructions.
+       (movdicc): Fix.
+       (adddi3_media, addsi3_media): Adjust constraints.
+       (subsi3) [SHmedia]: Force operand 1 into a register.
+       (udivsi3_i1_media, udivsi3_i4_media): New.
+       (udivsi3): Support SHmedia.
+       (divsi3_i1_media, divsi3_i4_media): New.
+       (divsi3): Support SHmedia.
+       (anddi3, iordi3, xordi3): Adjust constraints.
+       (zero_extendhidi2, zero_extendqidi2): New.
+       (extendsidi2, extendhidi2, extendqidi2): New.
+       (push, pop, push_e, push_fpul, push_4): Disable on SH5.
+       (pop_e, pop_fpul, pop_4): Likewise.
+       (movsi_media): Support FP and BT registers.
+       (movsi_media_nofpu): New.  Adjust splits to DImode.
+       (lduw, ldub): Renamed to zero_extend* above.
+       (movqi_media): Fix typo.
+       (movdi_media): Support FP and BT registers.
+       (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
+       (movdi_const_32bit): New.
+       (shori_media): Require immediate operand.  Use `u' for output.
+       (movdf_media, movsf_media): Simplified.
+       (movdf_media_nofpu, movsf_media_nofpu): New.
+       (movdf, movsf): Adjust
+       (movv2sf, movv2sf, movv16sf): New.
+       (beq_media, beq_media_i): Adjust constraints.  Don't use
+       scratch BT register.
+       (bne_media, bne_media_i): Likewise.
+       (bgt_media, bgt_media_i): Likewise.
+       (bge_media, bge_media_i): Likewise.
+       (bgtu_media, bgtu_media_i): Likewise.
+       (bgeu_media, bgeu_media_i): Likewise.
+       (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
+       bunordered): Emit jump insn.  Force operands to registers when
+       needed.
+       (jump_media, jump): Simplify.
+       (call_compact, call_compact_rettramp): New.
+       (call_value_compact, call_value_compact_rettramp): New.
+       (call_media, call_value_media): Simplify.
+       (sibcall_compact, sibcall_media): New.
+       (call, call_value): Adjust for SHmedia and SHcompact.
+       (sibcall, sibcall_value, untyped_call): Likewise.
+       (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
+       (indirect_jump): Adjust for SHmedia.
+       (casesi_jump_media): New.
+       (nop): Re-enable for SHmedia.
+       (call_site): Restrict to SH1.
+       (casesi): Adjust for SHmedia.
+       (casesi_shift_media, casesi_load_media): New.
+       (return): Explicitly use PR register.  Call return trampoline
+       on SHcompact.
+       (return_i): Explicitly use PR register.
+       (shcompact_return_tramp, shcompact_return_tramp_i): New.
+       (return_media): Adjust.
+       (shcompact_incoming_args): New.
+       (epilogue): Adjust.
+       (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
+       (movstrsi): Disable on SH5.
+       (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
+       (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
+       (subsf3, subsf3_media): Likewise.
+       (mulsf3, mulsf3_media, mac_media): Likewise.
+       (divsf3, divsf3_media): Likewise.
+       (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
+       (floatsisf2, fux_truncsfsi2): Likewise.
+       (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
+       constraints.
+       (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
+       (cmpunsf_media, cmpsf): Likewise.
+       (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
+       (abssf2, abssf2_media): Likewise.
+       (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
+       (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
+       (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
+       (floatsidf2, fix_truncdfsi2): Likewise.
+       (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
+       constraints.
+       (cmpeqdf_media, cmpgtdf_media): Likewise.
+       (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
+       (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
+       (absdf2, absdf2_media): Likewise.
+       (extendsfdf2, extendsfdf2_media): Likewise.
+       (truncsfdf2, truncsfdf2_media): Likewise.
+       * config/sh/sh64.h: New file.
+       * config/sh/t-sh64: New file.
+       * config/sh/shmedia.h: New file.
+       * config/sh/ushmedia.h: New file.
+       * config/sh/sshmedia.h: New file.
+       * configure.in: Added sh64-*-elf.
+       * configure: Rebuilt.
+       2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
+       (reg_class_from_letter): Use `b' for TARGET_REGS.
+       (print_operand): Support `%M', `%m', `AND' and
+       `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
+       (andcosts): Adjust for SHmedia.
+       (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
+       Likewise.
+       (target_reg_operand): New function.
+       * config/sh/sh-protos.h (target_reg_operand): Declare.
+       * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
+       FP registers on SH5.
+       (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
+       on SH4.
+       (TARGET_REGISTER_P): New macro.
+       (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
+       (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
+       (EXTRA_CONSTRAINT_S): New macro.
+       (EXTRA_CONSTRAINT): Adjust.
+       (FLOAT_TYPE_SIZE): Define to 32.
+       (Pmode): DImode on SHmedia.
+       (CONST_COSTS): Adjust for SHmedia literals.
+       (PREDICATE_CODES): Added target_reg_operand.
+       (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
+       * config/sh/sh.md: Remove all attrs from SHmedia insns.
+       (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
+       (cmpdi): Accept SHmedia.
+       (movdicc_false, movdicc_true): New insns.
+       (movdicc): New expand.
+       (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
+       no_new_pseudos.
+       (addsi3_media): Match `S' constraint.
+       (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
+       (negdi2): Expand for SHmedia.
+       (one_cmpldi2): New expand.
+       (zero_extendsidi2): Change from expand to insn.
+       (extendsidi2): Add constraints.
+       (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
+       LD/ST address.  Fix SI immediate loading split.
+       (movhi_media, movqi_media, lduw, ldub): New insns.
+       (movhi, movqi): Accept SHmedia.
+       (shori_media, movdi_media): Relax input constraints.  Split
+       symbolic constants.
+       (movdf_media, movsf_media): New insn.  New split to movdi.
+       (movdf, movsf): Match on SHmedia.
+       (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
+       bgeu_media): New insns and splits.  New insns with `_i' suffix.
+       (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
+       (bunordered): New expand.
+       (jump_compact): Renamed from `jump'.
+       (jump_media): New insn.
+       (jump): New expand.
+       (call_media, call_value_media): New insns.
+       (call, call_value): Adjust.
+       (indirect_jump_compact): Renamed from `indirect_jump'.
+       (indirect_jump_media): New insn.
+       (indirect_jump): New expand.
+       (untyped_call, return): Accept SHmedia.
+       (return_media): New insn.
+       (prologue, epilogue, blockage): Accept SHmedia.
+       (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
+       (sunordered): New expand.
+       (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
+       cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
+       (addsf3_media, subsf3_media, mulsf3_media, mac_media,
+       divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
+       fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
+       cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
+       abssf2_media): New insns.
+       (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
+       cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
+       (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
+       floatdidf2, floatsidf2_media, fix_truncdfdi2,
+       fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
+       cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
+       absdf2_media): New insns.
+       (extendsfdf2, truncdfsf2): Adjust for SHmedia.
+       (extendsfdf2_media, truncdfsf2_media): New insns.
+       2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
+       * config/sh/sh.h (CONST_OK_FOR_J): Document.
+       (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
+       * config/sh/sh.md (adddi3): New expand.
+       (adddi3_media, adddi3z_media): New insns.
+       (adddi3_compact): Renamed from adddi3.
+       (addsi3_media): Use add.l r63 to add constant zero.
+       (subdi3): New expand.
+       (subdi3_media): New insn.
+       (subdi3_compact): Renamed from subdi3.
+       (mulsidi3): New expand.
+       (mulsidi3_media): New insn.
+       (mulsidi3_compact): Renamed from mulsidi3.
+       (umulsidi3): New expand.
+       (umulsidi3_media): New insn.
+       (umulsidi3_compact): Renamed from umulsidi3.
+       (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
+       (ashlsi3, ashrsi3, lshrsi3): Use them.
+       (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
+       (ashldi3, ashrdi3, lshrdi3): Use them.
+       (zero_extendsidi2): New expand.
+       (extendsidi2): New insn.
+       (movsi_media): New insn.  Split to movdi to load constants.
+       (movsi): Enable for shmedia.
+       (movdi_media): New insn.  Use shori_media to load wide constants.
+       (short_media): New insn.
+       (movdi): Enable for shmedia.
+       2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
+       * config/sh/sh.h (CPP_SPEC): Added `m5'.
+       (SUBTARGET_CPP_SPEC): Added `!m5'.
+       (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
+       (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
+       to all other SH variants.
+       (TARGET_DEFAULT): Set to SH1_BIT.
+       (OVERRIDE_OPTIONS): Recognize sh5 CPU.
+       (BITS_PER_WORD): Raise to 64 on shmedia.
+       (MAX_BITS_PER_WORD): Change to 64.
+       (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
+       (INT_TYPE_SIZE): Keep as 32.
+       (UNITS_PER_WORD): Raise to 8 on shmedia.
+       (MIN_UNITS_PER_WORD): Keep as 4.
+       (POINTER_SIZE): Raise to 64 on shmedia.
+       (CONST_OK_FOR_J): New macro.
+       (CONST_OK_FOR_LETTER_P): Use it.
+       (processor_type): Add PROCESSOR_SH5.
+       * config/sh/sh.md: Conditionalize all expands, insns and
+       splits to TARGET_SH1.
+       (cpu): Added sh5.
+       (addsi3_compact): Renamed from...
+       (addsi3): Now an expand.
+       (addsi3_media, subsi3_media): New insns.
+       (subsi3): Don't negate constants with SHmedia.
+
+       * hooks.c: New file.
+       * hooks.h: New file.
+       * Makefile.in (HOOKS_H): New.
+       (TARGET_DEF_H): Added $(HOOKS_H).
+       (OBJS): Added hooks.o.
+       (cfgcleanup.o, bb-reorder.o): Added target.h.
+       (hooks.o): Added dependencies.
+       * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
+       (TARGET_INITIALIZER): this.
+       * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
+       * target.h (struct gcc_target): Added cannot_modify_jumps_p.
+       * bb-reorder.c: Include target.h.
+       (reorder_basic_blocks): Skip if cannot modify jumps.
+       * cfgcleanup.c: Include target.h.
+       (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
+
+2002-02-08  Chris Demetriou  <cgd@broadcom.com>
+
+        * config/mips/mips.md (casesi_internal, casesi_internal_di):
+        Protect jump delay slot instructions with .set noreorder and
+        .set nomacro.
+
+2002-02-08  Chris Demetriou  <cgd@broadcom.com>
+
+       * config/mips/mips.md (casesi_internal_di): Calculate
+       the index into the target offset table correctly.
+
+2002-02-08  Richard Henderson  <rth@redhat.com>
+
+       * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
+       * final.c (output_addr_const): Accept and discard SUBREG.
+       * varasm.c (decode_addr_const): Don't abort on unknown expressions --
+       mark them unknown instead.
+       (simplify_subtraction): Handle RTX_UNKNOWN.
+       (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
+
+2002-02-08  David Edelsohn  <edelsohn@gnu.org>
+
+       * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
+
+2002-02-08  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
+
+2002-02-08  Andreas Jaeger  <aj@suse.de>
+
+       * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
+       * config/i386/t-linux64: New file.
+
+2002-02-08  Jakub Jelinek  <jakub@redhat.com>
+
+       * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
+       * c-parse.in (compstmt): Clear last_expr_type.
+
+2002-02-07  Richard Henderson  <rth@redhat.com>
+
+       * loop.c (strength_reduce): Sink final_value when not
+       eliminating a biv.
+
+2002-02-07  David O'Brien  <obrien@FreeBSD.org>
+
+       * config/sparc/freebsd.h: Fix mismatched spec {.
+
+2002-02-07  Richard Henderson  <rth@redhat.com>
+
+       * cfgrtl.c: Include recog.h and insn-config.h.
+       (keep_with_call_p): Fix general_operand invocation.
+       * Makefile.in (cfgrtl.o): Update dependencies.
+
+2002-02-07  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
+       comment.  Accept HImode only if TARGET_H8300.
+
+2002-02-07  Eric Christopher  <echristo@redhat.com>
+
+       * config/mips/crtn.asm: Cleanup #ifdefs.
+
+2002-02-07  Eric Christopher  <echristo@redhat.com>
+
+       * config/mips/crti.asm: Add changes for mips16. mips16 uses
+       register 7 as RA instead of $31.
+       * config/mips/crtn.asm: Ditto.
+       * config/mips/mips.c (mips_move_2words): Add case for
+       TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
+       (compute_frame_size): Fix typo.
+       (save_restore_insns): Ditto.  Make documentation about using
+       register $7 as return register more precise.
+       (mips_expand_epilogue): Fix comment. Add code to work around not
+       being able to add to the stack pointer directly.
+       * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
+       to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
+       epilogue.
+
+2002-02-07  Tom Rix  <trix@redhat.com>
+
+       * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
+       immediates in ldu and stdu DS opcode field.
+       * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
+       * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
+       * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
+
+2002-02-07  Jeff Sturm  <jsturm@one-point.com>
+
+       * config/sparc/sparc.c (compute_frame_size): Don't correct frame
+       offset for stack bias.
+
+2002-02-07  H.J. Lu <hjl@gnu.org>
+
+       * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
+
+2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
+
+Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
+
+       * i386-protos.h (x86_order_regs_for_local_alloc): Declare
+       * i386.c (x86_order_regs_for_local_alloc): New global function.
+       * i386.h (REG_ALLOC_ORDER): CLeanup.
+       (ORDER_REGS_FOR_LOCAL_ALLOC): New.
+
+2002-02-07  Richard Henderson  <rth@redhat.com>
+
+       PR optimization/2463
+       * alias.c (find_base_value): Recall base values for fixed hard regs.
+       * loop.c (loop_regs_update): Don't use single_set on non-insns.
+
+2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/mips/mips.md (define_delay) [mips16]: Adjust required
+       length.
+
+2002-02-06  Richard Henderson  <rth@redhat.com>
+
+       PR c/5609
+       * stmt.c (resolve_operand_name_1): Take more care with mixed
+       named and unnamed operands.
+
+2002-02-06  Janis Johnson  <janis187@us.ibm.com>
+           Jan Hubicka  <jh@suse.cz>
+
+       * loop.c (remove_constant_addition): Avoid clobbering a shared
+       CONST expression.
+
+2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
+       * config/s390/t-linux64: New file.
+       * config/s390/libgcc-glibc.ver: New file.
+
+2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/linux64.h: Delete file.
+       * config/s390/s390x.h: New file.
+       * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
+       as target header file.
+       * config/s390/linux.h (TARGET_VERSION): Define depending on
+       DEFAULT_TARGET_64BIT.
+       (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
+       (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
+       (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
+       (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
+       (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
+       (EXTRA_SPEC): New define.
+       * config/s390/s390.h (TARGET_VERSION): Define depending on
+       DEFAULT_TARGET_64BIT.
+       (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
+
+2002-02-06  Jason Merrill  <jason@redhat.com>
+
+       * c-decl.c (finish_function): Warn about a non-void function with
+       no return statement and no abnormal exit.
+       (current_function_returns_abnormally): New variable.
+       (start_function): Clear it.
+       (struct c_language_function): Add returns_abnormally.
+       (push_c_function_context): Save it.
+       (pop_c_function_context): Restore it.
+       (builtin_function): Set TREE_THIS_VOLATILE on return fns.
+       (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
+       an explicit return type.
+       * c-tree.h: Declare current_function_returns_abnormally.
+       (C_FUNCTION_IMPLICIT_INT): New macro.
+       * c-typeck.c (build_function_call): Set it.
+       (c_expand_return): Set current_function_returns_value even if the
+       value is erroneous.
+
+2002-02-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/5420:
+       * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
+       unsafe for reevaluation.
+
+2002-02-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/5482:
+       * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
+       EXPR_STMT, but COMPOUND_STMT, recurse into it.
+
+2002-02-06  Richard Henderson  <rth@redhat.com>
+
+       * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
+       be a general_operand.  Dest for function value must be a pseudo.
+
+2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
+       as SYMBOL_REFs from the constant pool.
+
+2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
+
+       * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
+       passed by invisible reference.
+
+2002-02-05  Richard Henderson  <rth@redhat.com>
+
+       * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
+
+2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       Implement using "base addresses" in insn operands as default.
+       * config/mmix/mmix.c (mmix_conditional_register_usage): if
+       -mabi=gnu, modify fixed_regs to fit the GNU ABI.
+       (mmix_extra_constraint): Use 'R' to indicate that GETA should be
+       used to read the rtx value.
+       (mmix_target_asm_function_epilogue): Fix spacing.
+       (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
+       (mmix_legitimate_address): Ditto.
+       (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
+       should be loaded with a GETA insn.  Don't allocate needless extra
+       char for nul termination and fix misleading comment.
+       (mmix_print_operand_address): Handle constants if
+       TARGET_BASE_ADDRESSES.
+       (mmix_output_register_setting): Use base addressing if
+       TARGET_BASE_ADDRESSES and the number of insns is 3.
+       * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
+       * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
+       to use R as constraint, add LDA to match s.
+       * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
+       (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
+       (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
+       (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
+       (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
+       order with other fixed registers.
+       (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
+       other parameter/call-clobbered registers.
+       * doc/invoke.texi (Option Summary) <MMIX Options>: Add
+       -mbase-addresses, -mno-base-addresses.
+       (MMIX Options): Ditto.
+
 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
 
        * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
@@ -130,7 +1620,7 @@ Mon Feb     4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
        (set_reg_plus_d): Likewise.
        (hppa_expand_prologue): Likewise.
        (hppa_expand_epilogue): Likewise.
-       
+
 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
 
        * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
@@ -175,7 +1665,7 @@ Mon Feb     4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
        * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
        any geenral register.
-       
+
 2001-02-04  Bernd Schmidt  <bernds@redhat.com>
 
        * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect