summaryrefslogtreecommitdiffstats
path: root/gcc/config/sparc/sparc.c
Commit message (Collapse)AuthorAgeFilesLines
* * config/sparc/sparc.c (sparc_encode_section_info): Remove.rth2003-04-171-19/+2
| | | | | | | | (data_segment_operand): Use SYMBOL_REF_FUNCTION_P. (text_segment_operand): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65736 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.c (input_operand): Accept bareebotcazou2003-04-011-2/+2
| | | | | | | CONSTANT_P_RTX operands. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65143 138bc75d-0d04-0410-961f-82ee72b054a4
* * calls.c (expand_call): Update call of INIT_CUMULATIVE_ARGShubicka2003-02-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | * function.c (assign_params): Likewise. * arm-protos.h (arm_init_cumulative_args): Update prototype. * arm.c (arm_init_cumulative_args): Update function. * arm.h (INIT_CUMULATIVE_ARGS): Update. * avr-protos.h (init_cumulative_args): Update prototype. * avr.c (init_cumulative_args): Update function. * avr.h (INIT_CUMULATIVE_ARGS): Update. * d30v-protos.h (d30v_init_cumulative_args): Update prototype. * d30v.c (d30v_init_cumulative_args): Update function. * d30v.h (INIT_CUMULATIVE_ARGS): Update. * frv-protos.h (frv_init_cumulative_args): Update prototype. * frv.c (frv_init_cumulative_args): Update function. * frv.h (INIT_CUMULATIVE_ARGS): Update. * mips.c (mips_expand_prolgue): Update call of INIT_CUMULATIVE_ARGS. * pa.h (INIT_CUMULATIVE_ARGS): Update. * sparc-protos.h (init_cumulative_args): Update prototype. * sparc.c (init_cumulative_args): Update function. * sparc.h (INIT_CUMULATIVE_ARGS): Update. * tm.texi (INIT_CUMULATIVE_ARGS): Update documentation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@63126 138bc75d-0d04-0410-961f-82ee72b054a4
* * target.h (targetm.address_cost): New.rth2003-01-281-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * target-def.h (TARGET_ADDRESS_COST): New. (TARGET_RTX_COSTS): Uncomment. Oops. * cse.c (address_cost): Use new target hook. (default_address_cost): New. * output.h (default_address_cost): Declare. * hooks.c (hook_int_rtx_0): New. * hooks.h (hook_int_rtx_0): Declare. * loop.c (combine_givs_p): Remove if 0 code. * system.h (ADDRESS_COST): Poison. * config/alpha/alpha.c, config/alpha/alpha.h, config/d30v/d30v.c, config/d30v/d30v.h, config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c, config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c, config/v850/v850.h, config/xtensa/xtensa.c, config/xtensa/xtensa.h (TARGET_ADDRESS_COST): Define as hook_int_rtx_0. (ADDRESS_COST): Remove. * config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h, config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h, config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c, config/dsp16xx/dsp16xx.h, config/i386/i386-protos.h, config/i386/i386.c, config/i386/i386.h, config/i960/i960-protos.h, config/i960/i960.c, config/i960/i960.h, config/ip2k/ip2k-protos.h, config/ip2k/ip2k.c, config/ip2k/ip2k.h, config/mips/mips-protos.h, config/mips/mips.c, config/mips/mips.h, config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h, config/ns32k/ns32k-protos.h, config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa-protos.h, config/pa/pa.c, config/pa/pa.h, config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h, config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h (foo_address_cost): Make static. (TARGET_ADDRESS_COST): New. (ADDRESS_COST): Remove. * config/arm/arm.h, config/arm/arm.c, config/m88k/m88k.h, config/m88k/m88k.c, config/romp/romp.h, config/romp/romp.c, config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c, config/stormy16/stormy16.h (ADDRESS_COST): Move code ... (foo_address_cost): ... here. (TARGET_ADDRESS_COST): New. * config/m32r/m32r.c (m32r_address_cost): Remove. * config/m32r/m32r-protos.h: Update. * config/mmix/mmix.c (mmix_address_cost): Remove. * config/mmix/mmix-protos.h: Update. * config/mn10300/mn10300.c (mn10300_address_cost_1): Rename from mn10300_address_cost; move unsig allocation ... (mn10300_address_cost): ... here. (TARGET_ADDRESS_COST): New. * config/mn10300/mn10300-protos.h: Update. * config/mn10300/mn10300.h (ADDRESS_COST): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61988 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (cse.o): Depend on TARGET_H.rth2003-01-281-79/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cse.c (rtx_cost): Use targetm.rtx_costs. * system.h (CONST_COSTS RTX_COSTS DEFAULT_RTX_COSTS): Poison. * doc/tm.texi: Update. * target.h (targetm.rtx_costs): New. * target-def.h (TARGET_RTX_COSTS): New. * hooks.c (hook_bool_rtx_int_int_intp_false): New. * hooks.h: Update. * config/alpha/alpha.c (alpha_rtx_cost_data): New. (alpha_rtx_costs, TARGET_RTX_COSTS): New. * config/alpha/alpha.h (PROCESSOR_MAX): New. (CONST_COSTS, RTX_COSTS): Remove. * config/arc/arc.c, config/arc/arc.h, config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris.c, config/cris/cris.h, config/d30v/d30v.c, config/d30v/d30v.h, config/dsp16xx/dsp16xx.c, config/dsp16xx/dsp16xx.h, config/frv/frv.c, config/frv/frv.h, config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c, config/i370/i370.h, config/i386/i386.c, config/i386/i386.h, config/i960/i960.c, config/i960/i960.h, config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c, config/m32r/m32r.h, config/m68k/m68k.c, config/m68k/m68k.h, config/m88k/m88k.c, config/m88k/m88k.h, config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c, config/mips/mips.h, config/mn10200/mn10200.c, config/mn10200/mn10200.h, config/mn10300/mn10300.c, config/mn10300/mn10300.h, config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c, config/pa/pa.h, config/pdp11/pdp11.c, config/pdp11/pdp11.h, config/romp/romp.c, config/romp/romp.h, config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/s390/s390.c, config/s390/s390.h, config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c, config/stormy16/stormy16.h, config/v850/v850.c, config/v850/v850.h, config/xtensa/xtensa.c, config/xtensa/xtensa.h (CONST_COSTS, RTX_COSTS): Move code ... (foo_rtx_costs, TARGET_RTX_COSTS): ... here. * config/arm/arm.c (arm_rtx_costs_1): Rename from arm_rtx_costs. (arm_rtx_costs, TARGET_RTX_COSTS): New. * config/arm/arm-protos.h: Update. * config/arm/arm.h (DEFAULT_RTX_COSTS): Remove. * config/avr/avr.h (CONST_COSTS): Move code ... * config/avr/avr.c (avr_rtx_costs): ... here. (default_rtx_costs): Make static. * config/avr/avr-protos.h: Update. * config/h8300/h8300.c (const_costs): Make static. (h8300_and_costs, h8300_shift_costs): Likewise. * config/h8300/h8300-protos.h: Update. * config/ip2k/ip2k.h (DEFAULT_RTX_COSTS): Remove. (CONST_COSTS): Move code ... * config/ip2k/ip2k.c (ip2k_rtx_costs): ... here. Rename from default_rtx_costs; update for signature change. * config/ip2k/ip2k-protos.h: Update. * config/m68hc11/m68hc11.h (RTX_COSTS): Remove. (CONST_COSTS): Move code ... * config/m68hc11/m68hc11.c (m68hc11_rtx_costs): ... here. (TARGET_RTX_COSTS): New. (m68hc11_rtx_costs_1): Rename from m68hc11_rtx_costs; make static. * config/m68hc11/m68hc11-protos.h: Update. * config/m68k/m68k.c (const_int_cost): Make static. * config/m68k/m68k-protos.h: Update. * config/mcore/mcore.c (mcore_const_costs): Make static. (mcore_and_cost, mcore_ior_cost): Likewise. * config/mcore/mcore-protos.h: Update. * config/mmix/mmix.c (mmix_rtx_costs, TARGET_RTX_COSTS): New. (mmix_rtx_cost_recalculated): Remove. * config/mmix/mmix.h (DEFAULT_RTX_COSTS): Remove. * config/mmix/mmix-protos.h: Update. * config/sh/sh.c (shiftcosts): Make static. (addsubcosts, andcosts, multcosts): Likewise. * config/sh/sh-protos.h: Update. * config/sparc/sparc.c (TARGET_RTX_COSTS): New. (sparc_rtx_costs): Make static; update for change in signature. * config/sparc/sparc.h (RTX_COSTS_CASES, RTX_COSTS): Remove. * config/sparc/sparc-protos.h: Update. * config/v850/v850.c (const_costs): Make static. * config/v850/v850-protos.h: Update. * config/vax/vax.h (RTX_COSTS): Remove. (CONST_COSTS): Move code ... * config/vax/vax.c (vax_rtx_costs_1): ... here; rename from vax_rtx_cost. (vax_rtx_costs, TARGET_RTX_COSTS): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61954 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge basic-improvements-branch to trunkzack2002-12-161-3/+35
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@60174 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rth2002-10-221-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * target.h (gcc_target.asm_out): Merge output_mi_thunk and output_mi_vcall_thunk into a single hook. Add can_output_mi_thunk. * target-def.h (TARGET_ASM_OUTPUT_MI_THUNK): Don't conditionalize. (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Remove. (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New. (TARGET_ASM_OUT): Update. * hooks.c (hook_bool_tree_hwi_hwi_tree_false): New. (hook_bool_tree_hwi_hwi_tree_true): New. (default_can_output_mi_thunk_no_vcall): New. * hooks.h: Declare them. * system.h (ASM_OUTPUT_MI_THUNK): Poison. * config/alpha/alpha.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New. (alpha_output_mi_thunk_osf): Add VCALL_OFFSET parameter. * config/arm/arm.c, config/cris/cris.c, config/frv/frv.c, config/i960/i960.c, config/ia64/ia64.c, config/m68k/m68k.c, config/mmix/mmix.c, config/pa/pa.c, config/sparc/sparc.c, config/stormy16/stormy16.c: Similarly. * config/i386/i386.c (x86_output_mi_thunk): Merge vcall_offset code. Handle 64-bit properly. Streamline. (x86_output_mi_vcall_thunk): Remove. (x86_this_parameter): Rename from ia32_this_parameter; handle 64-bit. (x86_can_output_mi_thunk): New. (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Remove. (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New. (override_options): Don't zap targetm.asm_out.output_mi_vcall_thunk. * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Rename from output_mi_thunk; make static; always use function_section. (TARGET_ASM_OUTPUT_MI_THUNK): New. (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New. (rs6000_ra_ever_killed): Test no_new_pseudos not targetm.asm_out.output_mi_thunk in conjunction with thunks. * config/rs6000/rs6000-protos.h: Update. * config/rs6000/sysv4.h (TARGET_ASM_OUTPUT_MI_THUNK): Remove. * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't call xcoffout_declare_function when using rs6000_output_mi_thunk. * config/s390/s390.c (s390_output_mi_thunk): Rename from s390_output_mi_vcall_thunk. (TARGET_ASM_OUTPUT_MI_THUNK): Remove. (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New. * config/vax/vax.c (vax_output_mi_thunk): Static; add vcall_offset. (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): New. * config/vax/vax-protos.h: Update. * config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Remove. gcc/cp/ * method.c (use_thunk): Always compute vcall_value; assert that it is not zero. Use can_output_mi_thunk; use output_mi_thunk for vcall thunks as well. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@58424 138bc75d-0d04-0410-961f-82ee72b054a4
* * target.h (struct gcc_target): Line wrap.rth2002-10-201-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Static. (TARGET_ASM_OUTPUT_MI_THUNK): Define here... * config/alpha/alpha.h: ... not here. * config/alpha/alpha-protos.h: Update. * config/arm/arm.c, config/arm/arm.h, config/arm/arm-protos.h config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h, config/frv/frv-protos.h, config/frv/frv.c, config/frv/frv.h, config/i386/i386-protos.h, config/i386/i386.c, config/i386/openbsd.h, config/i386/unix.h, config/i960/i960-protos.h, config/i960/i960.c, config/i960/i960.h, config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h, config/m68k/linux.h, config/m68k/m68k-protos.h, config/m68k/m68k.c, config/m68k/netbsd-elf.h, config/m68k/openbsd.h, config/mmix/mmix-protos.h, config/mmix/mmix.c, config/mmix/mmix.h, config/pa/pa-protos.h, config/pa/pa.c, config/pa/pa.h, config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h, config/sparc/openbsd.h, config/sparc/sparc-protos.h, config/sparc/sparc.c, config/sparc/sparc.h, config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c, config/stormy16/stormy16.h: Similarly. * config/m68k/m68k.c (m68k_output_mi_thunk): Replicate mnemonic selection logic from call patterns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@58340 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-09-25 David S. Miller <davem@redhat.com>davem2002-09-261-1/+0
| | | | | | | | | PR target/7842 * config/sparc/sparc.c (set_extends): SImode ASHIFT does not extend. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57534 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/s390/s390.c: Follow spelling convention.kazu2002-09-181-9/+9
| | | | | | | | | | | | | | | | | | * config/sh/lib1funcs.asm: Likewise. * config/sh/sh.c: Likewise. * config/sh/sh.h: Likewise. * config/sparc/sparc.c: Likewise. * config/sparc/sparc.h: Likewise. * config/sparc/sparc.md: Likewise. * config/stormy16/stormy16.c: Likewise. * config/stormy16/stormy16.h: Likewise. * config/v850/v850.c: Likewise. * config/v850/v850.h: Likewise. * config/vax/vax.c: Likewise. * config/vax/vax.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57276 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/cypress.md: Replace Sparc with SPARC.kazu2002-09-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | * config/sparc/freebsd.h: Likewise. * config/sparc/gmon-sol2.c: Likewise. * config/sparc/hypersparc.md: Likewise. * config/sparc/lb1spc.asm: Likewise. * config/sparc/lb1spl.asm: Likewise. * config/sparc/linux.h: Likewise. * config/sparc/linux64.h: Likewise. * config/sparc/lynx.h: Likewise. * config/sparc/sol2.h: Likewise. * config/sparc/sparc-modes.def: Likewise. * config/sparc/sparc.c: Likewise. * config/sparc/sparc.h: Likewise. * config/sparc/sparc.md: Likewise. * config/sparc/sparclet.md: Likewise. * config/sparc/supersparc.md: Likewise. * config/sparc/sysv4.h: Likewise. * config/sparc/vxsim.h: Likewise. * config/sparc/vxsparc64.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57160 138bc75d-0d04-0410-961f-82ee72b054a4
* * haifa-sched.c: Follow spelling conventions.kazu2002-09-141-1/+1
| | | | | | | | | | | | | | | | | | | | | * regclass.c: Likewise. * regrename.c: Likewise. * config/fp-bit.c: Likewise. * config/frv/frv.h: Likewise. * config/m88k/m88k.c: Likewise. * config/mcore/mcore.c: Likewise. * config/rs6000/darwin.h: Likewise. * config/rs6000/gnu.h: Likewise. * config/rs6000/linux.h: Likewise. * config/rs6000/linux64.h: Likewise. * config/rs6000/rs6000.c: Likewise. * config/rs6000/rs6000.h: Likewise. * config/sh/sh.c: Likewise. * config/sparc/sparc.c: Likewise. * config/sparc/ultra1_2.md: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57143 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.h (enum block_op_methods): New.rth2002-08-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | (emit_block_move): Update prototype. * expr.c (block_move_libcall_safe_for_call_parm): New. (emit_block_move_via_loop): New. (emit_block_move): Use them. New argument METHOD. (emit_push_insn): Always respect the given alignment. (expand_assignment): Update call to emit_block_move. (store_expr, store_field, expand_expr): Likewise. * builtins.c (expand_builtin_apply): Likewise. (expand_builtin_memcpy, expand_builtin_va_copy): Likewise. * function.c (expand_function_end): Likewise. * config/sh/sh.c (sh_initialize_trampoline): Likewise. * config/sparc/sparc.c (sparc_va_arg): Likewise. * calls.c (expand_call, emit_library_call_value_1): Likewise. (save_fixed_argument_area): Use emit_block_move with BLOCK_OP_CALL_PARM instead of move_by_pieces. (restore_fixed_argument_area): Likewise. (store_one_arg): Fix alignment parameter to emit_push_insn. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56661 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (std_expand_builtin_va_start): Remove unusedzack2002-07-161-3/+2
| | | | | | | | | | | | | | | | | | | | | | first argument. (expand_builtin_va_start): Call EXPAND_BUILTIN_VA_START and std_expand_builtin_va_start with just two arguments. * expr.h: Update prototypes. * alpha-protos.h, alpha.h, alpha.c, arc-protos.h, arc.h, arc.c, d30v-protos.h, d30v.h, d30v.c, i386-protos.h, i386.h, i386.c, i960-protos.h, i960.h, i960.c, m88k-protos.h, m88k.h, m88k.c, mips-protos.h, mips.h, mips.c, mn10300-protos.h, mn10300.h, mn10300.c, pa-protos.h, pa.h, pa.c, rs6000-protos.h, rs6000.h, rs6000.c, s390-protos.h, s390.h, s390.c, sh-protos.h, sh.h, sh.c, sparc-protos.h, sparc.h, sparc.c, stormy16-protos.h, stormy16.h, stormy16.c, xtensa-protos.h, xtensa.h, xtensa.c: Remove unused first argument from all implementations of EXPAND_BUILTIN_VA_START and all uses of std_expand_builtin_va_start. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55495 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge from pch-branch up to tag pch-commit-20020603.geoffk2002-06-041-22/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54232 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-05-28 David S. Miller <davem@redhat.com>davem2002-05-281-11/+0
| | | | | | | | | | | | | | | | | | | | * config/sparc/sparc.md (cpu): Tidy. (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and 'trap'. (in_call_delay): Delete reference to 'return' type. (eligible_for_return_delay, in_return_delay, define_delay referencing those): Delete. (rest of file): Use new type attributes as appropriate. * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete. * config/sparc/sparc.c (eligible_for_return_delay): Likewise. * config/sparc/ultra1_2.md (us1_single): New reservation. (us1_ialuX): Likewise. * config/sparc/ultra3.md (us3_single): Likewise. (us3_ialuX): Likewise. (us3_imul, us3_idiv): Tweak. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53953 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.c (sparc_output_mi_thunk): New implementationrth2002-05-261-0/+67
| | | | | | | | | using rtl instead of fprintf. * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it. * config/sparc/sparc-protos.h: Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53880 138bc75d-0d04-0410-961f-82ee72b054a4
* * system.h (ENCODE_SECTION_INFO): Poison it.rth2002-05-191-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * target-def.h (TARGET_ENCODE_SECTION_INFO): New. * target.h (encode_section_info): New. * varasm.c (make_decl_rtl, output_constant_def): Use it. * hooks.c (hook_tree_int_void): New. * hooks.h: Declare it. * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c, config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h, config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h, config/mcore/mcore-protos.h, config/mcore/mcore.c, config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000-protos.h, config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c, config/stormy16/stormy16.h: Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO referencing existing function. Make function static. * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c, config/arc/arc.h, config/arm/arm.c, config/arm/arm.h, config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c, config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c, config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c, config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h, config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c, config/pa/pa.h, config/romp/romp.c, config/romp/romp.h, config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c, config/s390/s390.h, config/sh/sh.c, config/sh/sh.h, config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c, config/v850/v850.h, config/vax/vax.c, config/vax/vms.h, config/xtensa/xtensa.c, config/xtensa/xtensa.h: Move ENCODE_SECTION_INFO to out-of-line function and add TARGET_ENCODE_SECTION_INFO. * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro. (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise. * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename from SUBTARGET_* (switch_to_section): Replace in_rdata case with in_readonly_data. * config/h8300/h8300.c (h8300_encode_label): Make static. * config/h8300/h8300-protos.h: Update. * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename from rs6000_encode_section_info; make static. (rs6000_xcoff_encode_section_info): New. * config/v850/v850.c (v850_encode_data_area): Make static. * config/v850/v850-protos.h: Update. * config/vax/vax.c: Include flags.h. (vms_select_section): Fix typo. * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous ENCODE_SECTION_INFO docs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53606 138bc75d-0d04-0410-961f-82ee72b054a4
* * system.h (SELECT_RTX_SECTION): Poison.rth2002-05-181-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New. * target.h (select_rtx_section): New. * varasm.c (output_constant_pool): Use it. (default_select_rtx_section, default_elf_select_rtx_section): New. * output.h: Declare them. * config/darwin.h (SELECT_RTX_SECTION): Move ... * config/darwin.c (machopic_select_rtx_section): ... here. * config/darwin-protos.h: Update. * config/nextstep.h (SELECT_RTX_SECTION): Move ... * config/nextstep.c (machopic_select_rtx_section): ... here. (nextstep_select_section): Rename variable to avoid macro clash. * config/nextstep-protos.h: Update. * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h, config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h, config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h, config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h, config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h, config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h, config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h, config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h (SELECT_RTX_SECTION): Remove. * config/darwin.h, config/elfos.h, config/nextstep.h, config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c, config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h, config/sparc/lynx.h, config/xtensa/xtensa.c (TARGET_ASM_SELECT_RTX_SECTION): New. * config/alpha/elf.h (SELECT_RTX_SECTION): Move ... * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here. * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ... * config/ia64/ia64.c (ia64_select_rtx_section): ... here. (ia64_aix_select_rtx_section): New. * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before redefining. * config/mips/mips.c (mips_select_rtx_section): Make static. Support ELF SHF_MERGE features. * config/mips/mips-protos.h: Update. * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ... * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here. (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section; make static, fall back to default_elf_select_rtx_section. * config/rs6000/rs6000-protos.h: Update. * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ... * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here. * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2. * config/romp/romp.c (romp_select_rtx_section): New. * config/s390/s390.c (s390_select_rtx_section): New. * config/xtensa/xtensa.c: Include output.h. Shuffle local function declarations before target macro definition. (xtensa_emit_call): Use static buffer. (xtensa_select_rtx_section): New. * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove. (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove. (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section. * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from SELECT_RTX_SECTION docs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53600 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.ro2002-05-171-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53559 138bc75d-0d04-0410-961f-82ee72b054a4
* * hooks.c (hook_tree_bool_false): New.rth2002-05-171-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * hooks.h: Declare it. * target-def.h (TARGET_ASM_SELECT_SECTION): New. (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New. * target.h (select_section, unique_section): New. (in_small_data_p): New. * varasm.c (resolve_unique_section): Use hooks instead of macros. (variable_section, output_constant_def_contents): Likewise. (default_select_section, default_unique_section): New. (categorize_decl_for_section, default_elf_select_section): New. * output.h: Declare them. * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove. (TARGET_ASM_SELECT_SECTION): New. (SELECT_SECTION): Move ... * config/darwin.c (machopic_select_section): ... here. * config/darwin-protos.h: Update. * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New. (SELECT_SECTION): Move ... * config/nextstep.c (nextstep_select_section): ... here. * config/nextstep-protos.h: Update. * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove. (TARGET_ASM_SELECT_SECTION): New. * config/svr3.h (SELECT_SECTION): Remove. * config/alpha/alpha.c (unicosmk_unique_section): Make static. (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New. (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New. (alpha_encode_section_info): Use it. * config/alpha/alpha-protos.h: Update. * config/alpha/elf.h (DO_SELECT_SECTION): Remove. (SELECT_SECTION, UNIQUE_SECTION): Remove. (TARGET_ASM_SELECT_SECTION): New. * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove. * config/arm/pe.h (UNIQUE_SECTION): Remove. (TARGET_ASM_UNIQUE_SECTION): New. * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New. (avr_unique_section): Rename from unique_section; make static. * config/avr/avr-protos.h: Update. * config/avr/avr.h (UNIQUE_SECTION): Remove. * config/c4x/c4x.h (SELECT_SECTION): Remove. * config/i386/cygwin.h (UNIQUE_SECTION): Remove. (TARGET_ASM_UNIQUE_SECTION): New. * config/i386/i386-interix.h: Likewise. * config/i386/win32.h: Likewise. * config/i386/djgpp.h (UNIQUE_SECTION): Remove. * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro. * config/i386/sco5.h (SELECT_SECTION): Remove. (TARGET_ASM_SELECT_SECTION): New. * config/i386/svr3gas.h (SELECT_SECTION): Remove. * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION instead of SELECT_SECTION. * config/m68k/dpx2.h: Likewise. * config/rs6000/lynx.h: Likewise. * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove. (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New. * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New. (ia64_in_small_data_p): New. (ia64_encode_section_info): Use it. Reorganize overlarge conditional. (ia64_aix_select_section, ia64_aix_unique_section): New. * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove. (SELECT_SECTION, UNIQUE_SECTION): Remove. * config/m32r/m32r.h (SELECT_SECTION): Remove. (TARGET_ASM_SELECT_SECTION): New. * config/m32r/m32r.c (m32r_select_section): Take align argument. * config/m32r/m32r-protos.h: Update. * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New. (SELECT_SECTION): Move ... * config/m88k/m88k.c (m88k_select_section): ... here. * config/mcore/mcore-pe.h (SELECT_SECTION): Remove. * config/mcore/mcore.h (UNIQUE_SECTION): Remove. * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New. (mcore_unique_section): Make static. * config/mcore/mcore-protos.h: Update. * config/mips/elf.h (UNIQUE_SECTION): Remove. (TARGET_ASM_UNIQUE_SECTION): New. * config/mips/elf64.h: Likewise. * config/mips/iris6gld.h: Likewise. * config/mips/linux.h: Likewise. * config/mips/mips-protos.h: Update. * config/mips/mips.c (mips_select_section): Add align argument. * config/mips/mips.h (SELECT_SECTION): Remove. (TARGET_ASM_SELECT_SECTION): New. * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove. * config/mmix/mmix.c (mmix_select_section): Remove. (mmix_unique_section): Remove. * config/mmix/mmix-protos.h: Update. * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New. (SELECT_SECTION): Move ... * config/pa/pa.c (pa_select_section): ... here. * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove. * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename from rs6000_select_section and make static. (rs6000_elf_unique_section): Similarly. (rs6000_xcoff_select_section): From xcoff.h. (rs6000_xcoff_unique_section): Likewise. * config/rs6000/rs6000-protos.h: Update. * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove. (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New. * config/rs6000/xcoff.h: Likewise. * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New. (SELECT_SECTION): Move ... * config/sparc/sparc.c (sparc_aout_select_section): ... here. * config/v850/v850.h (SELECT_SECTION): Move ... * config/v850/v850.c (v850_select_section): ... here. (TARGET_ASM_SELECT_SECTION): New. * config/vax/vms.h (SELECT_SECTION): Move ... * config/vax/vax.c (vms_select_section): ... here. (TARGET_ASM_SELECT_SECTION): New. * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs for the target hooks. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53550 138bc75d-0d04-0410-961f-82ee72b054a4
* * emit-rtl.c (global_rtl): Update comment.zack2002-05-131-10/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (const_double_htab, const_double_htab_hash, const_double_htab_hash, lookup_const_double): New. (const_int_htab_hash, const_int_htab_eq): Remove const qualifiers, which cause tons of warnings with RTL checking on. (gen_rtx_CONST_DOUBLE): Deleted. (const_double_from_real_value): New function - bears some resemblance to the former immed_real_const_1. (immed_double_const): Moved here from varasm.c and simplified. (gen_rtx_REG): Make REGNO unsigned to squelch warnings. (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG. (gen_rtx): Use immed_double_const. (init_emit_once): Initialize the const_double_htab. Use REAL_VALUE_FROM_INT where possible. Can now use CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx. * varasm.c (struct varasm_status): Remove x_const_double_chain. (const_double_chain, immed_real_const, clear_const_double_mem): Delete. (immed_double_const, immed_real_const_1): Moved to emit-rtl.c. (init_varasm_status, mark_varasm_status): Don't touch x_const_double_chain. * output.h: Delete prototype for clear_const_double_mem. * real.h: Make REAL_VALUE_TYPE a macro again. Remove leading '0' slot from all CONST_DOUBLE_FORMAT definitions. Prototype const_double_from_real_value, not immed_real_const_1, and use it to define CONST_DOUBLE_FROM_REAL_VALUE. Define new macro CONST_DOUBLE_ATOF. * rtl.h (CONST_DOUBLE_CHAIN): Kill. (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust. (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes. (gen_rtx_REG): Second arg is unsigned. * gengenrtl.c (special_rtx): Take out CONST_DOUBLE. (excluded_rtx): New, return true for CONST_DOUBLE. (genmacro): Write nothing for excluded codes. * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE. * expr.c (expand_expr): Likewise. * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the CONST_DOUBLE_CHAIN. * toplev.c (rest_of_compilation): Don't call clear_const_double_mem. * config/rs6000/rs6000.c (rs6000_float_const): Delete. (rs6000_hash_constant): Remove CONST_DOUBLE special case. (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases. * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const. * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF. * config/dsp16xx/dsp16xx.md, config/mips/mips.md, config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE. * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53409 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-05-07 David S. Miller <davem@redhat.com>davem2002-05-091-20/+10
| | | | | | | | | | | * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero. * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one. * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp library implementation clobbers the output before the inputs are fully consumed, use stack temporary for the output. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53322 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-05-06 David S. Miller <davem@redhat.com>davem2002-05-061-2/+20
| | | | | | | | * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not allow result to overlap input operands in memory. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53204 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-05-05 Jakub Jelinek <jakub@redhat.com>davem2002-05-051-0/+10
| | | | | | | | | | | | * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx, use add instead of shift. (ashldi3_sp64): Likewise. (ashlsi3_const1, ashldi3_const1): Remove. * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand. * config/sparc/sparc.c (const1_operand): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53199 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-05-04 David S. Miller <davem@redhat.com>davem2002-05-051-5/+259
| | | | | | | | | * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of more RTX codes. * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53178 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-05-03 David S. Miller <davem@redhat.com>davem2002-05-041-0/+65
| | | | | | | | | | | | | * config/sparc/sparc-protos.h (sparc_rtx_costs): New. * config/sparc/sparc.c (sparc_rtx_costs): New function implementing RTX_COSTS and CONST_COSTS. * config/sparc/sparc.h (CONST_COSTS): Delete. (RTX_COSTS_CASES): Define. (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do the work. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53147 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-05-03 David S. Miller <davem@redhat.com>davem2002-05-041-4/+0
| | | | | | | | * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef checks on it, always defined for Sparc. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53145 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-05-03 David S. Miller <davem@redhat.com>davem2002-05-041-14/+0
| | | | | | | | | | | | | | | | | | | Delete cycle display scheduling hook. * config/ia64/ia64.c (ia64_cycle_display, TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete. (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display and use emit_insn_before instead of ia64_emit_insn_before. * config/ia64/ia64.md (unspec usage): Delete cycle display. (cycle_display): Delete insn pattern. * config/sparc/sparc.md (unspec usage): Delete cycle display. (cycle_display): Delete insn pattern. * config/sparc/sparc.c (sparc_cycle_display, TARGET_SCHED_CYCLE_DISPLAY): Delete. * doc/md.texi (cycle_display): Don't mention. * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53134 138bc75d-0d04-0410-961f-82ee72b054a4
* * recog.c (store_data_bypass_p, if_test_bypass_p): New.rth2002-05-031-69/+0
| | | | | | | | | | | * recog.h: Declare them. * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove. * config/sparc/sparc.md: Use store_data_bypass_p instead. * config/sparc/sparc-protos.h: Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53132 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/6542jakub2002-05-031-1/+1
| | | | | | | | | | | | * config/sparc/sparc.h (leaf_reg_remap): Remove const. (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make fill leaf_reg_remap with identity. * config/sparc/sparc.c (leaf_reg_remap): Remove const. * gcc.dg/20020503-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53095 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.c (emit_soft_tfmode_libcall,rth2002-04-301-0/+304
| | | | | | | | | | | | | | emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt, emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop, emit_tfmode_cvt): New. * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2, fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2, addtf3, subtf3, multf3, divtf3, sqrttf2): Use them. * config/sparc/sparc-protos.h: Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52965 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-04-29 David S. Miller <davem@redhat.com>davem2002-04-301-1/+2
| | | | | | | | | | * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III. * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise. * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52928 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-04-29 Vladimir Makarov <vmakarov@redhat.com>vmakarov2002-04-291-919/+101
| | | | | | | Merging code from dfa-branch: git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52915 138bc75d-0d04-0410-961f-82ee72b054a4
* PR bootstrap/6315jakub2002-04-171-0/+14
| | | | | | | | | | | | | | | * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting even if hard quad and register is not floating. (movtf reg<-mem split): Disallow splitting if hard quad and register is floating. (movtf mem<-reg split): Likewise. * config/sparc/sparc.c (fp_register_operand): New predicate. * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand. * gcc.dg/20020416-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52412 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-04-15 David S. Miller <davem@redhat.com>davem2002-04-151-6/+6
| | | | | | | | | | | | | | | | | | * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Call emit_library_call with LCT_NORMAL. (sparc_initialize_trampoline): Use LCT_foo instead of magic constant in emit_library_call invocations. (sparc64_initialize_trampoline): Likewise. (sparc_profile_hook): Likewise. * config/sparc/sparc.md: Likewise. * config/sparc/sparc.c (sparc_extra_constraint_check): Fix type of argument 'c'. * config/sparc/sparc-protos.h (sparc_extra_constraint_check): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52321 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-04-09 David S. Miller <davem@redhat.com>davem2002-04-091-2/+64
| | | | | | | | | | | | | | | * config/sparc/sparc.c (sparc_extra_constraint_check): New function, implementing EXTRA_CONSTRAINTS. For memory constraints, allow reloading pseudos. * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it. * config/sparc/sparc-protos.h: Declare it. * config/sparc/sparc.c (const64_is_2insns): Kill signed vs. unsigned comparison warning. (output_restore_regs): Mark leaf_function as unused. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52080 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-04-08 David S. Miller <davem@redhat.com>davem2002-04-081-7/+17
| | | | | | | | | | | | | | | | | | | | | | | | | PR target/6082 * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW Make init_priority work on Sparc when using GNU ld. * config/sparc/linux.h, config/sparc/linux64.h, config/sparc/netbsd-elf.h, config/sparc/freebsd.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine. * config/sparc/sol2-gld.h: New file to do the same. * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add sparc/sol2-gld.h to tm_file. PR optimization/4328 * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'. * doc/md.texi: Document it. * config/sparc/sparc.md (movdi_insn_sp64_novis, movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis, movdf_insn_v9only_vis, movdf_insn_sp64_novis, movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers. * config/sparc/sparc.c (mem_min_alignment): Fix comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52031 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.c (sparc_va_arg): Adjust va_list byjakub2002-04-041-0/+4
| | | | | | | UNITS_PER_WORD for zero sized aggregates. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51853 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-04-02 David S. Miller <davem@redhat.com>davem2002-04-031-0/+14
| | | | | | | | | | | * config/sparc/sparc.md (ldd peephole2s): Fix final arg to mems_ok_for_ldd_peep when the order of the loads being examined is reversed. * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon existing comment to increase comprehension of this situation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51796 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.c (function_arg_record_value_1): Pass complexjakub2002-03-311-7/+33
| | | | | | | | floating fields in float regs. (function_arg_record_value_2): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51667 138bc75d-0d04-0410-961f-82ee72b054a4
* PR middle-end/6100jakub2002-03-311-4/+4
| | | | | | | | | * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not REG_BR_PRED. (output_v9branch): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51663 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.rth2002-03-311-231/+98
| | | | | | | | | | | | | | | | | | | | | (sparc_emitting_epilogue): New. (leaf_label, output_return, sparc_return_peephole_ok): Remove. * config/sparc/sparc-protos.h: Update. * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove. (TARGET_SWITCHES): Update. * config/sparc/sparc.md (return): Remove. (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE. * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h, config/sparc/liteelf.h, config/sparc/netbsd-elf.h, config/sparc/sol2-sld-64.h, config/sparc/sol2.h, config/sparc/sp64-aout.h, config/sparc/sp64-elf.h, config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h, config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT): Remove MASK_EPILOGUE. * doc/invoke.texi: Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51626 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpicrth2002-03-301-34/+9
| | | | | | | | | | | | | | | or -fomit-frame-pointer with profiling. (SUBTARGET_OVERRIDE_OPTIONS): Remove. (FUNCTION_PROFILER): Do nothing. (PROFILE_HOOK): New. * config/sparc/sparc.c (sparc_override_options): Don't check code models for profiling. (sparc_function_profiler): Remove. (sparc_profile_hook): New. * config/sparc/sparc-protos.h: Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51610 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/5964jakub2002-03-291-0/+20
| | | | | | | | | | | | | | | | | | | | | * config/sparc/sparc.md (empty_delay_slot, branch_type): New attributes. (length): Compute variable length for branches/calls/jumps here. (branch, inverted_branch, normal_fp_branch, inverted_fp_branch, normal_fpe_branch, inverted_fpe_branch): Remove length attribute, define branch_type attribute. (divsi3_sp32): Maximum length is 6 not 7. (call_address_struct_value_sp32, call_symbolic_struct_value_sp32, call_address_untyped_struct_value_sp32, call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2. * config/sparc/sparc.c (empty_delay_slot): New function. * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove. * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype. * g++.dg/opt/longbranch1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51557 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.c (function_arg_pass_by_reference): Passrth2002-03-261-3/+4
| | | | | | | | variable sized objects by reference. (sparc_va_arg): Receive them by reference too. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51378 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.c (sparc_emit_floatunsdi): New.rth2002-03-241-0/+36
| | | | | | | | * config/sparc/sparc-protos.h: Update. * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51249 138bc75d-0d04-0410-961f-82ee72b054a4
* PR bootstrap/4128jakub2002-03-151-14/+11
| | | | | | | | | | | * config/sparc/sparc.c (gen_v9_scc): Move early clobber test before movrXX only, use reg_overlap_mentioned_p. Only special case NE if just one insn can be generated. * gcc.c-torture/compile/20020315-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50826 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/5626jakub2002-03-131-65/+213
| | | | | | | | | | | | | | | | | | | | | * config/sparc/sparc.md (normal_branch, inverted_branch, normal_fp_branch, inverted_fp_branch, normal_fpe_branch, inverted_fp_branch): Adjust calls to output_cbranch. Set length attribute. (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to output_v9branch. Set length attribute. * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New predicates. (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode. (output_cbranch): Likewise. Handle far branches. (output_v9branch): Handle far branches. * config/sparc/sparc-protos.h (output_cbranch, output_v9branch): Adjust prototypes. * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and noov_compare64_op predicates. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50753 138bc75d-0d04-0410-961f-82ee72b054a4
* * sparc.c (arith_4096_operand): Fix error in last change.ghazi2002-03-091-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50468 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud