Commit Graph

445 Commits

Author SHA1 Message Date
Diego Novillo 6de9cd9a88 Merge tree-ssa-20020619-branch into mainline.
From-SVN: r81764
2004-05-13 02:41:07 -04:00
John David Anglin 7a9a5a4441 pa.md (icacheflush): Reorder operands to make match_scratch operand last.
* pa.md (icacheflush): Reorder operands to make match_scratch operand
	last.
	* pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
	from calls to gen_icacheflush.

From-SVN: r79029
2004-03-06 19:27:52 +00:00
John David Anglin 7b79fe713d config.gcc (hppa*-*-*, [...]): Add MASK_BIG_SWITCH to all target_cpu_default defines.
* config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
	target_cpu_default defines.
	* pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
	* pa.h (TARGET_DEFAULT): Likewise.

From-SVN: r78446
2004-02-25 19:45:13 +00:00
Zack Weinberg 3521b33c2f Remove -fwritable-strings.
gcc/
	Remove -fwritable-strings.
	* c-common.c (fix_string_type): Don't check
	flag_writable_strings.
	(fix_string_type): Likewise.
	* c-opts.c (set_std_c89): Don't initialize
	flag_writable_strings.
	(set_std_c99): Likewise.
	* common.opt (fwritable-strings): Remove.
	* flags.h: Remove the external declaration of
	flag_writable_strings.
	* opts.c (common_handle_option) <OPT_fwritable_strings>:
	Remove.
	* toplev.c (flag_writable_strings): Remove.
	(f_options): Remove an entry for writable-strings.
	* varasm.c (const_hash_1) <STRING_CST>: Don't check
	flag_writable_strings.
	(compare_constant) <STRING_CST>: Likewise.
	(build_constant_desc): Likewise.
	* config/darwin.c (machopic_select_section): Likewise.
	* config/arm/arm.c (AOF_ASSEMBLER): Likewise.
	* config/arm/pe.c (arm_pe_encode_section_info): Likewise.
	* config/iq2000/iq2000.c (iq2000_select_section): Likewise.
	* config/mips/mips.c (mips_select_section): Likewise.
	(mips_encode_section_info): Likewise.
	* config/pa/pa.c (pa_select_section): Likewise.
	* config/pa/pa.h (TEXT_SPACE_P): Likewise.
	* config/v850/v850.c (v850_select_section): Likewise.
	* doc/invoke.texi (-fwritable-strings): Remove.
	(-fno-const-strings): Don't mention -fwritable-strings.
	* doc/trouble.texi: Don't mention -fwritable-strings.

gcc/cp/
	* decl.c (cxx_init_decl_processing): Don't check
	flag_writable_strings.

gcc/testsuite/
	* gcc.dg/fwritable-strings-1.c: Remove.

Co-Authored-By: Kazu Hirata <kazu@cs.umass.edu>

From-SVN: r78333
2004-02-23 21:43:18 +00:00
John David Anglin 3cf7104e3e pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not generating PIC code.
* pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
	generating PIC code.

From-SVN: r78053
2004-02-18 22:18:54 +00:00
Kazu Hirata 1197924d2b config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
* config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
	* system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
	MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
	* config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
	config/ia64/ia64.h, config/ip2k/ip2k.h,
	config/iq2000/iq2000.h, config/mips/iris5.h,
	config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
	config/rs6000/aix51.h, config/rs6000/aix52.h,
	config/rs6000/darwin.h, config/rs6000/rs6000.h,
	config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
	config/sparc/linux.h, config/sparc/linux64.h,
	config/sparc/netbsd-elf.h, config/sparc/sparc.h,
	config/xtensa/xtensa.h: Remove the definitions of
	MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
	MAX_WCHAR_TYPE_SIZE.
	* doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
	MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.

