Commit Graph

334 Commits

Author SHA1 Message Date
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
Anatoly Sokolov
59ab92d291 config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and extra_objs.
* config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
	extra_objs.
	* config/avr/avr.c (avr_current_device): New variable.
	(avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
	(avr_arch, mcu_type_s): Move to avr.h.
	* config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
	default_data_section_start fields.
	(avr_arch): Moved from avr.c.
	(mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
	library_name fields.
	(avr_current_device, avr_mcu_types, avr_arch_types,
	avr_device_to_arch, avr_device_to_data_start,
	avr_device_to_startfiles, avr_device_to_devicelib): Declare.
	(EXTRA_SPEC_FUNCTIONS): Define.
	(LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
	options mapping. Use device_to_arch and device_to_data_start insted.
	(STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
	(CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
	* config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
	* config/avr/driver-avr.c: New file.
	* config/avr/avr-devices.c: New file.

From-SVN: r148868
2009-06-23 23:14:11 +04:00
Anatoly Sokolov
dd26af7063 avr.c (avr_override_options): Remove setting value of PARAM_INLINE_CALL_COST.
* config/avr/avr.c (avr_override_options): Remove setting value of
	PARAM_INLINE_CALL_COST.

From-SVN: r148689
2009-06-19 11:35:25 +04:00
Ian Lance Taylor
6bc7bc1477 ansidecl.h (EXPORTED_CONST): Define.
include/:
	* ansidecl.h (EXPORTED_CONST): Define.
gcc/:
	* dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
	* genattrtab.c (write_length_unit_log): Likewise.
	* genchecksum.c (dosum): Likewise.
	* gengtype.c (write_rtx_next): Likewise.
	(finish_root_table, write_roots): Likewise.
	* gimple.c (gimple_ops_offset_): Likewise.
	* tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
	* config/arc/arc.c (arc_attribute_table): Likewise.
	* config/arm/arm.c (arm_attribute_table): Likewise.
	* config/avr/avr.c (avr_attribute_table): Likewise.
	* config/crx/crx.c (crx_attribute_table): Likewise.
	* config/m32r/m32r.c (m32r_attribute_table): Likewise.
	* config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
	* config/mcore/mcore.c (mcore_attribute_table): Likewise.
	* config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
	* config/sh/sh.c (sh_attribute_table): Likewise.
	* config/sparc/sparc.c (sparc_attribute_table): Likewise.
	* config/spu/spu.c (spu_attribute_table): Likewise.
	* config/v850/v850.c (v850_attribute_table): Likewise.

	* config/alpha/alpha.c (vms_attribute_table): Make static.
	* config/bfin/bfin.c (bfin_attribute_table): Likewise.
	* config/h8300/h8300.c (h8300_attribute_table): Likewise.
	* config/mips/mips.c (mips_attribute_table): Likewise.

	* Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
	$(SYSTEM_H).
	(cc1-checksum.o): Likewise.
gcc/cp/:
	* Make-lang.in (cc1plus-checksum.o): Depend upon $(CONFIG_H) and
	$(SYSTEM_H).
gcc/objc/:
	* Make-lang.in (cc1obj-checksum.o): Depend upon $(CONFIG_H) and
	$(SYSTEM_H).
gcc/objcp/:
	* Make-lang.in (cc1objplus-checksum.o): Depend upon $(CONFIG_H)
	and $(SYSTEM_H).

From-SVN: r148146
2009-06-03 20:19:55 +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
Joseph Myers
29d08eba74 arc.c (arc_handle_interrupt_attribute): Use %qE for identifiers in diagnostics.
* config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
	identifiers in diagnostics.
	* config/arm/arm.c (arm_handle_fndecl_attribute,
	arm_handle_isr_attribute): Likewise.
	* config/avr/avr.c (avr_handle_progmem_attribute,
	avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
	Likewise.
	* config/bfin/bfin.c (handle_int_attribute,
	bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
	bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
	bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
	Likewise.
	* config/darwin.c (darwin_handle_kext_attribute,
	darwin_handle_weak_import_attribute): Likewise.
	* config/h8300/h8300.c (h8300_handle_fndecl_attribute,
	h8300_handle_eightbit_data_attribute,
	h8300_handle_tiny_data_attribute): Likewise.
	* config/i386/i386.c (ix86_handle_cconv_attribute,
	ix86_handle_abi_attribute, ix86_handle_struct_attribute):
	Likewise.
	* config/i386/winnt.c (ix86_handle_shared_attribute,
	ix86_handle_selectany_attribute): Likewise.
	* config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
	* config/m32c/m32c.c (function_vector_handler): Likewise.
	* config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
	m68hc11_handle_fntype_attribute): Likewise.
	* config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
	* config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
	* config/mips/mips.c (mips_insert_attributes,
	mips_merge_decl_attributes, mips_expand_builtin): Likewise.
	* config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
	rs6000_handle_struct_attribute): Likewise.
	* config/sh/sh.c (sh_insert_attributes,
	sh_handle_resbank_handler_attribute,
	sh_handle_interrupt_handler_attribute,
	sh2a_handle_function_vector_handler_attribute,
	sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
	Likewise.
	* config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
	* config/spu/spu.c (spu_handle_fndecl_attribute,
	spu_handle_vector_attribute): Likewise.
	* config/stormy16/stormy16.c
	(xstormy16_handle_interrupt_attribute): Likewise.
	* config/v850/v850-c.c (ghs_pragma_section): Likewise.
	* config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.

From-SVN: r147334
2009-05-10 11:29:35 +01: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
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
8272d11d4a avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and atmega8m1 devices.
* config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
	atmega8m1 devices.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)

From-SVN: r145208
2009-03-29 00:14:48 +03: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
Anatoly Sokolov
5a7e237c63 avr.c (avr_mcu_t): Add ata6289 device.
* config/avr/avr.c (avr_mcu_t): Add ata6289 device.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

From-SVN: r144006
2009-02-07 21:55:25 +03:00
Anatoly Sokolov
f15a9aa2e4 avr.c (avr_mcu_t): Add attiny87...
* config/avr/avr.c (avr_mcu_t): Add attiny87, attiny327, at90pwm81,
	atmega16m1, at90scr100, atmega128rfa1, m3000f, m3000s and m3001b
	devices.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

From-SVN: r142783
2008-12-17 00:05:59 +03:00
Anatoly Sokolov
dea4e8d064 avr.c (avr_mcu_t): Add atmega16hvb...
* config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
	atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
	atmega32u6 devices.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

From-SVN: r141799
2008-11-12 23:29:54 +03:00
Anatoly Sokolov
15fe850fe4 avr.md (UNSPEC_SWAP): Remove constants.
* config/avr/avr.md (UNSPEC_SWAP): Remove constants.
	(*swap): Remove.
	(rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
	rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
	(ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
	ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
	lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
	peephole2's): Replace unspec with rotate.
	* config/avr/avr.c (avr_rtx_costs): Add ROTATE.

From-SVN: r141533
2008-11-02 16:51:39 +03:00
Andy Hutchinson
9215065fd6 re PR target/19636 (Can't compile large switch statement)
PR target/19636
	PR target/24894
	PR target/31644
	PR target/31786
	* config/avr/avr.c (legitimate_address_p): Fix problem where subreg
	is not recognized as a valid register usage. Allow REG_X to be used
	as a base pointer.
	* config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
	forces a reload when using a base register.

From-SVN: r140360
2008-09-14 16:50:10 +04:00
Andy Hutchinson
3d7094661b re PR target/36609 (AVR wrong code using incorrect RTL for test reversal pattern)
PR target/36609
* config/avr/avr.c (avr_reorg): Create RTL for reversed compare with zero.
* config/avr/avr.md  (QISI) : Define mode iterator.
(negated_tst<mode>) : Redefine as split using mode macro.
(reversed_tstqi): Define insn as reversed compare with zero.
(reversed_tsthi): Ditto.
(reversed_tstsi): Ditto.

From-SVN: r140124
2008-09-08 22:25:42 +00:00
Jan Hubicka
1f494b6d9f sparc.h (BRANCH_COST): Fix macro definition.
* sparc.h (BRANCH_COST): Fix macro definition.
	* avr.c (avr_operand_rtx_cost): Add speed argument.
	(avr_rtx_costs): Update calls of avr_operand_rtx_cost.

From-SVN: r139824
2008-08-31 11:18:41 +00:00
Jan Hubicka
f40751dd34 fwprop.c (should_replace_address): Add speed attribute.
* fwprop.c (should_replace_address): Add speed attribute.
	(PR_OPTIMIZE_FOR_SPEED): New flag.
	(propagate_rtx_1): Use it.
	(propagate_rtx): Set it.
	(try_fwprop_subst): Update call of rtx_costs.
	(forward_propagate_and_simplify): LIkewise.
	* hooks.c (hook_int_rtx_bool_0): New
	(hook_bool_rtx_int_int_intp_false): Replace by ...
	(hook_bool_rtx_int_int_intp_bool_false): .. thisone.
	* hooks.h (hook_int_rtx_bool_0): New
	(hook_bool_rtx_int_int_intp_false): Replace by ...
	(hook_bool_rtx_int_int_intp_bool_false): .. thisone.
	* optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
	(prepare_cmp_insn): UPdate call of rtx_cost.
	* postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
	(reload_cse_simplify_operands): Update call of rtx_cost.
	(reload_cse_move2add): call of rtx_cost.
	* target.h (struct gcc_target): Update rtx_costs and address_costs.
	* rtlanal.c (rtx_cost): Add speed argument.
	(address_cost): Add speed argument
	(default_address_cost): Likewise.
	(insn_rtx_cost): Likewise.
	* cfgloopanal.c (seq_cost): Add speed argument.
	(target_reg_cost, target_spill_cost): Turn to array.
	(init_set_costs): Update for speed.
	(estimate_reg_pressure_cost): Add speed argument.
	* auto-inc-dec.c (attempt_change): Update call of rtx_cost.
	* dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
	* tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
	(seq_cost): Add speed argument.
	(computation_cost): Add speed arugment.
	(add_cost, multiply_by_const, get_address_cost): add speed argument.
	(force_expr_to_var_cost): Update for profile info.
	(force_var_cost): Likewise.
	(split_address_cost): Likewise.
	(ptr_difference_cost): Likewise.
	(difference_cost): Likewise.
	(get_computation_cost_at): Likewise.
	(determine_iv_cost): Likewise.
	(ivopts_global_cost_for_size): Likewise.
	(rewrite_use_address): Likewise.
	(tree_ssa_iv_optimize_loop): Initialize speed field.
	* cse.c (optimize_this_for_speed_p): New static var.
	(notreg_cost): Update call of rtx_cost.
	(cse_extended_basic_block): set optimize_this_for_speed_p.
	* ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
	(noce_try_cmove_arith): Likewise.
	(noce_try_sign_mask): LIkewise.
	* expr.c (compress_float_constant): Update rtx_cost calls.
	* tree-ssa-address.c (most_expensive_mult_to_index): Add speed argument.
	(addr_to_parts): Likewise.
	(create_mem_ref): Likewise.
	* dse.c (find_shift_sequence): Add speed argument.
	(replace_read): Update call.
	* calls.c (precompute_register_parameters): Update call of rtx_cost.
	* expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
	* neg_cost, shift_cost, shiftadd_cost,
	shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
	mul_highpart_cost): Increase dimension.
	(init_expmed): Initialize for both size and speed.
	(expand_shift): Use profile.
	(synth_mult): Use profile.
	(choose_mult_variant): Use profile.
	(expand_mult): Use profile.
	(expand_mult_highpart_optab): Use profile.
	(expand_mult_highpart): Use profile.
	(expand_smod_pow2): Use profile.
	(expand_divmod): Use profile.
	* simplify-rtx.c (simplify_binary_operation_1): Update call of rtx_cost.
	* loop-invariant.c (create_new_invariant): Use profile.
	(gain_for_invariant): Add speed parameter.
	(best_gain_for_invariant): Likewise.
	(find_invariants_to_move): Likewise.
	(move_single_loop_invariants): Set it.
	* target-def.h (TARGET_RTX_COSTS): Use hook.
	* rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
	(optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
	* output.h (default_address_cost): Update prototype.
	* combine.c (optimize_this_for_speed_p): New static var.
	(combine_validate_cost): Update call of rtx_cost.
	(combine_instructions): Set optimize_this_for_speed_p.
	(expand_compound_operation): Update call of rtx_cost.
	(make_extraction):Update call of rtx_cost.
	(force_to_mode):Update call of rtx_cost.
	(distribute_and_simplify_rtx):Update call of rtx_cost.
	* cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
	(estimate_reg_pressure_cost): Update prototype.
	* tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
	* basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
	Remove.
	* config/alpha/alpha.c (alpha_rtx_costs): Update.
	(alpha_rtx_costs): Update.
	* config/frv/frv.c (frv_rtx_costs): Update.
	* config/s390/s390.c (s390_rtx_costs): Update.
	* config/m32c/m32c.c (m32c_memory_move_cost): Update.
	(m32c_rtx_costs): Update.
	* config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
	(spu_rtx_costs): Update.
	* config/sparc/sparc.c (sparc_rtx_costs): Update.
	* config/m32r/m32r.c (m32r_rtx_costs): Update.
	* config/i386/i386.c (:ix86_address_cost): Update.
	(ix86_rtx_costs): Update.
	* config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
	* config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
	* config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
	* config/crx/crx.c (crx_address_cost): Update.
	* config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
	* config/stormy16/stormy16.c
	(xstormy16_address_cost, xstormy16_rtx_costs): Update.
	* config/m68hc11/m68hc11.c
	(m68hc11_address_cost, m68hc11_rtx_costs): Update.
	* config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
	* config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost): Update.
	* config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs): Update
	* config/ia64/ia64.c (ia64_rtx_costs): Update.
	* config/m68k/m68k.c (m68k_rtx_costs): Update.
	* config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
	* config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
	* config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
	(mcore_rtx_costs): update.
	* config/score/score3.c (score3_rtx_costs): Update.
	* config/score/score7.c (score7_rtx_costs): Update.
	* config/score/score3.h (score3_rtx_costs):Update.
	* config/score/score7.h (score7_rtx_costs): Update.
	* config/score/score.c (score_rtx_costs): Update.
	* config/arm/arm.c (arm_address_cost): Update.
	(arm_rtx_costs_1): Update.
	(arm_rtx_costs_1): Update.
	(arm_size_rtx_costs): Update.
	(arm_size_rtx_costs): Update.
	(arm_size_rtx_costs): Update.
	(arm_xscale_rtx_costs): Update.
	(arm_thumb_address_cost): Update.
	* config/pa/pa.c (hppa_address_cost): Update.
	* config/mips/mips.c (mips_rtx_costs): Update.
	* config/vax/vax.c (vax_address_cost): Update.
	* config/h8300/h8300.c (h8300_shift_costs): Update.
	(h8300_rtx_costs): Update.
	* config/v850/v850.c (TARGET_ADDRESS_COST): Update.
	(v850_rtx_costs): Update.
	* config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
	* config/bfin/bfin.c
	(bfin_address_cost): Update.
	(bfin_rtx_costs): Update.
	* stmt.c (lshift_cheap_p): Update.

From-SVN: r139821
2008-08-31 09:44:25 +00:00
Andy Hutchinson
3898bf509d * config/avr/avr.c (avr_override_options): Reduce value of PARAM_INLINE_CALL_COST.
From-SVN: r139151
2008-08-16 13:38:06 +00:00
Anatoly Sokolov
708fa3b5df avr.c (avr_mcu_types): Move the AT43USB320 device to avr31 architecture.
* config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
	avr31 architecture.
	* config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

From-SVN: r138915
2008-08-09 23:58:25 +04: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
720705d233 avr.c (avr_mcu_t): Add attiny13a.
* config/avr/avr.c (avr_mcu_t): Add attiny13a.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

From-SVN: r136953
2008-06-19 20:34:05 +04:00
Eric B. Weddington
7995ad77ef avr.c (avr_mcu_t): Remove atmega32hvb.
* config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

From-SVN: r136874
2008-06-18 02:26:51 +04:00
Eric B. Weddington
e416eb8f02 avr.c (avr_mcu_t): Add attiny167.
* config/avr/avr.c (avr_mcu_t): Add attiny167.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
	* gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.

From-SVN: r136870
2008-06-17 21:30:31 +04:00
Eric B. Weddington
59928a837f avr.c (avr_mcu_t): Add atmega32u4.
* config/avr/avr.c (avr_mcu_t): Add atmega32u4.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

From-SVN: r136869
2008-06-17 20:57:23 +04:00
Eric B. Weddington
ec346900d5 avr.c (avr_mcu_t): Add atmega32c1.
* gcc/config/avr/avr.c (avr_mcu_t): Add atmega32c1.
	* gcc/config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
	* gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.

From-SVN: r136847
2008-06-16 22:53:17 +04:00
Eric B. Weddington
951a5379f2 avr.c (avr_mcu_t): Add atmega32m1.
* gcc/config/avr/avr.c (avr_mcu_t): Add atmega32m1.
	* gcc/config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
	* gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.

From-SVN: r136846
2008-06-16 22:44:41 +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
Andy Hutchinson
1bf296437b re PR target/34879 (__builtin_setjmp / __builtin_longjmp fails stack frame address with O2, O3 and Os)
PR target/34879
* config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
(avr_builtin_setjmp_frame_value): New function.
* config/avr/avr.md (nonlocal_goto_receiver): Define.
(nonlocal_goto): Define.

From-SVN: r136297
2008-06-02 22:08:25 +00:00
Richard Sandiford
c41c1387d3 rtl.h (emit_clobber, [...]): Declare.
gcc/
	* rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
	* emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
	functions.  Do not emit uses and clobbers of CONCATs; individually
	use and clobber their operands.
	* builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
	gen_clobber, emit_use and gen_use.
	(expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
	(expand_builtin_return): Likewise.
	* cfgbuild.c (count_basic_blocks): Likewise.
	* cfgrtl.c (rtl_flow_call_edges_add): Likewise.
	* explow.c (emit_stack_restore): Likewise.
	* expmed.c (extract_bit_field_1): Likewise.
	* expr.c (convert_move, emit_move_complex_parts): Likewise.
	(emit_move_multi_word, store_constructor): Likewise.
	* function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
	(thread_prologue_and_epilogue_insns): Likewise.
	* lower-subreg.c (resolve_simple_move): Likewise.
	* optabs.c (widen_operand, expand_binop): Likewise.
	(expand_doubleword_bswap, emit_no_conflict_block): Likewise.
	* reload.c (find_reloads): Likewise.
	* reload1.c (eliminate_regs_in_insn): Likewise.
	* stmt.c (expand_nl_goto_receiver): Likewise.
	* config/alpha/alpha.md (builtin_longjmp): Likewise.
	* config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
	* config/arm/arm.c (arm_load_pic_register): Likewise.
	(thumb1_expand_epilogue, thumb_set_return_address): Likewise.
	* config/arm/arm.md (untyped_return): Likewise.
	* config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
	* config/avr/avr.c (expand_prologue): Likewise.
	* config/bfin/bfin.c (do_unlink): Likewise.
	* config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
	* config/cris/cris.c (cris_expand_prologue): Likewise.
	* config/darwin.c (machopic_indirect_data_reference): Likewise.
	(machopic_legitimize_pic_address): Likewise.
	* config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
	(frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
	* config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
	(ix86_expand_convert_uns_didf_sse): Likewise.
	(ix86_expand_vector_init_general): Likewise.
	* config/ia64/ia64.md (eh_epilogue): Likewise.
	* config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
	* config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
	* config/m32r/m32r.c (m32r_reload_lr): Likewise.
	(config/iq2000/iq2000.c): Likewise.
	* config/mips/mips.md (fixuns_truncdfsi2): Likewise.
	(fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
	(builtin_longjmp): Likewise.
	* config/mn10300/mn10300.md (call, call_value): Likewise.
	* config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
	* config/pdp11/pdp11.md (abshi2): Likewise.
	* config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
	* config/s390/s390.c (s390_emit_prologue): Likewise.
	* config/s390/s390.md (movmem_long, setmem_long): Likewise.
	(cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
	(builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
	* config/sh/sh.c (prepare_move_operands): Likewise.
	(output_stack_adjust, sh_expand_epilogue): Likewise.
	(sh_set_return_address, sh_expand_t_scc): Likewise.
	* config/sparc/sparc.c (load_pic_register): Likewise.
	* config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
	* config/spu/spu.c (spu_expand_epilogue): Likewise.
	* config/v850/v850.c (expand_epilogue): Likewise.

From-SVN: r136251
2008-06-01 09:47:28 +00:00
Anatoly Sokolov
794cb45e0b avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
* config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
	(UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
	(movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
	* config/avr/avr.c (expand_prologue, expand_epilogue): Use 
	movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
	stack pointer register.
	(output_movhi): Remove code for interrupt specific writing to the 
	stack pointer register.

From-SVN: r136238
2008-05-31 19:01:16 +04:00
Tristan Gingold
4d492420f6 avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs()) instead of pm_lo8/pm_hi8 to makes this call working on avr6.
* config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
	instead of pm_lo8/pm_hi8 to makes this call working on avr6.
	* config/avr/avr.c (expand_prologue): Tune "call_prologue" 
	optimization for 'avr6' architecture.

Co-Authored-By: Anatoly Sokolov <aesok@post.ru>

From-SVN: r135953
2008-05-26 21:44:50 +04:00
Anatoly Sokolov
9782290288 avr.c (get_sequence_length): Add new function.
* config/avr/avr.c (get_sequence_length): Add new function.
	(expand_prologue, expand_epilogue): Remove duplicate code.

From-SVN: r135775
2008-05-22 22:59:15 +04:00
Anatoly Sokolov
9b678d9601 avr.h (machine_function): Add 'is_OS_main' field.
* config/avr/avr.h (machine_function): Add 'is_OS_main' field.
	* config/avr/avr.c (avr_OS_main_function_p): Add new function.
	(avr_attribute_table): Add 'OS_main' function attribute.
	(avr_regs_to_save, expand_prologue, expand_epilogue): Handle
	functions with 'OS_main' attribute.

From-SVN: r135681
2008-05-21 01:23:08 +04:00
Anatoly Sokolov
470a4c97a9 avr.c (avr_base_arch_macro, [...]): Remove variables.
* config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
	avr_have_mul_p, avr_asm_only_p): Remove variables.
	(avr_override_options): Remove initialization of removed variables.
	(avr_file_start):  Convert removed variables to fields of 
	'struct base_arch_s *avr_current_arch'. 
	* config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
	(AVR_HAVE_MUL): (Ditto.).
	(AVR_HAVE_MOVW): (Ditto.).
	(AVR_HAVE_LPMX): (Ditto.). 
	(avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
	avr_asm_only_p): Remove declaration.

From-SVN: r135396
2008-05-16 01:07:38 +04:00
Anatoly Sokolov
4c75f70928 avr.h (machine_function): Add 'is_leaf' field.
* config/avr/avr.h (machine_function): Add 'is_leaf' field.
	* config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
	Use 'machine->is_leaf' instead of 'leaf_func_p'.

From-SVN: r135231
2008-05-13 00:39:51 +04:00
Jan Hubicka
e3b5732b21 re PR testsuite/35843 (-fdump-rtl-expand does not exist anymore)
PR testsuite/35843
	* cfgexpand.c (pass_expand): Turn into RTL pass.
	* passes.c (execute_one_pass): Do pass typechecking after execution.
	* tree-pass.h (pass_expand): Turn into RTL pass.

	* function.h (struct rtl_data): Move here fields
	accesses_prior_frames, calls_eh_return, saves_all_registers,
	has_nonlocal_goto, has_asm_statement, is_thunk,
	all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
	uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
	arg_pointer_save_area_init from struct function; turn into bool.
	(struct function): Move
	calls_eh_return, saves_all_registers, has_nonlocal_goto,
	has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
	profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
	tail_call_emit, arg_pointer_save_area_init
	into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
	(current_function_returns_struct, current_function_returns_pcc_struct,
	current_function_calls_setjmp, current_function_calls_alloca,
	current_function_accesses_prior_frames,
	current_function_calls_eh_return, current_function_is_thunk,
	current_function_stdarg, current_function_profile,
	current_function_limit_stack, current_function_uses_pic_offset_table,
	current_function_uses_const_pool, current_function_has_nonlocal_label,
	current_function_saves_all_registers,
	current_function_has_nonlocal_goto,
	current_function_has_asm_statement): Remove accesor macros.
	* ra-conflict.c (global_conflicts): Update.
	* tree-tailcall.c (suitable_for_tail_opt_p): Update.
	(suitable_for_tail_call_opt_p): Update.
	* builtins.c (expand_builtin_return_addr): Update.
	(expand_builtin_setjmp_setup): Update.
	(expand_builtin_nonlocal_goto): Update.
	* final.c (final_start_function): Update.
	(profile_function): Update.
	(leaf_function_p): Update.
	(only_leaf_regs_used): Update.
	* df-scan.c (df_get_exit_block_use_set): Update.
	* dojump.c (clear_pending_stack_adjust): Update.
	* tree-stdarg.c (gate_optimize_stdarg): Update.
	* gimple-low.c (lower_function_body): Update.
	* global.c (compute_regsets): Update.
	(global_alloc): Update.
	* dwarf2out.c (dwarf2out_begin_prologue): Update.
	* expr.c (expand_assignment): Update.
	* dse.c (dse_step0): Update.
	(dse_step1): Update.
	* c-decl.c (store_parm_decls): Update.
	* local-alloc.c (combine_regs): Update.
	(find_free_reg): Update.
	* function.c (assign_parms_augmented_arg_list): Update.
	(assign_parm_find_data_types): Update.
	(assign_parms): Update.
	(allocate_struct_function): Update.
	(expand_function_start): Update.
	(expand_function_end): Update.
	(get_arg_pointer_save_area): Update.
	(thread_prologue_and_epilogue_insns): Update.
	(rest_of_match_asm_constraints): Update.
	* stor-layout.c (variable_size): Update.
	* gcse.c (gcse_main): Update.
	(bypass_jumps): Update.
	* gimplify.c (gimplify_function_tree): Update.
	* calls.c (emit_call_1): Update.
	(expand_call): Update.
	* bt-load.c (compute_defs_uses_and_gen): Update.
	* except.c (sjlj_assign_call_site_values): Update.
	(sjlj_emit_function_enter): Update.
	(can_throw_external): Update.
	(set_nothrow_function_flags): Update.
	(expand_builtin_unwind_init): Update.
	(expand_eh_return): Update.
	(convert_to_eh_region_ranges): Update.
	(output_function_exception_table): Update.
	* emit-rtl.c (gen_tmp_stack_mem): Update.
	* cfgexpand.c (expand_used_vars): Update.
	(tree_expand_cfg): Update.
	* cfgcleanup.c (rest_of_handle_jump): Update.
	* explow.c (allocate_dynamic_stack_space): Update.
	* varasm.c (assemble_start_function): Update.
	(force_const_mem): Update.
	(mark_constant_pool): Update.
	* tree-optimize.c (tree_rest_of_compilation): Update.
	* stack-ptr-mod.c (notice_stack_pointer_modification): Update.
	* tree-cfg.c (notice_special_calls): Update.
	(is_ctrl_altering_stmt): Update.
	(tree_can_make_abnormal_goto): Update.
	(tree_purge_dead_abnormal_call_edges): Update.
	* config/alpha/predicates.md: Update.
	* config/alpha/alpha.c (alpha_sa_mask): Update.
	(alpha_sa_size): Update.
	(alpha_does_function_need_gp): Update.
	(alpha_expand_prologue): Update.
	(alpha_start_function): Update.
	(alpha_output_function_end_prologue): Update.
	(alpha_expand_epilogue): Update.
	* config/frv/frv.c (frv_stack_info): Update.
	(frv_expand_epilogue): Update.
	* config/s390/s390.c (s390_regs_ever_clobbered): Update.
	(s390_register_info): Update.
	(s390_frame_info): Update.
	(s390_init_frame_layout): Update.
	(s390_can_eliminate): Update.
	(save_gprs): Update.
	* config/spu/spu.c (spu_split_immediate): Update.
	(need_to_save_reg): Update.
	(spu_expand_prologue): Update.
	(spu_expand_epilogue): Update.
	* config/sparc/sparc.md: Update.
	* config/sparc/sparc.c (eligible_for_return_delay): Update.
	(sparc_tls_got): Update.
	(legitimize_pic_address): Update.
	(sparc_emit_call_insn): Update.
	(sparc_expand_prologue): Update.
	(output_return): Update.
	(print_operand): Update.
	(sparc_function_ok_for_sibcall): Update.
	* config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
	* config/m32r/m32r.md: Update.
	* config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
	(m32r_compute_frame_size): Update.
	(m32r_expand_prologue): Update.
	(m32r_expand_epilogue): Update.
	(m32r_legitimize_pic_address): Update.
	* config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
	* config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
	* config/i386/i386.c (ix86_frame_pointer_required): Update.
	(gen_push): Update.
	(ix86_save_reg): Update.
	(ix86_compute_frame_layout): Update.
	(ix86_expand_prologue): Update.
	(ix86_expand_epilogue): Update.
	* config/sh/sh.c (output_stack_adjust): Update.
	(calc_live_regs): Update.
	(sh5_schedule_saves): Update.
	(sh_expand_prologue): Update.
	(sh_expand_epilogue): Update.
	(sh_setup_incoming_varargs): Update.
	(sh_allocate_initial_value): Update.
	(sh_get_pr_initial_val): Update.
	* config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
	* config/sh/sh.md (label:): Update.
	* config/avr/avr.c (out_movhi_mr_r): Update.
	* config/crx/crx.h (enum): Update.
	* config/xtensa/xtensa.h (along): Update.
	* config/stormy16/stormy16.c Update.
	(xstormy16_compute_stack_layout): Update.
	* config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
	(fr30_expand_prologue): Update.
	* config/cris/cris.c (cris_conditional_register_usage): Update.
	(cris_reg_saved_in_regsave_area): Update.
	(cris_initial_frame_pointer_offset): Update.
	(cris_simple_epilogue): Update.
	(cris_expand_prologue): Update.
	(cris_expand_epilogue): Update.
	(cris_expand_pic_call_address): Update.
	(cris_asm_output_symbol_ref): Update.
	(cris_asm_output_label_ref): Update.
	* config/cris/cris.md Update.
	* config/iq2000/iq2000.c (compute_frame_size): Update.
	(iq2000_expand_epilogue): Update.
	* config/mt/mt.h (save_direction): Update.
	* config/mn10300/mn10300.c (mn10300_function_value): Update.
	* config/ia64/ia64.c (ia64_compute_frame_size): Update.
	(ia64_secondary_reload_class): Update.
	* config/m68k/m68k.c (m68k_save_reg): Update.
	(m68k_expand_prologue): Update.
	(m68k_expand_epilogue): Update.
	(legitimize_pic_address): Update.
	* config/rs6000/rs6000.c (rs6000_got_register): Update.
	(first_reg_to_save): Update.
	(first_altivec_reg_to_save): Update.
	(compute_vrsave_mask): Update.
	(compute_save_world_info): Update.
	(rs6000_stack_info): Update.
	(spe_func_has_64bit_regs_p): Update.
	(rs6000_ra_ever_killed): Update.
	(rs6000_emit_eh_reg_restore): Update.
	(rs6000_emit_allocate_stack): Update.
	(rs6000_emit_prologue): Update.
	(rs6000_emit_epilogue): Update.
	(rs6000_output_function_epilogue): Update.
	(output_profile_hook): Update.
	(rs6000_elf_declare_function_name): Update.
	* config/rs6000/rs6000.h (rs6000_args): Update.
	* config/rs6000/rs6000.md: Update.
	* config/mcore/mcore.c (mcore_expand_prolog): Update.
	* config/arc/arc.c (arc_output_function_epilogue): Update.
	* config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
	* config/darwin.c (machopic_function_base_name): Update.
	* config/score/score3.c (score3_compute_frame_size): Update.
	(rpush): Update.
	(rpop): Update.
	(score3_epilogue): Update.
	* config/score/score7.c (score7_compute_frame_size): Update.
	(score7_prologue): Update.
	(score7_epilogue): Update.
	* config/score/score.h (FRAME_POINTER_REQUIRED): Update.
	* config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
	* config/arm/arm.c (use_return_insn): Update.
	(require_pic_register): Update.
	(arm_load_pic_register): Update.
	(arm_compute_save_reg0_reg12_mask): Update.
	(arm_compute_save_reg_mask): Update.
	(thumb1_compute_save_reg_mask): Update.
	(output_return_instruction): Update.
	(arm_output_function_prologue): Update.
	(arm_output_epilogue): Update.
	(arm_get_frame_offsets): Update.
	(arm_expand_prologue): Update.
	(thumb_pushpop): Update.
	(thumb_exit): Update.
	(thumb1_expand_prologue): Update.
	(thumb1_expand_epilogue): Update.
	(arm_unwind_emit): Update.
	(arm_output_fn_unwind): Update.
	* config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
	* config/arm/arm.md: Update.
	* config/pa/pa.md: Update.
	* config/pa/pa.c (legitimize_pic_address): Update.
	(compute_frame_size): Update.
	(hppa_expand_prologue): Update.
	(hppa_expand_epilogue): Update.
	(borx_reg_operand): Update.
	* config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
	(HARD_REGNO_RENAME_OK): Update.
	* config/mips/mips.c (mips_global_pointer): Update.
	(mips_save_reg_p): Update.
	(mips_compute_frame_info): Update.
	(mips_frame_pointer_required): Update.
	(mips_expand_prologue): Update.
	(mips_expand_epilogue): Update.
	(mips_can_use_return_insn): Update.
	(mips_reorg_process_insns): Update.
	* config/v850/v850.c (compute_register_save_size): Update.
	* config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
	* config/mmix/mmix.c (along): Update.
	(mmix_expand_epilogue): Update.
	* config/bfin/bfin.c (legitimize_pic_address): Update.
	(must_save_p): Update.
	(stack_frame_needed_p): Update.
	(add_to_reg): Update.
	(bfin_expand_prologue): Update.
	* stmt.c (expand_asm_operands): Update.
	* reload1.c (reload): Update.
	(init_elim_table): Update.

From-SVN: r134682
2008-04-25 23:14:40 +00:00
Jan Hubicka
38173d38cc function.h (incomming_args): Break out of struct function.
* function.h (incomming_args): Break out of struct function.
	(function_subsections): Break out of struct function.
	(rtl_data): Add args, subsections fields. Break out outgoing_args_size,
	return_rtx and hard_reg_initial_vals from struct function.
	Kill inl_max_label_num.
	(current_function_pops_args, current_function_args_info,
	current_function_args_size, current_function_args_size,
	current_function_pretend_args_size,
	current_function_outgoing_args_size,
	current_function_internal_arg_pointer, current_function_return_rtx):
	Kill compatibility accestor macros.
	* builtins.c (expand_builtin_apply_args_1): Update.
	(expand_builtin_next_arg): Update.
	* df-scan.c (df_get_call_refs): Update.
	* dbxout.c (dbxout_function_end): Update.
	* dwarf2out.c (dwarf2out_switch_text_section): Update.
	(output_line_info): Update.
	(secname_for_decl): Update.
	(dwarf2out_var_location): Update.
	* function.c (free_after_compilation): Update.
	(assign_parm_find_stack_rtl): Update.
	(assign_parms): Update.
	(expand_dummy_function_end): Update.
	(expand_function_end): Update.
	* calls.c (mem_overlaps_already_clobbered_arg_p): Update.
	(expand_call): Update.
	(emit_library_call_value_1): Update.
	(store_one_arg): Update.
	* varasm.c (initialize_cold_section_name): Update.
	(unlikely_text_section): Update.
	(unlikely_text_section_p): Update.
	(assemble_start_function): Update.
	(assemble_end_function): Update.
	(default_section_type_flags): Update.
	(switch_to_section): Update.
	* integrate.c (set_decl_abstract_flags): Update.
	(get_hard_reg_initial_val): Update.
	(has_hard_reg_initial_val): Update.
	(allocate_initial_values): Update.
	* resource.c (init_resource_info): Update.
	* config/alpha/alpha.c (NUM_ARGS): Update.
	(direct_return): Update.
	(alpha_va_start): Update.
	(alpha_sa_size): Update.
	(alpha_initial_elimination_offset): Update.
	(alpha_expand_prologue): Update.
	(alpha_start_function): Update.
	(alpha_expand_epilogue): Update.
	(unicosmk_initial_elimination_offset):
	* config/alpha/alpha.md (call expander): Update.
	* config/s390/s390.c (s390_register_info): Update.
	(s390_register_info): Update.
	(s390_frame_info): Update.
	(s390_initial_elimination_offset): Update.
	(s390_build_builtin_va_list): Update.
	(s390_va_start): Update.
	* config/spu/spu.c (direct_return): Update.
	(spu_expand_prologue): Update.
	(spu_initial_elimination_offset): Update.
	(spu_build_builtin_va_list): Update.
	(spu_va_start): Update.
	* config/sparc/sparc.c (sparc_init_modes): Update.
	(sparc_compute_frame_size): Update.
	(function_value): Update.
	* config/m32r/m32r.c (m32r_compute_frame_size): Update.
	* config/i386/i386.md (return expander): Update.
	* config/i386/i386.c (ix86_va_start): Update.
	(ix86_can_use_return_insn_p): Update.
	(ix86_compute_frame_layout): Update.
	(ix86_expand_epilogue): Update.
	* config/sh/sh.c (output_stack_adjust): Update.
	(calc_live_regs): Update.
	(sh_expand_prologue): Update.
	(sh_builtin_saveregs): Update.
	(sh_va_start): Update.
	(initial_elimination_offset): Update.
	(sh_allocate_initial_value): Update.
	(sh_function_ok_for_sibcall): Update.
	(sh_get_pr_initial_val): Update.
	* config/sh/sh.md (return expander): Update.
	* config/avr/avr.c (frame_pointer_required_p): UPdate.
	* config/crx/crx.c (crx_compute_frame): UPdate.
	(crx_initial_elimination_offset): UPdate.
	* config/xtensa/xtensa.c (compute_frame_size): Update
	(xtensa_builtin_saveregs): Update.
	(xtensa_va_start): Update.
	(order_regs_for_local_alloc): Update.
	* config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
	(xstormy16_expand_builtin_va_start): Update.
	* config/fr30/fr30.c (fr30_compute_frame_size): Update.
	* config/m68hc11/m68hc11.md (return expanders): Update.
	* config/m68hc11/m68hc11.c (expand_prologue): Update.
	(expand_epilogue): Update.
	* config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
	(cris_simple_epilogue): Update.
	(cris_expand_prologue): Update.
	(cris_expand_epilogue): Update.
	* config/iq2000/iq2000.c (iq2000_va_start): Update.
	(compute_frame_size): Update.
	* config/mt/mt.c (mt_compute_frame_size): Update.
	* config/mn10300/mn10300.c (expand_prologue): Update.
	(expand_epilogue): Update.
	(initial_offset): Update.
	(mn10300_builtin_saveregs):
	* config/mn10300/mn10300.md (return expander): Update.
	* config/ia64/ia64.c (ia64_compute_frame_size): Update.
	(ia64_initial_elimination_offset): Update.
	(ia64_initial_elimination_offset): Update.
	(ia64_expand_prologue): Update.
	* config/m68k/m68k.md (return expander): Update.
	* config/rs6000/rs6000.c (rs6000_va_start): Update.
	(rs6000_stack_info): Update.
	* config/mcore/mcore.c (layout_mcore_frame): Update.
	(mcore_expand_prolog): Update.
	* config/arc/arc.c (arc_compute_frame_size): Update.
	* config/score/score3.c (score3_compute_frame_size): Update.
	* config/score/score7.c (score7_compute_frame_size): Update.
	* config/arm/arm.c (use_return_insn): Update.
	(thumb_find_work_register): Update.
	(arm_compute_save_reg_mask): Update.
	(arm_output_function_prologue): Update.
	(arm_output_epilogue): Update.
	(arm_size_return_regs): Update.
	(arm_get_frame_offsets): Update.
	(arm_expand_prologue): Update.
	(thumb_exit): Update.
	(thumb_unexpanded_epilogue): Update.
	(thumb1_output_function_prologue): Update.
	* config/pa/pa.md (return expander): Update.
	* config/pa/pa.c (compute_frame_size): Update.
	(hppa_builtin_saveregs): Update.
	* config/mips/mips.c (mips_va_start): Update.
	(mips16_build_function_stub): Update.
	(mips_compute_frame_info): Update.
	(mips_restore_gp): Update.
	(mips_output_function_prologue): Update.
	(mips_expand_prologue): Update.
	* config/v850/v850.c (compute_frame_size): Update.
	(expand_prologue): * config/mmix/mmix.c (along): update.
	(mmix_initial_elimination_offset): update.
	(mmix_reorg): update.
	(mmix_use_simple_return): update.
	(mmix_expand_prologue): update.
	(mmix_expand_epilogue): Update.
	* config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
	(emit_link_insn): Update.

From-SVN: r134087
2008-04-08 08:59:34 +00:00
Anatoly Sokolov
5d9b8bb411 avr.h (TARGET_CPU_CPP_BUILTINS): Define __AVR_HAVE_EIJMP_EICALL__ macro if...
* config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
	__AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
	instructions.
	* config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
	atmega103 device.

From-SVN: r134069
2008-04-08 11:00:50 +04:00
Anatoly Sokolov
5dc7780891 avr.h (avr_mega_p): Remove declaration.
* config/avr/avr.h (avr_mega_p): Remove declaration.
	(AVR_MEGA): Remove macro.
	* config/avr/avr.c (avr_mega_p): Remove variable.
	(avr_override_options): Remove inicializion of avr_mega_p.
	Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
	(print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
	(avr_jump_mode): (Ditto.).
	(avr_output_progmem_section_asm_op): (Ditto.).
	(avr_asm_init_sections): (Ditto.).
	(avr_asm_init_sections): (Ditto.).
	(avr_rtx_costs): (Ditto.).
	* config/avr/avr.md: (Ditto.).
	* config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
	'__AVR_MEGA__'.

From-SVN: r133966
2008-04-07 00:54:32 +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
Bjoern Haase
693092fb62 avr.c (avr_arch_types): Add avr6 entry.
* gcc/gcc/config/avr/avr.c (avr_arch_types): Add avr6 entry.
	(avr_arch): Add ARCH_AVR6.
	(avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
 	(initial_elimination_offset): Initialize and use 'avr_pc_size' 
	instead of fixed value 2.
	(print_operand_address): Use gs() asm specifier instead of pm().
	(avr_assemble_integer): (Ditto.).
	(avr_output_addr_vec_elt): (Ditto.).
	(print_operand): Handle "!" code.
	* gcc/gcc/config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
	__AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
	(AVR_HAVE_EIJMP_EICALL): Define.
	(AVR_3_BYTE_PC): Redefine.
	(AVR_2_BYTE_PC): (Ditto.).
	(PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
	(LINK_SPEC): Add atmega2560 and atmega2561.
	(CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
	(crtm2561.o).
	* gcc/gcc/config/avr/avr.md (call_insn): Use eicall instead of icall 
	for 3 byte PC devices.
	(call_value_insn): (Ditto.).
	(*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
	(indirect_jump): Use only for for 2 byte PC devices.
	(*tablejump): (Ditto.).
	(*indirect_jump_avr6): Add insn.
	(*tablejump_rjmp): Don't use for 3 byte PC devices.
	* gcc/gcc/config/avr/libgcc.S (__prologue_saves__): Use eijmp 
	instead of ijmp for 3 byte PC devices.
	(__tablejump2__): (Ditto.).
	* gcc/gcc/config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
	(MULITLIB_DIRNAMES): (Ditto.). 
	(MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.

Co-Authored-By: Anatoly Sokolov <aesok@post.ru>

From-SVN: r133248
2008-03-15 15:23:45 +03:00
Anatoly Sokolov
d6f77715ea avr.h (AVR_HAVE_RAMPZ): Define.
* config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
	* config/avr/avr.c (expand_prologue): Save RAMPZ register.
	(expand_epilogue): Restore RAMPZ register.
	* config/avr/avr.md (RAMPZ_ADDR): New constant.

From-SVN: r132252
2008-02-12 07:08:41 +03:00
Andy Hutchinson
127203175e re PR target/34412 (ICE in extract_insn, at recog.c:1990)
PR target/34412
	* config/avr/avr.c (expand_prologue): Use correct QI mode frame 
	pointer for tiny stack.

From-SVN: r131923
2008-01-29 01:39:11 +03:00
Anatoly Sokolov
19298da4bd avr.c (avr_current_arch): New variable.
* config/avr/avr.c (avr_current_arch): New variable.
	(avr_arch_types): Add 'avr31' and 'avr51' entries.
	(avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
	(avr_mcu_types): Add 'avr31' and 'avr51' architectures.
	(avr_override_options): Init 'avr_current_arch'. 
	(base_arch_s): Move from here...
	* config/avr/avr.h (base_arch_s): ... here. Add new members 
	'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
	'mega' to 'have_jmp_call'.
	(TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
	"__AVR_HAVE_RAMPZ__", 	"__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
	macros.
	(LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
	architectures.
	* config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
	MULTILIB_MATCHES): (Ditto.).

From-SVN: r131759
2008-01-23 18:07:09 +03:00
Anatoly Sokolov
0d40cc60e8 avr.c (expand_prologue, [...]): Don't save/restore frame pointer register and don't use 'call-prologues' ...
* config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
	save/restore frame pointer register and don't use 'call-prologues' 
	optimization in function with "OS_task" attribute.

From-SVN: r131474
2008-01-11 23:33:50 +03:00
Anatoly Sokolov
9628d76b2a avr.h (LINK_SPEC, [...]): Move AT90USB82 and AT90USB162 devices from 'avr5' to 'avr35' architecture.
* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Move AT90USB82 
	and AT90USB162 devices from 'avr5' to 'avr35' architecture.
	(ASM_SPEC): Add 'avr35' architecture.
	* config/avr/avr.c (avr_mcu_types): Move AT90USB82 and AT90USB162 
	devices from 'avr5' to 'avr35' architecture.
	(avr_arch_types): Add "avr23" entries.
	(avr_arch): Add 'ARCH_AVR35'.
	* config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add 'avr35'.
	(MULTILIB_MATCHES): Move AT90USB82 and AT90USB162 devices from 'avr5'
	to 'avr35' architecture.

From-SVN: r131189
2007-12-27 01:02:14 +03:00
Eric B. Weddington
24e472b86b avr.c (avr_mcu_types): Add atmega32hvb.
* config/avr/avr.c (avr_mcu_types): Add atmega32hvb.
	* config/avr/avr.h (LINK_SPEC): Likewise.
	(CRT_BINUTILS_SPECS): Likewsie.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

From-SVN: r130475
2007-11-28 00:58:13 +03:00
Eric B. Weddington
a965fb5ef9 avr.c (avr_mcu_types): Add atmega1284p.
* config/avr/avr.c (avr_mcu_types): Add atmega1284p.
	* config/avr/avr.h (LINK_SPEC): Likewise.
	(CRT_BINUTILS_SPECS): Likewsie.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

From-SVN: r130452
2007-11-27 01:15:31 +03:00
Eric B. Weddington
e2a021c9e5 avr.c (avr_mcu_types): Add attiny88.
* config/avr/avr.c (avr_mcu_types): Add attiny88.
	* config/avr/avr.h (LINK_SPEC): Likewise.
	(CRT_BINUTILS_SPECS): Likewsie.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

From-SVN: r130208
2007-11-15 22:32:26 +03:00
Anatoly Sokolov
96ac4c9bbd avr.c (avr_OS_task_function_p): Add new function.
* config/avr/avr.c (avr_OS_task_function_p): Add new function.
	(avr_regs_to_save): Handle functions with 'OS_task' attribute.
	(avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue,
	expand_epilogue, output_movhi): Don't handle 'main' function.
	(avr_attribute_table): Add 'OS_task' function attribute.
	* config/avr/avr.h (machine_function): Remove 'is_main' field, add
	'is_OS_task' field.
	* config/avr/avr.md (return_from_main_epilogue): Remove insn.
	(return_from_epilogue, return_from_interrupt_epilogue): Don't handle
	'main' function.
	* config/avr/avr.opt (minit-stack): Remove.

From-SVN: r129662
2007-10-27 01:36:25 +04:00
Eric B. Weddington
0c71b4541a avr.c (avr_mcu_types): Remove ATmega603 which was never produced.
* config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never
	produced.
	* config/avr/avr.h (LINK_SPEC): Likewise.
	(CRT_BINUTILS_SPECS): Likewsie.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

From-SVN: r129557
2007-10-22 23:58:16 +04:00
Eric B. Weddington
f978d2c739 avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b.
* config/avr/avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b.
	* config/avr/avr.h (LINK_SPEC): Likewise.
	(CRT_BINUTILS_SPECS): Likewsie.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

From-SVN: r129514
2007-10-20 23:43:59 +04:00
Anatoly Sokolov
fabf8971cf avr.c (avr_mcu_types): Add support for atmega48p, atmega88p, atmega168p and atmega328p devices.
* config/avr/avr.c (avr_mcu_types): Add support for atmega48p, 
	atmega88p, atmega168p and atmega328p devices.
	* config/avr/avr.h (LINK_SPEC): (Ditto.).
	(CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

From-SVN: r129419
2007-10-18 00:20:04 +04:00
Eric B. Weddington
59902acfba avr.c (avr_mcu_types): Add attiny48.
* config/avr/avr.c (avr_mcu_types): Add attiny48.
	* config/avr/avr.h (LINK_SPEC): Likewise.
	(CRT_BINUTILS_SPECS): Likewsie.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

From-SVN: r129414
2007-10-17 22:41:32 +04:00
Eric B. Weddington
859bc2ff2d avr.c (avr_mcu_types): Add attiny43u.
* config/avr/avr.c (avr_mcu_types): Add attiny43u.
	* config/avr/avr.h (CRT_BINUTILS_SPECS): Likewsie.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

From-SVN: r129411
2007-10-17 21:13:14 +04:00
Eric B. Weddington
2bf374ab14 avr.c (avr_mcu_types): Add at90pwm216, at90pwm316.
* config/avr/avr.c (avr_mcu_types): Add at90pwm216, at90pwm316.
	* config/avr/avr.h (LINK_SPEC): Likewise and remove regex for
	similar devices.
	(CRT_BINUTILS_SPECS): Likewsie.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

From-SVN: r129389
2007-10-17 01:47:23 +04:00
Anatoly Sokolov
8819eb78ee * config/avr/avr.c (expand_epilogue): Don't set RTX_FRAME_RELATED_P.
From-SVN: r129023
2007-10-05 01:18:12 +04:00
Anatoly Sokolov
40700892a0 avr.c (commands_in_file, [...]): Remove variables.
* config/avr/avr.c (commands_in_file, commands_in_prologues, 
	commands_in_epilogues): Remove variables.
	(avr_file_start): Remove unneded initializations of commands_in_file,
	commands_in_prologues and commands_in_epilogues variables.
	(avr_file_end): Remove dead code.

From-SVN: r129001
2007-10-04 10:51:38 +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
Nick Clifton
2f83c7d6b5 host-hpux.c: Change copyright header to refer to version 3 of the GNU General Public License...
* config/host-hpux.c: Change copyright header to refer to version 3 of the GNU
  General Public License and to point readers at the COPYING3 file and the FSF's
  license web page.
* config/alpha/predicates.md, config/alpha/vms-ld.c,
config/alpha/linux.h, config/alpha/alpha.opt,
config/alpha/linux-elf.h, config/alpha/vms.h, config/alpha/elf.h,
config/alpha/vms-unwind.h, config/alpha/ev4.md,
config/alpha/ev6.md, config/alpha/alpha.c, config/alpha/vms-cc.c,
config/alpha/alpha.h, config/alpha/sync.md,
config/alpha/openbsd.h, config/alpha/alpha.md,
config/alpha/alpha-modes.def, config/alpha/ev5.md,
config/alpha/alpha-protos.h, config/alpha/freebsd.h,
config/alpha/osf5.h, config/alpha/netbsd.h, config/alpha/vms64.h,
config/alpha/constraints.md, config/alpha/osf.h,
config/alpha/xm-vms.h, config/alpha/unicosmk.h, config/linux.h,
config/frv/predicates.md, config/frv/frv.h, config/frv/linux.h,
config/frv/frv.md, config/frv/frv.opt, config/frv/frv-modes.def,
config/frv/frv-asm.h, config/frv/frv-protos.h,
config/frv/frv-abi.h, config/frv/frv.c, config/s390/tpf.h,
config/s390/s390.c, config/s390/predicates.md, config/s390/s390.h,
config/s390/linux.h, config/s390/tpf.md, config/s390/tpf.opt,
config/s390/2064.md, config/s390/2084.md, config/s390/s390.md,
config/s390/s390.opt, config/s390/s390-modes.def,
config/s390/fixdfdi.h, config/s390/constraints.md,
config/s390/s390-protos.h, config/s390/s390x.h, config/elfos.h,
config/dbxcoff.h, config/m32c/predicates.md, config/m32c/cond.md,
config/m32c/m32c.c, config/m32c/minmax.md, config/m32c/blkmov.md,
config/m32c/m32c-pragma.c, config/m32c/m32c.h,
config/m32c/prologue.md, config/m32c/m32c.abi,
config/m32c/muldiv.md, config/m32c/bitops.md, config/m32c/mov.md,
config/m32c/addsub.md, config/m32c/m32c.md, config/m32c/m32c.opt,
config/m32c/t-m32c, config/m32c/m32c-modes.def,
config/m32c/jump.md, config/m32c/shift.md,
config/m32c/m32c-protos.h, config/libgloss.h,
config/spu/spu-protos.h, config/spu/predicates.md,
config/spu/spu-builtins.h, config/spu/spu.c,
config/spu/spu-builtins.def, config/spu/spu-builtins.md,
config/spu/spu.h, config/spu/spu-elf.h, config/spu/constraints.md,
config/spu/spu.md, config/spu/spu-c.c, config/spu/spu.opt,
config/spu/spu-modes.def, config/spu/t-spu-elf, config/interix.h,
config/sparc/hypersparc.md, config/sparc/predicates.md,
config/sparc/linux.h, config/sparc/sp64-elf.h,
config/sparc/supersparc.md, config/sparc/cypress.md,
config/sparc/openbsd1-64.h, config/sparc/openbsd64.h,
config/sparc/niagara.md, config/sparc/sparc.md,
config/sparc/long-double-switch.opt, config/sparc/ultra3.md,
config/sparc/sparc.opt, config/sparc/sync.md,
config/sparc/sp-elf.h, config/sparc/sparc-protos.h,
config/sparc/ultra1_2.md, config/sparc/biarch64.h,
config/sparc/sparc.c, config/sparc/little-endian.opt,
config/sparc/sysv4-only.h, config/sparc/sparc.h,
config/sparc/linux64.h, config/sparc/freebsd.h,
config/sparc/sol2.h, config/sparc/rtemself.h,
config/sparc/netbsd-elf.h, config/sparc/vxworks.h,
config/sparc/sparc-modes.def, config/sparc/sparclet.md,
config/sparc/sysv4.h, config/vx-common.h, config/netbsd-aout.h,
config/flat.h, config/m32r/m32r.md, config/m32r/predicates.md,
config/m32r/little.h, config/m32r/m32r.c, config/m32r/m32r.opt,
config/m32r/linux.h, config/m32r/constraints.md,
config/m32r/m32r.h, config/m32r/m32r-protos.h, config/vxworks.opt,
config/darwin-c.c, config/darwin.opt, config/i386/i386.h,
config/i386/cygming.h, config/i386/linux.h, config/i386/cygwin.h,
config/i386/i386.md, config/i386/netware-crt0.c,
config/i386/sco5.h, config/i386/mmx.md, config/i386/vx-common.h,
config/i386/kaos-i386.h, config/i386/winnt-stubs.c,
config/i386/netbsd64.h, config/i386/djgpp.h, config/i386/gas.h,
config/i386/sol2.h, config/i386/constraints.md,
config/i386/netware-libgcc.c, config/i386/sysv5.h,
config/i386/predicates.md, config/i386/geode.md,
config/i386/x86-64.h, config/i386/kfreebsd-gnu.h,
config/i386/freebsd64.h, config/i386/vxworksae.h,
config/i386/pentium.md, config/i386/lynx.h, config/i386/i386elf.h,
config/i386/rtemself.h, config/i386/netbsd-elf.h,
config/i386/ppro.md, config/i386/k6.md, config/i386/netware.c,
config/i386/netware.h, config/i386/i386-modes.def,
config/i386/sysv4-cpp.h, config/i386/i386-interix.h,
config/i386/cygwin1.c, config/i386/djgpp.opt, config/i386/uwin.h,
config/i386/unix.h, config/i386/ptx4-i.h, config/i386/xm-djgpp.h,
config/i386/att.h, config/i386/winnt.c, config/i386/beos-elf.h,
config/i386/sol2-10.h, config/i386/darwin64.h, config/i386/sse.md,
config/i386/i386.opt, config/i386/bsd.h, config/i386/cygming.opt,
config/i386/xm-mingw32.h, config/i386/linux64.h,
config/i386/openbsdelf.h, config/i386/xm-cygwin.h,
config/i386/sco5.opt, config/i386/darwin.h, config/i386/mingw32.h,
config/i386/winnt-cxx.c, config/i386/i386-interix3.h,
config/i386/nwld.c, config/i386/nwld.h, config/i386/host-cygwin.c,
config/i386/cygwin2.c, config/i386/i386-protos.h,
config/i386/sync.md, config/i386/openbsd.h,
config/i386/host-mingw32.c, config/i386/i386-aout.h,
config/i386/nto.h, config/i386/biarch64.h,
config/i386/i386-coff.h, config/i386/freebsd.h,
config/i386/driver-i386.c, config/i386/knetbsd-gnu.h,
config/i386/host-i386-darwin.c, config/i386/vxworks.h,
config/i386/crtdll.h, config/i386/i386.c, config/i386/sysv4.h,
config/darwin-protos.h, config/linux.opt, config/sol2.c,
config/sol2.h, config/sh/symbian.c, config/sh/sh-protos.h,
config/sh/linux.h, config/sh/elf.h, config/sh/superh.h,
config/sh/sh4.md, config/sh/coff.h, config/sh/newlib.h,
config/sh/embed-elf.h, config/sh/symbian-pre.h, config/sh/rtems.h,
config/sh/kaos-sh.h, config/sh/sh4a.md, config/sh/constraints.md,
config/sh/sh64.h, config/sh/sh.opt, config/sh/symbian-post.h,
config/sh/sh-c.c, config/sh/predicates.md, config/sh/sh.c,
config/sh/sh.h, config/sh/shmedia.md, config/sh/sh-modes.def,
config/sh/little.h, config/sh/sh1.md, config/sh/sh4-300.md,
config/sh/superh64.h, config/sh/rtemself.h,
config/sh/netbsd-elf.h, config/sh/sh.md, config/sh/vxworks.h,
config/usegas.h, config/svr3.h, config/pdp11/pdp11-protos.h,
config/pdp11/2bsd.h, config/pdp11/pdp11.md, config/pdp11/pdp11.c,
config/pdp11/pdp11.opt, config/pdp11/pdp11-modes.def,
config/pdp11/pdp11.h, config/avr/rtems.h, config/avr/avr-protos.h,
config/avr/predicates.md, config/avr/constraints.md,
config/avr/avr.md, config/avr/avr.c, config/avr/avr.opt,
config/avr/avr.h, config/sol2-protos.h, config/dbxelf.h,
config/lynx.opt, config/crx/crx.h, config/crx/crx-protos.h,
config/crx/crx.md, config/crx/crx.c, config/crx/crx.opt,
config/c4x/c4x-c.c, config/c4x/c4x.c, config/c4x/c4x.opt,
config/c4x/c4x-modes.def, config/c4x/rtems.h,
config/c4x/predicates.md, config/c4x/c4x.h,
config/c4x/c4x-protos.h, config/c4x/c4x.md, config/kfreebsd-gnu.h,
config/xtensa/predicates.md, config/xtensa/xtensa.c,
config/xtensa/linux.h, config/xtensa/xtensa.h,
config/xtensa/elf.h, config/xtensa/xtensa.md,
config/xtensa/xtensa.opt, config/xtensa/constraints.md,
config/xtensa/xtensa-protos.h, config/dbx.h,
config/stormy16/predicates.md, config/stormy16/stormy16.md,
config/stormy16/stormy16.c, config/stormy16/stormy16.opt,
config/stormy16/stormy16.h, config/stormy16/stormy16-protos.h,
config/host-solaris.c, config/fr30/fr30.h,
config/fr30/predicates.md, config/fr30/fr30-protos.h,
config/fr30/fr30.md, config/fr30/fr30.c, config/fr30/fr30.opt,
config/vxworksae.h, config/sol2-c.c, config/lynx.h,
config/m68hc11/m68hc11-protos.h, config/m68hc11/predicates.md,
config/m68hc11/m68hc11.md, config/m68hc11/m68hc11.c,
config/m68hc11/m68hc11.opt, config/m68hc11/m68hc11.h,
config/m68hc11/m68hc12.h, config/openbsd-oldgas.h,
config/host-linux.c, config/interix3.h, config/cris/cris.c,
config/cris/predicates.md, config/cris/linux.h,
config/cris/cris.h, config/cris/aout.h, config/cris/cris.md,
config/cris/linux.opt, config/cris/cris.opt, config/cris/elf.opt,
config/cris/aout.opt, config/cris/cris-protos.h,
config/vxworks-dummy.h, config/netbsd.h, config/netbsd-elf.h,
config/iq2000/iq2000.h, config/iq2000/predicates.md,
config/iq2000/iq2000-protos.h, config/iq2000/iq2000.md,
config/iq2000/iq2000.c, config/iq2000/iq2000.opt,
config/host-darwin.c, config/mt/mt.md, config/mt/mt.c,
config/mt/mt.opt, config/mt/t-mt, config/mt/mt.h,
config/mt/mt-protos.h, config/svr4.h, config/host-darwin.h,
config/chorus.h, config/mn10300/mn10300.c,
config/mn10300/mn10300.opt, config/mn10300/predicates.md,
config/mn10300/mn10300.h, config/mn10300/linux.h,
config/mn10300/constraints.md, config/mn10300/mn10300-protos.h,
config/mn10300/mn10300.md, config/ia64/predicates.md,
config/ia64/itanium1.md, config/ia64/unwind-ia64.h,
config/ia64/ia64-c.c, config/ia64/sync.md, config/ia64/ia64.c,
config/ia64/itanium2.md, config/ia64/ia64.h, config/ia64/vect.md,
config/ia64/freebsd.h, config/ia64/ia64.md,
config/ia64/ia64-modes.def, config/ia64/constraints.md,
config/ia64/hpux.h, config/ia64/ia64-protos.h, config/windiss.h,
config/gofast.h, config/rtems.h, config/sol2-10.h,
config/m68k/predicates.md, config/m68k/m68k.md,
config/m68k/linux.h, config/m68k/m68k-modes.def,
config/m68k/print-sysroot-suffix.sh, config/m68k/m68k-protos.h,
config/m68k/coff.h, config/m68k/m68k-none.h, config/m68k/ieee.opt,
config/m68k/openbsd.h, config/m68k/m68k-aout.h,
config/m68k/m68k.opt, config/m68k/m68020-elf.h,
config/m68k/m68kelf.h, config/m68k/m68k-devices.def,
config/m68k/uclinux-oldabi.h, config/m68k/m68k.c,
config/m68k/constraints.md, config/m68k/rtemself.h,
config/m68k/netbsd-elf.h, config/m68k/m68k.h,
config/m68k/uclinux.h, config/rs6000/power4.md,
config/rs6000/host-darwin.c, config/rs6000/6xx.md,
config/rs6000/linux.h, config/rs6000/eabi.h,
config/rs6000/aix41.opt, config/rs6000/xcoff.h,
config/rs6000/secureplt.h, config/rs6000/linuxspe.h,
config/rs6000/eabialtivec.h, config/rs6000/8540.md,
config/rs6000/darwin8.h, config/rs6000/kaos-ppc.h,
config/rs6000/windiss.h, config/rs6000/603.md,
config/rs6000/aix41.h, config/rs6000/cell.md,
config/rs6000/mpc.md, config/rs6000/aix43.h, config/rs6000/beos.h,
config/rs6000/gnu.h, config/rs6000/rtems.h, config/rs6000/aix.opt,
config/rs6000/darwin.md, config/rs6000/darwin64.h,
config/rs6000/default64.h, config/rs6000/7xx.md,
config/rs6000/darwin.opt, config/rs6000/spe.md,
config/rs6000/rs6000.opt, config/rs6000/rs6000-c.c,
config/rs6000/rios2.md, config/rs6000/linuxaltivec.h,
config/rs6000/7450.md, config/rs6000/linux64.h,
config/rs6000/constraints.md, config/rs6000/440.md,
config/rs6000/darwin.h, config/rs6000/host-ppc64-darwin.c,
config/rs6000/rs6000.c, config/rs6000/aix52.h,
config/rs6000/rs6000.h, config/rs6000/power6.md,
config/rs6000/predicates.md, config/rs6000/altivec.md,
config/rs6000/aix64.opt, config/rs6000/rios1.md,
config/rs6000/rs6000-modes.def, config/rs6000/rs64.md,
config/rs6000/eabisim.h, config/rs6000/sysv4le.h,
config/rs6000/darwin7.h, config/rs6000/dfp.md,
config/rs6000/linux64.opt, config/rs6000/sync.md,
config/rs6000/vxworksae.h, config/rs6000/power5.md,
config/rs6000/lynx.h, config/rs6000/biarch64.h,
config/rs6000/rs6000.md, config/rs6000/sysv4.opt,
config/rs6000/eabispe.h, config/rs6000/e500.h,
config/rs6000/freebsd.h, config/rs6000/rs6000-protos.h,
config/rs6000/netbsd.h, config/rs6000/e500-double.h,
config/rs6000/aix.h, config/rs6000/vxworks.h,
config/rs6000/40x.md, config/rs6000/aix51.h,
config/rs6000/sysv4.h, config/arc/arc-protos.h, config/arc/arc.md,
config/arc/arc.c, config/arc/arc.opt, config/arc/arc-modes.def,
config/arc/arc.h, config/mcore/mcore-elf.h,
config/mcore/mcore-protos.h, config/mcore/predicates.md,
config/mcore/mcore.md, config/mcore/mcore.c,
config/mcore/mcore.opt, config/mcore/mcore.h,
config/mcore/mcore-pe.h, config/darwin.c, config/freebsd-nthr.h,
config/score/predicates.md, config/score/score-version.h,
config/score/score-protos.h, config/score/misc.md,
config/score/elf.h, config/score/score.c, config/score/mac.md,
config/score/score7.md, config/score/score.h,
config/score/score-conv.h, config/score/score-mdaux.c,
config/score/score.md, config/score/score.opt,
config/score/score-modes.def, config/score/score-mdaux.h,
config/score/mul-div.S, config/arm/uclinux-elf.h,
config/arm/semi.h, config/arm/ecos-elf.h, config/arm/arm1020e.md,
config/arm/symbian.h, config/arm/linux-elf.h,
config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
config/arm/elf.h, config/arm/aout.h, config/arm/arm.c,
config/arm/thumb2.md, config/arm/vec-common.md, config/arm/coff.h,
config/arm/strongarm-pe.h, config/arm/arm.h,
config/arm/cortex-a8-neon.md, config/arm/semiaof.h,
config/arm/cortex-a8.md, config/arm/uclinux-eabi.h,
config/arm/arm-modes.def, config/arm/linux-eabi.h,
config/arm/rtems-elf.h, config/arm/neon-schedgen.ml,
config/arm/arm-cores.def, config/arm/arm-protos.h,
config/arm/vfp.md, config/arm/aof.h, config/arm/linux-gas.h,
config/arm/wince-pe.h, config/arm/neon.md,
config/arm/constraints.md, config/arm/neon.ml,
config/arm/xscale-elf.h, config/arm/strongarm-coff.h,
config/arm/arm.opt, config/arm/arm926ejs.md,
config/arm/predicates.md, config/arm/iwmmxt.md,
config/arm/arm_neon.h, config/arm/unknown-elf.h,
config/arm/kaos-arm.h, config/arm/bpabi.h, config/arm/pe.opt,
config/arm/neon-testgen.ml, config/arm/arm.md,
config/arm/xscale-coff.h, config/arm/pe.c,
config/arm/arm-generic.md, config/arm/pe.h,
config/arm/kaos-strongarm.h, config/arm/freebsd.h,
config/arm/neon-docgen.ml, config/arm/netbsd.h, config/arm/fpa.md,
config/arm/strongarm-elf.h, config/arm/cirrus.md,
config/arm/netbsd-elf.h, config/arm/vxworks.h,
config/arm/neon-gen.ml, config/kaos.h, config/darwin-driver.c,
config/pa/predicates.md, config/pa/pa64-hpux.h,
config/pa/pa-hpux.opt, config/pa/som.h, config/pa/pa-hpux1010.opt,
config/pa/pa-hpux1111.opt, config/pa/pa-pro-end.h,
config/pa/elf.h, config/pa/fptr.c, config/pa/pa64-linux.h,
config/pa/pa.md, config/pa/pa.opt, config/pa/pa-hpux.h,
config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
config/pa/pa-hpux1010.h, config/pa/pa-protos.h,
config/pa/pa-osf.h, config/pa/pa-hpux1111.h, config/pa/pa-64.h,
config/pa/milli64.S, config/pa/pa.c, config/pa/pa-linux.h,
config/pa/pa.h, config/pa/pa32-linux.h, config/pa/pa64-hpux.opt,
config/pa/pa64-regs.h, config/pa/pa-modes.def,
config/pa/constraints.md, config/darwin9.h, config/mips/4100.md,
config/mips/linux.h, config/mips/elfoabi.h, config/mips/elf.h,
config/mips/sdb.h, config/mips/windiss.h, config/mips/rtems.h,
config/mips/3000.md, config/mips/iris5.h, config/mips/5000.md,
config/mips/7000.md, config/mips/9000.md, config/mips/4600.md,
config/mips/linux64.h, config/mips/elforion.h,
config/mips/constraints.md, config/mips/generic.md,
config/mips/predicates.md, config/mips/4300.md,
config/mips/mips-ps-3d.md, config/mips/iris.h, config/mips/24k.md,
config/mips/mips.md, config/mips/mips.opt, config/mips/4k.md,
config/mips/5k.md, config/mips/vr4120-div.S,
config/mips/openbsd.h, config/mips/iris6.h, config/mips/4000.md,
config/mips/mips-protos.h, config/mips/6000.md,
config/mips/mips.c, config/mips/mips.h, config/mips/r3900.h,
config/mips/74k.md, config/mips/netbsd.h, config/mips/vxworks.h,
config/mips/mips-modes.def, config/mips/vr.h,
config/soft-fp/t-softfp, config/openbsd.h, config/ptx4.h,
config/freebsd-spec.h, config/vax/vax.c, config/vax/openbsd.h,
config/vax/vax.h, config/vax/elf.h, config/vax/vax.md,
config/vax/bsd.h, config/vax/vax.opt, config/vax/vax-modes.def,
config/vax/openbsd1.h, config/vax/netbsd.h,
config/vax/vax-protos.h, config/vax/netbsd-elf.h,
config/vax/vaxv.h, config/vax/ultrix.h, config/freebsd.h,
config/h8300/rtems.h, config/h8300/predicates.md,
config/h8300/h8300.c, config/h8300/h8300.h, config/h8300/elf.h,
config/h8300/h8300.md, config/h8300/h8300.opt,
config/h8300/coff.h, config/h8300/h8300-protos.h,
config/v850/v850.md, config/v850/predicates.md,
config/v850/v850-c.c, config/v850/v850.c, config/v850/v850.opt,
config/v850/v850.h, config/v850/v850-protos.h, config/vxworks.c,
config/knetbsd-gnu.h, config/sol2-6.h, config/vxworks.h,
config/mmix/mmix.h, config/mmix/predicates.md,
config/mmix/mmix-protos.h, config/mmix/mmix.md,
config/mmix/mmix.c, config/mmix/mmix.opt,
config/mmix/mmix-modes.def, config/bfin/bfin.opt,
config/bfin/rtems.h, config/bfin/bfin-modes.def,
config/bfin/predicates.md, config/bfin/bfin-protos.h,
config/bfin/bfin.c, config/bfin/bfin.h, config/bfin/bfin.md: Likewise.

From-SVN: r127157
2007-08-02 10:49:31 +00:00
Anatoly Sokolov
44190aed5e re PR target/31331 ([avr] ICE on function attribute syntax for main())
PR target/31331
	* config/avr/avr.c (avr_naked_function_p): Handle receiving a type
	rather than a decl. 
	(avr_attribute_table): Make "naked" attribute apply to function types
	rather than to decls.
	(avr_handle_fntype_attribute): New function.

From-SVN: r126337
2007-07-05 01:10:28 +04:00
Anatoly Sokolov
4e63b362a7 re PR target/32335 (libgcc build failure, ICE in cselib_record_set, at cselib.c:1508)
PR target/32335
	* config/avr/avr.c: Include dataflow header file.
	(expand_prologue): Adjust for prologue insn change.
	* config/avr/avr.md (call_prologue_saves): Only modify REG_SP once
	inside a insn.

From-SVN: r126121
2007-06-30 00:05:56 +04:00
Daniel Berlin
6fb5fa3cbc Merge dataflow branch into mainline
From-SVN: r125624
2007-06-11 18:02:15 +00:00
Kazu Hirata
c80b4100e0 cfglayout.c, [...]: Fix comment typos.
* cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
	haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
	tree-predcom.c, tree-ssa-alias-warnings.c,
	tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
	comment typos.  Follow spelling conventions.
	* doc/cpp.texi, doc/invoke.texi: Fix typos.

From-SVN: r125080
2007-05-25 22:58:16 +00:00
Andy Hutchinson
4fc2b4ff18 avr-protos.h (expand_prologue, [...]): Add declaration.
* config/avr/avr-protos.h (expand_prologue, expand_epilogue, 
	avr_epilogue_uses) : Add declaration.
	* config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
	* config/avr/constraints.md (R): New constraint.
	config/avr/avr.md (SREG_ADDR,  UNSPEC_SEI, UNSPEC_CLI, 
	UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
	(*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
	(*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
	(*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt, 
	call_prologue_saves, epilogue_restores, return_from_epilogue,
	return_from_main_epilogue, return_from_interrupt_epilogue, 
	return_from_naked_epilogue, prologue, epilogue): New patterns.
	(jump): Handle symbol reference.
	* config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr, 
	avr_output_function_prologue, avr_output_function_epilogue): Remove 
	functions.
	(avr_init_machine_status, expand_prologue, expand_epilogue, 
	avr_asm_function_end_prologue, avr_epilogue_uses, 
	avr_asm_function_begin_epilogue): New functions.
	(prologue_size, epilogue_size, jump_tables_size): Remove global 
	variables.
	(TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
	(TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
	(TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
	(avr_override_options): Initialise init_machine_status.
	(output_movhi): Handle all stack pointer loads.
	(out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
	(avr_output_addr_vec_elt): Do not use variable jump_tables_size.
	* config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
	(EPILOGUE_USES) Redefine.
	(machine_function) Declare.

Co-Authored-By: Anatoly Sokolov <aesok@dol.ru>

From-SVN: r124854
2007-05-19 14:59:17 +04:00
Anatoly Sokolov
dd3b6c09ea avr.c (avr_mcu_types): Add support for ATmega8HVA and ATmega16HVA devices.
* config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and 
	ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

From-SVN: r124198
2007-04-27 01:02:43 +04:00
Anatoly Sokolov
3639b3fac4 avr.c (ptrreg_to_str): Replace error() with output_operand_lossage().
* config/avr/avr.c (ptrreg_to_str): Replace error() with
	output_operand_lossage().

From-SVN: r123949
2007-04-18 20:21:57 +04:00
Anatoly Sokolov
5594a6c8c0 re PR target/30483 (Internal compiler error with inline volatile assembly on AVR)
PR target/30483
	* config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
	error().

From-SVN: r123926
2007-04-18 00:08:46 +04:00
Anatoly Sokolov
1468317475 avr.c (avr_arch_types): Rearranging array.
* config/avr/avr.c (avr_arch_types): Rearranging  array.
	(enum avr_arch): Add.
	(avr_mcu_types): Use avr_arch enumeration constants instead of 
	numbers.
	* config/avr/avr.h (LINK_SPEC): Simplify.

From-SVN: r123882
2007-04-16 21:50:26 +04:00
Anatoly Sokolov
f9ca0dee6d re PR target/25448 (Unfounded warnings from the AVR backend)
PR target/25448
	* config/avr/avr.c (avr_handle_fndecl_attribute): Use the 
	DECL_ASSEMBLER_NAME, not the DECL_NAME.

From-SVN: r123519
2007-04-05 19:43:35 +04:00
Anatoly Sokolov
c8bbabf282 re PR target/31137 (missing "break" in switch for MULT in avr_rtx_costs)
PR target/31137
	* config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.

From-SVN: r123437
2007-04-03 01:43:53 +04:00
Anatoly Sokolov
6c7ac15dc6 avr.c (avr_override_options): Clear 'flag_delete_null_pointer_checks'.
* config/avr/avr.c (avr_override_options): Clear 
	'flag_delete_null_pointer_checks'.

From-SVN: r123367
2007-03-31 00:28:55 +04:00
Anatoly Sokolov
39418b53b8 avr.c (avr_mcu_types): Move at90usb82 device to 'avr4' architecture.
* config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4' 
	architecture.

From-SVN: r123273
2007-03-28 02:44:34 +04:00
Anatoly Sokolov
2cd11105ec avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack pointer regs.
* config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
	pointer regs.
	* config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
	regs to "__SP_L__" and "__SP_H__".

From-SVN: r123263
2007-03-27 21:53:51 +04:00
Anatoly Sokolov
205dcd71cd avr.c (avr_mcu_types): Add support for ATmega325P...
2006-02-24  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
	ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162 
	devices.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

From-SVN: r122635
2007-03-06 23:06:58 +03:00
Kazu Hirata
9f5ed61a80 c-decl.c, [...]: Fix comment typos.
* c-decl.c, config/avr/avr.c, config/avr/avr.h,
	config/m68k/m68k.c, config/m68k/netbsd-elf.h,
	config/mn10300/mn10300.c, config/pdp11/pdp11.h,
	config/rs6000/cell.md, config/rs6000/darwin.h,
	config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c,
	config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h,
	jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c,
	tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment
	typos.  Follow spelling conventions.
	* doc/invoke.texi: Follow spelling conventions.

From-SVN: r121546
2007-02-03 16:47:06 +00:00
Anatoly Sokolov
dd6d1f8c3f avr.h (AVR_HAVE_LPMX): New macro.
* config/avr/avr.h (AVR_HAVE_LPMX): New macro.
	(AVR_ENHANCED): Rename to ...
	(AVR_HAVE_MUL): ... new.
	(avr_enhanced_p): Rename to ...
	(avr_have_mul_p): ... new.
	(TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of 
	'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".
	* config/avr/avr.c (avr_enhanced_p): Rename to ...
	(avr_have_mul_p): ... new.
	(base_arch_s): Rename 'enhanced' to 'have_mul'.
	(avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of
	'avr_enhanced_p' and 'enhanced'.
	(ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use 
	AVR_HAVE_MUL instead of AVR_ENHANCED.
	* avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
	(mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3, 
	*mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL 
	instead of AVR_ENHANCED.
	(*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
	* libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__.
	(__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__.

From-SVN: r120865
2007-01-17 21:42:58 +03:00
Anatoly Sokolov
696e990bdb avr-protos.h (call_insn_operand): Delete prototype.
* config/avr/avr-protos.h (call_insn_operand): Delete prototype.
	* config/avr/avr.c (call_insn_operand): Delete function.
	* config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP
	instead of register number. Use predicates.
	* config/avr/predicates.md (const0_operand, reg_or_0_operand, 
	call_insn_operand): Add.

From-SVN: r120546
2007-01-07 06:45:24 +03:00
Anatoly Sokolov
120b24f7ba avr-protos.h (mask_one_bit_p, [...]): Remove prototype.
* config/avr/avr-protos.h (mask_one_bit_p, const_int_pow2_p): Remove 
	prototype.
	* config/avr/avr.c (mask_one_bit_p, const_int_pow2_p): Remove.
	(output_movhi, ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out,
	lshrhi3_out, lshrsi3_out): Remove unnecessary code for handling value
	which start in an odd register.

From-SVN: r118563
2006-11-07 21:33:57 +03:00
Anatoly Sokolov
9a7fd67a82 avr.c (avr_mcu_types): Add support for at90pwm1 device.
* config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
        * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
        * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
        (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.

From-SVN: r116699
2006-09-05 21:23:08 +04:00
Anatoly Sokolov
4301ec4f6f avr.h (avr_have_movw_lpmx_p): Declare.
* config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
	(TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and 
	__AVR_HAVE_LPMX__.
	(AVR_HAVE_MOVW) Define.
	(ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
	(ASM_SPEC): Add avr25.
	(LINK_SPEC): Add avr25.
	* config/avr/avr.c (avr_have_movw_lpmx_p): Add.
	(base_arch_s): Add new member 'have_movw_lpmx'.
	(avr_arch_types): Init 'have_movw_lpmx'.
	(avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
	attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
	attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
	(avr_override_options): Init 'avr_have_movw_lpmx_p'.
	(output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use 
	AVR_HAVE_MOVW.
	(avr_file_start): Do not output '.arh' derective.
	* config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
	(__do_copy_data): Use __AVR_HAVE_LPMX__.
	* config/avr/avr.md (mcu_enhanced): Delete.
	(mcu_have_movw): Define.
	(negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
	(call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
	* config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
	(MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
	attiny84, attiny25, attiny45, attiny85, attiny261, attiny461, 
	attiny861 and at86rf401 devices.

From-SVN: r114758
2006-06-18 22:14:06 +04:00
Joerg Wunsch
8c21550d5b avr.c (avr_mcu_types): Add support for attiny261...
* config/avr/avr.c (avr_mcu_types): Add support for attiny261,
	attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
	attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p, 
	atmega164p, atmega324p, atmega644p, atmega644, atmega329, 
	atmega3290, atmega649, atmega6490, atmega406, atmega640, 
	atmega1280, atmega1281, at90can32, at90can64, at90usb646, 
	at90usb647, at90usb1286 and at90usb1287 devices.  
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

From-SVN: r113982
2006-05-22 19:51:36 +04:00
Denis Chertykov
2d67effa46 avr-protos.h (extra_constraint): Delete.
* config/avr/avr-protos.h (extra_constraint): Delete.
	(extra_constraint_Q): New declaration.
	* config/avr/constraints.md: New file.
	* config/avr/avr.md: Include it.
	(REG_X, REG_Y, REG_Z, REG_W): New constants.
	(TMP_REGNO, ZERO_REGNO): Likewise.
	(UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
	* config/avr/avr.c (avr_reg_class_from_letter): Delete.
	(extra_constraint): Delete.
	(extra_constraint_Q): Test for memory constraint 'Q'.
	* config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
	(REG_CLASS_FROM_LETTER): Delete.
	(CONST_OK_FOR_LETTER_P): Delete.
	(CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
	(EXTRA_CONSTRAINT): Delete.
	(TMP_REGNO): Delete.
	(ZERO_REGNO): Delete.

From-SVN: r112352
2006-03-24 19:30:19 +03:00
Richard Sandiford
d6b5193bfc alpha.c (alpha_start_function): Use switch_to_section.
* config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
	(alpha_elf_select_rtx_section): Return the selected section rather
	than emitting assembly code.
	(alpha_write_linkage): Emit a ".link" directive directly and then
	set in_section to NULL.
	(vms_asm_out_constructor): Use switch_to_section.
	(vms_asm_out_destructor): Likewise.
	(unicosmk_output_common): Set in_section to NULL instead of calling
	the dummy common_section function.
	(unicosmk_text_section): Delete in favor of...
	(unicosmk_output_text_section_asm_op): ...this new function.
	(unicosmk_data_section): Delete in favor of...
	(unicosmk_output_data_section_asm_op): ...this new function.
	(unicosmk_init_sections): New function.
	(unicosmk_output_deferred_case_vectors): Use switch_to_section.
	(unicosmk_output_ssib): Set in_section to NULL instead of calling
	the dummy ssib_section function.
	(unicosmk_section_buf): Delete.
	* config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
	(unicosmk_data_section): Delete.
	* config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
	(SECTION_FUNCTION_TEMPLATE): Delete.
	* config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
	(READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
	(ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
	(TARGET_ASM_INIT_SECTIONS): Define.
	* config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(link_section, literals_section): Delete.
	(ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
	set in_section to NULL.

	* config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
	(COMMON_SECTION): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	(ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
	the dummy common_section function.
	* config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
	* config/arm/arm.c (get_jump_table_size): Use pointer comparison
	between readonly_data_section and text_section to check whether
	read-only data is being put in the text section.
	(arm_output_function_epilogue): Use switch_to_section.
	(arm_elf_asm_constructor): Likewise.
	(thumb_call_via_reg): Replace call to in_text_section with
	a comparison between in_section and text_section.
	(arm_file_end): Use switch_to_section.
	(aof_text_section): Delete in favor of...
	(aof_output_text_section_asm_op): ...this new function.
	(aof_data_section): Delete in favor of...
	(aof_output_data_section_asm_op): ...this new function.
	(aof_asm_init_sections): New function.
	(zero_init_section): Moved from config/arm/aof.h.
	(aof_dump_imports, aof_file_start): Use switch_to_section.
	* config/arm/arm.h (thumb_call_via_label): Update comment.
	* config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
	(common_section): Delete.
	* config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
	(ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
	global switch_to_section function instead of the old port-local one.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
	(SWITCH_TO_SECTION_FUNCTION): Delete.
	(drectve_section): Redefine as a macro.
	* config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
	switch_to_section.

	* config/avr/avr.c (progmem_section): New variable.
	(avr_output_progmem_section_asm_op): New function.
	(avr_asm_init_sections): New function.
	(avr_output_addr_vec_elt): Use switch_to_section.
	* config/avr/avr.h (progmem_section): Declare.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(READONLY_DATA_SECTION): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	(ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
	* config/avr/avr-protos.h (progmem_section): Delete.

	* config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.

	* config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.

	* config/darwin-sections.def: New file.
	* config/darwin.c: Define all sections in darwin-sections.def.
	(output_objc_section_asm_op, darwin_init_sections): New functions.
	(machopic_output_indirection): Use switch_to_section.
	(machopic_select_section): Return the selected section rather than
	emitting assembly code.  Replace the static function table with
	inline conditional expressions.  Update the tests of last_text_section
	and move them into the FUNCTION_DECL block.
	(machopic_select_rtx_section): Return the selected section rather than
	emitting assembly code.
	(machopic_asm_out_constructor, machopic_asm_out_destructor)
	(darwin_file_end): Use switch_to_section.
	* config/darwin.h: Use darwin-sections.def to declare sections.
	(INIT_SECTION_ASM_OP): Remove empty definition.
	(HAS_INIT_SECTION): Define this instead.
	(SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
	(TARGET_ASM_EH_FRAME_SECTION): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	* config/darwin-protos.h (darwin_init_sections): Declare.
	(machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
	(machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
	(machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
	(constructor_section, destructor_section, mod_init_section): Delete.
	(mod_term_section): Delete.
	(darwin_exception_section, darwin_eh_frame_section): Delete.
	(machopic_select_section): Return a section.
	(machopic_select_rtx_section): Likewise.
	(text_coal_section, text_unlikely_section, text_unlikely_coal_section)
	(const_section, const_coal_section, const_data_section): Delete.
	(const_data_coal_section, data_coal_section, cstring_section): Delete.
	(literal4_section, literal8_section, constructor_section): Delete.
	(mod_init_section, mod_term_section, destructor_section): Delete.
	(objc_class_section, objc_meta_class_section, objc_category_section)
	(objc_class_vars_section, objc_instance_vars_section): Delete.
	(objc_cls_meth_section, objc_inst_meth_section): Delete.
	(objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
	(objc_selector_refs_section, objc_selector_fixup_section): Delete.
	(objc_symbols_section, objc_module_info_section): Delete.
	(objc_image_info_section, objc_protocol_section): Delete.
	(objc_string_object_section, objc_constant_string_object_section)
	(objc_class_names_section, objc_meth_var_names_section): Delete.
	(objc_meth_var_types_section, objc_cls_refs_section): Delete.
	(machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
	(machopic_symbol_stub_section, machopic_picsymbol_stub_section)
	(darwin_exception_section, darwin_eh_frame_section): Delete.
	* config/t-darwin (darwin.o): Depend on config/darwin-sections.def.

	* config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
	(frv_asm_out_destructor): Likewise.
	* config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
	get_named_section.
	(ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
	* config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
	(data_section): Delete.

	* config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(DRECTVE_SECTION_FUNCTION): Delete.
	(drectve_section): Redefine as a macro that sets in_section after
	emitting the directive.
	(SWITCH_TO_SECTION_FUNCTION): Delete.
	* config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
	in_text_section with comparison between in_section and text_section.
	* config/i386/i386.c (x86_64_elf_select_section): Return the section
	rather than emitting assembly code.  Use get_named_section.
	(x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
	get_named_section.
	(machopic_output_stub): Use switch_to_section.
	* config/i386/nwld.c (nwld_named_section_asm_out_constructor)
	(nwld_named_section_asm_out_destructor): Use get_section and
	switch_to_section.

	* config/ia64/ia64.c (ia64_select_rtx_section): Return the section
	rather than emitting assembly code.
	(ia64_rwreloc_select_section): Likewise.
	(ia64_rwreloc_select_rtx_section): Likewise.
	* config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
	* config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
	switch_to_section.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.

	* config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
	section rather than emitting assembly code.
	(iq2000_select_section): Likewise.
	* config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
	(sbss_section): Delete.

	* config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
	and get_named_section.
	* config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.

	* config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
	(SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
	(EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
	(MCORE_EXPORT_NAME): Emit the exports directive directly, then set
	in_section to NULL.
	(ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
	(ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
	global switch_to_section function instead of the old port-local one.
	* config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(SWITCH_SECTION_FUNCTION): Delete.
	* config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
	(DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
	(SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
	(MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
	in_section to NULL.
	(ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
	global switch_to_section function instead of the old port-local one.
	(ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.

	* config/mips/mips.c (mips_file_start): Update comment.
	(mips_output_aligned_bss): Use switch_to_section and get_named_section.
	(mips_output_aligned_decl_common): Use switch_to_section.
	(mips_select_rtx_section): Return the section rather than emitting
	assembly code.  Use get_named_section.
	(mips_function_rodata_section: Likewise get_section.
	(build_mips16_function_stub): Use switch_to_section.
	* config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
	(SDATA_SECTION_ASM_OP): Delete.
	* config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
	(EXTRA_SECTION_FUNCTIONS): Delete.

	* config/mmix/mmix.c (mmix_file_start, mmix_file_end)
	(mmix_asm_output_aligned_local): Use switch_to_section.

	* config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
	(som_one_only_readonly_data_section): New variables.
	(pa_output_function_epilogue): Set in_section to NULL instead of
	calling forget_section.
	(output_deferred_plabels): Use select_section.
	(pa_asm_output_mi_thunk): Likewise.  Set in_section to NULL instead
	of calling forget_section.
	(pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
	(pa_asm_output_aligned_local): Use select_section.
	(som_text_section_asm_op): Delete in favor of...
	(som_output_text_section_asm_op): ...this new function.
	(pa_som_asm_init_sections): New function.
	(pa_select_section): Return the section rather than emitting
	assembly code.
	* config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
	(SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
	(SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
	* config/pa/pa-protos.h (som_text_section_asm_op): Delete.
	(som_readonly_data_section, som_one_only_readonly_data_section)
	(som_one_only_data_section, forget_section): Delete.
	* config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	(READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.

	* config/rs6000/rs6000.c (read_only_data_section): New variable.
	(private_data_section, read_only_private_data_section): New variables.
	(sdata2_section, toc_section): New variables.
	(rs6000_file_start): Use switch_to_section.
	(rs6000_assemble_integer): Use comparisons against in_section
	instead of calling in_toc_section and in_text_section.  Use
	unlikely_text_section_p.
	(rs6000_elf_output_toc_section_asm_op): New function, derived
	from the old rs6000/sysv4.h toc_section function.
	(rs6000_elf_asm_init_sections): New function.
	(rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
	the section rather than emitting assembly code.
	(machopic_output_stub): Use switch_to_section.
	(toc_section): Delete dummy function.
	(rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
	switch_to_section and get_section.
	(rs6000_xcoff_output_readonly_section_asm_op): New function.
	(rs6000_xcoff_output_readwrite_section_asm_op): New function.
	(rs6000_xcoff_output_toc_section_asm_op): New function, derived from
	the old rs6000/xcoff.h toc_section function.
	(rs6000_xcoff_asm_init_sections): New function.
	(rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
	the section rather than emitting assembly code.
	(rs6000_xcoff_file_start): Use switch_to_section.
	(rs6000_xcoff_file_end): Likewise.
	* config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
	(sdata2_section, sbss_section, private_data_section): Delete.
	(read_only_data_section, read_only_private_data_section): Delete.
	* config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
	(SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
	(FINI_SECTION_FUNCTION): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	(ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
	* config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
	(READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
	(READONLY_DATA_SECTION): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	(ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.  Set in_section
	to NULL rather than no_section.
	(TARGET_ASM_EXCEPTION_SECTION): Delete.

	* config/sh/sh.c (sh_file_start): Use switch_to_section.

	* config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
	(sparc_output_deferred_case_vectors): Likewise.  Remove argument
	from call to current_function_section.

	* config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
	(bss100_section): New variable.
	(xstormy16_asm_output_aligned_common): Use switch_to_section.
	(xstormy16_asm_init_sections): New function.
	(xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
	switch_to_section and get_section.
	(xstormy16_output_addr_vec): Use switch_to_section.  Remove argument
	from calls to current_function_section.
	* config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
	(XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	* config/stormy16/stormy16-protos.h (bss100_section): Delete.

	* config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
	(FINI_SECTION_FUNCTION): Delete.

	* config/v850/v850.c: Include gt-v850.h.
	(rosdata_section, rozdata_section, tdata_section, zdata_section)
	(zbss_section): New variables.
	(v850_output_aligned_bss): Use switch_to_section.
	(v850_asm_init_sections): New function.
	(v850_select_section): Return the section rather than emitting
	assembly code.
	* config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
	(ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	* config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
	(sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
	(zbss_section): Delete.

	* config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.

	* config/vx-common.h (vxworks_exception_section): Delete.
	(TARGET_ASM_EXCEPTION_SECTION): Delete.

	* config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
	section rather than emitting assembly code.
	* config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
	switch_to_section.

	* Makefile.in (GTFILES): Add $(srcdir)/output.h.
	* coretypes.h (section): New union and typedef.
	* dbxout.c (FORCE_TEXT): Use switch_to_section.  Remove argument
	from call to current_function_section.
	(dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
	(dbxout_symbol_location): Use switch_to_section.
	* dwarf2out.c (named_section_eh_frame_section): Delete, moving
	most of the code into...
	(default_eh_frame_section): ...here.  Return a section.
	(collect2_eh_frame_section): Delete, moving most of the code into..
	(switch_to_eh_frame_section): ...this new function.
	(debug_info_section, debug_abbrev_section, debug_aranges_section)
	(debug_macinfo_section, debug_line_section, debug_loc_section)
	(debug_pubnames_section, debug_str_section, debug_ranges_section): New
	variables.
	(output_call_frame_info): Call switch_to_eh_frame_section instead of
	eh_frame_section.  Use switch_to_section and get_section.
	(dwarf2out_begin_prologue): Use switch_to_section.
	(AT_string_form): Check the flags in debug_str_section instead of
	DEBUG_STR_SECTION_FLAGS.
	(output_comp_unit): Use switch_to_section, get_section, and
	debug_info_section.
	(output_line_info, secname_for_decl): Use unlikely_text_section_p.
	(dwarf2out_begin_block): Use switch_to_section.  Remove argument
	from call to current_function_section.
	(dwarf2out_var_location): Use unlikely_text_section_p.
	(dwarf2out_source_line): Use switch_to_section.  Remove argument
	from call to current_function_section.
	(dwarf2out_start_source_file, dwarf2out_end_source_file)
	(dwarf2out_define, dwarf2out_undef: Use switch_to_section and
	debug_macinfo_section.
	(dwarf2out_init): Initialize the new section variables.  Use them
	instead of calls to named_section_flags.  Use switch_to_section.
	(output_indirect_string): Use switch_to_section and debug_str_section.
	(dwarf2out_finish): Use switch_to_section and the new section
	variables.
	* except.c (default_exception_section): Return the section instead
	of emitting assembly code.
	(output_function_exception_table): Use the global exception_section
	variable instead of the target hook.  Use switch_to_section.  Remove
	argument from call to current_function_section.
	* final.c (HAVE_READONLY_DATA_SECTION): Delete.
	(shorten_branches): Use pointer comparisons to detect whether the
	text section is the same as readonly_data_section.
	(profile_function): Use switch_to_section.  Remove argument from
	call to current_function_section.
	(final_scan_insn): Likewise.  Update use of last_text_section.
	* gengtype.c (open_base_files): Add an include of output.h.
	* output.h (text_section, data_section, readonly_data_section)
	(ctors_section, dtors_section, bss_section, init_section)
	(fini_section, sdata_section): Turn into section pointers.
	(in_text_section, in_unlikely_text_section, exports_section)
	(drectve_section, named_section, mergeable_string_section)
	(last_text_section_name): Delete.
	(default_exception_section, default_eh_frame_section): Return sections.
	(SECTION_DECLARED, SECTION_NAMED): New macros.
	(SECTION_MACH_DEP): Bump value.
	(section_common, named_section, unnamed_section): New structures.
	(unnamed_section_callback): New typedef.
	(section): New union.
	(sbss_section, exception_section, eh_frame_section): New variables.
	(in_section, last_text_section): Turn into section pointers.
	(get_unnamed_section, get_section, get_named_section): New functions.
	(mergeable_constant_section, function_section): Return a section.
	(unlikely_text_section): Likewise.
	(current_function_section): Likewise.  Remove the decl argument.
	(unlikely_text_section_p, switch_to_section): New functions.
	(output_section_asm_op): New function.
	(set_named_section_flags, named_section_flags, named_section_real)
	(named_section_first_declaration): Delete.
	(default_select_section, default_elf_select_section): Return a section.
	(default_elf_select_section_1, default_function_rodata_section)
	(default_no_function_rodata_section, default_select_rtx_section)
	(default_elf_select_rtx_section): Likewise.
	* rtl.h (in_data_section): Delete.
	* sdbout.c (sdbout_one_type): Use switch_to_section.
	* system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
	(READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
	(TARGET_ASM_EH_FRAME_SECTION): Poison.
	* target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
	(TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
	(TARGET_ASM_OUT): Update after above changes.
	* target.h (init_sections): New hook.
	(exception_section, eh_frame_section): Delete.
	(select_section, select_rtx_section, function_rodata_section): Return
	a section rather than emitting assembly code.
	* varasm.c (text_section, data_section, readonly_data_section)
	(ctors_section, dtors_section, bss_section, init_section)
	(fini_section): Turn into section pointers.
	(sdata_section, sbss_section, exception_section): New variables.
	(eh_frame_section): New variable.
	(in_section): Make global and turn into a section pointer.
	(last_text_section): Turn into a section pointer.
	(unnamed_sections): New variable.
	(in_named_name, last_text_section_name): Delete.
	(EXTRA_SECTION_FUNCTIONS): Delete.
	(in_named_entry): Delete.
	(section_htab): New variable, replacing...
	(in_named_htab): ...this deleted variable.
	(section_entry_eq, section_entry_hash): New functions, based on...
	(in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
	(get_unnamed_section, get_section): New functions.
	(unlikely_text_section): Return a section instead of emitting
	assembly code.
	(in_text_section, in_unlikely_text_section, in_data_section): Delete.
	(get_named_section_flags, named_section_first_declaration): Delete.
	(unlikely_text_section_p): New function.
	(named_section_real, named_section): Delete.
	(get_named_section): New function.
	(asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
	(function_section): Return a section rather than emitting
	assembly code.
	(current_function_section): Likewise.  Remove argument.  Use
	last_text_section if nonnull, otherwise use function_section.
	(default_function_rodata_section): Return a section rather than
	emitting assembly code.  Use get_section.
	(default_no_function_rodata_section): Return a section rather than
	emitting assembly code.
	(variable_section): Use switch_to_section and get_named_section.
	(mergeable_string_section): Return a section rather than emitting
	assembly code.  Use get_section.  Make static.  Don't take special
	countermeasures for empty strings.
	(mergeable_constant_section): Return a section rather than emitting
	assembly code.  Use get_section.
	(default_named_section_asm_out_destructor): Use switch_to_section
	and get_section.
	(default_dtor_section_asm_out_destructor): Use switch_to_section.
	(default_named_section_asm_out_constructor): Use switch_to_section
	and get_section.
	(default_ctor_section_asm_out_constructor): Use switch_to_section.
	(assemble_start_function): Likewise.  Set last_text_section to
	NULL rather than no_section.  Change the type of save_section.
	(assemble_zeros, assemble_variable): Use the section flags to detect
	whether or not a section is text.
	(assemble_static_space): Use switch_to_section.
	(assemble_trampoline_template): Likewise.
	(output_constant_def_contents): Use switch_to_section and
	get_named_section.
	(output_constant_pool_1): Use switch_to_section.  Use the section
	flags to see whether sections contain mergeable data.
	(init_varasm_once): Initialize section_htab instead of in_named_htab.
	Initialize new section variables.  Call TARGET_ASM_INIT_SECTIONS.
	(default_elf_asm_named_section): Use SECTION_DECLARED to detect
	whether a section has already been declared.
	(default_select_section, default_elf_select_section): Return a
	section rather than emitting assembly code.
	(default_elf_select_section_1): Likewise.  Use bss_section for
	SECCAT_BSS if nonnull.  Use get_named_section.
	(default_select_rtx_section): Return a section rather than
	emitting assembly code.
	(default_elf_select_rtx_section): Likewise.  Use get_named_section.
	(file_end_indicate_exec_stack): Use switch_to_section and get_section.
	(output_section_asm_op, switch_to_section): New functions.
	* vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
	get_named_section.

	* doc/tm.texi: Expand the introduction to the sections documentation.
	(TRAMPOLINE_SECTION): Document new interface.
	(SDATA_SECTION_ASM_OP): Document new macro.
	(READONLY_DATA_SECTION): Delete.
	(SDATA_SECTION_ASM_OP): Document new macro.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(TARGET_ASM_INIT_SECTIONS): Document new hook.
	(TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
	(TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
	(TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.

gcc/java/
	* class.c (build_utf8_ref, emit_register_classes): Use
	switch_to_section and get_section.

From-SVN: r108152
2005-12-07 07:53:14 +00:00
Bjoern Haase
10252a625f re PR target/19885 (avr dwarf-2 support is broken for head 4.0/4.1)
PR target/19885
	* config/avr/avr.c (TARGET_ASM_ALIGNED_SI_OP): Add.
	(TARGET_ASM_UNALIGNED_HI_OP): Add.
	(TARGET_ASM_UNALIGNED_SI_OP): Add.

From-SVN: r102445
2005-07-27 22:29:46 +00:00
Nick Clifton
89a0b917ad config/avr/avr.c (legitimate_address_p): Fix debugging print statement to avoid
displaying ASCII control characters.

From-SVN: r102161
2005-07-19 16:33:17 +00:00
Joseph Myers
c85ce869e7 c.opt, [...]: Remove "." from end of help texts.
* c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
	config/rs6000/rs6000.opt, params.def: Remove "." from end of help
	texts.
	* config/avr/avr.c: Do not use '`' as left quote.
	* config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
	Remove "." from end of diagnostics.  Make diagnostics start with
	lowercase letter.

cp:
	* name-lookup.c, parser.c: Use %q, %< and %> to quote in
	diagnostics.

fortran:
	* lang.opt: Remove "." from end of help texts.

objc:
	* objc-act.c: Use %q to quote in diagnostics.

From-SVN: r101533
2005-07-02 14:19:59 +01:00
R. Kelley Cook
39d14ddaac Update FSF address.
From-SVN: r101314
2005-06-25 01:22:41 +00:00
Richard Sandiford
55bea00ab0 opt-functions.awk (var_type): New function.
* opt-functions.awk (var_type): New function.
	(var_set): Use CLVC_STRING if var_type returns "const char *".
	* opth-gen.awk: Use var_type to find out the types of variables.
	Don't print comments above each "extern" definition.
	* optc-gen.awk: Use var_type in the same way.
	* opts.h (cl_var_cond): Rename to...
	(cl_var_type): ...this.  Add CLVC_STRING.
	(cl_option): Make "flag_var" a "void *" pointer.  Replace "var_cond"
	with "var_type".
	* opts.c (handle_option, option_enabled): Update after above name
	change.  Cast flag_var before using it.  Handle CLVC_STRING.

	* config/alpha/alpha.h (alpha_tls_size): Delete.
	* config/alpha/alpha.c (alpha_tls_size, alpha_cpu_string)
	(alpha_tune_string, alpha_tp_string, alpha_fprm_string)
	(alpha_fptm_string, alpha_mlat_string): Delete.
	(alpha_handle_option): Don't set the above variables here.  Use the
	integer argument to check the validity of -mtls-size=.
	* config/alpha/alpha.opt (mcpu=, mtune=, mfp-rounding-mode=)
	(mfp-trap-mode=, mtrap-precision=, mmemory-latency=): Add Var()s.
	(mtls-size=): Likewise.  Convert to a UInteger and initialize the
	variable to 32.

	* config/arc/arc.c (arc_cpu_string, arc_text_string)
	(arc_data_string, arc_rodata_string): Delete.
	(arc_handle_option): Don't set the above variables here.
	* config/arc/arc.opt (mcpu=, mtext=, mdata=, mrodata=): Add Var()s
	and initialize them.

	* config/arm/arm.c (target_fpu_name, target_fpe_name)
	(target_float_abi_name, target_abi_name, structure_size_string)
	(arm_pic_register_string): Delete.
	(arm_handle_option): Don't set the above variables here, except
	in the handling of -mhard-float and -msoft-float.
	* config/arm/arm.opt (mabi=, mfloat-abi=, mfp=, mfpe=, mfpu=)
	(mpic-register=, mstructure-size-boundary=): Add Var()s.

	* config/avr/avr.c (avr_init_stack, avr_mcu_name, TARGET_HANDLE_OPTION)
	(avr_handle_option): Delete.
	* config/avr/avr.opt (mmcu=, minit-stack=): Add Var()s and initialize
	them.

	* config/bfin/bfin.c (bfin_library_id): Delete.
	(bfin_handle_option): Don't set it.
	* config/bfin/bfin.opt (mshared-library-id=): Add Var().

	* config/c4x/c4x.h (c4x_rpts_cycles): Delete.
	* config/c4x/c4x.c (c4x_rpts_cycles): Delete.
	(c4x_handle_option): Don't set c4x_rpts_cycles here.
	* config/c4x/c4x.opt (mrpts=): Add Var().

	* config/cris/aout.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't set
	cris_elinux_stacksize_str here.
	* config/cris/aout.opt (melinux-stacksize=): Add Var().
	* config/cris/cris.h (cris_max_stackframe_str, cris_cpu_str)
	(cris_tune_str, cris_elinux_stacksize_str): Delete.
	* config/cris/cris.c (cris_max_stackframe_str, cris_cpu_str)
	(cris_tune_str, cris_elinux_stacksize_str): Delete.
	(cris_handle_option): Don't set the above variables here.
	* config/cris/cris.opt (mcpu=, march=, mtune=, mmax-stackframe=)
	(max-stackframe=): Add Var()s.

	* config/i386/i386.h (ix86_tune_string, ix86_arch_string): Delete.
	* config/i386/i386.c (ix86_cmodel_string, ix86_asm_string)
	(ix86_tls_dialect_string, ix86_tune_string, ix86_arch_string)
	(ix86_fpmath_string, ix86_regparm_string, ix86_align_loops_string)
	(ix86_align_jumps_string, ix86_preferred_stack_boundary_string)
	(ix86_branch_cost_string, ix86_align_funcs_string): Delete.
	(ix86_handle_option): Don't set the above variables here.
	* config/i386/i386.opt (malign-functions=, malign-jumps=)
	(malign-loops=, march=, masm=, mbranch-cost=, mcmodel=, mfpmath=)
	(mpreferred-stack-boundary=, mregparm=, mtls-dialect=, mtune=): Add
	Var()s.

	* config/ia64/ia64.h (ia64_tls_size): Delete.
	* config/ia64/ia64.c (ia64_tls_size): Delete.
	(ia64_handle_option): Treat -mtls-size= as a UInteger option,
	reading the integer argument from the "value" parameter.  Don't
	set ia64_tls_size here.
	* config/ia64/ia64.opt (mtls-size=): Turn into a UInteger option.
	Add Var() and Init().

	* config/m32r/m32r.h (m32r_cache_flush_func): Delete.
	(m32r_cache_flush_trap): Delete.
	* config/m32r/m32r.c (m32r_cache_flush_func): Delete.
	(m32r_cache_flush_trap): Delete.
	(m32r_handle_option): Don't set the above variables when handling
	-mflush-func= and -mflush-trap=.
	* config/m32r/m32r.opt (-mflush-func=, -mflush-trap=): Add Var()s
	and Init()s.

	* config/mips/mips.h (mips_cache_flush_func): Delete.
	* config/mips/mips.c (mips_arch_string, mips_tune_string)
	(mips_cache_flush_func): Delete.
	(mips_handle_option): Don't set the above variables when handling
	-march=, -mtune= and -mflush-func=.
	* config/mips/mips.opt (march=, mflush-func=, mtune=): Add Var()s.

	* config/s390/s390.c (s390_arch_string): Delete.
	(s390_handle_option): Don't set it here.
	* config/s390/s390.opt (march=): Add Var().

	* config/sparc/sparc.h (sparc_cmodel_string): Delete.
	* config/sparc/sparc.c (sparc_cmodel_string): Delete.
	(sparc_handle_option): Don't set it here.
	* config/sparc/sparc.opt (mcmodel=): Add Var().

From-SVN: r100185
2005-05-26 05:28:04 +00:00
DJ Delorie
5c498b10af common.opt (-Wattributes): New.
* common.opt (-Wattributes): New.  Default true.
* doc/invoke.texi (-Wno-attributes): Document.

* attribs.c (decl_attributes): Move warning control from if() to
warning(OPT_*).
* c-common.c (handle_packed_attribute): Likewise.
(handle_nocommon_attribute): Likewise.
(handle_common_attribute): Likewise.
(handle_noreturn_attribute): Likewise.
(handle_noinline_attribute): Likewise.
(handle_always_inline_attribute): Likewise.
(handle_used_attribute): Likewise.
(handle_unused_attribute): Likewise.
(handle_const_attribute): Likewise.
(handle_transparent_union_attribute): Likewise.
(handle_constructor_attribute): Likewise.
(handle_destructor_attribute): Likewise.
(handle_mode_attribute): Likewise.
(handle_alias_attribute): Likewise.
(handle_visibility_attribute): Likewise.
(handle_tls_model_attribute): Likewise.
(handle_malloc_attribute): Likewise.
(handle_returns_twice_attribute): Likewise.
(handle_pure_attribute): Likewise.
(handle_deprecated_attribute): Likewise.
(handle_vector_size_attribute): Likewise.
(handle_nothrow_attribute): Likewise.
(handle_cleanup_attribute): Likewise.
(handle_warn_unused_result_attribute): Likewise.
(handle_sentinel_attribute): Likewise.
* c-decl.c (diagnose_mismatched_decls): Likewise.
(start_decl): Likewise.
(grokdeclarator): Likewise.
(start_function): Likewise.
* c-format.c (check_function_format): Likewise.
* stor-layout.c (place_field): Likewise.
(finalize_record_size): Likewise.
* tree.c (handle_dll_attribute)): Likewise.
* varasm.c (default_assemble_visibility): Likewise.
* config/darwin.c (darwin_handle_weak_import_attribute): Likewise.
(darwin_assemble_visibility): Likewise.
* config/arc/arc.c (arc_handle_interrupt_attribute): Likewise.
* config/arm/arm.c (arm_handle_fndecl_attribute): Likewise.
(arm_handle_isr_attribute): Likewise.
* config/avr/avr.c (avr_handle_progmem_attribute): Likewise.
(avr_handle_fndecl_attribute): Likewise.
* config/bfin/bfin.c (handle_int_attribute): Likewise.
* config/c4x/c4x.c (c4x_handle_fntype_attribute): Likewise.
* config/h8300/h8300.c (h8300_handle_fndecl_attribute): Likewise.
(h8300_handle_eightbit_data_attribute): Likewise.
(h8300_handle_tiny_data_attribute): Likewise.
* config/i386/i386.c (ix86_handle_cdecl_attribute): Likewise.
(ix86_handle_regparm_attribute): Likewise.
(ix86_handle_struct_attribute): Likewise.
* config/i386/winnt.c (ix86_handle_shared_attribute): Likewise.
(i386_pe_encode_section_info): Likewise.
* config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
* config/ip2k/ip2k.c (ip2k_handle_progmem_attribute): Likewise.
(ip2k_handle_fndecl_attribute): Likewise.
* config/m32r/m32r.c (m32r_handle_model_attribute): Likewise.
* config/m68hc11/m68hc11 (m68hc11_handle_page0_attribute): Likewise.
(m68hc11_handle_fntype_attribute): Likewise.
(m68hc11_encode_section_info): Likewise.
* config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
* config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
* config/ns32k/ns32k.c (ns32k_handle_fntype_attribute): Likewise.
* config/rs6000/rs6000.c (rs6000_handle_longcall_attribute): Likewise.
* config/sh/sh.c (sh_handle_interrupt_handler_attribute): Likewise.
(sh_handle_sp_switch_attribute): Likewise.
(sh_handle_trap_exit_attribute): Likewise.
* config/sh/symbian.c (sh_symbian_dllimport_p): Likewise.
(sh_symbian_handle_dll_attribute): Likewise.
* config/stormy16/stormy16.c (xstormy16_handle_interrupt_attribute): Likewise.
(xstormy16_handle_below100_attribute): Likewise.
* config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.

[testsuite]

* gcc.dg/Wattributes-1.c: New.
* gcc.dg/Wattributes-2.c: New.
* gcc.dg/Wattributes-3.c: New.

[cp]

* decl.c (duplicate_decls): Move warning control from if() to
warning(OPT_*).
* name-lookup.c (parse_using_directive): Likewise.
* parser.c (cp_parser_elaborated_type_specifier): Likewise.
(cp_parser_init_declarator): Likewise.
* tree.c (handle_com_interface_attribute): Likewise.

[java]

* class.c (set_constant_value): Move warning control from if() to
warning(OPT_*).

From-SVN: r100136
2005-05-25 00:18:19 -04:00
Denis Chertykov
fde6858e7c re PR target/21284 (AVR target: switch/case jump table is placed in .data instead of .progmem.gcc_sw_table)
PR target/21284
	* config/avr/avr.c (avr_output_addr_vec_elt): Use special section
	for output.

From-SVN: r99272
2005-05-05 19:42:03 +04:00
Nathan Sidwell
25b9575bc2 fp-bit.c (abort): Add noreturn attribute.
* config/fp-bit.c (abort): Add noreturn attribute.

	* config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
	gcc_unreachable as appropriate.
	(ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
	* config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
	ASM_OUTPUT_REG_POP): Likewise.

From-SVN: r98854
2005-04-27 17:02:34 +00:00
DJ Delorie
d4ee4d2525 diagnostic.c (warning): Accept parameter to classify warning option.
* diagnostic.c (warning): Accept parameter to classify warning option.
(warning0): New, for when a pointer to an error() like function is needed.
* errors.c (warning): Likewise.
* errors.h (warning, warning0): Adjust prototypes.
* toplev.h (warning, warning0): Likewise.

* attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.

* config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
config/darwin.c, config/darwin.h, config/h8300/h8300.c,
config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
config/rs6000/aix52.h, config/rs6000/darwin.h,
config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
config/stormy16/stormy16.c, config/v850/v850-c.c,
config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
callers.

* ada/misc.c: Adjust warning() callers.

* cp/call.c, cp/class.c, cp/cvt.c, cp/decl.c, cp/decl2.c,
cp/except.c, cp/friend.c, cp/init.c, cp/lex.c, cp/mangle.c,
cp/method.c, cp/name-lookup.c, cp/parser.c, cp/repo.c, cp/rtti.c,
cp/tree.c, cp/typeck.c, cp/typeck2.c: Adjust warning() callers.

* fortran/trans-decl.c: Adjust warning() callers.

* java/class.c, java/decl.c, java/expr.c, java/jcf-io.c,
java/jcf-parse.c, java/jv-scan.c, java/parse.y: Adjust warning()
callers.

* objc/objc-act.c: Adjust warning() callers.

* treelang/parse.y: Adjust warning() callers.

From-SVN: r98633
2005-04-23 17:29:07 -04:00
Marek Michalkiewicz
82b3eb4294 re PR target/18551 (wrong asm output for -mcall-prologues with g++)
PR target/18551
	* config/avr/avr.c (avr_output_function_prologue): Do not use
	current_function_name() in a label, use a local label instead.

From-SVN: r96765
2005-03-20 21:12:08 +00:00
Richard Sandiford
5a41973c52 avr.c (avr_init_stack, [...]): Make static.
* config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
	(TARGET_HANDLE_OPTION): Override default.
	(avr_handle_option): New function.
	* config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
	(MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
	(MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
	(TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
	(TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
	(TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
	(TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
	(TARGET_OPTIONS): Delete.
	* config/avr/avr.opt: New file.

From-SVN: r96719
2005-03-19 08:54:37 +00:00
Marek Michalkiewicz
a69901850b re PR target/20288 (AVR assignment of a value through a 16 bit pointer generates out of order code)
PR target/20288
	* config/avr/avr.c (print_operand): Add 'p' and 'r'.
	(out_movhi_r_mr): Read low byte of volatile MEM first.
	(out_movhi_mr_r): Write high byte of volatile MEM first.

From-SVN: r95993
2005-03-06 21:50:36 +00:00
Roger Sayle
8f2bf9f18d re PR target/19597 (avr-gcc 4.0, multiplication by constant, very long code)
PR target/19597
	* config/avr/avr.c (default_rtx_costs): Delete.
	(avr_operand_rtx_cost): New function.
	(avr_rtx_costs): Completely rewrite.

From-SVN: r94766
2005-02-09 14:43:28 +00:00
Marek Michalkiewicz
a3cf59927a re PR target/19293 (avr-gcc crashes when using shifts with negative shift count)
PR target/19293
	PR target/19329
	* config/avr/avr.c (notice_update_cc): Only set condition code for
	ashrqi3 if shift count > 0.
	(out_shift_with_cnt): Handle shift count <= 0 as a no-op.
	(ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
	ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
	count <= 0 as a no-op, and shift count >= width by copying zero
	or sign bit to all bits of the result.
	* config/avr/avr.md (all shifts): Add alternatives for zero shift
	count, with attribute "length" set to 0 and "cc" set to "none".

From-SVN: r94288
2005-01-26 21:44:25 +00:00
Kazu Hirata
deeec1d8a8 c-opts.c, [...]: Update copyright.
* c-opts.c, expmed.c, gengtype.c, tree-complex.c,
	config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
	Update copyright.

From-SVN: r94154
2005-01-24 11:59:45 +00:00
Roger Sayle
d2ebe27c9a re PR target/19378 (ICE during bootstrap compiling __fixdfdi)
PR middle-end/19378
	* config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.

From-SVN: r94102
2005-01-23 04:51:28 +00:00
Marek Michalkiewicz
6b262ee81e re PR target/19059 (Atmel AVR Tiny13 and Tiny2313 support corrupted)
PR target/19059
	* config/avr/avr.c (avr_mcu_types): Move attiny{13,2313} from avr4
	to avr2.
	* config/avr/avr.h (LINK_SPEC): Ditto.
	* config/avr/t-avr (MULTILIB_MATCHES): Ditto.

From-SVN: r92607
2004-12-25 22:20:04 +00:00
Theodore A. Roth
97e45d9e69 avr.c (avr_handle_fndecl_attribute): Generate a warning if the function name does not begin with "__vector" and the...
* config/avr/avr.c (avr_handle_fndecl_attribute): Generate a
	warning if the function name does not begin with "__vector" and the
	function has either the 'signal' or 'interrupt' attribute.

From-SVN: r91433
2004-11-28 23:15:59 +00:00
Theodore A. Roth
3592022563 avr.c (avr_mcu_types): Add entries for atmega48...
* config/avr/avr.c (avr_mcu_types): Add entries for atmega48,
	atmega88, atmega168, attiny13, attiny2313, at90can128, atmega165,
	atmega325, atmega3250, atmega645 and atmega6450.
	* config/avr/avr.h (LINK_SPEC): Ditto.
	(LIB_SPEC): Ditto.
	(LIBGCC_SPEC): Ditto.
	(CRT_BINUTILS_SPECS): Ditto.
	* config/avr/t-avr (MULTILIB_MATCHES): Ditto.

From-SVN: r91432
2004-11-28 23:10:28 +00:00
Joseph Myers
9e637a2679 builtins.c, [...]: Avoid "`" as left quote, using "'" or %q, %< and %> as appropriate.
* builtins.c, c-common.c, c-decl.c, c-format.c, c-format.h,
	c-parse.in, c-pch.c, c-pragma.c, collect2.c, final.c, gcc.c,
	gcov.c, opts.c, pretty-print.h, protoize.c, reg-stack.c, rtl.c,
	tlink.c, config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
	config/avr/avr.c, config/c4x/c4x.c, config/darwin.c,
	config/frv/frv.c, config/h8300/h8300.c, config/i386/i386.c,
	config/i386/winnt.c, config/ia64/ia64.c, config/ip2k/ip2k.c,
	config/iq2000/iq2000.c, config/m32r/m32r.c,
	config/m68hc11/m68hc11.c, config/m68k/m68k.c, config/m68k/m68k.h,
	config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.c,
	config/ns32k/ns32k.c, config/rs6000/host-darwin.c,
	config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
	config/sh/symbian.c, config/stormy16/stormy16.c,
	config/v850/v850.c: Avoid "`" as left quote, using "'" or %q, %<
	and %> as appropriate.  Use %' as apostrophe in diagnostics where
	applicable.  Use %< and %> in place of '' quotes where applicable.
	Use %qs in place of %<%s%>.  Consistently quote __builtin function
	names.

ada:
	* misc.c (gnat_handle_option): Use %< and %> for quoting in
	warning message.

cp:
	* call.c, class.c, decl.c, decl2.c, error.c, mangle.c, parser.c,
	pt.c, search.c, semantics.c, typeck.c: Use %q, %< and %> for
	quoting in diagnostics.
	* parser.c (cp_parser_sizeof_operand): Use '' instead of `' for
	quoting in printf format.
	* decl.c (duplicate_decls, start_decl): Use %qD instead of
	unquoted %D.

objc:
	* objc-act.c: Use %q, %< and %> for quoting in diagnostics.

testsuite:
	* gcc.dg/builtin-prefetch-1.c: Adjust expected messages.

From-SVN: r90337
2004-11-09 10:13:30 +00:00
James E Wilson
130d5426f0 Make -fdata-sections work for AVR port.
PR target/14064
* config/avr/avr.c (avr_unique_section): Delete prototype and
definition.
(TARGET_ASM_UNIQUE_SECTION): Delete.

From-SVN: r86951
2004-09-01 18:04:22 -07:00
Denis Chertykov
678584fc80 re PR target/15417 (ICE while building an avr-cross compiler)
PR target/15417
	* config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
	frame pointer register only in Pmode while reload in progress.

From-SVN: r86842
2004-09-01 00:25:32 +04:00
Jakub Jelinek
ab5c8549a4 re PR c++/16276 ([3.4 only] G++ generates local references to linkonce sections)
PR c++/16276
        * output.h (default_function_rodata_section,
	default_no_function_rodata_section): New prototypes.
	* target.h (struct gcc_target): Add asm_out.function_rodata_section.
	* target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
	(TARGET_ASM_OUT): Add it.
        * varasm.c (default_function_rodata_section,
	default_no_function_rodata_section): New functions.
        * final.c (final_scan_insn): Call
	targetm.asm_out.function_rodata_section instead of
	readonly_data_section.
	* config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
	* config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
	* config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
	* config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
	Likewise.
	* config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
	* config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
	Likewise.
	* config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
	Likewise.
	* config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
	* config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
	* doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.

        * g++.old-deja/g++.other/comdat4.C: New test.
        * g++.old-deja/g++.other/comdat4-aux.cc: New.

From-SVN: r85873
2004-08-12 15:57:04 +02:00
Dean Ferreyra
427ee3601d re PR target/14047 (__progmem__ attribute doesn't work)
PR target/14047
	* config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
	(avr_insert_attributes): Pass "attributes" to avr_progmem_p.
	* config/avr/avr-protos.h (avr_progmem_p): Change prototype.

From-SVN: r79433
2004-03-13 09:43:30 +03:00
Paolo Bonzini
ec8e098d3d alias.c (rtx_equal_for_memref_p): Use predicates to test rtx classes and new rtx class codes...
2004-02-07  Paolo Bonzini  <bonzini@gnu.org>

	* alias.c (rtx_equal_for_memref_p): Use predicates
	to test rtx classes and new rtx class codes, possibly
	splitting conditionals that tested against '<' and 'o'.
	* caller-save.c (save_call_clobbered_regs): Likewise.
	* combine.c (contains_muldiv, find_split_point, subst,
	combine_simplify_rtx, simplify_if_then_else,
	simplify_set, simplify_logical, expand_compound_operation,
	make_compound_operation, if_then_else_cond, known_cond,
	apply_distributive_law, cached_nonzero_bits,
	cached_num_sign_bit_copies, simplify_shift_const,
	gen_binary, simplify_comparison, update_table_tick,
	record_value_for_reg, get_lsat_value_validate): Likewise.
	* cse.c (mention_regs, find_best_addr, find_comparison_args,
	fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
	Likewise.
	* emit-rtl.c (copy_insn_1): Likewise.
	* expr.c (force_operand): Likewise.
	* final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
	* flow.c (notice_stack_pointer_modification_1,
	invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
	and_reg_cond, elim_reg_cond): Likewise.
	* function.c (update_epilogue_consts): Likewise.
	* genattrtab.c (attr_rtx_1): Likewise.
	* genopinit.c (gen_insn): Likewise.
	* integrate.c (subst_constants): Likewise.
	* jump.c (reversed_comparison_code_parts,
	reversed_comparison_code, delete_related_insns,
	rtx_renumbered_equal_p): Likewise.
	* local-alloc.c (block_alloc): Likewise.
	* loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
	canonicalize_condition): Likewise.
	* loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
	Likewise.
	* optabs.c (add_equal_node, expand_binop): Likewise.
	* predict.c (estimate_probability): Likewise.
	* ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
	* recog.c (validate_replace_rtx_1, comparison_operator,
	offsettable_address_p, constrain_operands): Likewise.
	* reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
	Likewise.
	* regclass.c (scan_one_insn): Likewise.
	* regmove.c (stable_and_no_regs_but_for_p): Likewise.
	* regrename.c (kill_autoinc_value): Likewise.
	* reload.c (find_reusable_reload, find_reloads,
	reg_overlap_mentioned_for_reload_p): Likewise.
	* reload1.c (gen_reload, delete_address_reloads_1): Likewise.
	* rtl.c (copy_rtx): Likewise.
	* rtl.h (CONSTANT_P, INSN_P): Likewise.
	* rtlanal.c (commutative_operand_precedence): Likewise.
	* sched-deps.c (conditions_mutex_p): Likewise.
	* sched-rgn.c (is_cfg_nonregular): Likewise.
	* simplify-rtx.c (simplify_gen_binary,
	simplify_gen_relational, simplify_replace_rtx,
	simplify_unary_operation, simplify_binary_operation,
	simplify_ternary_operation, simplify_rtx): Likewise.
	* unroll.c (reg_dead_after_loop): Likewise.
	* config/alpha/alpha.c (alpha_swapped_comparison_operator,
	print_operand): Likewise.
	* config/arc/arc.c (proper_comparison_operator): Likewise.
	* config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
	Likewise.
	* config/avr/avr.c (_reg_unused_after): Likewise.
	* config/frv/frv.c (frv_ifcvt_modify_tests,
	frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
	* config/i386/i386.c (ix86_comparison_operator,
	ix86_carry_flag_operator, fcmov_comparison_operator,
	arith_or_logical_operator, print_operand,
	ix86_expand_binary_operator, ix86_binary_operator_ok):
	Likewise.
	* config/i386/i386.md: Likewise.
	* config/ia64/ia64.c (not_postinc_memory_operand,
	ia64_print_operand, update_set_flags, errata_emit_nops):
	Likewise.
	* config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
	CONSTRAINT_OK_FOR_S): Likewise.
	* config/ip2k/ip2k.c (mdr_resequence_xy_yx,
	mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
	ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
	ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
	Likewise.
	* config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
	eqne_comparison_operator, signed_comparison_operator):
	Likewise.
	* config/mips/mips.c (cmp_op, symbolic_expression_p):
	Likewise.
	* config/mmix/mmix (mmix_foldable_comparison_operator,
	mmix_comparison_operator): Likewise.
	* config/pa/pa.c (hppa_legitimize_address): Likewise.
	* config/rs6000/rs6000.c (stmw_operation,
	branch_comparison_operator, trap_comparison_operator,
	ccr_bit): Likewise.
	* config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
	* config/s390/s390.c (s390_alc_comparison,
	s390_slb_comparison):L Likewise.
	* config/sh/sh.c (gen_block_redirect, reg_unused_after):
	Likewise.
	* config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
	noov_compare_op, noov_compare64_op, v9_regcmp_op,
	emit_hard_tfmode_operation, reg_unused_after)
	* doc/md.texi, doc/rtl.texi: Likewise.

	* ra-debug.c: Add 2004 to list of copyright years.
	* unroll.c: Likewise.

	* combine.c (simplify_logical): Remove dummy test,
	(apply_distributive_law): Fix typo in comment.
	GET_CODE (x) == AND so x is a commutative binary op.
	* jump.c (delete_related_insns): simplify loop
	condition, move testing of RTX codes inside the loop.
	(rtx_renumbered_equal_p): do not use RTX_CODE.
	* rtl.c (rtx_class): Declare as enum rtx_class.
	* rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
	Move to RTX_COMM_COMPARE class.
	(HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
	Move to RTX_CONST_OBJ class.
	* rtl.h (enum rtx_class): New declaration,
	(RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
	RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
	RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
	RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
	RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
	ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
	SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
	OBJECT_P): New macros.
	* config/sparc/sparc.c (noov_compare_op): Remove register
	from parameter.

From-SVN: r78824
2004-03-03 08:35:33 +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
78bc94a2a8 arc.c (arc_return_in_memory): Check the return value of int_size_in_bytes against -1.
* config/arc/arc.c (arc_return_in_memory): Check the return
	value of int_size_in_bytes against -1.  Don't check
	TREE_ADDRESSABLE.
	* config/avr/avr.c (avr_return_in_memory): Check the return
	value of int_size_in_bytes against -1.
	* config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
	* config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
	Likewise.
	* config/mcore/mcore.c (mcore_return_in_memory): Likewise.
	* config/stormy16/stormy16.c (xstormy16_return_in_memory):
	Likewise.

From-SVN: r77377
2004-02-06 05:55:07 +00:00
Kazu Hirata
5efb104680 alpha.c, [...]: Revert the replacements of "FALLTHRU" with "Fall through" done in the previous...
* config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
	config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
	config/ia64/ia64.c, config/ia64/unwind-ia64.c,
	config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
	config/pdp11/pdp11.c, config/rs6000/rs6000.c,
	config/sparc/sparc.c, config/vax/vax.c: Revert the
	replacements of "FALLTHRU" with "Fall through" done in the
	previous patch.

From-SVN: r77269
2004-02-04 20:27:12 +00:00
Kazu Hirata
59b9a953b6 alpha.c, [...]: Fix comment typos.
* config/alpha/alpha.c, config/arc/arc.c,
	config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
	config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
	config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
	config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
	config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
	config/ia64/ia64.c, config/ia64/unwind-ia64.c,
	config/iq2000/iq2000.c, config/m32r/m32r.c,
	config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
	config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
	config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
	config/rs6000/rs6000.h, config/sparc/sparc.c,
	config/vax/vax.c: Fix comment typos.  Follow spelling
	conventions.

From-SVN: r77267
2004-02-04 19:46:25 +00:00
Kazu Hirata
f1c25d3b47 arm.c, [...]: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
* config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
	config/arm/linux-gas.h, config/arm/netbsd-elf.h,
	config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
	config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
	config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
	config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
	config/iq2000/iq2000.h, config/m32r/m32r.c,
	config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
	config/m68hc11/m68hc11.md, config/m68k/m68k.md,
	config/mcore/mcore.c, config/mcore/mcore.h,
	config/mcore/mcore.md, config/mips/mips.c,
	config/ns32k/ns32k.h, config/ns32k/ns32k.md,
	config/rs6000/rs6000.c, config/s390/s390.c,
	config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
	config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
	"gen_rtx (FOO, " with "gen_rtx_FOO (".

From-SVN: r77080
2004-02-01 21:21:45 +00:00
Kazu Hirata
283334f011 alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
	flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
	ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
	tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
	config/alpha/alpha.c, config/alpha/alpha.h,
	config/alpha/alpha.md, config/alpha/unicosmk.h,
	config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
	config/c4x/c4x-protos.h, config/c4x/c4x.md,
	config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
	config/frv/frvend.c, config/i386/cygming.h,
	config/i386/djgpp.h, config/i386/emmintrin.h,
	config/i386/gthr-win32.c, config/i386/i386-interix.h,
	config/i386/i386-protos.h, config/i386/openbsd.h,
	config/i386/winnt.c, config/i386/xm-mingw32.h,
	config/i386/xmmintrin.h, config/ia64/ia64.md,
	config/iq2000/iq2000.md, config/m32r/m32r.md,
	config/m68k/m68k.md, config/mcore/mcore-elf.h,
	config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
	config/mips/iris5gas.h, config/mips/iris6.h,
	config/mips/iris6gas.h, config/mips/linux.h,
	config/mips/mips.md, config/mips/netbsd.h,
	config/mips/openbsd.h, config/mips/windiss.h,
	config/pa/fptr.c, config/rs6000/aix.h,
	config/rs6000/altivec.h, config/rs6000/darwin.h,
	config/rs6000/xcoff.h, config/s390/s390-protos.h,
	config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
	config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
	config/sparc/sol2.h: Update copyright.

From-SVN: r77018
2004-01-31 02:07:12 +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
Kazu Hirata
b069302cd2 avr.c (TARGET_STRUCT_VALUE_RTX): New.
* config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
	(avr_return_in_memory): Remove.
	* config/avr/avr.h (RETURN_IN_MEMORY): Remove.
	(STRUCT_VALUE): Likewise.
	(STRUCT_VALUE_INCOMING): Likewise.
	(STRICT_ARGUMENT_NAMING): Likewise.

From-SVN: r76565
2004-01-25 17:10:03 +00:00
Steven Bosscher
faed5cc356 re PR c++/13376 (Incorrect dumps of RTL for passes that use current_function_name)
PR c++/13376
	* function.h (struct function): Kill `name' field.
	(current_function_name): Make it an extern function.
	* function.c (current_function_name): New function.
	* graph.c: Update all uses of current_function_name.
	* gcse.c: Likewise.
	* config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
	config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
	* config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
	instead of a strcmp with "main".

From-SVN: r75784
2004-01-13 01:58:45 +00:00
Kazu Hirata
908c8c7e80 avr.c (avr_output_function_prologue): Remove an extra pair of curly braces.
* config/avr/avr.c (avr_output_function_prologue): Remove an
	extra pair of curly braces.

From-SVN: r75434
2004-01-05 17:26:30 +00:00
Kazu Hirata
d6b4baa4a5 alpha-modes.def: Fix comment formatting.
* config/alpha/alpha-modes.def: Fix comment formatting.
	* config/alpha/alpha.c: Likewise.
	* config/alpha/alpha.h: Likewise.
	* config/alpha/elf.h: Likewise.
	* config/alpha/lib1funcs.asm: Likewise.
	* config/alpha/openbsd.h: Likewise.
	* config/alpha/vms-cc.c: Likewise.
	* config/alpha/vms-crt0-64.c: Likewise.
	* config/alpha/vms-crt0.c: Likewise.
	* config/alpha/vms-ld.c: Likewise.
	* config/alpha/vms-psxcrt0-64.c: Likewise.
	* config/alpha/vms-psxcrt0.c: Likewise.
	* config/alpha/vms.h: Likewise.
	* config/arc/arc.c: Likewise.
	* config/arm/aof.h: Likewise.
	* config/arm/arm-modes.def: Likewise.
	* config/arm/arm.c: Likewise.
	* config/arm/arm.h: Likewise.
	* config/arm/arm.md: Likewise.
	* config/arm/linux-elf.h: Likewise.
	* config/arm/vxworks.h: Likewise.
	* config/avr/avr.c: Likewise.
	* config/avr/avr.h: Likewise.

From-SVN: r75019
2003-12-25 15:17:37 +00:00
Kazu Hirata
2c338472ba avr.c: Fix comment formatting.
* config/avr/avr.c: Fix comment formatting.
	* config/avr/avr.md: Likewise.

From-SVN: r75011
2003-12-24 22:12:32 +00:00
Kazu Hirata
baac771ac4 re PR target/12721 (ICE when building a cross compiler for avr-elf)
PR target/12721.
	* config/avr/avr.c: Include ggc.h.
	(tmp_reg_rtx): Declare with GTY.
	(zero_reg_rtx): Likewise.
	(ldi_reg_rtx): Remove.
	(avr_override_options): Initialize zero_reg_rtx and
	ldi_reg_rtx.
	(avr_init): Remove.
	Include gt-avr.h.
	* config/avr/avr.h (LDI_REG_REGNO): Remove.
	Remove externs for tmp_reg_rtx, zero_reg_rtx, and ldi_reg_rtx.

From-SVN: r75010
2003-12-24 20:39:30 +00:00
Steven Bosscher
269e379528 avr.c, [...]: Convert to ISO C90 function declarations and definitions.
* config/avr/avr.c, config/avr/avr-protos.h: Convert to
	ISO C90 function declarations and definitions.

From-SVN: r72423
2003-10-13 08:40:44 +00:00
Zack Weinberg
c15c90bbfe target.h (init_libfuncs): New hook.
* target.h (init_libfuncs): New hook.
	* target-def.h: Default TARGET_INIT_BUILTINS and
	TARGET_INIT_LIBFUNCS to hook_void_void.  Add
	TARGET_INIT_LIBFUNCS to TARGET_INITIALIZER.
	* builtins.c (default_init_builtins): Delete.
	* expr.h (default_init_builtins): Delete prototype.
	* doc/tm.texi: Document TARGET_INIT_LIBFUNCS and US_SOFTWARE_GOFAST.
	Tweak documentation of TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL.
	Remove documentation of INIT_TARGET_OPTABS, MULSI3_LIBCALL,
	DIVSI3_LIBCALL, UDIVSI3_LIBCALL, MODSI3_LIBCALL, UMODSI3_LIBCALL,
	MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL, MODDI3_LIBCALL,
	and UMODDI3_LIBCALL,

	* Makefile.in (optabs.o): Depends on target.h.
	* defaults.h: Provide default for FLOAT_LIB_COMPARE_RETURNS_BOOL.
	* optabs.c: Include target.h.
	(prepare_float_lib_cmp): No need for #ifdef around use of
	FLOAT_LIB_COMPARE_RETURNS_BOOL.
	(set_optab_libfunc): New function.
	(init_optabs): Delete use of all *_LIBCALL defines.
	Call targetm.init_libfuncs not INIT_TARGET_OPTABS.
	* optabs.h: Prototype set_optab_libfunc.

	* config.gcc: Remove all references to pa/long_double.h,
	ia64/hpux_longdouble.h, and gofast.h.
	(mips-*-*): When --enable-gofast, just add US_SOFTWARE_GOFAST
	to tm_defines; don't set INIT_SUBTARGET_OPTABS or change tm_file.

	* config/alpha/alpha.c, config/c4x/c4x.c, config/cris/cris.c
	* config/frv/frv.c, config/h8300/h8300.c, config/i860/i860.c
	* config/ia64/ia64.c, config/ip2k/ip2k.c, config/m68hc11/m68hc11.c
	* config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c
	* config/sparc/sparc.c, config/vax/vax.c:
	Provide a definition for TARGET_INIT_LIBFUNCS.  Where
	necessary, include optabs.h, libfuncs.h, and/or config/gofast.h.

	* config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.h
	* config/avr/avr.h, config/cris/cris.h, config/frv/frv.h
	* config/h8300/h8300.h, config/i860/i860.h, config/ip2k/ip2k.h
	* config/iq2000/iq2000.h, config/m68hc11/m68hc11.h, config/mips/mips.h
	* config/rs6000/aix.h, config/rs6000/sysv4.h, config/sparc/elf.h
	* config/sparc/lite.h, config/sparc/netbsd-elf.h, config/sparc/sol2.h
	* config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h
	* config/vax/elf.h: Don't define or use INIT_TARGET_OPTABS,
	INIT_SUBTARGET_OPTABS, or any *_LIBCALL macros.

	* config/ia64/hpux.h: Redefine INTEL_EXTENDED_IEEE_FORMAT to 0.
	Set TARGET_INIT_LIBFUNCS and FLOAT_LIB_COMPARE_RETURNS_BOOL here.
	* config/pa/pa-hpux.h: Define LONG_DOUBLE_TYPE_SIZE,
	HPUX_LONG_DOUBLE_LIBRARY, and FLOAT_LIB_COMPARE_RETURNS_BOOL here.
	* config/ia64/hpux_longdouble.h, config/pa/long_double.h: Delete.

	* config/rs6000/xcoff.h: Don't define RS6000_ITRUNC nor RS6000_UITRUNC.
	* config/sparc/sparc.h: Default SUN_CONVERSION_LIBFUNCS and
	SUN_INTEGER_MULTIPLY_64 to 0.
	* config/sparc/sol2.h: Redefine SUN_CONVERSION_LIBFUNCS and
	SUN_INTEGER_MULTIPLY_64 to 1.
	* config/sparc/elf.h: Redefine SUN_CONVERSION_LIBFUNCS and
	SUN_INTEGER_MULTIPLY_64 to 0.
	* config/sparc/lite.h, config/sparc/liteelf.h, config/sparc/sp86x-elf.h:
	Define US_SOFTWARE_GOFAST.
	* config/vax/vax.h: Default TARGET_ELF to 0.
	* config/vax/elf.h: Redefine TARGET_ELF to 1.

	* config/gofast.h: Don't define any macros here.  Provide one
	static function, gofast_maybe_init_libfuncs, which does what
	INIT_GOFAST_LIBFUNCS used to do but only if US_SOFTWARE_GOFAST
	is already defined.  Do not clear negation libfuncs.  Do
	not mess with HFmode, XFmode, or TFmode libfuncs.

	* config/avr/avr.c (avr_init_once): #if 0 out; mark FIXME.

From-SVN: r72009
2003-10-02 00:44:29 +00:00
Kelley Cook
7ec022b20e GNU CC -> GCC
From-SVN: r71850
2003-09-27 04:48:30 +00:00
Kaveh R. Ghazi
29da5c9288 avr.c (avr_init_once): Use xcalloc in lieu of xmalloc/memset.
* config/avr/avr.c (avr_init_once): Use xcalloc in lieu of
	xmalloc/memset.
	* config/ia64/ia64.c (ia64_reorg): Likewise.
	* conflict.c (conflict_graph_new): Likewise.
	* fixinc/fixincl.c (run_compiles): Likewise.
	* genattrtab.c (optimize_attrs): Likewise.
	* genrecog.c (new_decision): Likewise.
	* haifa-sched.c (schedule_block): Likewise.
	* hashtable.c (ht_create): Likewise.

From-SVN: r70337
2003-08-11 21:47:39 +00:00
Kazu Hirata
6001794def combine.c (distribute_notes): Don't bother REG_WAS_0.
* combine.c (distribute_notes): Don't bother REG_WAS_0.
	* cse.c (cse_insn): Likewise.
	* final.c (final_scan_insn): Likewise.
	* jump.c (duplicate_loop_exit_test): Likewise.
	* rtl.c (reg_note_name): Remove REG_WAS_0.
	* rtl.h (REG_WAS_0): Remove.
	* unroll.c (final_reg_note_copy): Don't bother REG_WAS_0.
	* config/avr/avr.c (output_movqi): Don't use reg_was_0.
	(output_movhi): Likewise.
	(output_movsisf): Likewise.
	(reg_was_0): Remove.
	* config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Don't use
	REG_WAS_0.
	(m68hc11_gen_movqi): Likewise.
	* config/vax/vax-protos.h: Remove the prototype for
	reg_was_0_p.
	* config/vax/vax.c (follows_p): Remove.
	(reg_was_0_p): Likewise.
	* config/vax/vax.md (movsi): Don't use reg_was_0_p.
	(movhi): Likewise.
	(movqi): Likewise.
	* doc/rtl.texi (REG_WAS_0): Remove.

From-SVN: r68753
2003-07-01 01:15:07 +00:00
Kazu Hirata
cef1ccd6ff * config/avr/avr.c: Fix a comment typo.
From-SVN: r68651
2003-06-28 20:00:06 +00:00
Kazu Hirata
62e4d78054 avr-protos.h: Replace avr_simplify_comparision_p with avr_simplify_comparison_p.
* config/avr/avr-protos.h: Replace avr_simplify_comparision_p
	with avr_simplify_comparison_p.
	* config/avr/avr.c: Likewise.

From-SVN: r68650
2003-06-28 19:55:01 +00:00
Kazu Hirata
0e8a9ede78 avr.c (final_prescan_insn): Remove support for -mrtl.
* config/avr/avr.c (final_prescan_insn): Remove support for
	-mrtl.
	* config/avr/avr.h (MASK_RTL_DUMP): Remove.
	(TARGET_RTL_DUMP): Likewise.
	(TARGET_SWITCHES): Remove -mrtl.

From-SVN: r68530
2003-06-26 13:11:09 +00:00
Zack Weinberg
1bc7c5b629 target.h (asm_out.file_start, [...]): New hooks.
* target.h (asm_out.file_start, file_start_app_off,
	file_start_file_directive): New hooks.
	* target-def.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
	TARGET_ASM_FILE_START_APP_OFF, TARGET_ASM_FILE_START):
	New hook-definition macros.
	* doc/tm.texi: Document new hooks; remove docs of ASM_FILE_START.
	* varasm.c (default_file_start): New.
	* output.h: Prototype it.
	* toplev.c (init_asm_output): Use targetm.asm_out.file_start.
	* system.h: Poison ASM_FILE_START.

	* config/alpha/alpha.c (alpha_write_verstamp): Delete.
	(alpha_file_start): New, define if !TARGET_ABI_UNICOSMK.
	(unicosmk_asm_file_start): Rename unicosmk_file_start,
	make static, take no arguments.
	(TARGET_ASM_FILE_START, TARGET_ASM_FILE_END,
	TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set as appropriate.
	* config/alpha/unicosmk.h: Don't define ASM_FILE_START nor
	TARGET_ASM_FILE_END.  Remove reference to ASM_FILE_START in
	comment.
	* config/arc/arc.c (arc_asm_file_start): Rename
	arc_file_start, take no arguments, make static.
	(TARGET_ASM_FILE_START): Set it.
	* config/arm/arm.c (aof_file_start): New static function.
	(TARGET_ASM_FILE_START): Set it, when appropriate.
	* config/arm/coff.h, config/arm/elf.h:
	Set TARGET_ASM_FILE_START_APP_OFF to true.
	* config/avr/avr.c (asm_file_start): Rename avr_file_start,
	take no arguments, make static.
	(TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE):
	Set them.
	* config/c4x/c4x.c (c4x_file_start): New static function.
	(TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE):
	Set them.
	* config/cris/cris.c (cris_file_start): New static function.
	(TARGET_ASM_FILE_START): Set it.
	* config/dsp16xx/dsp16xx.c (coff_dsp16xx_file_start): Rename
	dsp16xx_file_start, make static.
	(luxworks_dsp16xx_file_start): Delete.
	(TARGET_ASM_FILE_START): Set it.
	* config/h8300/h8300.c (asm_file_start): Rename
	h8300_file_start, make static, take no arguments.
	(TARGET_ASM_FILE_START): Set it.
	* config/i370/i370.c (i370_file_start): New static function.
	(TARGET_ASM_FILE_START): Set it.
	* config/i386/i386.c (x86_file_start): New static function.
	(TARGET_ASM_FILE_START): Set it.
	* config/i386/i386.h (X86_FILE_START_VERSION_DIRECTIVE,
	X86_FILE_START_FLTUSED): New macros, default to false.
	* config/i386/i386-interix.h: Override X86_FILE_START_FLTUSED to 1.
	* config/i386/sysv4.h, config/i386/sco5.h: Override
	X86_FILE_START_VERSION_DIRECTIVE to true.
	* config/ia64/ia64.c (ia64_file_start): New static function.
	(TARGET_ASM_FILE_START): Set it.
	(emit_safe_across_calls): Take no arguments.
	* config/ia64/ia64.md: Update to match.
	* config/m32r/m32r.c (m32r_asm_file_start): Rename
	m32r_file_start, make static, take no arguments.
	(TARGET_ASM_FILE_START): Set it.
	* config/m68hc11/m68hc11.c (m68hc11_asm_file_start): Rename
	m68hc11_file_start, make static, take no arguments.
	(TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set.
	(print_options): Delete.
	* config/m68k/m68k.c (m68k_hp320_file_start): New static function.
	(TARGET_ASM_FILE_START_APP_OFF): Set.
	* config/m68k/hp320.h: Set TARGET_ASM_FILE_START to
	m68k_hp320_file_start.
	* config/mips/mips.c (iris6_asm_file_start, mips_asm_file_start):
	Make static, take no arguments.
	(TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set.
	* config/mmix/mmix.c (mmix_asm_file_start): Rename
	mmix_file_start, make static, take no arguments.
	(TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set.
	* config/mn10300/mn10300.c (asm_file_start): Rename
	mn10300_file_start, make static, take no arguments.
	(TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set.
	* config/ns32k/ns32k.c (TARGET_ASM_FILE_START_APP_OFF): Set.
	* config/pa/pa.c (pa_file_start_level, pa_file_start_space,
	pa_file_start_file, pa_file_start_mcount, pa_elf_file_start,
	pa_som_file_start, pa_linux_file_start, pa_hpux64_gas_file_start,
	pa_hpux64_hpas_file_start): New static functions.
	* config/pa/elf.h: Set TARGET_ASM_FILE_START to pa_elf_file_start.
	* config/pa/pa-linux.h: Set TARGET_ASM_FILE_START to
	pa_linux_file_start.
	* config/pa/pa64-hpux.h: Set TARGET_ASM_FILE_START to
	pa_hpux64_gas_file_start or pa_hpux64_hpas_file_start, as
	appropriate.
	* config/pa/som.h: Set TARGET_ASM_FILE_START to pa_som_file_start.
	* config/rs6000/rs6000.c: Include xcoffout.h when TARGET_XCOFF.
	(rs6000_file_start): Make static, take no arguments.  Reset
	default_cpu under certain conditions.
	(rs6000_xcoff_file_start): New function.
	* config/rs6000/rs6000.h (TARGET_ASM_FILE_START): Set.
	* config/rs6000/xcoff.h (TARGET_ASM_FILE_START,
	TARGET_ASM_FILE_START_FILE_DIRECTIVE): Override.
	* config/sh/sh.c (output_file_start): Rename
	sh_file_start, make static, take no arguments.  Merge in old
	code from sh/elf.h's ASM_FILE_START, conditioned on TARGET_ELF.
	(TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set.
	* config/sh/sh.c (TARGET_ELF): Define to 0.
	* config/sh/elf.h (TARGET_ELF): Redefine to 1.
	* config/v850/v850.c (asm_file_start): Delete.
	(TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set.
	* config/vax/vax.c (vax_file_start): New static function.
	(TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_APP_OFF): Set.

	* config/darwin.h: Override ASM_FILE_START_FILE_DIRECTIVE to false.
	* config/elfos.h, config/svr3.h, config/arm/elf.h, config/arm/pe.h
	* config/i386/att.h, config/i386/gas.h, config/i386/linux.h
	* config/i386/sysv4.h, config/i386/sco5.h, config/i960/i960-coff.h
	* config/m68k/coff.h, config/m68k/hp320.h, config/mcore/mcore-pe.h
	* config/vax/vaxv.h: Set ASM_FILE_START_FILE_DIRECTIVE to true.

	* config/darwin.h, config/elfos.h, config/alpha/elf.h
	* config/alpha/openbsd.h, config/alpha/osf.h, config/alpha/vms.h
	* config/arc/arc.h, config/arm/aof.h, config/arm/aout.h
	* config/arm/coff.h, config/arm/elf.h, config/arm/pe.h
	* config/avr/avr.h, config/c4x/c4x.h, config/cris/cris.h
	* config/dsp16xx/dsp16xx.h, config/h8300/elf.h, config/h8300/h8300.h
	* config/i370/i370.h, config/i386/att.h, config/i386/gas.h
	* config/i386/i386-interix.h, config/i386/linux.h, config/i386/sysv4.h
	* config/i386/sco5.h, config/i960/i960-coff.h, config/i960/i960.h
	* config/ia64/ia64.h, config/ia64/sysv4.h, config/m32r/m32r.h
	* config/m68hc11/m68hc11.h, config/m68k/coff.h, config/m68k/m68k.h
	* config/mcore/mcore-pe.h, config/mips/iris6.h, config/mips/mips.h
	* config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h
	* config/pa/elf.h, config/pa/pa-linux.h, config/pa/pa64-hpux.h
	* config/pa/som.h, config/pdp11/pdp11.h, config/rs6000/linux64.h
	* config/rs6000/lynx.h, config/rs6000/xcoff.h, config/sh/elf.h
	* config/sh/sh.h, config/sparc/sparc.h, config/v850/v850.h
	* config/vax/vax.h, config/vax/vaxv.h: Don't (re)define ASM_FILE_START.

	* config/alpha/alpha-protos.h, config/arc/arc-protos.h
	* config/avr/avr-protos.h, config/dsp16xx/dsp16xx-protos.h
	* config/h8300/h8300-protos.h, config/ia64/ia64-protos.h
	* config/m32r/m32r-protos.h, config/m68hc11/m68hc11-protos.h
	* config/mips/mips-protos.h, config/mmix/mmix-protos.h
	* config/mn10300/mn10300-protos.h, config/rs6000/rs6000-protos.h
	* config/sh/sh-protos.h, config/v850/v850-protos.h: Update.

	* xcoffout.h, config/rs6000/aix.h, config/rs6000/xcoff.h:
	Remove reference to ASM_FILE_START in comment.
	* config/arm/aof.h, config/arm/aout.h, config/arm/freebsd.h
	* config/arm/linux-gas.h, config/arm/netbsd-elf.h
	* config/arm/netbsd.h: Delete definition of ARM_OS_NAME.

From-SVN: r68229
2003-06-19 21:47:26 +00:00
Zack Weinberg
a5fe455b12 config.gcc (with_cpu handling): Translate sparc64 in $machine to --with-cpu=v9.
* config.gcc (with_cpu handling): Translate sparc64 in
	$machine to --with-cpu=v9.
	* config/alpha/alpha.c
	(TARGET_ASM_GLOBALIZE_LABEL [TARGET_ABI_UNICOSMK]): Correct definition.
	(alpha_setup_incoming_varargs): #ifdef out when TARGET_ABI_UNICOSMK.

	* target.h: New hook asm_out.file_end.
	* target.h: Update to match.  New hook macro TARGET_ASM_FILE_END.
	* toplev.c (compile_file: Use targetm.asm_out.file_end.
	* system.h: Poison ASM_FILE_END.
	* varasm.c (file_end_indicate_exec_stack): New.
	* output.h: Prototype it.
	* doc/tm.texi: Document TARGET_ASM_FILE_END and
	file_end_indicate_exec_stack.  Delete references to attasm.h.

	* config/darwin.h (TARGET_ASM_FILE_END): Reset to darwin_file_end.
	(ASM_FILE_END): Delete; move code...
	* config/darwin.c (darwin_file_end): Here; new function.
	* config/darwin-protos.h: Prototype it.
	* config/alpha/alpha.c (unicosmk_asm_file_end): Make static,
	rename unicosmk_file_end.
	* config/arm/aof.h (ASM_FILE_END): Delete; move code...
	* config/arm/arm.c (aof_file_end): ... here; new static function.
	Set TARGET_ASM_FILE_END to aof_file_end if AOF_ASSEMBLER.
	Make aof_dump_imports and aof_dump_pic_table static.
	* config/avr/avr.c (asm_file_end): Rename avr_file_end, make static.
	Set TARGET_ASM_FILE_END to avr_file_end.
	* config/c4x/c4x.c (c4x_file_end): Make static.  Take no arguments.
	Set TARGET_ASM_FILE_END to c4x_file_end.
	* config/h8300/h8300.c (asm_file_end): Rename h8300_file_end,
	make static. Take no arguments.  Set TARGET_ASM_FILE_END to
	h8300_file_end.
	* config/i370/i370.h (ASM_FILE_END): Delete; move code...
	* config/i370/i370.c (i370_file_end): ... here; new static function.
	Set TARGET_ASM_FILE_END to i370_file_end.
	 * config/i386/i386.c (ix86_asm_file_end): Rename ix86_file_end.
	 Take no arguments.  Call file_end_indicate_exec_stack if
	 NEED_INDICATE_EXEC_STACK; don't use SUBTARGET_FILE_END.
	* config/i386/i386.h: Set TARGET_ASM_FILE_END, not ASM_FILE_END.
	Define NEED_INDICATE_EXEC_STACK to 0.
	* config/i386/linux.h, config/i386/linux64.h: Redefine
	NEED_INDICATE_EXEC_STACK to 1 instead of setting SUBTARGET_FILE_END.
	* config/i386/winnt.c (i386_pe_asm_file_end): Rename to
	i386_pe_file_end.  Take no arguments.  Use ix86_file_end.
	* config/ia64/ia64.c (ia64_hpux_asm_file_end): Rename to
	ia64_hpux_file_end, make static.  Take no arguments.
	* config/ip2k/ip2k.c (asm_file_start, asm_file_end,
	commands_in_prologues, commands_in_epilogues): Delete.
	(function_epilogue): Update to match.
	* config/mips/mips.c (mips_asm_file_end): Rename mips_file_end,
	make static.  Take no arguments.
	(iris6_asm_file_end): Rename iris6_file_end, make static, use
	mips_file_end, take no arguments.
	Set TARGET_ASM_FILE_END to iris6_file_end or mips_file_end as
	appropriate.
	* config/mmix/mmix.c (mmix_asm_file_end): Rename mmix_file_end,
	make static, take no arguments. Set TARGET_ASM_FILE_END to
	mmix_file_end.
	* config/pa/pa.c (output_deferred_plabels): Make static, take
	no arguments.  Set TARGET_ASM_FILE_END to output_deferred_plabels.
	* config/rs6000/xcoff.h (TARGET_ASM_FILE_END): Set it.
	(ASM_FILE_END): Delete; move code...
	* config/rs6000/rs6000.c (rs6000_xcoff_file_end): ... here;
	new static function.

	* config/avr/avr.h, config/cris/cris.h, config/h8300/h8300.h
	* config/mmix/mmix.h, config/mips/iris6.h, config/mips/mips.h:
	Don't set ASM_FILE_END.
	* config/alpha/linux-elf.h, config/m68k/linux.h, config/rs6000/linux.h
	* config/rs6000/linux64.h, config/s390/linux.h, config/sparc/linux.h
	* config/sparc/linux64.h: Set TARGET_ASM_FILE_END to
	file_end_indicate_exec_stack; don't set ASM_FILE_END.
	* config/alpha/unicosmk.h, config/i386/cygming.h
	* config/ia64/hpux.h: Set TARGET_ASM_FILE_END, not ASM_FILE_END.
	* config/arm/arm-protos.h, config/alpha/alpha-protos.h
	* config/avr/avr-protos.h, config/c4x/c4x-protos.h
	* config/h8300/h8300-protos.h, config/ia64/ia64-protos.h
	* config/ip2k/ip2k-protos.h, config/mips/mips-protos.h
	* config/mmix/mmix-protos.h, config/pa/pa-protos.h: Update.

From-SVN: r67591
2003-06-07 17:11:48 +00:00
Kaveh R. Ghazi
7e53359d44 avr.c (avr_output_function_prologue, [...]): Fix format specifier warnings.
* avr.c (avr_output_function_prologue,
	avr_output_function_epilogue, print_operand): Fix format specifier
	warnings.
	(init_cumulative_args): Mark parameter with ATTRIBUTE_UNUSED.
	* avr.h (FUNCTION_VALUE_REGNO_P): Fix signed/unsigned warnings.

From-SVN: r66895
2003-05-16 23:41:12 +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
Richard Henderson
74b66b3c09 avr.c (avr_encode_section_info): Remove.
* config/avr/avr.c (avr_encode_section_info): Remove.
        (avr_insert_attributes): New.
        (print_operand_address): Use SYMBOL_REF_FUNCTION_P.
        (avr_assemble_integer): Likewise.

From-SVN: r65718
2003-04-16 21:52:57 -07:00
Jan Hubicka
563a317a85 calls.c (expand_call): Update call of INIT_CUMULATIVE_ARGS
* calls.c (expand_call): Update call of INIT_CUMULATIVE_ARGS
	* function.c (assign_params): Likewise.
	* arm-protos.h (arm_init_cumulative_args): Update prototype.
	* arm.c (arm_init_cumulative_args): Update function.
	* arm.h (INIT_CUMULATIVE_ARGS): Update.
	* avr-protos.h (init_cumulative_args): Update prototype.
	* avr.c (init_cumulative_args): Update function.
	* avr.h (INIT_CUMULATIVE_ARGS): Update.
	* d30v-protos.h (d30v_init_cumulative_args): Update prototype.
	* d30v.c (d30v_init_cumulative_args): Update function.
	* d30v.h (INIT_CUMULATIVE_ARGS): Update.
	* frv-protos.h (frv_init_cumulative_args): Update prototype.
	* frv.c (frv_init_cumulative_args): Update function.
	* frv.h (INIT_CUMULATIVE_ARGS): Update.
	* mips.c (mips_expand_prolgue): Update call of INIT_CUMULATIVE_ARGS.
	* pa.h (INIT_CUMULATIVE_ARGS): Update.
	* sparc-protos.h (init_cumulative_args): Update prototype.
	* sparc.c (init_cumulative_args): Update function.
	* sparc.h (INIT_CUMULATIVE_ARGS): Update.
	* tm.texi (INIT_CUMULATIVE_ARGS): Update documentation.

From-SVN: r63126
2003-02-19 18:03:11 +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
Zack Weinberg
4977bab6ed Merge basic-improvements-branch to trunk
From-SVN: r60174
2002-12-16 18:23:00 +00:00
Denis Chertykov
d074905352 * config/avr/avr.c (init_cumulative_args): Test fntype for zero.
From-SVN: r58503
2002-10-25 00:07:21 +04:00
Theodore A. Roth
13e8651c8a avr.c: Eliminate use of _PC_ in pc relative insns.
* config/avr/avr.c: Eliminate use of _PC_ in pc relative insns.
	* config/avr/avr.md: Ditto.

From-SVN: r57613
2002-09-28 14:14:12 +00:00