Commit Graph

90 Commits

Author SHA1 Message Date
Georg-Johann Lay
d702f362b5 re PR target/50887 ([avr] Support ACCUMULATE_OUTGOING_ARGS)
PR target/50887
	* config/avr/avr.opt (-maccumulate-args): New option.
	* config/avr/avr.h (STARTING_FRAME_OFFSET): Redefine to
	avr_starting_frame_offset.
	(ACCUMULATE_OUTGOING_ARGS): Define to avr_accumulate_outgoing_args.
	* config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): Remove.
	(UNSPECV_WRITE_SP_IRQ_OFF): Remove.
	(UNSPECV_WRITE_SP): New constant.
	(*addhi3_sp_R): Rewrite to...
	(*addhi3_sp): ...this new insn.
	(movhi_sp_r_irq_off, movhi_sp_r_irq_on): Combine to...
	(movhi_sp_r): ...this new insn.
	* config/avr/avr-protos.h (avr_accumulate_outgoing_args): New.
	(avr_starting_frame_offset): New.
	* config/avr/avr.c (avr_accumulate_outgoing_args): New function.
	(avr_starting_frame_offset): New function.
	(avr_outgoing_args_size): New static function.
	(avr_initial_elimination_offset): Use it.
	(avr_simple_epilogue): Use it.
	(avr_asm_function_end_prologue): Use it.
	(expand_epilogue): Use it.
	(expand_prologue): Use it.  Break out code to...
	(avr_prologue_setup_frame): ...this new static function.
	(avr_can_eliminate): Allow eliminating to frame pointer if there
	is one.
	(avr_frame_pointer_required_p): Use frame pointer if target has a
	nonlocal label.
	* config/avr/constraints.md (R): Remove.
	(Csp): New constraint.
	* config/avr/predicates.md (avr_sp_immediate_operand): Use it.

From-SVN: r180654
2011-10-29 14:35:59 +00:00
Georg-Johann Lay
c1a330ef7f avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X instead of X to avr_legitimize_reload_address.
* config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X
	instead of X to avr_legitimize_reload_address.
	* config/avr/avr-protos.h (avr_legitimize_reload_address): Change
	first argument's type from rtx to rtx*.
	* config/avr/avr.c (avr_legitimize_reload_address): Ditto.
	Pass PX to push_reload instead of &X.  Change log messages for
	better distinction.

From-SVN: r180308
2011-10-21 15:46:32 +00:00
Georg-Johann Lay
2f47b8d3be re PR target/50447 ([avr] Better support of AND, OR, XOR and PLUS with constant integers for 16- and 32-bit values)
PR target/50447
	* config/avr/avr.md (cc): New alternative out_plus_noclobber.
	(adjust_len): Ditto.
	(addhi3): Don't pipe through short; use gen_int_mode instead.
	Prior to reload, expand to gen_addhi3_clobber.
	(*addhi3): Use avr_out_plus_noclobber if applicable, use
	out_plus_noclobber in cc and adjust_len attribute.
	(addhi3_clobber): 2 new RTL peepholes.
	(addhi3_clobber): New insn.
	* config/avr/avr-protos.h: (avr_out_plus_noclobber): New prototype.
	* config/avr/avr.c (avr_out_plus_noclobber): New function.
	(notice_update_cc): Handle CC_OUT_PLUS_NOCLOBBER.
	(avr_out_plus_1): Tweak if only MSB is +/-1 and other bytes are 0.
	Set cc0 to set_zn for adiw on 16-bit values.
	(adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS_NOCLOBBER.
	(expand_epilogue): No need to add 0 to frame_pointer_rtx.

From-SVN: r180193
2011-10-19 14:59:00 +00:00
Georg-Johann Lay
8efab2c5ea avr-protos.h (avr_mode_code_base_reg_class): New prototype.
* config/avr/avr-protos.h (avr_mode_code_base_reg_class): New prototype.
	(avr_regno_mode_code_ok_for_base_p): New prototype.
	* config/avr/avr.h (BASE_REG_CLASS): Remove.
	(REGNO_OK_FOR_BASE_P): Remove.
	(REG_OK_FOR_BASE_NOSTRICT_P): Remove.
	(REG_OK_FOR_BASE_STRICT_P): Remove.
	(MODE_CODE_BASE_REG_CLASS): New define.
	(REGNO_MODE_CODE_OK_FOR_BASE_P): New define.
	* config/avr/avr.c (avr_mode_code_base_reg_class): New function.
	(avr_regno_mode_code_ok_for_base_p): New function.
	(avr_reg_ok_for_addr_p): New static function.
	(avr_legitimate_address_p): Use it.  Beautify.

From-SVN: r179817
2011-10-11 18:34:16 +00:00
Georg-Johann Lay
05058b6e31 re PR target/50447 ([avr] Better support of AND, OR, XOR and PLUS with constant integers for 16- and 32-bit values)
PR target/50447
	* config/avr/avr.md (cc): Add out_plus attribute alternative.
	(addsi3): Use it.  Adapt avr_out_plus to new prototype.  Use
	avr_out_plus for all CONST_INT addends.
	* config/avr/avr-protos.h (avr_out_plus): Change prototype.
	* config/avr/avr.c (notice_update_cc): Call avr_out_plus on
	CC_OUT_PLUS.
	(avr_out_plus_1): Change prototype and report effect on cc0.
	(avr_out_plus): Ditto.
	(adjust_insn_length): Adapt call to avr_out_plus to new prototype.

From-SVN: r179816
2011-10-11 18:28:49 +00:00
Georg-Johann Lay
180ee6d101 avr-protos.h (avr_out_addto_sp): New prototype.
* config/avr/avr-protos.h (avr_out_addto_sp): New prototype.
	* config/avr/avr.c (avr_out_addto_sp): New function.
	(adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP.
	* config/avr/avr.md (adjust_len): Add "addto_sp".
	(*movhi_sp): Remove insn.
	(*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R.

From-SVN: r179544
2011-10-05 11:16:10 +00:00
Georg-Johann Lay
36a50ab6e0 re PR target/50566 ([avr]: Add support for better logging similar to -mdeb)
PR target/50566
	* config/avr/avr-protos.h (avr_legitimize_reload_address): New
	prototype.
	* config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Copy worker code
	from here...
	* config/avr/avr.c (avr_legitimize_reload_address) ...to this new
	function.  Log if avr_log.legitimize_reload_address.

From-SVN: r179494
2011-10-04 08:23:03 +00:00
Georg-Johann Lay
fe780c134a re PR target/50566 ([avr]: Add support for better logging similar to -mdeb)
PR target/50566
	* config/avr/avr-protos.h (avr_log_t): New field address_cost.
	* config/avr/avr.c (avr_address_cost): Use it.
	* config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
	(avr_log_vadump): Unknown %-codes finish printing.

From-SVN: r179391
2011-09-30 15:15:23 +00:00
Georg-Johann Lay
6c7dfafee6 re PR target/50566 ([avr]: Add support for better logging similar to -mdeb)
PR target/50566
	* config.gcc (extra_objs): Add avr-log.o for $target in:
	avr-*-rtems*, avr-*-*.
	* config/avr/t-avr (avr-log.o): New rule to compile...
	* config/avr/avr-log.c: ...this new file.
	* config/avr/avr.opt (mlog=): New option.
	* config/avr/avr-protos.h (avr_edump, avr_fdump): New macros.
	(avr_log_set_caller_e, avr_log_set_caller_f): New prototypes.
	(avr_log_set_avr_log): New prototype.
	(avr_log_t): New typedef.
	(avr_log): New declaration.
	* config/avr/avr.c (avr_option_override): Call avr_log_set_avr_log.

From-SVN: r179344
2011-09-29 11:51:59 +00:00
Georg-Johann Lay
8a6a05ce93 re PR target/50465 ([avr] Use insn attribute to depict if and how instruction lengths have to be adjusted)
PR target/50465
	* config/avr/avr-protos.h (output_reload_insisf): Don't pass insn.
	* config/avr/avr.md (*reload_insi, *reload_insf): Change call to
	output_reload_insisf.
	(adjust_len): Set default to "no".
	Remove alternative "yes".  Add alternatives: "mov8", "mov16",
	"mov32", "ashlqi", "ashrqi", "lshrqi", "ashlhi", "ashrhi",
	"lshrhi", "ashlsi, "ashrsi", "lshrsi".
	(*movqi, *movhi, *movsi, *ashlqi3, ashlhi3, ashlsi3,
	*ashlhi3_const, *ashlsi3_const, ashrqi3, ashrhi3, ashrsi3,
	*ashrhi3_const, *ashrsi3_const, *lshrqi3, lshrhi3, *lshrhi3_const,
	*lshrsi3_const): Set attribute "adjust_len".
	* config/avr/avr.c (output_reload_insisf): Remove parameter "insn".
	(output_movsisf): Don't pass insn to output_reload_insisf.
	(adjust_insn_length): Handle new alternatives to adjust_len.
	Remove handling of ADJUST_LEN_YES.  Clean-up code.

From-SVN: r179191
2011-09-26 11:53:40 +00:00
Georg-Johann Lay
20633efc34 avr-protos.h (output_reload_inhi): Change prototype.
* config/avr/avr-protos.h (output_reload_inhi): Change prototype.
	* config/avr/avr.md (adjust_len): Add "reload_in16" alternative.
	(*reload_inhi): Use it.  Adapt call to output_reload_inhi to new
	prototype.
	(*movhi): Split constraint alternative "r,rL" into "r,r" and "r,L".
	* config/avr/avr.c: Rename output_reload_insisf_1 to
	output_reload_in_const.
	(avr_popcount_each_byte): Handle SFmode, too.
	(output_reload_in_const): Change so it can handle HI loads, too.
	Use avr_popcount_each_byte to work out if scratch register must be
	created on the fly.
	(output_reload_inhi): Rewrite using output_reload_in_const and...
	(output_movhi): ...use it to print constants' loads.
	(adjust_insn_length): New case ADJUST_LEN_RELOAD_IN16. Cleanup code.

From-SVN: r179181
2011-09-26 08:14:25 +00:00
Georg-Johann Lay
a7c0acd019 re PR target/50447 ([avr] Better support of AND, OR, XOR and PLUS with constant integers for 16- and 32-bit values)
* config/avr/avr.md (adjust_len): Add alternatives "tsthi",
	"tstsi", "compare".
	(*cmpqi_sign_extend): Use s8_operand.
	(*cmphi, *cmpsi): Rewrite using avr_out_compare.
	* config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove
	prototypes.
	(out_tsthi, out_tstsi): Remove prototypes.
	(avr_out_tsthi, avr_out_tstsi): New prototypes.
	* config/avr/avr.c (out_tsthi, out_tstsi): Remove functions.
	(avr_asm_len): Negative length now sets *plen to -length.
	(compare_sign_p): Return bool instead of int.
	(compare_diff_p, compare_eq_p): Ditto and make static.
	(avr_out_tsthi): New function.
	(avr_out_tstsi): New function.
	(avr_out_compare): New function.
	(adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI,
	ADJUST_LEN_COMPARE.
	PR target/50447

From-SVN: r179124
2011-09-23 17:06:44 +00:00
Georg-Johann Lay
590245153a re PR target/50447 ([avr] Better support of AND, OR, XOR and PLUS with constant integers for 16- and 32-bit values)
PR target/50447
	* config/avr/avr.md: (adjust_len): Add alternative "out_plus".
	(addsi3): Rewrite using QI scratch register.  Adjust text
	peepholes using plus:SI.
	(*addsi3_zero_extend.hi): New insn.
	(*subsi3_zero_extend.hi): New insn.
	(*subhi3_zero_extend1): Set attribute "cc" to "set_czn".
	(*subsi3_zero_extend): Ditto.
	(subsi3): Change predicate #2 to register_operand.
	* config/avr/avr-protos.h (avr_out_plus): New prototype.
	(avr_out_plus_1): New static function.
	(avr_out_plus): New function.
	(adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS.

From-SVN: r179123
2011-09-23 17:02:10 +00:00
Georg-Johann Lay
6ebe2d6cf6 re PR target/50447 ([avr] Better support of AND, OR, XOR and PLUS with constant integers for 16- and 32-bit values)
PR target/50447
	PR target/50465
	* config/avr/avr-protos.h (avr_out_bitop): New prototype.
	(avr_popcount_each_byte): New prototype.
	* config/avr/avr.c (avr_popcount): New static function.
	(avr_popcount_each_byte): New function.
	(avr_out_bitop): New function.
	(adjust_insn_length): ADJUST_LEN_OUT_BITOP dispatches to
	avr_out_bitop.  Cleanup code.
	* config/avr/constraints.md (Ca2, Co2, Cx2): New constraints.
	(Ca4, Co4, Cx4): New constraints.
	* config/avr/avr.md (adjust_len): Add "out_bitop" insn attribute
	alternative.
	(andhi3, iorhi3, xorhi3): Rewrite insns using avr_out_bitop.
	(andsi3, iorsi3, xorsi3): Ditto.
	(*iorhi3_clobber, *iorsi3_clobber): Remove insns.

From-SVN: r179081
2011-09-22 09:55:13 +00:00
Georg-Johann Lay
8dab2ba518 re PR target/50449 ([avr] Loading some 32-bit constants not optimal)
PR target/50449
	PR target/50465
	* config/avr/avr.md (adjust_len): New insn attribute.
	(*reload_insi, *reload_insf): Use it.
	(*movsi, *movsf): Use new interface of output_movsisf.
	* config/avr/avr-protos.h (output_movsisf): Change prototype.
	* config/avr/avr.c (output_movsisf): Ditto.
	(adjust_insn_length): Use insn attribute "adjust_len" to adjust
	lengths of insns *reload_insi, *reload_insf.
	(output_reload_insisf_1): New static function.
	(output_reload_insisf): Use it.

From-SVN: r179037
2011-09-21 08:21:57 +00:00
Georg-Johann Lay
c331eabed6 avr-protos.h (byte_immediate_operand): Remove Prototype.
* config/avr-protos.h (byte_immediate_operand): Remove Prototype.
	(secondary_input_reload_class): Remove Prototype.
	* config/avr/avr.c (byte_immediate_operand): Remove Function.
	* config/avr/avr.md (setmemhi): Use u8_operand.
	(strlenhi): Use const0_rtx for comparison.
	* config/avr/avr.h (avr_reg_order): Remove Declaration.

From-SVN: r178064
2011-08-25 13:51:38 +00:00
Anatoly Sokolov
a8c44c522d target.def (class_max_nregs): New hook.
* target.def (class_max_nregs): New hook.
	* doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
	* doc/tm.texi: Regenerate.
	* targhooks.c (default_class_max_nregs): New function.
	* targhooks.h (default_class_max_nregs): Declare.
	* ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
	x_ira_reg_class_min_nregs arrays to unsigned char.
	* ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
	hook instead of CLASS_MAX_NREGS macro.
	* reginfo.c (restore_register_info): Ditto.
	* ira-conflicts.c (process_regs_for_copy): Use
	ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
	Change type rclass and aclass vars to reg_class_t.
	* ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
	array instead of CLASS_MAX_NREGS macro. Change type rclass var to
	reg_class_t.
	* reload.c (combine_reloads, find_reloads, find_reloads_address_1):
	Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.

	* config/i386/i386.h (CLASS_MAX_NREGS): Remove.
	* config/i386/i386.c (ix86_class_max_nregs): New function.
	(ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
	instead of CLASS_MAX_NREGS macro.
	(TARGET_CLASS_MAX_NREGS): Define.
	* config/avr/avr.h (CLASS_MAX_NREGS): Remove.
	* config/avr/avr-protos.h (class_max_nregs): Remove declaration.
	* config/avr/avr.c (class_max_nregs): Remove function.
	* config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
	* config/spu/spu.h (CLASS_MAX_NREGS): Remove.
	* config/mep/mep.h (CLASS_MAX_NREGS): Remove.
	* config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
	* config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
	* config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
	* config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
	* config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
	* config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
	* config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
	* config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
	* config/score/score.h (CLASS_MAX_NREGS): Remove.
	* config/vax/vax.h (CLASS_MAX_NREGS): Remove.
	* config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
	* config/v850/v850.h (CLASS_MAX_NREGS): Remove.

From-SVN: r176490
2011-07-20 02:34:31 +04:00
Georg-Johann Lay
1e6a67d1bd avr.md (*reload_insi): Change predicate #1 to const_int_operand.
* config/avr/avr.md (*reload_insi): Change predicate #1 to
	const_int_operand.  Ditto for peep2 producing this insn.
	Add argument to output_reload_insisf call.
	(*movsi,*movsf): Add argument to output_movsisf call.
	(*reload_insf): New insn and new peep2 to produce it.
	* config/avr/avr-protos.h (output_movsisf): Change prototype.
	(output_reload_insisf): Change prototype.
	* config/avr/avr.c (avr_asm_len): New function.
	(output_reload_insisf): Rewrite.
	(output_movsisf): Change prototype.  output_reload_insisf for
	all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
	(adjust_insn_length): Add argument to output_movsisf and
	output_reload_insisf call.

From-SVN: r175956
2011-07-07 07:13:13 +00:00
Georg-Johann Lay
880962aca2 config.gcc (tm_file): Add elfos.h and avr/elf.h for avr-*-* and avr-*-rtems* targets.
* config.gcc (tm_file): Add elfos.h and avr/elf.h for 
	avr-*-* and avr-*-rtems* targets.
	* config/avr/elf.h: New file.
	(ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
	(TARGET_ASM_SELECT_SECTION): Define.
	(INIT_SECTION_ASM_OP): Undefine.
	(FINI_SECTION_ASM_OP): Undefine.
	(READONLY_DATA_SECTION_ASM_OP): Undefine.
	(PCC_BITFIELD_TYPE_MATTERS): Undefine.
	(TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
	* config/avr/avr.h:
	(PREFERRED_DEBUGGING_TYPE): Move to elf.h.
	(TARGET_ASM_NAMED_SECTION): Move to elf.h.
	(MAX_OFILE_ALIGNMENT): Move to elf.h.
	(STRING_LIMIT): Move to elf.h.
	(ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
	(ASM_DECLARE_OBJECT_NAME): Remove.
	(ESCAPES): Remove.
	(ASM_OUTPUT_SKIP): Remove.
	(DWARF2_DEBUGGING_INFO): Remove.
	(OBJECT_FORMAT_ELF): Remove.
	(USER_LABEL_PREFIX): Remove.
	(ASM_OUTPUT_EXTERNAL): Remove.
	(ASM_OUTPUT_ASCII): Remove.
	(TYPE_ASM_OP): Remove.
	(SIZE_ASM_OP): Remove.
	(WEAK_ASM_OP): Remove.
	(STRING_ASM_OP): Remove.
	(SET_ASM_OP): Remove.
	(ASM_WEAKEN_LABEL): Remove.
	(TYPE_OPERAND_FMT): Remove.
	(ASM_DECLARE_FUNCTION_SIZE): Remove.
	(ASM_FINISH_DECLARE_OBJECT): Remove.
	(NO_DOLLAR_IN_LABEL): Remove.
	(ASM_GENERATE_INTERNAL_LABEL): Remove.
	(ASM_OUTPUT_CASE_LABEL): Remove.
	* config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
	ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
	(gas_output_ascii): Remove.
	(gas_output_limited_string): Remove.
	(TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
	* config/avr/avr-protos.h
	(gas_output_ascii): Remove prototye.
	(gas_output_limited_string): Remove prototype.

From-SVN: r175575
2011-06-28 07:26:09 +00:00
Georg-Johann Lay
516edfdd8a re PR target/18145 (Do not emit __do_copy_data or __do_clear_bss if .data or .bss is empty.)
PR target/18145

	* config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
	(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
	(ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
	(TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.

	* config/avr/avr-protos.h (avr_asm_output_aligned_common):
	New prototype.

	* config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
	(avr_asm_named_section,	avr_asm_output_aligned_common,
	avr_output_data_section_asm_op,	avr_output_bss_section_asm_op):
	New functions to update...
	(avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
	(avr_asm_init_sections): Overwrite section callbacks for
	data_section, bss_section.
	(avr_file_start): Move output of __do_copy_data, __do_clear_bss
	from here to...
	(avr_file_end): ...here.

From-SVN: r172769
2011-04-20 13:38:05 +00:00
Georg-Johann Lay
980a0ff422 avr-protos.h (expand_epilogue): Change prototype
* config/avr/avr-protos.h (expand_epilogue): Change prototype
	* config/avr/avr.h (struct machine_function): Add field sibcall_fails.
	* config/avr/avr.c (init_cumulative_args)
	(avr_function_arg_advance): Use it.
	* config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
	sibcall epilogues.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
	(avr_function_ok_for_sibcall): ...this new function.
	(avr_lookup_function_attribute1): New static Function.
	(avr_naked_function_p, interrupt_function_p)
	(signal_function_p, avr_OS_task_function_p)
	(avr_OS_main_function_p): Use it.
	* config/avr/avr.md ("sibcall", "sibcall_value")
	("sibcall_epilogue"): New expander.
	("*call_insn", "*call_value_insn"): New insn.
	("call_insn", "call_value_insn"): Remove
	("call", "call_value", "epilogue"): Change expander to handle
	sibling calls.

From-SVN: r171300
2011-03-22 22:37:35 +03:00
Richard Henderson
bdfe906f8c avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
* config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
	(avr_incoming_return_addr_rtx): New.
	(emit_push_byte): New.
	(expand_prologue): Use it.  Remove incorrect dwarf annotation for
	SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
	annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
	(emit_pop_byte): New.
	(expand_epilogue): Use it.  Pop frame pointer by bytes.
	* config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
	(INCOMING_RETURN_ADDR_RTX): New.
	(INCOMING_FRAME_SP_OFFSET): New.
	(ARG_POINTER_CFA_OFFSET): New.
	* config/avr/avr.md (*pushqi): Fix mode of auto-inc.
	(*pushhi, *pushsi, *pushsf, popqi): Likewise.
	(pophi): Remove.

From-SVN: r171295
2011-03-22 09:02:51 -07:00
Anatoly Sokolov
68fd7765e4 avr.h (RET_REGISTER, [...]): Remove.
* config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
	FUNCTION_VALUE_REGNO_P): Remove.
	* config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
	Remove.
	* config/avr/avr.c (avr_ret_register): Make static inline.
	(avr_function_value_regno_p): New function.
	(avr_libcall_value): Make static. Add 'func' argument.
	(avr_function_value): Make static. Rename 'func' argument to
	'fn_decl_or_type', forward it to avr_libcall_value. Call
	avr_ret_register function instead of RET_REGISTER macro.
 	(TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.

From-SVN: r171149
2011-03-18 18:27:10 +03:00
Joern Rennecke
3f02a5f3d3 re PR target/46430 (avr-elf --enable-werror-always build fails)
PR target/46430
	* config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
	* config/avr/driver-avr.c (avr_device_to_arch): Always return value.
	(avr_device_to_data_start, avr_device_to_startfiles): Likewise.
	(avr_device_to_devicelib): Likewise.
	* config/avr/avr.md (zero_extendqihi2): Put variable declarations
	into block.
	(zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
	(zero_extendhidi2, zero_extendsidi2): Likewise.
	* config/avr/avr.c (avr_num_arg_regs): Constify type.
	(avr_return_addr_rtx): De-constify tem.
	(avr_rotate_bytes): Move declarations to start of block.
	Don't use variable length array.
	Put nested if/else into block.

From-SVN: r166647
2010-11-12 10:09:39 +00:00
Anatoly Sokolov
4b0b4ab069 avr.h (PREFERRED_RELOAD_CLASS): Remove.
* config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/avr/avr-protos.h (preferred_reload_class): Remove.
	* config/avr/avr.c (preferred_reload_class): Remove.
	* config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/pa/pa.c (emit_move_sequence): Update comment
	* config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.

From-SVN: r165541
2010-10-16 17:36:52 +04:00
Nathan Froyd
733bdfbd68 avr-protos.h (function_arg): Delete.
* config/avr/avr-protos.h (function_arg): Delete.
	(function_arg_advance): Delete.
	* config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/avr/avr.c (function_arg): Rename to...
	(avr_function_arg): ...this.  Make static.  Take a const_tree and
	a bool.
	(function_arg_advance):	Rename to...
	(avr_function_arg_advance): ...this.  Make static.  Take a
	const_tree and a bool.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r165226
2010-10-09 14:18:51 +00:00
Anatoly Sokolov
c21136eebb avr.h (CLASS_LIKELY_SPILLED_P): Remove.
* config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
	* config/avr/avr-protos.h (class_likely_spilled_p): Remove.
	* config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
	(class_likely_spilled_p): Rename to...
	(avr_class_likely_spilled_p): ...this. Make static. Change argument
	type to reg_class_t.

From-SVN: r164618
2010-09-25 13:40:19 +04:00
Joseph Myers
c538766023 tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
* doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
	(C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
	* doc/tm.texi: Regenerate.
	* system.h (OVERRIDE_OPTIONS): Poison.
	* target.def (override): Default to hook_void_void.
	* targhooks.c (default_target_option_override): Remove.
	* genmodes.c, machmode.def: Update comments mentioning
	OVERRIDE_OPTIONS.
	* config/alpha/alpha-modes.def: Update comment mentioning
	alpha_override_options.
	* config/alpha/alpha-protos.h (override_options): Remove.
	* config/alpha/alpha.c (override_options): Rename to
	alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make
	static.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
	* config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
	of OVERRIDE_OPTIONS.
	* config/arc/arc-protos.h (arc_init): Remove.
	* config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
	(arc_init): Rename to arc_option_override.  Make static.
	* config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
	(OVERRIDE_OPTIONS): Remove.
	* config/arm/arm-protos.h (arm_override_options): Remove.
	* config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
	(arm_override_options): Rename to arm_option_override.  Make
	static.  Call SUBTARGET_OVERRIDE_OPTIONS.
	* config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
	* config/arm/arm.md: Update comment referring to
	arm_override_options.
	* config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
	instead of OVERRIDE_OPTIONS.
	* config/avr/avr-protos.h (avr_override_options): Remove.
	* config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
	(avr_override_options): Rename to avr_option_override.  Make
	static.
	* config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
	* config/bfin/bfin-protos.h (override_options): Remove (twice).
	* config/bfin/bfin.c (override_options): Rename to
	bfin_option_override.  Make static.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
	* config/cris/cris-protos.h (cris_override_options): Remove.
	* config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
	(cris_override_options): Rename to cris_option_override.  Make
	static.
	* config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
	* config/frv/frv-protos.h (frv_override_options): Remove.
	* config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
	(frv_override_options): Rename to frv_option_override.  Make
	static.
	* config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
	* config/h8300/h8300-protos.h (h8300_init_once): Remove.
	* config/h8300/h8300.c (h8300_init_once): Rename to
	h8300_option_override.  Make static.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
	* config/i386/i386-protos.h (override_options): Remove.
	* config/i386/i386.c (override_options): Rename to
	ix86_option_override_internal.  Make static.  Comments referring
	to this function and callers changed.
	(ix86_option_override): New.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/i386/i386.h (OVERRIDE_OPTION): Remove.
	* config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update
	comment.
	* config/ia64/ia64.c (ia64_file_start): Update comment referring
	to ia64_override_options.
	* config/iq2000/iq2000-protos.h (override_options): Remove.
	* config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
	(override_options): Rename to iq2000_option_override.  Make
	static.
	* config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
	* config/lm32/lm32-protos.h (lm32_override_options): Remove.
	* config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
	(lm32_override_options): Rename to lm32_option_override.  Make
	static.
	* config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
	* config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
	(m32r_option_override): New.
	(m32r_init): Update comment.
	* config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
	* config/m68hc11/m68hc11-protos.h (m68hc11_override_options):
	Remove.
	* config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
	(m68hc11_override_options): Rename to m68hc11_option_override.
	Make static.  Return void.
	* config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
	* config/m68k/m68k-protos.h (override_options): Remove.
	* config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
	(override_options): Rename to m68k_option_override.  Make static.
	* config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
	* config/mcore/mcore-protos.h (mcore_override_options): Remove.
	* config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
	(mcore_override_options): Rename to mcore_option_override.  Make
	static.
	* config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
	* config/mep/mep-protos.h (mep_override_options): Remove.
	* config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
	(mep_override_options): Rename to mep_option_override.  Make
	static.
	* config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
	* config/mmix/mmix-protos.h (mmix_override_options): Remove.
	* config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
	(mmix_override_options): Rename to mmix_option_override.  Make
	static.
	* config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
	* config/mn10300/mn10300-protos.h (mn10300_override_options):
	Remove.
	* config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
	(mn10300_override_options): Rename to mn10300_option_override.
	Make static.
	* config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
	* config/moxie/moxie-protos.h (moxie_override_options): Remove.
	* config/moxie/moxie.c (moxie_override_options): Rename to
	moxie_option_override.  Make static.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
	* config/picochip/picochip-protos.h (picochip_override_options):
	Remove.  Update comment referring to picochip_override_options.
	* config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
	(picochip_override_options): Rename to picochip_option_override.
	Make static.  Update comment and definition of
	TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
	* config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
	* config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update
	comment.
	* config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update
	comment.
	* config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update
	comment.
	* config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update
	comment.
	* config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update
	comment.
	* config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
	instead of OVERRIDE_OPTIONS.
	* config/rs6000/rs6000-modes.def: Update comment referring to
	rs6000_override_options.
	* config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
	* config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
	(rs6000_override_options): Rename to
	rs6000_option_override_internal.  Make static.  Commented
	referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
	(rs6000_option_override): New.
	* config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
	instead of OVERRIDE_OPTIONS.
	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update
	comment.
	* config/s390/s390-protos.h (override_options): Remove.
	* config/s390/s390.c (override_options): Rename to
	s390_option_override.  Make static.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
	* config/score/score-protos.h (score_override_options): Remove.
	* config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
	(score_override_options): Rename to score_option_override.  Make
	static.
	* config/score/score.h (OVERRIDE_OPTIONS): Remove.
	Update comment referring to override_options.
	* config/score/score3.c (score3_override_options): Rename to
	score3_option_override.
	* config/score/score3.h (score3_override_options): Rename to
	score3_option_override.
	* config/score/score7.c (score7_override_options): Rename to
	score7_option_override.
	* config/score/score7.h (score7_override_options): Rename to
	score7_option_override.
	* config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
	* config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
	(sparc_override_options): Rename to sparc_option_override.  Make
	static.  Call SUBTARGET_OVERRIDE_OPTIONS.
	* config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
	* config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
	instead of OVERRIDE_OPTIONS.
	* config/spu/spu-protos.h (spu_override_options): Remove.
	* config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
	(spu_override_options): Rename to spu_option_override.  Make
	static.
	* config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
	* config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
	OVERRIDE_OPTIONS.
	* config/vax/vax-protos.h (override_options): Remove.
	* config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
	(override_options): Rename to vax_option_override.  Make static.
	Call SUBTARGET_OVERRIDE_OPTIONS.
	* config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
	* config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
	* config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
	* config/xtensa/xtensa-protos.h (override_options): Remove.
	* config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
	(override_options): Rename to xtensa_option_override.  Make
	static.
	* config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.

From-SVN: r164334
2010-09-16 12:59:39 +01:00
Andy Hutchinson
58f0ea2f85 re PR target/41885 (AVR Rotate patterns do not correctly consider overlap.)
2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>

  PR target/41885
  * avr.md (rotlqi3): Add CONST_INT_P check.
  (rotlhi3): Delete.
  (rotlhi3_8): Delete.
  (rotlsi3): Delete.
  (rotlsi3_8): Delete.
  (rotlsi3_16): Delete.
  (rotlsi3_24): Delete.
  (rotl<mode>3): New.
  (*rotw<mode>3): New.
  (*rotb<mode>3): New.
  *avr.c (avr_rotate_bytes): New function.
  *avr-proto.h (avr_rotate_bytes): New function.

From-SVN: r155746
2010-01-08 23:01:45 +00:00
Anatoly Sokolov
04176b913c avr.h (REG_OK_FOR_BASE_P, [...]): Remove.
* config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
	XEXP_) : Remove.
	* config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
	avr_change_section, avr_reg_class_from_letter) : Remove declaration.

From-SVN: r155564
2010-01-02 14:24:02 +03:00
Andy Hutchinson
a212a5d408 PR target/21078, 21080
PR target/21078, 21080
* config/avr/avr.c (avr_return_addr_rtx): New function for
builtin_return_address.
(expand_prologue): Calculate stack usage.
(avr_asm_function_end_prologue): Output stack size and offset label.
* config/avr/avr.h (RETURN_ADDR_RTX): Replace.
(machine_function): Add stack_usage.
* config/avr/avr-protos.h (avr_return_addr_rtx): New function.

From-SVN: r154188
2009-11-15 04:10:20 +00:00
Anatoly Sokolov
7b5cbb5703 hooks.h (hook_bool_const_int_const_int_true): Declare.
* hooks.h (hook_bool_const_int_const_int_true): Declare.
	* hooks.c (hook_bool_const_int_const_int_true): New function.
	* target.h (struct gcc_target): Add can_eliminate field.
	* target-def.h (TARGET_CAN_ELIMINATE): Define.
	(TARGET_INITIALIZER): Use TARGET_CAN_ELIMINATE.
	* ira.c (setup_eliminable_regset): Use can_eliminate target hook.
	* reload1.c (update_eliminables, init_elim_table): (Ditto.).
	(elim_table): Revise comment.
	* system.h (CAN_ELIMINATE): Poison.
	* defaults.h (CAN_ELIMINATE): Remove.
	* doc/tm.texi (CAN_ELIMINATE): Revise documentation.

	* config/alpha/vms.h (CAN_ELIMINATE): Remove macro.
	* config/alpha/alpha.c (TARGET_CAN_ELIMINATE) [TARGET_ABI_OPEN_VMS]:
	Define macro.
	(alpha_vms_can_eliminate): Declare as static, change return type to
	bool.
	* config/alpha/alpha-protos.h (alpha_vms_can_eliminate): Remove.

	* config/arm/arm.h (CAN_ELIMINATE): Remove macro.
	* config/arm/arm.c (TARGET_CAN_ELIMINATE): Define macro.
	(arm_can_eliminate): New function.

	* config/avr/avr.h (CAN_ELIMINATE): Remove macro.
	* config/avr/avr.c (TARGET_CAN_ELIMINATE): Define macro.
	(avr_can_eliminate): Declare as static.
	* config/avr/avr-protos.h (avr_can_eliminate): Remove.

	* config/bfin/bfin.h (CAN_ELIMINATE): Remove macro.
	* config/bfin/bfin.c (TARGET_CAN_ELIMINATE): Define macro.
	(bfin_can_eliminate): New function.

	* config/crx/crx.h (CAN_ELIMINATE): Remove macro.
	* config/crx/crx.c (TARGET_CAN_ELIMINATE): Define macro.
	(crx_can_eliminate): New function.
	
	* config/fr30/fr30.h (CAN_ELIMINATE): Remove macro.
	* config/fr30/fr30.c (TARGET_CAN_ELIMINATE): Define macro.
	(fr30_can_eliminate): New function.

	* config/frv/frv.h (CAN_ELIMINATE): Remove macro.
	* config/frv/frv.c (TARGET_CAN_ELIMINATE): Define macro.
	(frv_can_eliminate): New function.

	* config/h8300/h8300.h (CAN_ELIMINATE): Remove macro.
	* config/h8300/h8300.c (TARGET_CAN_ELIMINATE): Define macro.
	(h8300_can_eliminate): New function.

	* config/i386/i386.h (CAN_ELIMINATE): Remove macro.
	* config/i386/i386.c (TARGET_CAN_ELIMINATE): Define macro.
	(i386_can_eliminate): Declare as static, change return type to bool.
	* config/i386/i386-protos.h (i386_can_eliminate): Remove.

	* config/ia64/ia64.h (CAN_ELIMINATE): Remove macro.
	* config/ia64/ia64.c (TARGET_CAN_ELIMINATE): Define macro.
	(ia64_can_eliminate): New function.

	* config/iq2000/iq2000.h (CAN_ELIMINATE): Remove macro.
	* config/iq2000/iq2000.c (TARGET_CAN_ELIMINATE): Define macro.
	(iq2000_can_eliminate): New function.

	* config/m32r/m32r.h (CAN_ELIMINATE): Remove macro.
	* config/m32r/m32r.c (TARGET_CAN_ELIMINATE): Define macro.
	(m32r_can_eliminate): New function.

	* config/m68hc11/m68hc11.h (CAN_ELIMINATE): Remove macro.
	* config/m68hc11/m68hc11.c (TARGET_CAN_ELIMINATE): Define macro.
	(m68hc11_can_eliminate): New function.

	* config/m68k/m68k.h (CAN_ELIMINATE): Remove macro.
	* config/m68k/m68k.c (TARGET_CAN_ELIMINATE): Define macro.
	(m68k_can_eliminate): New function.

	* config/mep/mep.h (CAN_ELIMINATE): Remove macro.
	* config/mep/mep.c (TARGET_CAN_ELIMINATE): Define macro.
	(mep_can_eliminate): New function.

	* config/mips/mips.h (CAN_ELIMINATE): Remove macro.
	* config/mips/mips.c (TARGET_CAN_ELIMINATE): Define macro.
	(mips_can_eliminate): New function.

	* config/rs6000/rs6000.h (CAN_ELIMINATE): Remove macro.
	* config/rs6000/rs6000.c (TARGET_CAN_ELIMINATE): Define macro.
	(rs6000_can_eliminate): New function.

	* config/s390/s390.h (CAN_ELIMINATE): Remove macro.
	* config/s390/s390.c (TARGET_CAN_ELIMINATE): Define macro.
	(s390_can_eliminate): Declare as static.
	* config/s390/s390-protos.h (sparc_can_eliminate): Remove.

	* config/score/score.h (CAN_ELIMINATE): Remove macro.
	* config/score/score.c (TARGET_CAN_ELIMINATE): Define macro.
	(score_can_eliminate): New function.

	* config/sparc/sparc.h (CAN_ELIMINATE): Remove macro.
	* config/sparc/sparc.c (TARGET_CAN_ELIMINATE): Define macro.
	(sparc_can_eliminate): Declare as static.
	* config/sparc/sparc-protos.h (sparc_can_eliminate): Remove.

	* config/stormy16/stormy16.h (CAN_ELIMINATE): Remove macro.
	* config/stormy16/stormy16.c (TARGET_CAN_ELIMINATE): Define macro.
	(xstormy16_can_eliminate): New function.

	* config/v850/v850.h (CAN_ELIMINATE): Remove macro.
	* config/v850/v850.c (TARGET_CAN_ELIMINATE): Define macro.
	(v850_can_eliminate): New function.

From-SVN: r151096
2009-08-26 01:09:00 +04:00
Anatoly Sokolov
97c281dacf avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
* config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
	(avr_extra_arch_macro) Remove declatation.
	* config/avr/avr.c (avr_cpu_cpp_builtins): New function.
	(avr_extra_arch_macro) Declare as static.
	* config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.

From-SVN: r149519
2009-07-12 00:26:54 +04:00
Anatoly Sokolov
b52b174919 target.h (struct gcc_target): Add frame_pointer_required field.
* target.h (struct gcc_target): Add frame_pointer_required field.
	* target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
	(TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
	* ira.c (setup_eliminable_regset): Use frame_pointer_required target
	hook.
	* reload1.c (update_eliminables): (Ditto.).
	* gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
	* doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
	(INITIAL_FRAME_POINTER_OFFSET): (Ditto.).

	* config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.

	* config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
	(arm_frame_pointer_required): New function.

	* config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
	(avr_frame_pointer_required_p): Declare as static.
	* config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.

	* config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
	(bfin_frame_pointer_required): Make as static, change return type
	to bool.
	* config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.

	* config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
	(cris_frame_pointer_required): New function.
	
	* config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.

	* config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
	(fr30_frame_pointer_required): New function.
	
	* config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
	(frv_frame_pointer_required): Make as static, change return type
	to bool.
	* config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.

	* config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
	(ix86_frame_pointer_required): Make as static, change return type to
	bool.
	* config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.

	* config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.

	* config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.

	* config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
	
	* config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.

	* config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
	(mips_frame_pointer_required): Make as static.
	* config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
	
	* config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
	(mmix_frame_pointer_required): Mew function.

	* config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.

	* config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.

	* config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.

	* config/sh/sh.h (CAN_ELIMINATE): Remove macro.

	* config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
	(CAN_ELIMINATE): Redefine.
	* config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
	(sparc_frame_pointer_required): New function.
	(sparc_can_eliminate): New function.
	* config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.

	* config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.

	* config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
	* config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
	(xtensa_frame_pointer_required): Make as static, change return type
	to bool.
	* config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
	Remove.

From-SVN: r149065
2009-06-30 02:51:04 +04:00
Ian Lance Taylor
5a82ecd999 arc.c: Include "df.h".
* config/arc/arc.c: Include "df.h".
	(arc_attribute_table): Make static.  Move higher in file.
	(arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
	(output_shift): Initialize n later to avoid warning.
	* config/arm/arm.c (arm_attribute_table): Make static.  Move
	higher in file.
	* config/avr/avr.c (avr_attribute_table): Make static.  Move
	higher in file.
	(reg_class_tab): Change array type from int to enum reg_class.
	(avr_jump_mode): Change GET_MODE to GET_CODE when checking for
	LABEL_REF.
	(out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
	(lshrhi3_out): Likewise.
	(class_likely_spilled_p): Change return type to bool.
	(avr_rtx_costs): Use local code variable with enum type.
	* config/avr/avr.md (movmemhi): Use add_reg_note.
	(andhi3, andsi3): Don't use AS2 with "and".
	(iorhi3, iorsi3): Don't use AS2 with "or".
	* config/avr/avr-protos.h (class_likely_spilled_p): Update
	declaration.
	* config/crx/crx.c: Include "df.h".
	(crx_attribute_table): Make static.
	* config/m32r/m32r.c: Include "df.h".
	(m32r_attribute_table): Make static.  Move higher in file.
	(pop): Use add_reg_note.
	(block_move_call): Change 0 to LCT_NORMAL in function call.
	* config/m32r/m32r.md (movsi_insn): Remove unused local value.
	* config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
	* config/m32r/m32r-protos.h (m32r_compute_function_type): Always
	declare, not just when TREE_CODE is defined.
	* config/m68hc11/m68hc11.c: Include "expr.h".
	(m68hc11_attribute_table): Make static.  Move higher in file.
	(m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
	function call.
	(m68hc11_register_indirect_p): Likewise.
	(m68hc11_function_arg_padding): Change return type to enum
	direction.
	(emit_move_after_reload): Use add_reg_note.
	(m68hc11_emit_logical): Change code parameter to enum rtx_code.
	(m68hc11_split_logical): Likewise.
	(m68hc11_rtx_costs): Add local code_and outer_code variables with
	enum type.
	* config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
	to VOIDmode in function call.
	* config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
	tree is defined.
	(m68hc11_split_logical): Update declaration.
	(m68hc11_function_arg_padding): Update declaration.
	* config/mcore/mcore.c (regno_reg_class): Change form array of int
	to array of enum reg_class.
	(mcore_attribute_table): Make static.  Move higher in file.
	(mcore_rtx_costs): Add cast to enum type.
	* config/mcore/mcore.h (regno_reg_class): Update declaration.
	(GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
	* config/sh/sh.c (sh_attribute_table): Make static.  Move higher
	in file.
	* config/sh/predicates.md (trapping_target_operand): Rename and to
	and_expr.
	* config/sparc/sparc.c (sparc_attribute_table): Make static.  Move
	higher in file.
	* config/spu/spu.c (spu_attribute_table): Make static.  Move
	higher in file.
	* config/v850/v850.c (v850_attribute_table): Make static.  Move
	higher in file.
	(v850_rtx_costs): Use local code with enum type.
	(expand_epilogue): Add cast.
	* config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.

From-SVN: r148927
2009-06-25 06:16:11 +00:00
Denis Chertykov
92bffc1462 avr.c: Change my email address.
* config/avr/avr.c: Change my email address.
	* config/avr/avr.h: Likewise.
	* config/avr/avr.md: Likewise.
	* config/avr/avr-protos.h: Likewise.
	* config/avr/libgcc.S: Likewise.

From-SVN: r147817
2009-05-23 11:16:07 +04:00
Paolo Bonzini
c6c3dba931 tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this in the former documentation of...
2009-05-14  Paolo Bonzini  <bonzini@gnu.org>

	* doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
	in the former documentation of...
	(GO_IF_LEGITIMATE_ADDRESS): ... this.
	* ira-conflicts.c (get_dup_num): Use address_operand.
	* targhooks.c (default_legitimate_address_p): New.
	* targhooks.h (default_legitimate_address_p): New.
	* reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
	Call hook.
	* recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
	* target.h (struct target): Add legitimate_address_p.
	* target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
	(TARGET_INITIALIZER): Include it.

	* config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
	* config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	(REG_OK_STRICT_P): Delete.
	* config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
	(frv_legitimate_address_p_1): ... this.
	* config/frv/frv.c (frv_legitimate_address_p): Forward to...
	(frv_legitimate_address_p_1): ... the renamed old
	frv_legitimate_address_p.
	* config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/s390/s390-protos.h (legitimate_address_p): Remove.
	* config/s390/s390.c (legitimate_address_p): Rename to...
	(s390_legitimate_address_p): ... this, make static.
	(legitimize_address): Adjust call.
	(TARGET_LEGITIMATE_ADDRESS_P): New.
	* config/s390/constraints.md ("e"): Call strict_memory_address_p.

	* config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
	* config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/spu/spu-protos.h (spu_legitimate_address): Remove.
	* config/spu/spu.c (spu_legitimate_address): Rename to...
	(spu_legitimate_address_p): ... this, make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/sparc/sparc-protos.h (legitimate_address_p): Remove.
	* config/sparc/sparc.c (legitimate_address_p): Rename to...
	(sparc_legitimate_address_p): ... this, make static and return bool.
	(legitimize_address): Adjust call.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/i386/i386-protos.h (legitimate_address_p): Remove.
	* config/i386/i386.c (legitimate_address_p): Rename to...
	(ix86_legitimate_address_p): ... this, make static.
	(constant_address_p): Move after it, adjust call.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/avr/avr-protos.h (legitimate_address_p): Remove.
	* config/avr/avr.c (legitimate_address_p): Rename to...
	(avr_legitimate_address_p): ... this, make static.
	(legitimize_address): Adjust call.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
	* config/crx/crx.c (crx_legitimate_address_p): Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
	* config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
	Remove.
	* config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
	Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
	Remove.
	* config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
	Rename to...
	(m68hc11_legitimate_address_p): ... this, make static.
	(go_if_legitimate_address_internal): Rename to...
	(m68hc11_legitimate_address_p_1): ... this.
	(legitimize_address): Adjust call.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p):
	Remove.
	* config/iq2000/iq2000.c (iq2000_legitimate_address_p):
	Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
	* config/mn10300/mn10300.c (legitimate_address_p): Rename to...
	(mn10300_legitimate_address_p): ... this, make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
	* config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	(REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
	(INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
	* config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
	* config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
	(rs6000_legitimate_address_p): ... this, make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.
	(REG_MODE_OK_FOR_BASE_P): Delete.
	(rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.

	* config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/picochip/picochip-protos.h (picochip_legitimate_address_p):
	Delete.
	* config/picochip/picochip.c (picochip_legitimate_address_p): Make
	static, adjust types.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/score/score.c (score_address_p): Rename to...
	(score_legitimate_address_p): ... this.
	(TARGET_LEGITIMATE_ADDRESS_P): New.
	* config/score/score3.c (score3_address_p): Rename to...
	(score3_legitimate_address_p): ... this.
	* config/score/score7.c (score7_address_p): Rename to...
	(score7_legitimate_address_p): ... this.

	* config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
	THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
	GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/arm/arm-protos.h (thumb1_legitimate_address_p,
	thumb2_legitimate_address_p): Delete.
	(arm_legitimate_address_p): Rename to...
	(arm_legitimate_address_outer_p): ... this.
	* config/arm/constraints.md ("Uq"): Adjust call.
	* config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
	* config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
	(arm_legitimate_address_outer_p): ... this.
	(thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
	* config/mips/mips.c (mips_legitimate_address_p): ... Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/vax/vax-protos.h (legitimate_address_p): Remove.
	* config/vax/vax.c (legitimate_address_p): Rename to...
	(vax_legitimate_address_p): ... this, make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
	* config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
	* config/mmix/mmix.c (mmix_legitimate_address): Rename to...
	(mmix_legitimate_address_p): ... this, make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

	* config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
	* config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
	* config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
	(TARGET_LEGITIMATE_ADDRESS_P): New.

From-SVN: r147534
2009-05-14 13:42:45 +00:00
Paolo Bonzini
f90b7a5a79 Merge cond-optab branch.
From-SVN: r147425
2009-05-12 09:43:48 +00:00
Paolo Bonzini
506d7b686c tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
2009-05-04  Paolo Bonzini  <bonzini@gnu.org>

 	* doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
	* gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/explow.c (memory_address): Use target hook.
	* gcc/targhooks.c (default_legitimize_address): New.
	* gcc/targhooks.h (default_legitimize_address): New.
	* gcc/target.h (legitimize_address): New.
	* gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
	(TARGET_INITIALIZER): Include it.
	* gcc/system.h (LEGITIMIZE_ADDRESS): Poison.

	* config/bfin/bfin-protos.h (legitimize_address): Remove.
	* config/bfin/bfin.c (legitimize_address): Remove.
	* config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
	* config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address): Remove.
	* config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
	* config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.

	* gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
	THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
	* gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.

	* gcc/config/s390/s390-protos.h (legitimize_address): Delete.
	* gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
	* gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
	* gcc/config/i386/i386-protos.h (legitimize_address): Delete.
	* gcc/config/avr/avr-protos.h (legitimize_address): Delete.
	* gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
	* gcc/config/score/score-protos.h (score_legitimize_address): Delete.
	* gcc/config/arm/arm-protos.h (arm_legitimize_address,
	(thumb_legitimize_address): Delete.
	* gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
	* gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
	* gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
	* gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
	* gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
	* gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address): Delete.
	* gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address): Delete.

	* config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
	* config/m32c/m32c.c (m32c_legitimize_address): Standardize.
	* config/m32r/m32r.c (m32r_legitimize_address): New.
	* config/m68k/m68k.c (m68k_legitimize_address): New.
	* config/score/score.c (score_legitimize_address): Standardize.
	* config/score/score3.c (score3_legitimize_address): Standardize.
	* config/score/score3.h (score3_legitimize_address): Adjust.
	* config/score/score7.c (score7_legitimize_address): Standardize.
	* config/score/score7.h (score7_legitimize_address): Adjust.
	* config/sh/sh.c (sh_legitimize_address): New.
	* config/iq2000/iq2000.c (iq2000_legitimize_address): New.

	* gcc/config/s390/s390.c (legitimize_address): Rename to...
 	(s390_legitimize_address): ... this.
	* gcc/config/sparc/sparc.c (legitimize_address): Rename to...
	(sparc_legitimize_address): ... this.
	* gcc/config/i386/i386.c (legitimize_address): Rename to...
	(ix86_legitimize_address): ... this.
	* gcc/config/avr/avr.c (legitimize_address): Rename to...
	(avr_legitimize_address): ... this.
	* gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
	(mn10300_legitimize_address): ... this.
	* config/alpha/alpha.c (alpha_legitimize_address): Wrap...
	(alpha_legitimize_address_1): ... the old alpha_legitimize_address.
	(alpha_expand_mov): Adjust call.

	* config/frv/frv.c (frv_legitimize_address): Return x on failure.
	* config/spu/spu.c (spu_legitimize_address): Likewise.
	* config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
	* config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.

From-SVN: r147098
2009-05-04 12:52:41 +00:00
Anatoly Sokolov
9933b56aff (frame_pointer_required_p): Change return type to bool.
From-SVN: r146990
2009-04-30 02:41:33 +04:00
Anatoly Sokolov
c21ca196b2 avr.c (initial_elimination_offset): Rename to avr_initial_elimination_offset.
* config/avr/avr.c (initial_elimination_offset): Rename to
	avr_initial_elimination_offset.
	(frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
	change return type to bool.
	(avr_can_eliminate): New function.
	* config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
	(FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
	(INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
	* config/avr/avr-protos.h (initial_elimination_offset) : Rename to
	avr_initial_elimination_offset.
	(frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
	(avr_initial_elimination_offset): Define.

From-SVN: r146989
2009-04-30 01:57:03 +04:00
Anatoly Sokolov
e6ff3083a0 target.h (struct gcc_target): Add case_values_threshold field.
* target.h (struct gcc_target): Add case_values_threshold field.
	* target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
	(TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
	* targhooks.c (default_case_values_threshold): New function.
	* targhooks.h (default_case_values_threshold): Declare function.
	* stmt.c (expand_case): Use case_values_threshold target hook.
	* expr.h (case_values_threshold): Remove declartation.
	* expr.c (case_values_threshold): Remove function.
	* doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.

	* config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
	* config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
	(avr_case_values_threshold): Declare as static.
	* config/avr/avr-protos.h (avr_case_values_threshold): Remove.

	* config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
	* config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
	(mn10300_case_values_threshold): New function.

From-SVN: r146756
2009-04-25 08:34:27 +04:00
Anatoly Sokolov
4223ff5f25 avr.h (avr_case_values_threshold): Remove declaration.
* config/avr/avr.h (avr_case_values_threshold): Remove declaration.
	(CASE_VALUES_THRESHOLD): Redefine.
	* config/avr/avr.c (avr_override_options): Remove initialization of
	avr_case_values_threshold variable.
	(avr_case_values_threshold): Remove variable. Add new function.
	* config/avr/avr-protos.h (avr_case_values_threshold): Declare.
	* config/avr/avr.opt (mno-tablejump): Remove option.
	* doc/invoke.texi (AVR Options): Remove -mno-tablejump.

From-SVN: r145389
2009-04-01 09:57:14 +04:00
Anatoly Sokolov
2cb4817bd3 re PR target/34299 ([avr] ICE on function attribute syntax for main())
PR target/34299
	* config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
	generate a warning if the function name does not begin with
	"__vector" and the function has either the 'signal' or 'interrupt'
	attribute, from here to ...
	(avr_declare_function_name): ...here. New function.
	* config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
	* config/avr/avr-protos.h (avr_declare_function_name): Declare.

From-SVN: r144870
2009-03-15 16:09:44 +03:00
Kaveh R. Ghazi
0a2aaaccca alpha.c (alpha_preferred_reload_class, [...]): Avoid C++ keywords.
* config/alpha/alpha.c (alpha_preferred_reload_class,
	alpha_secondary_reload, alpha_emit_set_const_1, function_value,
	alpha_output_mi_thunk_osf): Avoid C++ keywords.
	* config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
	* config/arm/arm.md: Likewise.
	* config/avr/avr-protos.h (preferred_reload_class,
	test_hard_reg_class, avr_simplify_comparison_p,
	out_shift_with_cnt, class_max_nregs): Likewise.
	* config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
	output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
	preferred_reload_class, test_hard_reg_class): Likewise.
	* config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
	bfin_memory_move_cost, bfin_secondary_reload,
	bfin_output_mi_thunk): Likewise.
	* config/crx/crx.c (crx_secondary_reload_class,
	crx_memory_move_cost): Likewise.
	* config/frv/frv-protos.h (frv_secondary_reload_class,
	frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
	* config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
	frv_secondary_reload_class, frv_class_likely_spilled_p,
	frv_class_max_nregs): Likewise.
	* config/h8300/h8300.c (h8300_classify_operand,
	h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
	Likewise.
	* config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
	* config/ia64/ia64.c (ia64_preferred_reload_class,
	ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
	* config/iq2000/iq2000.c (gen_int_relational): Likewise.
	* config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
	Likewise.
	* config/m68hc11/m68hc11.c (preferred_reload_class,
	m68hc11_memory_move_cost): Likewise.
	* config/mcore/mcore.c (mcore_secondary_reload_class,
	mcore_reload_class): Likewise.
	* config/mips/mips.c (mips_hard_regno_mode_ok_p,
	mips_class_max_nregs, mips_cannot_change_mode_class,
	mips_preferred_reload_class, mips_secondary_reload_class,
	mips_output_mi_thunk): Likewise.
	* config/mmix/mmix.c (mmix_preferred_reload_class,
	mmix_preferred_output_reload_class, mmix_secondary_reload_class):
	Likewise.
	* config/mn10300/mn10300.c (mn10300_secondary_reload_class):
	Likewise.
	* config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
	pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
	* config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
	* config/rs6000/rs6000.c (paired_expand_vector_init,
	rs6000_secondary_reload_class, rs6000_output_mi_thunk,
	compare_section_name, rs6000_memory_move_cost): Likewise.
	* config/s390/s390.c (s390_emit_compare_and_swap,
	s390_preferred_reload_class, s390_secondary_reload,
	legitimize_pic_address, legitimize_tls_address,
	legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
	s390_class_max_nregs): Likewise.
	* config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
	* config/s390/s390.md: Likewise.
	* config/score/score-protos.h (score_secondary_reload_class,
	score_preferred_reload_class): Likewise.
	* config/score/score.c (score_preferred_reload_class,
	score_secondary_reload_class): Likewise.
	* config/score/score3.c (score3_output_mi_thunk,
	score3_preferred_reload_class, score3_secondary_reload_class,
	score3_hard_regno_mode_ok): Likewise.
	* config/score/score3.h (score3_preferred_reload_class,
	score3_secondary_reload_class): Likewise.
	* config/score/score7.c (score7_output_mi_thunk,
	score7_preferred_reload_class, score7_secondary_reload_class,
	score7_hard_regno_mode_ok): Likewise.
	* config/score/score7.h (score7_preferred_reload_class,
	score7_secondary_reload_class): Likewise.
	* config/sh/sh.c (prepare_move_operands, output_far_jump,
	output_branchy_insn, add_constant, gen_block_redirect,
	sh_insn_length_adjustment, sh_cannot_change_mode_class,
	sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload):
	Likewise.
	* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
	* config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
	xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
	xstormy16_preferred_reload_class): Likewise.
	* config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
	xtensa_expand_atomic, override_options,
	xtensa_preferred_reload_class, xtensa_secondary_reload_class):
	Likewise.
	* reorg.c (try_merge_delay_insns): Likewise.
	* tree.c (merge_dllimport_decl_attributes): Likewise.

	* config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.

From-SVN: r138813
2008-08-06 16:12:51 +00:00
Anatoly Sokolov
1cf0a7f1cc avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
* config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
	* config/avr/avr.c (avr_peep2_scratch_safe): Remove.
	(avr_hard_regno_scratch_ok): New function.
	(TARGET_HARD_REGNO_SCRATCH_OK): Define.
	* config/avr/avr.md (all peepholes that request a scratch register):
	Remove avr_peep2_scratch_safe use.

From-SVN: r137725
2008-07-11 22:50:02 +04:00
Anatoly Sokolov
f9f6caf50d avr.c (avr_function_value): Add new 'outgoing' argument.
* config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
	(TARGET_FUNCTION_VALUE): New define.
	* config/avr/avr-protos.h (avr_function_value): Remove declaration.
	* config/avr/avr.h (FUNCTION_VALUE): Remove.

From-SVN: r137042
2008-06-23 19:27:00 +04:00
Anatoly Sokolov
91635d0806 re PR target/36424 (avr-gcc use don't saved registers in ISR with -O3 ('-frename-registers' ) optimization)
PR target/36424
	* config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
	* config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
	* config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.

From-SVN: r136562
2008-06-08 20:08:08 +04:00
Anatoly Sokolov
e6b69d0e56 predicates.md (io_address_operand): New predicate.
* config/avr/predicates.md (io_address_operand): New predicate. 
	* config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
	* config/avr/avr.c (avr_io_address_p): Remove function.
	(out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
	'avr_io_address_p' function.
	(out_movhi_r_mr): (Ditto.).
	(out_movqi_mr_r): (Ditto.).
	(out_movhi_mr_r): (Ditto.).
	(avr_address_cost): (Ditto.).

From-SVN: r133846
2008-04-02 23:21:01 +04:00
Kaveh R. Ghazi
586de21898 arc-protos.h (arc_select_cc_mode, gen_compare_reg): Wrap in RTX_CODE macro guard.
* config/arc/arc-protos.h arc_select_cc_mode, gen_compare_reg):
	Wrap in RTX_CODE macro guard.
	* config/arm/pe.c (arm_dllexport_p, arm_dllimport_p,
	arm_dllexport_name_p, arm_dllimport_name_p, arm_mark_dllexport,
	arm_mark_dllimport, arm_pe_encode_section_info,
	arm_pe_unique_section): Use ISO-C function declarations.
	* config/c4x/c4x-c.c (c4x_parse_pragma, c4x_pr_CODE_SECTION,
	c4x_pr_DATA_SECTION, c4x_pr_FUNC_IS_PURE,
	c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, c4x_pr_ignored):
	Likewise.
	* config/iq2000/iq2000.h (ASM_OUTPUT_SKIP): Fix format warning.
	* config/m68hc11/m68hc11.h (ASM_OUTPUT_EXTERNAL): Undef before
	defining.
	* config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Fix format
	warnings.
	* config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Likewise.
	* config/pdp11/pdp11.c (pdp11_output_function_epilogue): Likewise.
	(register_move_cost): Use ISO-C function declarations.
	* config/pdp11/pdp11.h (PRINT_OPERAND): Fix format warnings.
	* config/score/score-protos.h (score_declare_object): Add
	ATTRIBUTE_PRINTF_4.
	* config/score/score.h (ASM_DECLARE_OBJECT_NAME): Fix format
	warnings.
	* final.c (profile_function): Avoid empty if-bodies.
	
	
	* calls.c (must_pass_in_stack_var_size,
	must_pass_in_stack_var_size_or_pad): Constify.
	* config/alpha/alpha-protos.h (function_value): Likewise.
	* config/alpha/alpha.c (alpha_return_in_memory,
	alpha_pass_by_reference, function_value,
	unicosmk_must_pass_in_stack, TARGET_PROMOTE_FUNCTION_ARGS,
	TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
	Likewise.
	* config/arc/arc.c (arc_return_in_memory, arc_pass_by_reference,
	TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
	TARGET_PROMOTE_PROTOTYPES): Likewise.
	* config/arm/arm-protos.h (arm_return_in_memory,
	arm_pad_arg_upward, arm_function_value): Likewise.
	* config/arm/arm.c (arm_pass_by_reference,
	arm_promote_prototypes, arm_return_in_msb, arm_must_pass_in_stack,
	TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
	arm_function_value, arm_return_in_memory, arm_pad_arg_upward):
	Likewise.
	* config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
	* config/avr/avr-protos.h (avr_function_value): Likewise.
	* config/avr/avr.c (avr_return_in_memory,
	gas_output_limited_string, gas_output_ascii, avr_function_value,
	avr_return_in_memory): Likewise.
	* config/bfin/bfin-protos.h (bfin_return_in_memory): Likewise.
	* config/bfin/bfin.c (bfin_pass_by_reference,
	bfin_return_in_memory, TARGET_PROMOTE_PROTOTYPES,
	TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN):
	Likewise.
	* config/cris/cris.c (cris_pass_by_reference,
	TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
	* config/crx/crx.c (crx_return_in_memory): Likewise.
	* config/darwin.c (function_base, machopic_function_base_name):
	Likewise.
	* config/fr30/fr30.c (fr30_must_pass_in_stack,
	TARGET_PROMOTE_PROTOTYPES): Likewise.
	* config/frv/frv.c (frv_must_pass_in_stack): Likewise.
	* config/h8300/h8300.c (h8300_return_in_memory): Likewise.
	* config/i386/i386-protos.h (ix86_return_in_memory,
	ix86_sol10_return_in_memory): Likewise.
	* config/i386/i386.c (ix86_function_value,
	ix86_function_sseregparm, ix86_must_pass_in_stack,
	type_natural_mode, classify_argument, examine_argument,
	construct_container, ix86_pass_by_reference, function_value_32,
	function_value_64, ix86_function_value_1, return_in_memory_32,
	return_in_memory_64, return_in_memory_ms_64,
	ix86_return_in_memory, ix86_sol10_return_in_memory,
	TARGET_PROMOTE_PROTOTYPES): Likewise.
	* config/ia64/ia64-protos.h (ia64_function_value,
	ia64_hpux_function_arg_padding): Likewise.
	* config/ia64/ia64.c (hfa_element_mode, ia64_return_in_memory,
	ia64_function_value, bundle_state_hash, bundle_state_eq_p,
	ia64_hpux_function_arg_padding): Likewise.
	* config/iq2000/iq2000-protos.h (function_arg,
	iq2000_function_value): Likewise.
	* config/iq2000/iq2000.c (iq2000_return_in_memory,
	iq2000_pass_by_reference, TARGET_PROMOTE_FUNCTION_ARGS,
	TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
	function_arg, iq2000_function_value): Likewise.
	* config/m32c/m32c-protos.h (m32c_function_value,
	m32c_promote_function_return): Likewise.
	* config/m32c/m32c.c (m32c_pass_by_reference,
	m32c_promote_prototypes, m32c_promote_function_return,
	m32c_function_value): Likewise.
	* config/m32r/m32r.c (m32r_return_in_memory,
	m32r_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
	m32r_in_small_data_p): Likewise.
	* config/m68hc11/m68hc11-protos.h (m68hc11_function_arg_padding):
	Likewise.
	* config/m68hc11/m68hc11.c (m68hc11_return_in_memory,
	m68hc11_function_arg_padding): Likewise.
	* config/m68k/m68k-protos.h (m68k_function_value): Likewise.
	* config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES,
	m68k_function_value): Likewise.
	* config/mcore/mcore-protos.h (mcore_num_arg_regs,
	mcore_function_value): Likewise.
	* config/mcore/mcore.c (handle_structs_in_regs,
	mcore_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
	TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
	mcore_num_arg_regs, mcore_function_value): Likewise.
	* config/mips/mips-protos.h (mips_pad_arg_upward,
	mips_function_value): Likewise.
	* config/mips/mips.c (mips_fpr_return_fields, mips_return_in_msb,
	mips_return_in_memory, mips_pass_by_reference, mips_callee_copies,
	TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
	TARGET_PROMOTE_PROTOTYPES, mips_pad_arg_upward,
	mips_function_value): Likewise.
	* config/mmix/mmix-protos.h (mmix_function_outgoing_value):
	Likewise.
	* config/mmix/mmix.c (mmix_pass_by_reference,
	TARGET_PROMOTE_FUNCTION_ARGS, mmix_function_outgoing_value,
	mmix_encode_section_info): Likewise.
	* config/mn10300/mn10300-protos.h (mn10300_function_value):
	Likewise.
	* config/mn10300/mn10300.c (mn10300_return_in_memory,
	mn10300_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
	mn10300_function_value): Likewise.
	* config/mt/mt-protos.h (mt_function_value): Likewise.
	* config/mt/mt.c (mt_pass_by_reference, mt_function_value,
	mt_pass_in_stack, TARGET_PROMOTE_PROTOTYPES): Likewise.
	* config/pa/pa-protos.h (function_arg_padding, function_value,
	pa_return_in_memory): Likewise.
	* config/pa/pa.c (pa_pass_by_reference,
	TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
	function_arg_padding, function_value, pa_return_in_memory):
	Likewise.
	* config/pdp11/pdp11.c (pdp11_return_in_memory): Likewise.
	* config/rs6000/rs6000-protos.h (rs6000_function_value,
	function_arg_padding): Likewise.
	* config/rs6000/rs6000.c (rs6000_return_in_memory,
	rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
	rs6000_pass_by_reference, rs6000_must_pass_in_stack,
	TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
	function_arg_padding, altivec_expand_dst_builtin,
	altivec_expand_builtin, rs6000_expand_builtin, spe_init_builtins,
	altivec_init_builtins, rs6000_common_init_builtins,
	rs6000_function_value): Likewise.
	* s390/s390-protos.h (s390_function_value): Likewise.
	* config/s390/s390.c (s390_function_arg_size,
	s390_pass_by_reference, s390_return_in_memory,
	s390_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
	TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
	* config/score/score-protos.h (score_function_value): Likewise.
	* config/score/score.c (score_arg_partial_bytes,
	TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
	TARGET_PROMOTE_PROTOTYPES, score_return_in_memory,
	score_pass_by_reference, score_add_offset, score_function_value):
	Likewise.
	* config/sh/sh-protos.h (sh_attr_renesas_p,
	sh_promote_prototypes): Likewise.
	* config/sh/sh.c (sh_return_in_memory, sh_pass_by_reference,
	sh_callee_copies, sh_promote_prototypes, shcompact_byref,
	sh_attr_renesas_p): Likewise.
	* config/sparc/sparc-protos.h (function_value,
	function_arg_padding): Likewise.
	* config/sparc/sparc.c (sparc_promote_prototypes,
	sparc_return_in_memory, sparc_pass_by_reference,
	TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
	function_arg_record_value_2, function_arg_record_value_1,
	function_arg_record_value, function_arg_record_value,
	function_arg_padding, function_value): Likewise.
	* config/spu/spu-protos.h (spu_function_value): Likewise.
	* config/spu/spu.c (spu_pass_by_reference, spu_return_in_memory,
	spu_function_value): Likewise.
	* config/stormy16/stormy16-protos.h (xstormy16_function_value):
	Likewise.
	* config/stormy16/stormy16.c (xstormy16_return_in_memory,
	xstormy16_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
	TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
	Likewise.
	* config/v850/v850.c (v850_return_in_memory,
	v850_pass_by_reference, TARGET_PROMOTE_PROTOTYPES): Likewise.
	* config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): Likewise.
	* config/xtensa/xtensa.c (xtensa_return_in_msb,
	xtensa_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
	TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
	Likewise.
	* explow.c (promote_mode, hard_function_value): Likewise.
	* expr.h (hard_function_value, promote_mode): Likewise.
	* function.c (aggregate_value_p): Likewise.
	* hooks.c (hook_bool_const_tree_true): New.
	* hooks.h (hook_bool_const_tree_true): New.
	* sdbout.c (SET_KNOWN_TYPE_TAG, plain_type_1): Constify.
	* target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
	TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
	TARGET_RETURN_IN_MSB): Likewise.
	* target.h (promote_function_args, promote_function_return,
	promote_prototypes, return_in_memory, return_in_msb,
	pass_by_reference, must_pass_in_stack, callee_copies,
	function_value): Likewise.
	* targhooks.c (default_return_in_memory,
	hook_pass_by_reference_must_pass_in_stack,
	hook_callee_copies_named,
	hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
	hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
	default_function_value): Likewise. 
	* targhooks.h (default_return_in_memory,
	hook_pass_by_reference_must_pass_in_stack,
	hook_callee_copies_named,
	hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
	hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
	default_function_value): Likewise.
	* tree-ssa-structalias.c (const_equiv_class_label_t): New.
	(equiv_class_label_hash, equiv_class_label_eq): Constify.
	* tree-vectorizer.c (bb_in_loop_p): Likewise.
	* tree.c (needs_to_live_in_memory): Likewise.
	* tree.h (struct tree_type, needs_to_live_in_memory,
	aggregate_value_p, must_pass_in_stack_var_size,
	must_pass_in_stack_var_size_or_pad): Likewise.
	* vmsdbgout.c (write_debug_addr, write_debug_delta4,
	write_debug_string, ASM_OUTPUT_DEBUG_STRING, write_rtnbeg,
	lookup_filename): Likewise.

From-SVN: r127743
2007-08-23 15:49:56 +00:00