From-SVN: r77460
2004-02-07 17:06:25 +00:00
Alan Modra 0f6937feff tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
* doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
	* calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
	(emit_library_call_value_1): Likewise pass nargs.
	* expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
	* function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
	* config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
	parameter instead of scanning TYPE_ARGS_TYPES to count args.
	* config/rs6000/rs6000-protos.h (init_cumulative_args): Update
	prototype.
	* config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
	(INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
	(INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
	* config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
	INIT_CUMULATIVE_ARGS.
	* config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
	* config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
	config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
	config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
	config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
	config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
	config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
	config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
	config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
	config/pa/pa.h, config/pdp11/pdp11.h config/s390/s390.h,
	config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
	config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.

From-SVN: r77380
2004-02-06 16:48:36 +10:30
Kazu Hirata 3f12cd9b3c pa-protos.h: Remove the prototype for hppa_builtin_saveregs.
* config/pa/pa-protos.h: Remove the prototype for
	hppa_builtin_saveregs.  Add a prototype for
	pa_return_in_memory.
	* config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
	(pa_struct_value_rtx): Likewise.
	(pa_return_in_memory): Likewise.
	* config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
	PA_STRUCT_VALUE_REGNUM.
	(INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
	(EXPAND_BUILTIN_SAVEREGS): Remove.
	(PROMOTE_PROTOTYPES): Likewise.
	(PROMOTE_FUNCTION_RETURN): Likewise.

From-SVN: r76600
2004-01-26 00:09:47 +00:00
John David Anglin d1885651db pa-protos.h: Update copyright.
* pa-protos.h: Update copyright.
	* pa.h: Likewise.
	* pa.md: Likewise.

From-SVN: r76308
2004-01-21 21:52:35 +00:00
John David Anglin a42952105e pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
* pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
	* pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
	Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
	(emit_move_sequence): Check scratch_reg first in various if statements.
	Extend source simplification to handle all 64-bit CONST_INTs.
	(pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
	frame size.
	(hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
	frame offset calculations.
	* pa.h (NEW_HP_ASSEMBLER): Add comment.
	(MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
	LEGITIMATE_64BIT_CONST_INT_P): Define.
	(LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
	any CONST_INT as legitimate during and after reload.
	(VAL_32_BITS_P, INT_32_BITS): Define.
	(LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.

From-SVN: r76234
2004-01-20 22:20:07 +00:00
John David Anglin 3914c31fc6 pa.h (TRAMPOLINE_TEMPLATE): Shorten sequence when generating PA 2.0 code.
* pa.h (TRAMPOLINE_TEMPLATE): Shorten sequence when generating PA
	2.0 code.
	(TRAMPOLINE_CODE_SIZE, MIN_CACHELINE_SIZE): New defines.
	(INITIALIZE_TRAMPOLINE): Rework to pass line length, and aligned start
	and end addresses to I and D cache instruction patterns.
	* pa.md (anddi3, iordi3): Change predicates of operands 1 and 2 to
	and_operand and ior_operand, respectively.  When generating 64-bit
	code, only one operand needs to be a register operand.
	(xordi3): Change predicates of operands 1 and 2 to register_operand.
	(one_cmpldi2): Change predicate of operand 1 to register_operand.
	(dcacheflush, icacheflush): Revise to flush an arbitrary number of
	cache lines.

From-SVN: r74888
2003-12-20 17:24:15 +00:00
John David Anglin d8f95bed5f re PR target/13054 (compile/980310-3.f: insn does not satisfy its constraints)
PR target/13054
	* pa-protos.h (indexed_memory_operand, borx_reg_operand,
	move_dest_operand, move_src_operand): New protypes.
	(basereg_operand, move_operand, reg_or_nonsymb_mem_operand): Deleted.
	* pa.c (copy_reg_pointer, indexed_memory_operand, move_dest_operand,
	move_src_operand): New functions.
	(basereg_operand, reg_or_nonsymb_mem_operand, move_operand): Delete.
	(reg_or_0_or_nonsymb_mem_operand): Return false for unscaled indexed
	address until cse is not expected on targets with non-equivalent
	space registers.
	(hppa_legitimize_address): Canonicalize unscaled indexed addresses
	on targets non-equivalent space registers.
	(emit_move_sequence): Break out indexed addresses from destination
	operand.  Similarly, break out unscaled indexed addresses from
	source operand on targets with non-equivalent space registers.  Fix
	REG_POINTER flag when possible.  Mark register pointer when creating
	new pointers.
	(print_operand): Handle unscaled index addresses.
	* pa.h (IS_INDEX_ADDR_P, IS_LO_SUM_DLT_ADDR_P): New macro subroutines
	for EXTRA_CONSTRAINT.
	(EXTRA_CONSTRAINT): Rework to make more readable.
	(MODE_OK_FOR_SCALED_INDEXING_P, MODE_OK_FOR_UNSCALED_INDEXING_P): New
	subroutines for GO_IF_LEGITIMATE_ADDRESS.
	(GO_IF_LEGITIMATE_ADDRESS): Rework using new subroutines.  Allow scaled
	and unscaled addresses.  Canonicalize unscaled indexed addresses on
	targets with non-equivalent space registers.  Document issues in
	handling indexed address modes on PA-RISC.
	(PREDICATE_CODES): Update for new and deleted predicates.
	* pa.md (move_dest_operand, move_src_operand, indexed_memory_operand):
	Use new predicates in move patterns.
	Add peephole2 patterns to optimize floating point stores.  Fix
	constrain preferencing in move patterns.  Delete patterns for handling
	unscaled indexed memory loads.  Add missing load and store with
	base-register modification patterns.  Correct SFmode floating point
	store pattern.  Add missing zero extension loads.

From-SVN: r74614
2003-12-14 07:26:19 +00:00
John David Anglin 4d595e4342 pa.h (TRAMPOLINE_TEMPLATE): Fix flushing of cache lines when generating 64-bit code.
* pa.h (TRAMPOLINE_TEMPLATE): Fix flushing of cache lines when
	generating 64-bit code.

From-SVN: r73451
2003-11-11 16:16:41 +00:00
John David Anglin cb4d476cf4 pa-linux.h (ASM_OUTPUT_ADDR_VEC_ELT): Use label in big switch ELTs.
* pa-linux.h (ASM_OUTPUT_ADDR_VEC_ELT): Use label in big switch ELTs.
	(ASM_OUTPUT_ADDR_DIFF_ELT): Use label difference in big switch ELTs.
	* pa.c (pa_adjust_insn_length): Check for btable branches using
	attribute TYPE_BTABLE_BRANCH.
	(pa_reorg): Simplify.
	* pa.h (CASE_VECTOR_MODE): Change big switch mode to SImode.
	(ASM_OUTPUT_ADDR_VEC_ELT): As above.
	(ASM_OUTPUT_ADDR_DIFF_ELT): As above.
	* pa.md (btable_branch): New instruction type.
	(in_branch_delay, in_nullified_branch_delay, in_call_delay): Disallow
	btable branches.
	(define_delay): Add btable branches to insn types that may have an
	insn in the delay position.
	(Z2, Z3): Add btable branch to list.
	Simplify unamed pattern set copy pic_label_operand to register.  Add
	PA 2.0 variant.
	(short_jump): New jump for use in branch tables.
	(casesi, casesi0): Revise for new branch table formats.
	(casesi32, casesi32p, casesi64p): New casesi patterns.
	(indirect_jump): Move.

From-SVN: r73064
2003-10-29 21:44:16 +00:00
John David Anglin e08fde98b7 * pa.h (ASM_COMMENT_START): Define.
From-SVN: r73059
2003-10-29 20:17:50 +00:00
Jason Eckhardt b7849684fa pa.c: Replace 'GNU CC' with 'GCC'.
2003-08-22  Jason Eckhardt  <jle@rice.edu>

	* config/pa/pa.c: Replace 'GNU CC' with 'GCC'.
	Remove all uses of PARAMS macro.
	Convert all function definitions to ISO C90 syntax.
	* config/pa/elf.h: Replace 'GNU CC' with 'GCC'.
	* config/pa/fptr.c: Likewise.
	* config/pa/lib2funcs.asm: Likewise.
	* config/pa/long_double.h: Likewise.
	* config/pa/milli64.S: Likewise.
	* config/pa/pa-64.h: Likewise.
	* config/pa/pa-hpux.h: Likewise.
	* config/pa/pa-hpux10.h: Likewise.
	* config/pa/pa-hpux11.h: Likewise.
	* config/pa/pa-linux.h: Likewise.
	* config/pa/pa-modes.def: Likewise.
	* config/pa/pa-osf.h: Likewise.
	* config/pa/pa-pro-end.h: Likewise.
	* config/pa/pa.md: Likewise.
	* config/pa/pa32-linux.h: Likewise.
	* config/pa/pa64-linux.h: Likewise.
	* config/pa/pa64-hpux.h: Likewise.
	* config/pa/pa64-regs.h: Likewise.
	* config/pa/quadlib.c: Likewise.
	* config/pa/rtems.h: Likewise.
	* config/pa/pa-protos.h: Replace 'GNU CC' with 'GCC' and remove
	all uses of the PARAMS macro.
	* config/pa/pa.h: Likewise.
	* config/pa/som.h: Likewise.

        * config/iq2000/iq2000.c: Replace 'GNU CC' with 'GCC'.
        Remove all uses of PARAMS macro.
        Convert all function definitions to ISO C90 syntax.
	* config/iq2000-protos.h: Replace 'GNU CC' with 'GCC'.
        Remove all uses of PARAMS macro.
	* config/iq2000.h: Remove all uses of PARAMS macro.
        * config/iq2000/iq2000.md: Replace 'GNU CC' with 'GCC'.

From-SVN: r70715
2003-08-23 01:32:59 +00:00
Zack Weinberg ca11c37c5d Makefile.in (INCLUDES): Remove -I$(srcdir)/config.
* Makefile.in (INCLUDES): Remove -I$(srcdir)/config.
	* config.gcc (*-*-openbsd): Don't set tm_file.
	(alpha*-*-openbsd, arm*-*-coff*, arm*-wince-pe*,
	arm-*-pe*, avr-*-*, h8300-*-rtems*, h8300-*-elf*,
	h8300-*-*, hppa*-*-osf*, hppa*-*-bsd*, hppa*-*-hpux*,
	i370-*-opened*, i370-*-mvs*, i370-*-linux*, i?86-*-openbsd*,
	i?86-*-lynxos, i?86-*-nto-qnx*, iq2000*-*-elf*, m68000-hp-hpux*,
	m68k-hp-hpux*, m68k-*-aout*, m68k-*-coff*, m68020-*-elf*,
	m68k-*-elf*, m68k*-*-netbsd*, m68k*-*-openbsd*, m68k-*-sysv4*,
	m68k-*-linux*, m68k-*-rtems*, mcore-*-pe*, mips*-*-netbsd*,
	mips*-*-openbsd*, rs6000-*-lynxos*, sh*-*-elf*, sh*-*-ka,
	sh-*-rtemself, sparc-*-openbsd*, strongarm-*-pe, vax-*-openbsd*,
	xscale-*-coff): Use explicit and complete lists of target headers
	to include.  Move definitions to tm_defines where appropriate.
	(hppa*-*-openbsd*, powerpc-*-openbsd*): Comment out stanza for
	not-yet-contributed configuration.

	* config/lynx.h, config/alpha/openbsd.h, config/arm/coff.h
	* config/avr/avr.h, config/frv/frv.h, config/h8300/elf.h
	* config/i370/linux.h, config/i370/mvs.h, config/i370/oe.h
	* config/i386/nto.h, config/iq2000/iq2000.h,
	* config/m68k/coff.h, config/m68k/hp310.h, config/m68k/hp320.h
	* config/m68k/linux.h, config/m68k/m68k-aout.h
	* config/m68k/m68k-none.h, config/m68k/m68kv4.h
	* config/m68k/netbsd.h, config/m68k/openbsd.h
	* config/m68k/sgs.h, config/mcore/mcore-pe.h,
	* config/mips/netbsd.h, config/mips/openbsd.h, config/pa/pa.h,
	* config/rs6000/lynx.h, config/sh/embed-elf.h, config/sparc/openbsd.h:
	Remove includes of other target config headers, and
	definitions of macros moved to tm_defines lists.  Add #undefs
	where now necessary to prevent redefinition warnings.

	* config/h8300/coff.h: New file split out of...
	* config/h8300/elf.h: ...here.
	* config/m68k/hp320base.h: New file split out of...
	* config/m68k/hp320.h: ...here.
	* config/rs6000/lynxbase.h: New file split out of...
	* config/rs6000/lynx.h: ...here.

	* config/m68k/hp310g.h, config/m68k/hp320g.h, config/m68k/hpux7.h
	* config/m68k/m68k-coff.h, config/mips/openbsd-be.h: Delete file.

	* config/sol2.h: Remove #if 0-ed #include of sys/mman.h.
	* config/m68k/m68kelf.h: Remove commented out #include of m68k/sgs.h.
	* config/mcore/mcore.h: Don't include hwint.h nor machmode.h.
	Remove unnecessary #ifndef.
	* config/s390/s390.h: Prefix #include of s390/fixdfdi.h
	[under IN_LIBGCC2] with config/.

From-SVN: r70651
2003-08-21 17:27:29 +00:00
Mark Mitchell 4b0d3cbe3e re PR c++/11946 (fun and merriment with enums as function arguments)
PR c++/11946
	* convert.c (convert_to_integer): Use CONVERT_EXPR (instead of
	NOP_EXPR) when necessary.
	* c-common.c (c_common_signed_or_unsigned_type): Correctly handle
	types with precisions other than those given by native machine
	modes.

	PR c++/11684
	* cp-tree.h (grok_op_properties): Change prototype.
	* decl.c (grok_op_properties): Add complain parameter.
	(grokfndecl): Pass it.
	* pt.c (tsubst_decl): Adjust accordingly.

	PR c++/10926
	* decl.c (start_method): Return immediately if push_template_decl
	does not like the declaration.
	* pt.c (push_template_decl_real): Disallow member template
	destructors.

	PR c++/11036.C
	* cp-tree.h (add_binding): Add prototype.
	* class.c (add_method): Set TYPE_HAS_DESTRUCTOR if appropriate.
	(maybe_warn_about_overly_private_class): Use
	CLASSTYPE_DESTRUCTORS.
	(pushclass): Adjust call to set_identifier_type_value.
	* decl.c (add_binding): Give it external linkage.
	(push_local_binding): Adjust call to add_binding.
	(push_class_binding): Likewise.
	(set_identifier_type_value_with_scope): Change prototype.  Use
	add_binding for global bindings.
	(set_identifier_type_value): Adjust accordingly.
	(pushtag): Likewise.
	(pushdecl): Use set_identifier_type_value, not
	set_identifier_type_value_with_scope.
	(pushdecl_namespace_level): Adjust calls to
	SET_IDENTIFIER_TYPE_VALUE to pass a DECL.
	(pushdecl_class_level): Likewise.
	(lookup_tag): Use select_decl.
	(select_decl): Improve comment.
	(record_builtin_type): Do not call pushdecl.
	(cxx_init_decl_processing): Do not call xref_tag for bad_alloc.
	(cp_finish_decl): Adjust call to set_identifier_type_value.
	(check_elaborated_type_specifier): Improve checks for invalid uses
	of typedefs.
	(xref_tag): Adjust call to check_elaborated_type_specifier.
	* decl2.c (grokclassfn): Do not set TYPE_HAS_DESTRUCTOR.
	* name-lookup.c (set_namespace_binding): Use add_binding.
	* parser.c (cp_parser_simple_type_specifier): Return a TYPE_DECL,
	rather than an IDENTIFIER_NODE, to represent built-in types, if
	requested by the caller.
	(cp_parser_postfix_expression): Adjust call.
	(cp_parser_type_specifier): Likewise.
	(cp_parser_elaborated_type_specifier): Adjust call to
	check_elaborated_type_specifier.
	* typeck2.c (build_functional_cast): Do not perform name lookups.

	PR c++/10717
	* decl.c (expand_static_init): Remove unncessary code.

	PR c++/10926
	* g++.dg/template/dtor2.C: New test.

	PR c++/11684
	* g++.dg/template/operator1.C: New test.
	* g++.dg/parse/operator4.C: New test.

	PR c++/11946.C
	* g++.dg/expr/enum1.C: New test.
	* gcc.dg/c99-bool-1.c: Remove bogus warning.

	PR c++/11036.C
	* g++.dg/parse/elab2.C: New test.
	* g++.dg/parse/typedef4.C: Change error message.
	* g++.old-deja/g++.robertl/eb133.C: Remove bogus error markers.
	* g++.old-deja/g++.robertl/eb133a.C: Remove bogus error markers.
	* g++.old-deja/g++.robertl/eb133b.C: Remove bogus error markers.

From-SVN: r70593
2003-08-20 07:06:47 +00:00
John David Anglin 629106636a pa.c (update_total_code_bytes): Use new macro IN_NAMED_SECTION_P.
* pa.c (update_total_code_bytes): Use new macro IN_NAMED_SECTION_P.
	(attr_length_millicode_call): Likewise.
	(attr_length_call): Likewise.  Revise some maximum insn lengths.
	(attr_length_indirect_call): Likewise.
	(output_call): Fix thinko that added extra nop.
	* pa.h (IN_NAMED_SECTION_P): Define.

From-SVN: r70241
2003-08-08 02:57:48 +00:00
Kazu Hirata c120724327 fptr.c: Fix comment typos.
* config/pa/fptr.c: Fix comment typos.
	* config/pa/pa-64.h: Likewise.
	* config/pa/pa.c: Likewise.
	* config/pa/pa.h: Likewise.
	* config/rs6000/603.md: Likewise.
	* config/rs6000/7xx.md: Likewise.
	* config/rs6000/darwin.h: Likewise.
	* config/rs6000/freebsd.h: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rs6000/rs6000.md: Likewise.
	* config/rs6000/spe.h: Likewise.

From-SVN: r68947
2003-07-05 00:08:11 +00:00
Neil Booth 04df67304a sol2.h, [...]: Use c_dialect_ macros.
* config/sol2.h, config/alpha/alpha.h, config/alpha/linux.h,
	config/i386/i386-interix.h, config/ia64/hpux.h, config/mips/iris6.h,
	config/mips/linux.h, config/mips/mips.h, config/pa/pa-hpux.h,
	config/pa/pa-hpux10.h, config/pa/pa-hpux11.h, config/pa/pa-pro-end.h,
	config/pa/pa.h, config/pa/rtems.h: Use c_dialect_ macros.

From-SVN: r68763
2003-07-01 05:45:19 +00:00
Roger Sayle 06f31100d2 rtl.h (STORE_FLAG_VALUE): Remove default definition from here.
* rtl.h (STORE_FLAG_VALUE): Remove default definition from here.
	* defaults.h (STORE_FLAG_VALUE): Move default definition to here.
	* doc/tm.texi (STORE_FLAG_VALUE): Document the default value.

	* config/alpha/alpha.h (STORE_FLAG_VALUE): Remove definition.
	* config/arc/arc.h (STORE_FLAG_VALUE): Likewise.
	* config/arm/arm.h (STORE_FLAG_VALUE): Likewise.
	* config/cris/cris.h (STORE_FLAG_VALUE): Likewise.
	* config/i370/i370.h (STORE_FLAG_VALUE): Likewise.
	* config/i386/i386.h (STORE_FLAG_VALUE): Likewise.
	* config/i960/i960.h (STORE_FLAG_VALUE): Likewise.
	* config/ia64/ia64.h (STORE_FLAG_VALUE): Likewise.
	* config/ip2k/ip2k.h (STORE_FLAG_VALUE): Likewise.
	* config/m32r/m32r.h (STORE_FLAG_VALUE): Likewise.
	* config/mcore/mcore.h (STORE_FLAG_VALUE): Likewise.
	* config/mips/mips.h (STORE_FLAG_VALUE): Likewise.
	* config/mmix/mmix.h (STORE_FLAG_VALUE): Likewise.
	* config/ns32k/ns32k.h (STORE_FLAG_VALUE): Likewise.
	* config/pa/pa.h (STORE_FLAG_VALUE): Likewise.
	* config/pdp11/pdp11.h (STORE_FLAG_VALUE): Likewise.
	* config/sh/sh.h (STORE_FLAG_VALUE): Likewise.
	* config/sparc/sparc.h (STORE_FLAG_VALUE): Likewise.
	* config/v850/v850.h (STORE_FLAG_VALUE): Likewise.
	* config/xtensa/xtensa.h (STORE_FLAG_VALUE): Likewise.

Co-Authored-By: Zack Weinberg <zack@codesourcery.com>

From-SVN: r67957
2003-06-14 21:47:45 +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
John David Anglin 78cabff8bd pa.h (ASM_OUTPUT_SKIP, [...]): Cast `SIZE' and `ALIGNED' parameters to unsigned HOST_WIDE_INT.
* pa.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_COMMON,
	ASM_OUTPUT_ALIGNED_LOCAL): Cast `SIZE' and `ALIGNED' parameters to
	unsigned HOST_WIDE_INT.
	* pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMOM, ASM_OUTPUT_ALIGNED_LOCAL):
	Likewise.
	* pa64-hpux.h (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL):
	Likewise.

From-SVN: r67570
2003-06-06 21:10:59 +00:00
Kaveh R. Ghazi ad929cd5ab i370.c (mvs_function_name_length): Fix signed/unsigned warnings.
* i370.c (mvs_function_name_length): Fix signed/unsigned warnings.
	* i370.h (mvs_function_name_length): Likewise.
	* i960.h (CONSTANT_ALIGNMENT): Likewise.
	* mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
	* pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
	* pa.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
	* rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Delete unused
	variable.

From-SVN: r67458
2003-06-04 17:53:07 +00:00
Daniel Jacobowitz 7816bea0e2 config.gcc: Reorganize --with-cpu logic.
* config.gcc: Reorganize --with-cpu logic.  Set
	configure_default_options according to the default CPU, --with-cpu,
	--with-arch, --with-tune, --with-schedule, --with-abi, and
	--with-float.  Check for legal values of various options.
	* configure.in: Define configure_default_options in configargs.h.
	* configure: Regenerated.
	* config/mips/mips.h (TARGET_DEFAULT_ARCH_P)
	(TARGET_DEFAULT_FLOAT_P): New macros.
	* gcc.c (do_option_spec): New function.
	(struct default_spec, option_default_specs): New.
	(main): Call do_option_spec.
	* config/alpha/alpha.h, config/arm/arm.h, config/i386/i386.h,
	config/mips/mips.h, config/pa/pa.h, config/rs6000/rs6000.h,
	config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Define.

	* doc/install.texi: Update --with-cpu documentation.  Mention
	--with-arch, --with-schedule, --with-tune, --with-abi, and
	--with-float.
	* doc/tm.texi (Driver): Document OPTION_DEFAULT_SPECS.

From-SVN: r67457
2003-06-04 17:50:44 +00:00
Kaveh R. Ghazi 4a0a75dd44 alpha.c (print_operand_address, [...]): Use string concatentation on HOST_WIDE_INT_PRINT_* format specifier to collapse...
* alpha.c (print_operand_address, alpha_start_function,
	unicosmk_output_ssib): Use string concatentation on
	HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
	function calls into one.
	* arm.c (arm_print_operand): Likewise.
	* cris.c (cris_asm_output_mi_thunk): Likewise.
	* frv.c (frv_asm_output_mi_thunk): Likewise.
	* ia64.c (ia64_print_operand, process_set): Likewise.
	* m68k.c (m68k_output_function_epilogue, m68k_output_mi_thunk):
	Likewise.
	* mips/iris5gas.h (PUT_SDB_SIZE): Likewise.
	* mips.h (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise.
	* pa.c (output_div_insn, pa_asm_output_mi_thunk): Likewise.
	* pa.h (PRINT_OPERAND_ADDRESS): Likewise.
	* rs6000.c (rs6000_va_start, print_operand_address): Likewise.
	* s390.c (s390_assemble_integer): Likewise.
	* sparc.c (sparc_flat_function_prologue,
	sparc_flat_function_epilogue): Likewise.
	* stormy16.c (xstormy16_print_operand_address, xstormy16_print_operand): Likewise.
	* vax.c (vax_output_mi_thunk): Likewise.

From-SVN: r66876
2003-05-16 18:57:46 +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
Jan Hubicka 58e15542fc Mon May 12 11:32:53 CEST 2003 Jan Hubicka <jh@suse.cz>
* expr.h (assemble_static_space): Update prototype.
	* output.h (assemble_zeros, output_constant): Likewise.
	* elfos.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): Make it 64bit clean
	* alpha.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASK_OUTPUT_LOCAL): Make
	it 64bit clean.
	* elf.h (ASM_OTUPUT_SKIP): Likewise.
	* unicosmk.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMM): Likewise.
	* arm.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
	Expect HOST_WIDE_INT operand.
	* aout.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
	Expect HOST_WIDE_INT operand.
	* unknown-elf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
	Expect HOST_WIDE_INT operand.
	* avr.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP): Expect
	HOST_WIDE_INT operand.
	* c4x.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP,
	ASM_OUTPUT_BSS): Expect HOST_WIDE_INT operand.
	* aout.h (ASM_OTUPUT_SKIP): Likewise.
	* cris.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
	* darwin.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON): Likewise.
	* dsp16xx.h (ASM_OTUPUT_SKIP): Likewise.
	* frv.h (ASM_OTUPUT_SKIP): Likewise.
	* h8300.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_LOCAL): Likewise.
	* 370.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
	Make it 64bit
	clean.
	* att.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand.
	* bsd.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
	Make it 64bit clean.
	* darwin.h (ASM_OUTPUT_SKIP): Make it 64bit clean..
	* sco5.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Expect
	HOST_WIDE_INT operand
	* svr3gas.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
	Expect HOST_WIDE_INT operand
	* sysv3.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand
	* i960.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON,
	ASM_OUTPUT_ALIGNED_LOCAL): Expect HOST_WIDE_INT operand
	* ip2k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
	Likewise.
	* m32r.h (ASM_OUTPUT_COMMON): Likewise.
	* 3b1.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
	Likewise.
	* amix.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
	* crds.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
	* hp320.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
	ASM_OUTPUT_SKIP): Likewise.
	* m68k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
	Likewise.
	* m68kelf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
	ASM_OUTPUT_SKIP): Likewise.
	* m68kv4.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
	ASM_OUTPUT_SKIP): Likewise.
	* mot3300.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
	* netbsd-elf.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
	ASM_OUTPUT_SKIP): Likewise.
	* sgs.h (ASM_OUTPUT_SKIP): Likewise.
	* tower-as.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
	ASM_OUTPUT_SKIP): Likewise.
	* m88k.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP):
	Likewise.
	* mcore.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_BSS, ASM_OUTPUT_SKIP): Likewise.
	* iris.h (ASM_OUTPUT_LOCAL): Likewise.
	* mips.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
	* ns32k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
	ASM_OUTPUT_SKIP): Make it 64bit clean.
	* pa-pro-end.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL):
	Make it 64bit clean.
	* pa.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL,
	ASM_OUTPUT_SKIP): Make it 64bit clean.
	* hpux.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL): Make it
	64bit clean.
	* romp.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
	HOST_WIDE_INT argument
	* s390.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT argument.
	* sh.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
	HOST_WIDE_INT argument
	* sol2.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
	* sparc.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): HOST_WIDE_INT argument
	* svr3.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
	* vax.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
	HOST_WIDE_INT argument
	* vaxv.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
	* xtensa.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
	* varasm.c (asm_output_bss, asm_output_aligned_bss,
	asm_emit_uninitialized, assemble_zeros, assemble_static_space):
	HOST_WIDE_INT argument

From-SVN: r66713
2003-05-12 09:51:36 +00:00
DJ Delorie c409ea0d30 toplev.c (target_options): Add value field.
* toplev.c (target_options): Add value field.
(set_target_switch): Handle target options with	values.
* doc/tm.texi: Document how fixed vs variable target
options work.
* config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
config/c4x/c4x.h, config/cris/aout.h, config/cris/cris.h,
config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
config/frv/frv.h, config/i386/i386.h, config/ia64/ia64.h,
config/m32r/m32r.h, config/m68hc11/m68hc11.h,
config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
config/mips/mips.h, config/mmix/mmix.h, config/pa/pa.h,
config/rs6000/rs6000.h, config/rs6000/sysv4.h,
config/s390/s390.h, config/sparc/sparc.h, config/v850/v850.h:
Add value initializer to target options.

From-SVN: r65756
2003-04-17 19:18:58 -04:00
John David Anglin c328adfa0e pa-protos.h (function_arg): Remove last argument.
PR/10271
	* pa-protos.h (function_arg): Remove last argument.
	* pa.c (function_arg): Likewise.  Use CUMULATIVE_ARGS struct instead.
	* pa.h (struct hppa_args): Add member incoming.
	(INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Initialize
	member incoming.
	(FUNCTION_ARG): Revise call to function_arg.
	(FUNCTION_INCOMING_ARG): Delete.

From-SVN: r65687
2003-04-16 17:06:50 +00:00
John David Anglin 685d0e0775 re PR target/10062 (internal compiler error: in output_cbranch, at config/pa/pa.c: 5515)
PR 10062
	* config/pa/pa-hpux.h (TARGET_HPUX_UNWIND_LIBRARY): Redefine.
	* pa-protos.h (output_lbranch): New prototype.
	* pa.c (compute_frame_size): Change size of the frame marker on the
	64-bit ports to 48 bytes.
	(pa_output_function_prologue): Document why SAVE_SP is set.
	(hppa_expand_prologue): Save previous stack pointer into frame marker
	on targets which use the hpux unwind library.
	(output_cbranch): Use output_lbranch.
	(output_lbranch): New function to output long unconditional branches.
	* pa.h (TARGET_HPUX_UNWIND_LIBRARY): Define.
	(STACK_POINTER_OFFSET): Update offset for 48-byte frame marker on
	64-bit ports.
	* pa.md (jump): Use output_lbranch.
	(allocate_stack): New expander for dynamic stack allocation.

From-SVN: r64570
2003-03-19 04:41:48 +00:00
Andreas Jaeger 00530a212b c-cppbuiltin.c (cb_register_builtins): Define LP64 builtins for LP64 targets.
* c-cppbuiltin.c (cb_register_builtins): Define LP64 builtins for
        LP64 targets.

        * doc/cpp.texi (Common Predefined Macros): Document __LP64__ and
        _LP64.

        * config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Do not define
        _LP64 macros here.
        * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Likewise.

        * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove call to
        NETBSD_OS_CPP_BUILTINS_LP64.
        * config/sh/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.
        * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.

        * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_LP64): Remove.

From-SVN: r64259
2003-03-12 21:30:06 +01:00
John David Anglin 95f3f59efd function.c (STACK_ALIGNMENT_NEEDED): New macro.
* function.c (STACK_ALIGNMENT_NEEDED): New macro.  Default to 1.
	(assign_stack_local_1): Perform overall stack alignment only when
	STACK_ALIGNMENT_NEEDED is non-zero.
	* doc/tm.texi (STACK_ALIGNMENT_NEEDED): Document.

	* pa.c (compute_frame_size): Rename fsize to size.  Account for
	alignment to a word boundary before general register save block.  Only
	account for double-word alignment before floating point register save
	block if one or more are saved.  Don't allocate space for %r3 when
	frame pointer is needed.
	(hppa_expand_prologue): Include alignment to word boundary in local
	frame size.
	* pa.h (STARTING_FRAME_OFFSET): Define to 8 on both 32 and 64-bit ports.
	(STACK_ALIGNMENT_NEEDED): Define.

From-SVN: r63771
2003-03-04 06:20:17 +00:00
John David Anglin b0d7ef9afd pa.c (compute_frame_size): Don't assume PREFERRED_STACK_BOUNDARY is 8 * STACK_BOUNDARY.
* pa.c (compute_frame_size): Don't assume PREFERRED_STACK_BOUNDARY
	is 8 * STACK_BOUNDARY.
	* pa.h (PREFERRED_STACK_BOUNDARY): Change to 128 on 64-bit port.

From-SVN: r63473
2003-02-26 16:29:22 +00: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
John David Anglin 4af6a06372 som.h (SUPPORTS_WEAK, [...]): Define.
* som.h (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY,
	ASM_WEAKEN_LABEL, GTHREAD_USE_WEAK): Define.
	* pa.h (TARGET_SOM_SDEF): Define.
	* pa-hpux11.h (TARGET_SOM_SDEF): Define.
	* config/os/hpux/os_defines.h (_GLIBCPP_GTHREAD_USE_WEAK): Define for
	__hppa__.

From-SVN: r61372
2003-01-16 00:34:45 +00:00
Zack Weinberg 4977bab6ed Merge basic-improvements-branch to trunk
From-SVN: r60174
2002-12-16 18:23:00 +00:00
John David Anglin d6567b3adf pa.h (BIGGEST_ALIGNMENT): Change 32-bit value to 64 bits.
* pa.h (BIGGEST_ALIGNMENT): Change 32-bit value to 64 bits.
	(MAX_PARM_BOUNDARY, STACK_BOUNDARY): Express in terms of
	BIGGEST_ALIGNMENT.
	(PREFERRED_STACK_BOUNDARY): Express in terms of STACK_BOUNDARY.
	(FUNCTION_BOUNDARY): Express in terms of BITS_PER_WORD.

From-SVN: r60056
2002-12-12 02:44:02 +00:00
John David Anglin bf97847b37 pa32-linux.h (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL): Move define.
* pa32-linux.h (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL): Move define.
	* pa.h (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL): To here.

From-SVN: r59879
2002-12-06 02:54:38 +00:00
John David Anglin 44571d6e46 pa-protos.h (function_value): New prototype.
* pa-protos.h (function_value): New prototype.
	* pa.c (function_value): Use a PARALLEL to return small aggregates on
	TARGET_64BIT.
	* pa.h (FUNCTION_VALUE): Use function_value.
	* pa.md (call_value_internal_symref, call_value_internal_reg_64bit,
	call_value_internal_reg, sibcall_value_internal_symref,
	sibcall_value_internal_symref_64bit): Remove =rf constraint on return
	value.

From-SVN: r59555
2002-11-27 02:34:15 +00:00
John David Anglin 581d94049b pa.h (STARTING_FRAME_OFFSET): Change offset for TARGET_64BIT to 16.
* pa.h (STARTING_FRAME_OFFSET): Change offset for TARGET_64BIT to 16.
	* config.gcc (hppa*64*-*-linux*): Shorten lines in tm_file define.
	(hppa*64*-*-hpux11*): Likewise.  Use elfos.h with gas.
	* pa.c (output_millicode_call): Use symbol difference rather than
	$PIC_pcrel$0 when using HP assembler.
	* pa64-hpux.h (TARGET_GAS): Define to 1 or 0 depending on whether or
	not elfos.h (i.e., gas) is being used.
	(ASM_FILE_START, STRING_ASM_OP, TEXT_SECTION_ASM_OP,
	DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_COMMON,
	ASM_OUTPUT_ALIGNED_LOCAL, GLOBAL_ASM_OP, ASM_DECLARE_FUNCTION_NAME,
	ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL,
	ASM_OUTPUT_INTERNAL_LABEL, ASM_GENERATE_INTERNAL_LABEL): Define when
	using elfos.h.
	(TARGET_ASM_GLOBALIZE_LABEL): Undefine when using elfos.h.
	(DWARF2_ASM_LINE_DEBUG_INFO): Delete.
	(ASM_FILE_START): Add standard .SPACE and .SUBSPA defines when not
	using elfos.h.
	(TEXT_SECTION_ASM_OP, READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
	BSS_SECTION_ASM_OP): New HP style defines when not using elfos.h.
	(TARGET_ASM_NAMED_SECTION, MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL):
	Don't define when not using elfos.h.
	(ASM_DECLARE_RESULT): Don't define.
	* doc/install.texi (hppa*-hp-hpux*): Remove statement that HP assembler
	doesn't work on hppa64-hp-hpux11.
	(hppa*-hp-hpux11): Update.

