1. 09 Feb, 2002 2 commits
    • Contribute sh64-elf. · fa5322fa
      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.
      
      From-SVN: r49630
      Alexandre Oliva committed
    • hooks.c: New file. · e4ec2cac
      * 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.
      
      From-SVN: r49627
      Alexandre Oliva committed
  2. 08 Feb, 2002 1 commit
  3. 06 Feb, 2002 1 commit
    • Implement using "base addresses" in insn operands as default. · a824924d
      	* 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.
      
      From-SVN: r49536
      Hans-Peter Nilsson committed
  4. 05 Feb, 2002 1 commit
    • target.h (struct gcc_target): Added ms_bitfield_layout_p. · f913c102
      * target.h (struct gcc_target): Added ms_bitfield_layout_p.
      * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
      (TARGET_INITIALIZER): this.
      * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
      (BITFIELD_NBYTES_LIMITED): Markup fix.
      * tree.h (default_ms_bitfield_layout_p): Declare.
      (record_layout_info): Added prev_field.
      * tree.c (default_ms_bitfield_layout_p): New fn.
      * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
      PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
      * stor-layout.c: Include target.h.
      (start_record_layout): Initialize prev_field.
      (place_field): Handle MS bit-field layout, and disregard
      EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
      PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
      * Makefile.in (stor-layout.o): Adjust dependencies.
      
      From-SVN: r49526
      Alexandre Oliva committed
  5. 04 Feb, 2002 2 commits
    • extend.texi: Warn about unsupported usage of altivec builtins. · ae4b4a02
      2002-01-31  Aldy Hernandez  <aldyh@redhat.com>
      
              * doc/extend.texi: Warn about unsupported usage of altivec
              builtins.
      
              * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
              (altivec_predicate_*): New.
      
              * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
              Add C++ version of vec_*() functions.
      
              * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
              (bdesc_2arg): Remove altivec predicates.
              (altivec_expand_builtin): Handle predicates.
              (altivec_init_builtins): Handle predicates.
              (altivec_expand_predicate_builtin): New.
      
      From-SVN: r49500
      Aldy Hernandez committed
    • PR c/4475, c++/3780: · 6f9fdf4d
      	* c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
      	* c-common.h (SWITCH_TYPE): Define.
      	* c-typeck.c (c_start_case): Set SWITCH_TYPE.
      	* stmt.c (all_cases_count): Set lastval to thisval at end of loop.
      	Rename spareness variable to sparseness.
      	(expand_end_case_type): Renamed from expand_end_case, use orig_type
      	if non-NULL instead of TREE_TYPE (orig_index).
      	* tree.h (expand_end_case_type): Renamed from expand_end_case.
      	(expand_end_case): Define using expand_end_case_type.
      	* c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
      	to expand_end_case_type.
      	* doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
      
      	* semantics.c (begin_switch_stmt): Clear SWITCH_TYPE.
      	(finish_switch_cond): Set SWITCH_TYPE.
      
      	* gcc.dg/Wswitch.c: Fix typos.  Don't return unconditionally
      	before all tests.  Move warning one line above to match where it
      	C frontend emits.
      	* gcc.dg/Wswitch-2.c: New test.
      	* g++.dg/warn/Wswitch-1.C: New test.
      	* g++.dg/warn/Wswitch-2.C: New test.
      
      From-SVN: r49497
      Jakub Jelinek committed
  6. 02 Feb, 2002 1 commit
    • cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__. · 0fef3fd0
      	* cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
      	* cpphash.c (_cpp_init_hashtable): Similarly.
      	* cppinit.c (cpp_create_reader): Default the signed_char flag.
      	(init_builtins): Define __CHAR_UNSIGNED__ appropriately.
      	(COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
      	(cpp_handle_option): Handle the new options.
      	* cpplex.c (cpp_interpret_charconst): Use new flag.
      	* cpplib.h (struct cpp_options): New member signed_char.
      	* gcc.c (cpp_unique_options): Remove %c spec and documentation.
      	(cpp_options): Handle -fsigned-char and -funsigned-char.
      	(static_specs): Remove signed_char_spec.
      	(do_spec1): Don't handle %c.
      	* system.h: Poison SIGNED_CHAR_SPEC.
      	* tradcif.y (yylex): Use flag_signed_char.
      	* tradcpp.h (flag_signed_char): New.
      	* tradcpp.c (flag_signed_char): New.
      	(main): Handle new command-line options.
      	(initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
      config:
      	* alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
      	* avr/avr.h: Remove old comments.
      	* i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
      	(CC1_SPEC): Pass -fsigned-char if -mic*.
      	(SIGNED_CHAR_SPEC): Remove.
      doc:
      	* tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
      testsuite:
      	* gcc.dg/cpp/uchar-1.c, uchar-2.c, uchar-3.c: New tests.
      
      From-SVN: r49444
      Neil Booth committed
  7. 01 Feb, 2002 1 commit
  8. 31 Jan, 2002 1 commit
  9. 29 Jan, 2002 3 commits
  10. 28 Jan, 2002 1 commit
  11. 27 Jan, 2002 2 commits
    • invoke.texi (-fdump-translation-unit): Revert this patch: 2001-10-21 Craig… · f70a54cb
      invoke.texi (-fdump-translation-unit): Revert this patch: 2001-10-21 Craig Rodrigues <rodrigc@gcc.gnu.org>
      
      2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
      
              * doc/invoke.texi (-fdump-translation-unit): Revert this
              patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
      
      From-SVN: r49267
      Craig Rodrigues committed
    • Makefile.in (CRTSTUFF_CFLAGS): New. · cea3bd3e
      	* Makefile.in (CRTSTUFF_CFLAGS): New.
      	(crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
      	* config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
      	crtstuff.c instead of alpha assembly version.
      	* crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
      	entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
      	not FORCE_{INIT,FINI}_SECTION_ALIGN.
      	(__do_global_dtors_aux): Mark used.
      	(frame_dummy, __do_global_ctors_aux): Mark used.
      	(fini_dummy, init_dummy): Remove.
      
      	* config/alpha/crtbegin.asm: Remove file.
      	* config/alpha/crtend.asm: Remove file.
      	* config/alpha/t-crtbe: Remove file.
      	* config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
      	(LINK_EH_SPEC): New.
      
      	* config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
      	FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
      	calling constructors.
      	* config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
      
      	* config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
      	* config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
      	CRT_END_INIT_DUMMY hack.
      	* config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
      	FORCE_{INIT,FINI}_SECTION_ALIGN.
      
      	* config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
      	FORCE_{INIT,FINI}_SECTION_ALIGN.
      
      	* config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
      	invocation sequence.
      	* config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
      
      	* doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
      	(FORCE_CODE_SECTION_ALIGN): New.
      
      From-SVN: r49261
      Richard Henderson committed
  12. 26 Jan, 2002 1 commit
  13. 25 Jan, 2002 1 commit
  14. 23 Jan, 2002 4 commits
    • elf.h: New file. · 03984308
              * config/xtensa/elf.h: New file.
              * config/xtensa/lib1funcs.asm: New file.
              * config/xtensa/lib2funcs.S: New file.
              * config/xtensa/linux.h: New file.
              * config/xtensa/t-xtensa: New file.
              * config/xtensa/xtensa-config.h: New file.
              * config/xtensa/xtensa-protos.h: New file.
              * config/xtensa/xtensa.c: New file.
              * config/xtensa/xtensa.h: New file.
              * config/xtensa/xtensa.md: New file.
              * config.gcc (xtensa-*-elf*): New target.
              (xtensa-*-linux*): New target.
              * cse.c (canon_hash): Compare rtx pointers instead of register
              numbers.  This is required for the Xtensa port.
              * integrate.c (copy_insn_list): Handle case where the static
              chain is in memory and the memory address has to be copied to
              a register.
              * doc/invoke.texi (Option Summary): Add Xtensa options.
              (Xtensa Options): New node.
              * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
              * gcc.c-torture/compile/20001226-1.x: xfail for Xtensa.
      
      From-SVN: r49155
      Bob Wilson committed
    • fragments.texi, [...]: Update to reflect current (lack of) need for host configuration by hand. · 807633e5
      	* doc/fragments.texi, doc/hostconfig.texi: Update to reflect
      	current (lack of) need for host configuration by hand.
      
      	* doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
      	references.  Documentation of some target macros moved from
      	hostconfig.texi to tm.texi.
      
      From-SVN: r49142
      Zack Weinberg committed
    • re PR c/3504 (__alignof__ not working correctly) · 5372b3fb
      	PR c/3504
      	* doc/extend.texi: Correct documentation of __alignof__.
      
      From-SVN: r49126
      Neil Booth committed
    • extend.texi: Document altivec functions. · 333c8841
      2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
      
              * extend.texi: Document altivec functions.
              Fix *-bit adjectives in X86 builtin documentation.
      
      From-SVN: r49120
      Aldy Hernandez committed
  15. 22 Jan, 2002 1 commit
  16. 21 Jan, 2002 1 commit
    • Remove workaround for register stack overwrite bug in mmix. · 07338cf8
      	* config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
      	support for TARGET_REG_STACK_FILL_BUG.
      	* config/mmix/mmix.h: Remove member has_call_without_parameters.
      	(TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
      	Delete.
      	(TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
      	(TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
      	-mno-reg-stack-fill-bug-workaround.
      	* config/mmix/mmix.md ("call", "call_value"): Don't set struct
      	machine member has_call_without_parameters.
      	* doc/invoke.texi (Option Summary) <MMIX Options>: Remove
      	-mreg-stack-fill-bug-workaround	and
      	-mno-reg-stack-fill-bug-workaround.
      	(MMIX Options): Ditto.
      
      From-SVN: r49035
      Hans-Peter Nilsson committed
  17. 19 Jan, 2002 2 commits
  18. 17 Jan, 2002 2 commits
  19. 16 Jan, 2002 4 commits
  20. 15 Jan, 2002 1 commit
  21. 14 Jan, 2002 2 commits
  22. 13 Jan, 2002 2 commits
  23. 12 Jan, 2002 2 commits
  24. 11 Jan, 2002 1 commit