Commit Graph

57 Commits

Author SHA1 Message Date
Diego Novillo 6de9cd9a88 Merge tree-ssa-20020619-branch into mainline.
From-SVN: r81764
2004-05-13 02:41:07 -04:00
Bob Wilson f1dfe7049d xtensa.c (call_insn_operand): Check SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
* config/xtensa/xtensa.c (call_insn_operand): Check
	SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
	* config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
	* config/xtensa/xtensa.md (call, call_value): Likewise.

From-SVN: r81228
2004-04-27 22:47:56 +00:00
Bob Wilson 79e9ebdc7d xtensa.c (current_function_arg_words): Delete.
* config/xtensa/xtensa.c (current_function_arg_words): Delete.
	(xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
	(xtensa_va_start): Remove assignment to current_function_arg_words.

From-SVN: r79632
2004-03-18 18:13:20 +00:00
Richard Henderson 42ba513004 re PR target/14547 (Passing _Complex long double does not follow the ABI)
PR target/14547
        * target.h (struct gcc_target): Move calls substructure before
        booleans.  Add split_complex_arg.
        * function.c (assign_parms, split_complex_args): Use it.
        * calls.c (expand_call): Likewise.
        (split_complex_values): Likewise.  Check for splittable types
        before allocating memory.
        (split_complex_types): Likewise.
        * system.h (SPLIT_COMPLEX_ARGS): Poison.
        * expr.h (SPLIT_COMPLEX_ARGS): Remove.
        * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
        * config/alpha/alpha.c (alpha_split_complex_arg): New.
        (TARGET_SPLIT_COMPLEX_ARG): New.
        * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
        * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
        (rs6000_override_options): Zap it for non-AIX.
        (rs6000_function_value): Use targetm.calls.split_complex_arg.
        * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
        * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
        * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
        * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
        SPLIT_COMPLEX_ARGS entry.

From-SVN: r79376
2004-03-12 02:03:32 -08:00
Bob Wilson 822e895caf xtensa.c (function_arg): Handle 16-byte aligned args.
* config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
	(xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
	__va_ndx by 2 words when referencing an argument on the stack.
	(xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
	words when an arg on the stack is first seen.

From-SVN: r78990
2004-03-05 21:41:19 +00:00
Bob Wilson 6e5ff6e7fb xtensa.c (xtensa_return_in_msb): New function.
* config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
	(TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.

From-SVN: r78955
2004-03-05 01:13:43 +00:00
Bob Wilson 997b8b4d4c xtensa-protos.h (xtensa_copy_incoming_a7): Update.
* config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
	(init_cumulative_args): Likewise.
	(a7_overlap_mentioned_p): Delete prototype.
	* config/xtensa/xtensa.c (struct machine_function): Replace
	incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
	Add set_frame_ptr_insn field.
	(xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
	(xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
	if the operand is an argument in a7.  If so, copy a7 to a new pseudo
	at the function entry and replace the operand with the pseudo.
	(init_cumulative_args): Remove unused arguments.  Add new "incoming"
	argument and record this flag in CUMULATIVE_ARGS.
	(function_arg): Remove result_mode and special-case code to handle
	arguments in a7.  Instead, set need_a7_copy flag when there is an
	incoming argument in a7.
	(xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
	and use the value recorded in cfun->machine->set_frame_ptr_insn.
	(xtensa_builtin_saveregs): Check for negative gp_left value.  Set
	need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
	special-case code.
	(a7_overlap_mentioned_p): Delete.
	* config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
	(INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
	arguments to init_cumulative_args and pass "incoming" flag instead.
	(BLOCK_REG_PADDING): Delete.
	* config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
	checks for reload_in_progress and reload_completed.  Update calls to
	xtensa_copy_incoming_a7.
	(ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
	to call xtensa_copy_incoming_a7.

From-SVN: r77583
2004-02-10 01:35:53 +00:00
Kazu Hirata 1f6acb82a2 target-def.h (TARGET_STRUCT_VALUE_RTX): Define as hook_rtx_tree_int_null.
* target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
	hook_rtx_tree_int_null.
	* targhooks.c (default_struct_value_rtx): Remove.
	* targhooks.h: Remove the prototype for
	default_struct_value_rtx.
	* config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
	config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
	config/ip2k/ip2k.c, config/iq2000/iq2000.c,
	config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
	config/mn10300/mn10300.c, config/pdp11/pdp11.c,
	config/rs6000/rs6000.c, config/s390/s390.c,
	config/stormy16/stormy16.c, config/v850/v850.c,
	config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
	* doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.

From-SVN: r77505
2004-02-08 23:08:48 +00:00
Kazu Hirata 1c563bedd2 arc.md, [...]: Replace gen_rtx with gen_rtx_fmt_e*.
* config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
	config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
	config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
	config/iq2000/iq2000.c, config/m32r/m32r.c,
	config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
	config/mn10300/mn10300.c, config/rs6000/rs6000.c,
	config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
	config/stormy16/stormy16.c, config/v850/v850.md,
	config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.

From-SVN: r77098
2004-02-02 06:31:08 +00:00
Kazu Hirata bd5bd7ac81 alpha.c: Remove mentions of deprecates macros in comments...
* config/alpha/alpha.c: Remove mentions of deprecates macros
	in comments, remove some target-independent comments about target
	macros, and/or add minimal function comments for target hook
	implementations.
	* config/avr/avr.c: Likewise.
	* config/ia64/ia64.h: Likewise.
	* config/ip2k/ip2k.c: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/m32r/m32r.h: Likewise.
	* config/m68hc11/m68hc11.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mmix/mmix.c: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/pdp11/pdp11.c: Likewise.
	* config/rs6000/rs6000.h: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sh/sh.h: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/sparc/sparc.h: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.

From-SVN: r77005
2004-01-30 23:16:23 +00:00
Bob Wilson e6aecf8efd xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG on CQImode and CHImode incoming arguments in register a7.
* config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
	on CQImode and CHImode incoming arguments in register a7.
	(function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
	* config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
	* config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
	xtensa_copy_incoming_a7 before reload.

From-SVN: r76742
2004-01-27 20:24:59 +00:00
Kazu Hirata 4c45af42f5 xtensa-protos.h: Remove the prototype for xtensa_builtin_saveregs.
* config/xtensa/xtensa-protos.h: Remove the prototype for
	xtensa_builtin_saveregs.
	* config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
	(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
	(xtensa_builtin_saveregs): Make it static.
	(xtensa_return_in_memory): New.
	* config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
	(PROMOTE_FUNCTION_RETURN): Likewise.
	(PROMOTE_PROTOTYPES): Likewise.
	(STRUCT_VALUE): Likewise.
	(RETURN_IN_MEMORY): Likewise.
	(EXPAND_BUILTIN_SAVEREGS): Likewise.

From-SVN: r76644
2004-01-26 17:33:37 +00:00
Bob Wilson 3712281f9d xtensa.c (xtensa_va_arg): Handle complex values as separate real and imaginary parts.
* config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
	separate real and imaginary parts.
	* config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.

From-SVN: r76459
2004-01-23 22:12:34 +00:00
Bob Wilson b16417d615 xtensa.c (function_arg): Generalize logic so that it handles complex and vector modes.
* config/xtensa/xtensa.c (function_arg): Generalize logic so that it
	handles complex and vector modes.

From-SVN: r76373
2004-01-22 21:42:33 +00:00
Kazu Hirata 3bbc2af6e7 elf.h: Fix comment formatting.
* config/xtensa/elf.h: Fix comment formatting.
	* config/xtensa/xtensa-protos.h: Likewise.
	* config/xtensa/xtensa.c: Likewise.
	* config/xtensa/xtensa.h: Likewise.

From-SVN: r75018
2003-12-25 04:49:32 +00:00
Kazu Hirata 839a499276 vxlib.c: Fix comment typos.
* config/vxlib.c: Fix comment typos.
	* config/alpha/alpha.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/arm/arm.md: Likewise.
	* config/c4x/c4x.c: Likewise.
	* config/c4x/c4x.md: Likewise.
	* config/cris/cris.h: Likewise.
	* config/cris/cris.md: Likewise.
	* config/fr30/fr30.c: Likewise.
	* config/fr30/fr30.h: Likewise.
	* config/fr30/fr30.md: Likewise.
	* config/frv/frv.c: Likewise.
	* config/frv/frv.md: Likewise.
	* config/frv/frvbegin.c: Likewise.
	* config/i386/athlon.md: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/i386.md: Likewise.
	* config/i386/sco5.h: Likewise.
	* config/ia64/ia64.md: Likewise.
	* config/ip2k/ip2k.c: Likewise.
	* config/ip2k/ip2k.md: Likewise.
	* config/m68hc11/m68hc11.h: Likewise.
	* config/m68k/m68k.h: Likewise.
	* config/mips/mips.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/s390/s390.md: Likewise.
	* config/sh/sh.h: Likewise.
	* config/sparc/sparc.md: Likewise.
	* config/v850/v850.c: Likewise.
	* config/v850/v850.h: Likewise.
	* config/v850/v850.md: Likewise.
	* config/xtensa/xtensa.c: Likewise.

From-SVN: r74596
2003-12-13 04:44:12 +00:00
Richard Henderson c35d187fc3 builtins.c (std_build_builtin_va_list): New.
* builtins.c (std_build_builtin_va_list): New.
	* expr.h (std_build_builtin_va_list): Declare.
	* defaults.h (BUILD_VA_LIST_TYPE): New.
	* system.h (BUILD_VA_LIST_TYPE): Poison.
	* target-def.h (TARGET_BUILD_BUILTIN_VA_LIST): New.
	* target.h (struct gcc_target): Add build_builtin_va_list.
	* tree.c (build_common_tree_nodes_2): Use it.

	* config/alpha/alpha-protos.h, config/alpha/alpha.c,
	config/alpha/alpha.h, config/alpha/unicosmk.h,
	config/d30v/d30v-protos.h, config/d30v/d30v.c, config/d30v/d30v.h,
	config/i386/i386-protos.h, config/i386/i386.c, config/i386/i386.h,
	config/i860/i860-protos.h, config/i860/i860.c, config/i860/i860.h,
	config/i960/i960-protos.h, config/i960/i960.c, config/i960/i960.h,
	config/mips/iris6.h, config/mips/mips-protos.h, config/mips/mips.c,
	config/mips/mips.h, config/rs6000/rs6000-protos.h,
	config/rs6000/rs6000.c, config/rs6000/rs6000.h,
	config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h,
	config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h,
	config/xtensa/xtensa-protos.h, config/xtensa/xtensa.c,
	config/xtensa/xtensa.h: Rename foo_build_va_list to
	foo_build_builtin_va_list; make it static.  Define
	TARGET_BUILD_BUILTIN_VA_LIST.  Remove BUILD_VA_LIST_TYPE.
	Update protos.

	* config/i386/i386.c (ix86_expand_carry_flag_compare): Make static.
	* config/iq2000/iq2000.h (BUILD_VA_LIST_TYPE): Remove.

From-SVN: r73076
2003-10-29 18:02:49 -08:00
Bob Wilson b0c6e48ff6 xtensa.c (xtensa_dbx_register_number): Change first FP register number to 48 and MAC16 accumulator to 0x210.
* config/xtensa/xtensa.c (xtensa_dbx_register_number): Change first
	FP register number to 48 and MAC16 accumulator to 0x210.

From-SVN: r72283
2003-10-09 20:21:11 +00:00
Kazu Hirata 368ebcd6ff fold-const.c: Follow spelling conventions.
* fold-const.c: Follow spelling conventions.
	* function.c: Likewise.
	* config/c4x/c4x.h: Likewise.
	* config/c4x/c4x.md: Likewise.
	* config/frv/frv.md: Likewise.
	* config/rs6000/aix.h: Likewise.
	* config/rs6000/linux64.h: Likewise.
	* config/xtensa/xtensa.c: Likewise.

From-SVN: r72111
2003-10-05 13:34:45 +00:00
Bob Wilson ffbc879650 xtensa-protos.h: Convert to ISO C90.
* config/xtensa/xtensa-protos.h: Convert to ISO C90.
	* config/xtensa/xtensa.c: Convert to ISO C90.  Minor formatting fixes.

From-SVN: r71669
2003-09-22 23:19:45 +00:00
Bob Wilson cadafd1ffd xtensa.c (xtensa_multibss_section_type_flags): Add ATTRIBUTE_UNUSED.
* config/xtensa/xtensa.c (xtensa_multibss_section_type_flags): Add
	ATTRIBUTE_UNUSED.
	(call_insn_operand): For PIC, don't allow a direct call to a
	function in a different section than the current one.

From-SVN: r71415
2003-09-15 23:19:21 +00:00
Kaveh R. Ghazi e91e4f6cee mips.c: Don't include output.h twice.
* mips.c: Don't include output.h twice.
	* stormy16.c: Likewise.
	* xtensa.c: Likewise.
	* output.h: Protect against multiple inclusion.

From-SVN: r67330
2003-06-02 14:15:15 +00:00
Bob Wilson 633e4eb4ae xtensa-protos.h (smalloffset_double_mem_p): Delete.
* config/xtensa/xtensa-protos.h (smalloffset_double_mem_p): Delete.
        (xtensa_split_operand_pair): New proto.
        * config/xtensa/xtensa.c (move_operand): Handle DFmode and DImode.
        (smalloffset_double_mem_p): Delete.
        (gen_float_relational, printx, print_operand, xtensa_va_arg):
        Fix whitespace.
        (xtensa_split_operand_pair): New.
        (xtensa_dbx_register_number): Fix formatting.
        * config/xtensa/xtensa.h (EXTRA_CONSTRAINT): Remove 'S' constraint.
        * config/xtensa/xtensa.md (movdi, movdf): Force constants to memory
        instead of splitting them into single-word moves.  Remove unnecessary
        checks for reload_in_progress and reload_completed.
        (movdi_internal, movdf_internal): Change to post-reload split patterns.
        Add constraints to allow constant operands.
        (movsf_internal): Allow CONST_INT operands.

From-SVN: r67215
2003-05-29 00:08:36 +00:00
Bob Wilson 7a29f483cf xtensa.h (MASK_SERIALIZE_VOLATILE, [...]): Delete.
* config/xtensa/xtensa.h (MASK_SERIALIZE_VOLATILE,
        TARGET_SERIALIZE_VOLATILE): Delete.
        (MASK_CONST16, MASK_ABS, MASK_ADDX): Renumber flag bits.
        (TARGET_DEFAULT): Remove MASK_SERIALIZE_VOLATILE.
        (TARGET_SWITCHES): Remove "-mserialize-volatile" and
        "-mno-serialize-volatile".
        * config/xtensa/xtensa.c (print_operand): Remove checks of
        TARGET_SERIALIZE_VOLATILE.
        * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
        * doc/invoke.texi (Option Summary, Xtensa Options): Remove
        "-mserialize-volatile" and "-mno-serialize-volatile" options.

From-SVN: r67067
2003-05-21 21:23:03 +00:00
Bob Wilson f42f5a1b1e lib2funcs.S (TRAMPOLINE_SIZE): Change from 49 to 59.
* config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Change from 49 to 59.
        * config/xtensa/xtensa-config.h (XCHAL_HAVE_CONST16,
        XCHAL_HAVE_L32R): New.
        * config/xtensa/xtensa-protos.h (non_const_move_operand,
        xtensa_load_constant, xtensa_function_prologue,
        xtensa_function_epilogue): Delete prototypes.
        (xtensa_expand_prologue): New.
        * config/xtensa/xtensa.c (frame_size_const,
        TARGET_ASM_FUNCTION_PROLOGUE, TARGET_MACHINE_DEPENDENT_REORG,
        non_const_move_operand, xtensa_load_constant, xtensa_reorg,
        xtensa_function_prologue): Delete.
        (add_operand, xtensa_mem_offset): Formatting.
        (move_operand): If the const16 option is available, allow any SFmode
        and SImode constants.
        (xtensa_emit_move_sequence): Inline the former contents of
        xtensa_load_constant with modifications to handle the const16 option.
        (override_options): Add xtensa_char_to_class['W'] and set it to
        the general register class only if the const16 option is enabled.
        Fix formatting.  Disallow PIC when using the const16 option.
        (print_operand): Reorganize to switch on "letter" instead of the
        RTL code.  Add output_operand_lossage calls for invalid cases.
        Add support for 't' and 'b' letters.
        (xtensa_expand_prologue): New function to replace
        xtensa_function_prologue and xtensa_reorg.
        (xtensa_function_epilogue): Declare this as static.  Delete code
        to print the retw.n or retw instruction.
        (xtensa_return_addr): Use A0_REG instead of 0.
        (xtensa_rtx_costs): Add costs for using the const16 option.
        * config/xtensa/xtensa.h (MASK_CONST16, TARGET_CONST16): New.
        (TARGET_DEFAULT): Add CONST16 if L32R instructions not available.
        (TARGET_SWITCHES): Add "const16" and "no-const16".
        (REG_CLASS_FROM_LETTER): Add comment about new 'W' letter.
        (EXTRA_CONSTRAINT): Change 'T' constraint to only apply when not
        using the const16 option.
        (TRAMPOLINE_TEMPLATE): Rewrite to avoid hardwired use of l32r insn.
        (TRAMPOLINE_SIZE): Change from 49 to 59.
        (INITIALIZE_TRAMPOLINE): Adjust offsets to match new trampoline.
        (GO_IF_LEGITIMATE_ADDRESS): Do not allow constant pool addresses
        when using the const16 option.
        (PREDICATE_CODES): Delete non_const_move_operand.
        * config/xtensa/xtensa.md (define_constants): Add A1_REG, A8_REG, and
        UNSPECV_ENTRY.
        (movdi, movdf): If the source is a constant, always expand to a
        sequence of movsi insns.
        (movdi_internal, movdf_internal): Remove alternative using l32r insns.
        (movsi_internal, movsf_internal): Add alternative using const16 insns.
        (movsf): Add const16 support.
        (entry, prologue, epilogue): New.
        (set_frame_ptr): Add missing mode for unspec_volatile operation.
        Likewise for subsequent split pattern.
        * doc/invoke.texi (Option Summary, Xtensa Options): Document new
        "-mconst16" and "-mno-const16" options.

From-SVN: r66809
2003-05-14 18:37:26 +00:00
Richard Sandiford 18dbd95060 target-def.h (TARGET_MACHINE_DEPENDENT_REORG): Define.
* target-def.h (TARGET_MACHINE_DEPENDENT_REORG): Define.
	(TARGET_INITIALIZER): Include it.
	* target.h (struct gcc_target): Add machine_dependent_reorg field.
	* toplev.c (rest_of_compilation): Use targetm.machine_dependent_reorg.

	* config/alpha/alpha-protos.h (alpha_reorg): Remove declaration.
	* config/alpha/alpha.h (MACHINE_DEPENDENT_REORG): Remove.
	* config/alpha/alpha.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
	(alpha_handle_trap_shadows): Remove "first insn" parameter.
	(alpha_align_insns): Likewise.
	(alpha_reorg): Likewise.  Make static.  Update calls to above
	functions.

	* config/arm/arm-protos.h (arm_reorg): Remove declaration.
	* config/arm/arm.h (MACHINE_DEPENDENT_REORG): Remove.
	* config/arm/arm.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
	(arm_reorg): Remove parameter.  Make static.

	* config/avr/avr-protos.h (machine_dependent_reorg): Remove.
	* config/avr/avr.h (MACHINE_DEPENDENT_REORG): Remove.
	* config/avr/avr.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
	(avr_reorg): Renamed from machine_dependent_reorg.  Make static.
	Remove parameter.

	* config/c4x/c4x-protos.h (c4x_process_after_reload): Remove.
	* config/c4x/c4x.h (MACHINE_DEPENDENT_REORG): Remove.
	* config/c4x/c4x.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
	(c4x_reorg): Renamed from c4x_process_after_reload.  Make static.
	Remove parameter.

	* config/d30v/d30v-protos.h (d30v_machine_dependent_reorg): Remove.
	* config/d30v/d30v.h (MACHINE_DEPENDENT_REORG): Remove.
	* config/d30v/d30v.c (d30v_machine_dependent_reorg): Remove.

	* config/frv/frv-protos.h (frv_machine_dependent_reorg): Remove.
	* config/frv/frv.c: Remove orphaned comment.

	* config/i386/i386-protos.h (x86_machine_dependent_reorg): Remove.
	* config/i386/i386.h (MACHINE_DEPENDENT_REORG): Remove.
	* config/i386/i386.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
	(ix86_reorg): Renamed from x86_machine_dependent_reorg.  Make static.
	Remove parameter.

	* config/ia64/ia64-protos.h (ia64_reorg): Remove declaration.
	* config/ia64/ia64.h (MACHINE_DEPENDENT_REORG): Remove.
	* config/ia64/ia64.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
	(emit_insn_group_barriers): Remove "first insn" parameter.
	(emit_all_insn_group_barriers): Likewise.
	(ia64_reorg): Likewise.  Make static.  Update calls to above functions.
	(ia64_output_mi_thunk): Update call to emit_all_insn_group_barriers.

	* config/ip2k/ip2k-protos.h (machine_dependent_reorg): Remove.
	* config/ip2k/ip2k.h (MACHINE_DEPENDENT_REORG): Remove.
	* config/ip2k/ip2k.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
	(ip2k_reorg): Renamed from machine_dependent_reorg.  Make static.
	Remove parameter.

	* config/m68hc11/m68hc11-protos.h (m68hc11_reorg): Remove declaration.
	* config/m68hc11/m68hc11.h (MACHINE_DEPENDENT_REORG): Remove.
	* config/m68hc11/m68hc11.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
	(m68hc11_reorg): Make static.  Remove parameter.

	* config/mcore/mcore-protos.h (mcore_dependent_reorg): Remove.
	* config/mcore/mcore.h (MACHINE_DEPENDENT_REORG): Remove.
	* config/mcore/mcore.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
	(conditionalize_optimization): Remove parameter.
	(mcore_reorg): Renamed from mcore_dependent_reorg.  Remove parameter.
	Make static.  Update call to conditionalize_optimization.

	* config/mips/mips-protos.h (machine_dependent_reorg): Remove.
	* config/mips/mips.h (MACHINE_DEPENDENT_REORG): Remove.
	* config/mips/mips.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
	(mips_reorg): Renamed from machine_dependent_reorg.  Remove parameter.
	Make static.

	* config/mmix/mmix-protos.h (mmix_machine_dependent_reorg): Remove.
	* config/mmix/mmix.h (MACHINE_DEPENDENT_REORG): Remove.
	* config/mmix/mmix.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
	(mmix_reorg): Renamed from mmix_machine_dependent_reorg.  Make static.
	Remove parameter.

	* config/pa/pa-protos.h (pa_reorg): Remove declaration.
	* config/pa/pa.h (MACHINE_DEPENDENT_REORG): Remove.
	* config/pa/pa.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
	(pa_combine_instructions): Remove "first insn" parameter.
	(remove_useless_addtr_insns): Likewise.
	(pa_reorg): Likewise.  Make static.  Update calls to above functions.

	* config/rs6000/rs6000.h (MACHINE_DEPENDENT_REORG): Remove
	commented-out definition.

	* config/s390/s390-protos.h (s390_machine_dependent_reorg): Remove.
	* config/s390/s390.h (MACHINE_DEPENDENT_REORG): Remove.
	* config/s390/s390.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
	(s390_reorg): Renamed from s390_machine_dependent_reorg.  Make static.
	Remove parameter.

	* config/sh/sh-protos.h (machine_dependent_reorg): Remove.
	* config/sh/sh.h (MACHINE_DEPENDENT_REORG): Remove.
	* config/sh/sh.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
	(sh_reorg): Renamed from machine_dependent_reorg.  Make static.
	Remove parameter.
	(sh_output_mi_thunk): Call sh_reorg directly.
	* config/sh/sh.md: Update comment.

	* config/stormy16/stormy16.h (MACHINE_DEPENDENT_REORG): Remove
	commented-out definition.

	* config/v850/v850-protos.h (v850_reorg): Remove declaration.
	* config/v850/v850.h (MACHINE_DEPENDENT_REORG): Remove.
	* config/v850/v850.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
	(v850_reorg): Make static.  Remove parameter.

	* config/xtensa/xtensa-protos.h (xtensa_reorg): Remove declaration.
	* config/xtensa/xtensa.h (MACHINE_DEPENDENT_REORG): Remove.
	* config/xtensa/xtensa.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
	(xtensa_reorg): Make static.  Remove parameter.

	* doc/tm.texi (MACHINE_DEPENDENT_REORG): Remove.
	(TARGET_MACHINE_DEPENDENT_REORG): Document.

From-SVN: r66800
2003-05-14 07:29:54 +00:00
Bob Wilson 0bd0703d04 xtensa.c (xtensa_emit_loop_end): Only use "nop.n" instruction if the Xtensa density option is enabled.
* config/xtensa/xtensa.c (xtensa_emit_loop_end): Only use "nop.n"
        instruction if the Xtensa density option is enabled.

From-SVN: r66649
2003-05-09 23:36:39 +00:00
Bob Wilson 638db43e75 * config/xtensa/xtensa.c: Formatting.
From-SVN: r66636
2003-05-09 16:05:46 +00:00
Bob Wilson 6a2b287ffd linux.h (TARGET_OS_CPP_BUILTINS): Remove definition of _GNU_SOURCE.
* config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Remove definition of
        _GNU_SOURCE.  Add definitions of __PIC__ and __pic__.
        (SUBTARGET_CPP_SPEC): Define.
        (LIB_SPEC): Delete.
        * config/xtensa/xtensa-protos.h (xtensa_declare_object): Delete.
        * config/xtensa/xtensa.c (xtensa_declare_object): Delete.
        * config/xtensa/xtensa.h (CPP_SPEC, SUBTARGET_CPP_SPEC, EXTRA_SPECS):
        Define.
        (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
        (ASM_OUTPUT_ALIGNED_BSS, BSS_SECTION_ASM_OP): Define.

From-SVN: r66083
2003-04-26 00:06:51 +00:00
Richard Henderson f2dd0c4231 xtensa.c (xtensa_encode_section_info): Remove.
* config/xtensa/xtensa.c (xtensa_encode_section_info): Remove.
        (call_insn_operand): Use SYMBOL_REF_LOCAL_P.
        * config/xtensa/xtensa.md (call, call_value): Likewise.

From-SVN: r65739
2003-04-17 04:24:04 -07:00
Bob Wilson a3259be8e3 xtensa.md (set_frame_ptr): Change rtl to set reg a7.
* config/xtensa/xtensa.md (set_frame_ptr): Change rtl to set reg a7.
        * config/xtensa/xtensa.c (xtensa_reorg): Search for UNSPECV_SET_FP
        as a SET pattern.

From-SVN: r62730
2003-02-11 21:42:31 +00:00
Bob Wilson 985d0d50d5 xtensa.c (order_regs_for_local_alloc): Order the coprocessor registers before floating-point registers.
* config/xtensa/xtensa.c (order_regs_for_local_alloc): Order the
        coprocessor registers before floating-point registers.
        * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Adjust register numbers
        to account for a previously removed register.
        (SPEC_REG_FIRST, SPEC_REG_LAST, SPEC_REG_NUM, COUNT_REGISTER_REGNUM):
        Delete unused macros.

From-SVN: r62340
2003-02-03 20:23:24 +00:00
Richard Henderson dcefdf6717 target.h (targetm.address_cost): New.
* target.h (targetm.address_cost): New.
	* 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.

From-SVN: r61988
2003-01-28 10:08:56 -08:00
Richard Henderson 3c50106f69 Makefile.in (cse.o): Depend on TARGET_H.
* Makefile.in (cse.o): Depend on TARGET_H.
	* 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.

From-SVN: r61954
2003-01-27 20:46:33 -08:00
Bob Wilson 1d0ea52e2d xtensa.c: Remove unused include of machmode.h.
* config/xtensa/xtensa.c: Remove unused include of machmode.h.
        (xtensa_emit_call, print_operand): Fix printf format strings
        to avoid compile warnings.
        (xtensa_function_prologue, xtensa_function_epilogue): Change type
        of "size" argument to HOST_WIDE_INT to fix compile warnings.
        * config/xtensa/xtensa-protos.h
        (xtensa_function_prologue, xtensa_function_epilogue): Ditto.

From-SVN: r61739
2003-01-24 22:09:05 +00:00
Zack Weinberg 4977bab6ed Merge basic-improvements-branch to trunk
From-SVN: r60174
2002-12-16 18:23:00 +00:00
Bob Wilson 58db834b27 xtensa-protos.h (xtensa_copy_incoming_a7): Declare.
* config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Declare.
        * config/xtensa/xtensa.c (struct machine_function): Add
        incoming_a7_copied flag.
        (xtensa_copy_incoming_a7): Define.
        (xtensa_emit_move_sequence): Use xtensa_copy_incoming_a7.
        * config/xtensa/xtensa.md (movdi, movsf, movdf): Ditto.

From-SVN: r59364
2002-11-22 00:23:31 +00:00
Bob Wilson 89f6025db0 xtensa.h (REG_CLASS_NAMES, [...]): Add new RL_REGS register class.
* config/xtensa/xtensa.h (REG_CLASS_NAMES, REG_CLASS_CONTENTS):
        Add new RL_REGS register class.
        (PREFERRED_RELOAD_CLASS, PREFERRED_OUTPUT_RELOAD_CLASS):
        Call xtensa_preferred_reload_class for both input and output reloads.
        * config/xtensa/xtensa.c (xtensa_regno_to_class): Use new RL_REGS class.
        (xtensa_preferred_reload_class): Handle output reloads; use RL_REGS
        instead of either AR_REGS or GR_REGS classes.
        (xtensa_secondary_reload_class): Use new RL_REGS class.
        * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class): Update.

From-SVN: r57666
2002-09-30 20:25:44 +00:00
Bob Wilson 01abf342f8 elf.h (TARGET_SECTION_TYPE_FLAGS): Define to xtensa_multibss_section_type_flags.
* config/xtensa/elf.h (TARGET_SECTION_TYPE_FLAGS): Define to
        xtensa_multibss_section_type_flags.
        * config/xtensa/xtensa.c (xtensa_multibss_section_type_flags): Define.

From-SVN: r56797
2002-09-04 16:22:51 +00:00
Kaveh R. Ghazi ab2877a39b arc.c (arc_init): Don't use ISO C style function definitions.
* arc.c (arc_init): Don't use ISO C style function definitions.
	* arm.c (count_insns_for_constant, thumb_far_jump_used_p,
	arm_get_strip_length, arm_strip_name_encoding): Likewise.
	* avr.h (progmem_section): Likewise.
	* h8300.c h8300_asm_insn_count): Likewise.
	* m32r.c (init_idents): Likewise.
	* s390.c (s390_split_branches, s390_chunkify_pool): Likewise.
	* sh.c (sh_cfun_interrupt_handler_p): Likewise.
	* xtensa.c (xtensa_build_va_list): Likewise.

From-SVN: r56209
2002-08-11 18:48:52 +00:00
Zack Weinberg e5faf155c9 builtins.c (std_expand_builtin_va_start): Remove unused first argument.
* builtins.c (std_expand_builtin_va_start): Remove unused
	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.

From-SVN: r55495
2002-07-16 20:59:08 +00:00
Bob Wilson 0c14a54df6 xtensa-protos.h (xtensa_return_addr): Declare.
* config/xtensa/xtensa-protos.h (xtensa_return_addr): Declare.
        config/xtensa/xtensa.c (xtensa_return_addr): New function.
        config/xtensa/xtensa.h (RETURN_ADDR_RTX): Use xtensa_return_addr.
        config/xtensa/xtensa.md (fix_return_addr): New pattern.

From-SVN: r55020
2002-06-27 04:33:41 +00:00
Bob Wilson a69c385e73 xtensa.c (override_options): Don't warn about using -fpic or -fPIC when PIC is enabled by default.
* config/xtensa/xtensa.c (override_options): Don't warn about
        using -fpic or -fPIC when PIC is enabled by default.

From-SVN: r54483
2002-06-11 03:50:59 +00:00
Bob Wilson 540eaea825 xtensa.c (xtensa_build_va_list): Use lang_hooks.types.make_type instead of make_node; set up __va_list_tag type decl.
* config/xtensa/xtensa.c (xtensa_build_va_list): Use
        lang_hooks.types.make_type instead of make_node; set up
        __va_list_tag type decl.
        (xtensa_builtin_saveregs): Remove broken use of
        RTX_UNCHANGING_P and unnecessary use of MEM_IN_STRUCT_P
        for saved registers; add varargs alias set.

From-SVN: r54288
2002-06-05 18:55:19 +00:00
Bob Wilson 072326388a xtensa.c (xtensa_init_machine_status): Fix typo in function prototype and include "ggc.h" header.
* config/xtensa/xtensa.c (xtensa_init_machine_status): Fix
        typo in function prototype and include "ggc.h" header.

From-SVN: r54269
2002-06-04 23:41:42 +00:00
Geoffrey Keating e2500fedef Merge from pch-branch up to tag pch-commit-20020603.
From-SVN: r54232
2002-06-04 07:11:05 +00:00
Richard Henderson fb49053ffd system.h (ENCODE_SECTION_INFO): Poison it.
* system.h (ENCODE_SECTION_INFO): Poison it.
	* 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.

From-SVN: r53606
2002-05-18 22:23:27 -07:00
Richard Henderson b64a1b533c system.h (SELECT_RTX_SECTION): Poison.
* system.h (SELECT_RTX_SECTION): Poison.
	* 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.

From-SVN: r53600
2002-05-18 16:47:22 -07:00
Bob Wilson 544ef5b5df xtensa.c (xtensa_va_arg): Fix compiler warning in previous change.
* config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
        in previous change.

From-SVN: r51704
2002-04-01 20:07:21 +00:00
Bob Wilson bcf88f9b91 xtensa.c (xtensa_va_arg): Fix to handle arguments for which MUST_PASS_IN_STACK is true (e.g....
* config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
        for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).

From-SVN: r51700
2002-04-01 19:52:18 +00:00