From-SVN: r58967
2002-11-10 01:14:48 +00:00
John David Anglin a02aa5b099 pa-linux.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
* pa-linux.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
	* pa-protos.h (attr_length_millicode_call, attr_length_call,
	pa_init_machine_status): Declare new global functions.
	* pa.c (void copy_fp_args, length_fp_args, get_plabel): Declare and
	implement new functions.
	(attr_length_millicode_call, attr_length_call): Implement.
	(total_code_bytes): Change type to long.
	(pa_output_function_prologue): Compute total_code_bytes on TARGET_64BIT.
	Reset counter if flag_function_sections.
	(output_deferred_plabels): Set output alignment to 3 for TARGET_64BIT.
	(output_cbranch): Move call to gen_label_rtx.
	(output_millicode_call): Rewrite adding long TARGET_64BIT call, expose
	delay slot in all variants, shorten pc-relative calls.
	(output_call): Rewrite adding long TARGET_64BIT call, improved delay
	slot usage and exposure, various new call variants, and shortened
	sequences for some variants on TARGET_PA_20.
	Miscellaneous format changes.
	* pa.h (total_code_bytes): Change type to long.
	(MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_LONG_ABS_CALL,
	TARGET_LONG_PIC_SDIFF_CALL, TARGET_LONG_PIC_PCREL_CALL): Define.
	(TARGET_SWITCHES): Add "-mlong-calls" and "-mno-long-calls" options.
	(EXTRA_CONSTRAINT, GO_IF_LEGITIMATE_ADDRESS,
	LEGITIMIZE_RELOAD_ADDRESS): Don't use long floating point loads and
	stores on TARGET_ELF32.
	*pa.md (define_delay): Allow insns in delay on TARGET_PORTABLE_RUNTIME.
	(unnamed patterns for mulsi3, divsi3, udivsi3, modsi3, umodsi3 and
	canonicalize_funcptr_for_compare expanders): Calculate attribute length
	attr_length_millicode_call().
	(call_internal_symref, call_value_internal_symref): Clobber register 1.
	Calculate attribute length using attr_length_call().
	(call_internal_reg_64bit, call_value_internal_reg_64bit): Move gp load
	to delay slot.
	(sibcall, sibcall_value): Rewrite.
	(sibcall_internal_symref, sibcall_value_internal_symref): Clobber
	register 1.  Use attr_length_call().
	(sibcall_internal_symref_64bit, sibcall_value_internal_symref_64bit):
	New patterns.
	(unamed pattern for canonicalize_funcptr_for_compare): Rewrite.
	* som.h (MEMBER_TYPE_FORCES_BLK): Define.
	* t-pa64 (TARGET_LIBGCC2_CFLAGS): Add "-mlong-calls".
	* doc/invoke.texi (mlong-calls): Document.

From-SVN: r58665
2002-10-31 03:13:44 +00:00
Richard Henderson c590b62588 target.h (struct gcc_target): Line wrap.
* target.h (struct gcc_target): Line wrap.

	* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Static.
	(TARGET_ASM_OUTPUT_MI_THUNK): Define here...
	* config/alpha/alpha.h: ... not here.
	* config/alpha/alpha-protos.h: Update.

	* config/arm/arm.c, config/arm/arm.h, config/arm/arm-protos.h
	config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
	config/frv/frv-protos.h, config/frv/frv.c, config/frv/frv.h,
	config/i386/i386-protos.h, config/i386/i386.c, config/i386/openbsd.h,
	config/i386/unix.h, config/i960/i960-protos.h, config/i960/i960.c,
	config/i960/i960.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
	config/ia64/ia64.h, config/m68k/linux.h, config/m68k/m68k-protos.h,
	config/m68k/m68k.c, config/m68k/netbsd-elf.h, config/m68k/openbsd.h,
	config/mmix/mmix-protos.h, config/mmix/mmix.c, config/mmix/mmix.h,
	config/pa/pa-protos.h, config/pa/pa.c, config/pa/pa.h,
	config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h,
	config/sparc/openbsd.h, config/sparc/sparc-protos.h,
	config/sparc/sparc.c, config/sparc/sparc.h,
	config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
	config/stormy16/stormy16.h: Similarly.

	* config/m68k/m68k.c (m68k_output_mi_thunk): Replicate mnemonic
	selection logic from call patterns.

From-SVN: r58340
2002-10-20 15:37:14 -07:00
Mark Mitchell 483ab821df target-def.h (TARGET_ASM_OUTPUT_MI_THUNK): Default to NULL.
* target-def.h (TARGET_ASM_OUTPUT_MI_THUNK): Default to NULL.
	(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Likewise.
	(TARGET_ASM_OUT): Add them.
	* target.h (asm_out): Add output_mi_thunk and
	output_mi_vcall_thunk.
	* config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/arm/arm-protos.h (arm_output_mi_thunk): Declare.
	* config/arm/arm.c (arm_output_mi_thunk): Define.
	* config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/cris/cris.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/frv/frv.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/i386/i386-protos.h (x86_output_mi_thunk): Adjust
	prototype.
	(x86_output_mi_vcall_thunk): Declare.
	* config/i386/i386.c (override_options): Clear
	output_mi_vcall_thunk in 64-bit mode.
	(ix86_fntype_regparm): New function.
	(ix86_return_pops_args): Use it.
	(ia32_this_parameter): New function.
	(x86_output_mi_vcall_thunk): New function.
	(x86_output_mi_thunk): Use it
	* config/i386/unix.h (TARGET_ASM_OUTPUT_MI_THUNK): Adjust.
	(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Define.
	* config/i960/i960-protos.h (i960_output_mi_thunk): Declare.
	* config/i960/i960.c (i960_output_mi_thunk): New function.
	* config/i960/i960.h (ASM_OUTPUT_MI_THUNK): Adjust.
	* config/ia64/ia64-protos.h (ia64_output_mi_thunk): Declare.
	* config/ia64/ia64.c (ia64_output_mi_thunk): Define.
	* config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/m68k/m68k-protos.h (m68k_output_mi_thunk): New function.
	* config/m68k/linux.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/m68k/netbsd-elf.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/mmix/mmix.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/pa/pa.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/rs6000/sysv4.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/s390/s390-protos.h (s390_output_mi_thunk): Declare.
	* config/s390/s390.c (s390_output_mi_thunk): Define.
	* config/s390/s390.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/stormy16/stormy16.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/vax/vax-protos.h (vax_output_mi_thunk): Declare.
	* config/vax/vax.c (vax_output_mi_thunk): Define.
	* config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* doc/tm.texi: Adjust documentation.

From-SVN: r58293
2002-10-18 23:35:40 +00:00
Steve Ellcey 83eb95f995 config.gcc (hppa*64*-*-hpux11*): Check gnu_ld.
* config.gcc (hppa*64*-*-hpux11*): Check gnu_ld.
	* config/pa/pa.h (MASK_GNU_LD): New.
	(TARGET_GNU_LD): New.
	(TARGET_SWITCHES): New gnu-ld & no-gnu-ld flags.
	* config/pa/pa64-hpux.h (LINK_SPEC): Set based
	on gnu-ld and MASK_GNU_LD.

From-SVN: r57792
2002-10-03 21:46:59 +00:00
John David Anglin 7830ba7bc8 pa.c (hppa_encode_label): Don't drop '*' from function labels.
* pa.c (hppa_encode_label): Don't drop '*' from function labels.
	(pa_strip_name_encoding): Strip '@' and '*', in that order.
	* pa.h (ASM_OUTPUT_LABELREF): Output user_label_prefix except when
	there is a '*' prefix in NAME.

From-SVN: r57664
2002-09-30 19:52:45 +00:00
Kazu Hirata 43a88a8c88 elfos.h: Follow spelling conventions.
* config/elfos.h: Follow spelling conventions.
	* config/alpha/alpha.h: Likewise.
	* config/arc/arc.h: Likewise.
	* config/arm/arm.md: Likewise.
	* config/avr/avr.h: Likewise.
	* config/cris/cris.md: Likewise.
	* config/d30v/d30v.h: Likewise.
	* config/frv/frv.c: Likewise.
	* config/frv/frv.h: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/h8300/h8300.h: Likewise.
	* config/h8300/h8300.md: Likewise.
	* config/i386/cygwin.h: Likewise.
	* config/i386/i386.h: Likewise.
	* config/i386/sysv3.h: Likewise.
	* config/i960/i960.h: Likewise.
	* config/ia64/ia64.h: Likewise.
	* config/ia64/ia64.md: Likewise.
	* config/ip2k/ip2k.h: Likewise.
	* config/m32r/m32r.h: Likewise.
	* config/m68k/m68k.h: Likewise.
	* config/m88k/m88k.h: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mcore/mcore.h: Likewise.
	* config/mcore/mcore.md: Likewise.
	* config/mips/mips.h: Likewise.
	* config/mmix/mmix.h: Likewise.
	* config/mmix/mmix.md: Likewise.
	* config/ns32k/netbsd.h: Likewise.
	* config/ns32k/ns32k.h: Likewise.
	* config/ns32k/ns32k.md: Likewise.
	* config/pa/pa.h: Likewise.
	* config/romp/romp.h: Likewise.
	* config/rs6000/rs6000.h: Likewise.
	* config/rs6000/rs6000.md: Likewise.
	* config/sparc/sparc.h: Likewise.
	* config/stormy16/stormy-abi: Likewise.
	* config/stormy16/stormy16.h: Likewise.
	* config/vax/vax.h: Likewise.

From-SVN: r57468
2002-09-24 12:49:05 +00:00