Commit Graph

81 Commits

Author SHA1 Message Date
Jakub Jelinek 7700825281 Makefile.def (target_modules): Add libssp.
* Makefile.def (target_modules): Add libssp.
	* configure.in (target_libraries): Add target-libssp.
	* configure: Rebuilt.
	* Makefile.in: Rebuilt.
gcc/
	* gcc.c (LINK_SSP_SPEC): Define.
	(link_ssp_spec): New variable.
	(LINK_COMMAND_SPEC): Add %(link_ssp).
	(static_specs): Add link_ssp_spec.
	* configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
	* configure: Rebuilt.
	* config.in: Rebuilt.

	* config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
	* config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
	* config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
	* config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
	* config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
	If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
	-0x7008(2) instead of reading __stack_chk_guard variable.
	* config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
	number.
	(UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
	(stack_protect_set, stack_protect_test): Use *_tls* patterns
	if TARGET_THREAD_SSP_OFFSET is defined.
	(stack_tls_protect_set_si, stack_tls_protect_set_di,
	stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.

	Revert:
	2005-06-27  Richard Henderson  <rth@redhat.com>
	* libgcc-std.ver (GCC_4.1.0): New.
	* libgcc.h (__stack_chk_guard): Declare.
	(__stack_chk_fail, __stack_chk_fail_local): Declare.
	* libgcc2.c (L_stack_chk, L_stack_chk_local): New.
	* mklibgcc.in (lib2funcs): Add them.

From-SVN: r101531
2005-07-02 10:52:21 +02:00
R. Kelley Cook 39d14ddaac Update FSF address.
From-SVN: r101314
2005-06-25 01:22:41 +00:00
Aldy Hernandez f8103b9fe2 re PR middle-end/17961 (ICE for operation on small vector with altivec enabled)
PR 17961
	* config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Remove.
	* config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Remove vector check.
	* testsuite/gcc.dg/simd-3.c: New.

From-SVN: r100820
2005-06-10 17:04:09 +00:00
Alan Modra 71625f3dc6 linux.h (NO_PROFILE_COUNTERS): Define.
* config/rs6000/linux.h (NO_PROFILE_COUNTERS): Define.
	* config/rs6000/linux64.h (NO_PROFILE_COUNTERS): Define as 1.
	* config/rs6000/rs6000.c (output_function_profiler): Obey
	NO_PROFILE_COUNTERS.  Handle TARGET_SECURE_PLT.  Use "bcl 20,31"
	for -fPIC.  Delete save_lr and substitute its value into strings.

From-SVN: r100814
2005-06-10 11:14:59 +09:30
Aldy Hernandez 858081ad6b linux64.h: Remove MASK_PROFILE_KERNEL, and TARGET_PROFILE_KERNEL.
* config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
	TARGET_PROFILE_KERNEL.

	* config/rs6000/rs6000.c (output_profile_hook): Add comment to
	TARGET_PROFILE_KERNEL use.

From-SVN: r99314
2005-05-06 13:40:30 +00:00
Aldy Hernandez 78f5898b95 config.gcc: Add .opt magic for the rs6000 ports.
2005-05-05  Aldy Hernandez  <aldyh@redhat.com>

        * config.gcc: Add .opt magic for the rs6000 ports.

        * doc/invoke.texi: Document -mabi= option properly.  Document
        -misel and -mno-sel.  Document -mspe and -mno-spe.  Document
        -mvrsave and -mno-vrsave.  Document deprecation of -mspe= and
        -misel=.

        * config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
        SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
        TARGET_XL_COMPAT.

        * config/rs6000/aix.opt: New.
        * config/rs6000/aix41.opt: New.
        * config/rs6000/aix64.opt: New.
        * config/rs6000/darwin.opt: New.
        * config/rs6000/linux64.opt: New.
        * config/rs6000/rs6000.opt: New.
        * config/rs6000/sysv4.opt: New.

        * config/rs6000/sysv4.h: Delete definitions of MASK_* and
        associated TARGET_*.  Remove SUBTARGET_OPTIONS,
        SUBTARGET_SWITCHES.
        Define TARGET_USES_SYSV4_OPT.
        * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
        * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES.  Define
        TARGET_USES_AIX64_OPT.
        * config/rs6000/aix51.h: Same.
        * config/rs6000/aix52.h: Same.
        * config/rs6000/darwin.h: Remove
        SUBTARGET_SWITCHES.  Use TARGET_ALTIVEC_VRSAVE instead of
        rs6000_altivec_vrsave.
        * config/rs6000/linux64.h: Use
        rs6000_explicit_options.  Remove EXTRA_SUBTARGET_SWITCHES.

        * config/rs6000/rs6000.c: Remove definitions of
        rs6000_sched_restricted_insns_priority,
        rs6000_long_double_size_string, rs6000_altivec_vrsave,
        rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
        rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
        rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
        rs6000_alignment_string.  Define rs6000_explicit_options.
        (rs6000_parse_abi_options): Remove.
        (rs6000_parse_alignment_option): Remove.
        (rs6000_parse_float_gprs_option): Remove.
        (rs6000_handle_option): New.  Define TARGET_HANDLE_OPTION.  Define
        TARGET_DEFAULT_TARGET_FLAGS.
        (rs6000_override_options): Revamp to use new .opt machinery.

        * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
        of new .opt machinery.  Remove target_flags.  Redefine
        TARGET_MFCRF and TARGET_POWERPC64.  Remove TARGET_SWITCHES,
        SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
        rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
        rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
        rs6000_longcall_switch, rs6000_default_long_calls,
        rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
        rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
        TARGET_ALTIVEC_VRSAVE.

From-SVN: r99284
2005-05-05 16:54:25 -04:00
Alan Modra 1334b570e3 re PR target/21098 (.note.GNU-stack emitted)
PR target/21098
	* config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
	* config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.

From-SVN: r98390
2005-04-19 16:37:11 +09:30
Alan Modra 84dcde01bd re PR target/16952 (GCC for powerpc cross target with -mrelocatable reports error)
PR target/16952
	* config/rs6000/rs6000.c (rs6000_assemble_integer): Replace
	#ifdef RELOCATABLE_NEEDS_FIXUP with if.
	* config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Define in terms
	of target_flags_explicit.
	* config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Ditto for biarch
	case.  Define as 0 for non-biarch.

From-SVN: r91605
2004-12-02 12:51:28 +10:30
Zack Weinberg 93a27b7bad dbxout.c: Include obstack.h.
* dbxout.c: Include obstack.h.
	(ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in
	default definition.
	(ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR):
	Default-define here.
	(DBX_CONTIN_LENGTH): Move definition with others.
	(DBX_FINISH_STABS): New target macro.
	(current_sym_code, current_sym_value, current_sym_addr)
	(current_sym_nchars, CHARS, dbxout_continue)
	(print_int_cst_octal, print_octal, print_wide_int)
	(dbxout_prepare_symbol, dbxout_finish_symbol): Delete.
	(stabstr_ob, stabstr_last_contin_point): New variables.
	(NUMBER_FMT_LOOP): New improper macro.
	(dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label)
	(dbxout_stab_value_label_diff, dbxout_stab_value_internal_label)
	(dbxout_stab_value_internal_label_diff, dbxout_stabd)
	(dbxout_begin_stabn, dbxout_begin_stabn_sline)
	(dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc)
	(dbxout_begin_complex_stabs, dbxout_finish_complex_stabs)
	(stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O)
	(stabstr_continue, DECL_ACCESSIBILITY_CHAR)
	New functions and/or proper function-like macros.
	(CONTIN): Use stabstr_continue, unconditionally.
	(get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED.
	(dbxout_init): Initialize stabstr_ob.  Check
	NO_DBX_MAIN_SOURCE_DIRECTORY.  Only write out the Ltext label
	if it was used.  Use the new interfaces.
	(dbxout_source_file): Remove file argument; always write to
	asm_out_file.  Use the new interfaces.
	(dbxout_type_method_1): Remove second argument which is always
	DECL_ASSEMBLER_NAME of the first argument.  Use the new interfaces.
	(dbxout_type_methods): Remove write-only variables.  Use the
	new interfaces.
	(dbxout_parms): Refactor to remove code duplicated in each of
	several successive if-else-if blocks.  Use the new interfaces.
	(dbxout_function_end, emit_bincl_stab, dbxout_end_source_file)
	(dbxout_source_line, dbxout_finish, dbxout_type_index)
	(dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name)
	(dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location)
	(dbxout_symbol_name, dbxout_reg_parms, dbxout_args)
	(dbx_output_lbrac, dbx_output_rbrac, dbxout_block):
	Use the new interfaces.
	* Makefile.in (dbxout.o): Update dependencies.

	* defaults.h: Don't define ASM_STABD_OP.
	* output.h: Prototype new dbxout_* interfaces.
	* system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL.
	* varasm.c: Don't define ASM_STABS_OP.
	(default_stabs_asm_out_constructor, default_stabs_asm_out_destructor):
	Use the new dbxout.c interfaces.  Call sorry if neither
	DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined.

	* xcoffout.h: Don't define ASM_STABS_OP.
	(DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS.
	(DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete.
	(NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define.
	(DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to
	do { ... } while (0) idiom.

	* config/alpha/alpha.c (num_source_filenames): Export.
	* config/alpha/alpha.h (num_source_filenames): Declare.
	(DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
	(SDB_OUTPUT_SOURCE_LINE): Add missing newline.
	* config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
	Always use .debugsym.  Update commentary.
	* config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
	(SDB_OUTPUT_SOURCE_LINE): Add missing newline.
	* config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC):
	Use new interfaces.
	* config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h.
	(macho_branch_islands): Use new interfaces.

	* doc/tm.texi: Update.

From-SVN: r89623
2004-10-27 01:29:42 +00:00
Zack Weinberg 3e487b219e dbxout.c (asmfile): Delete.
* dbxout.c (asmfile): Delete.  All uses changed to asm_out_file.
	(DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE):
	Default to 0.
	(dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined.
	When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit
	an internal label and an N_SLINE .stabn whose value is the
	difference between that label and the function entry label.
	(dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined,
	but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a
	label and an N_SO stab with an empty string referring to it.
	(dbx_output_lbrac, dbx_output_rbrac): Use if statement instead
	of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE.
	(dbxout_type_methods, dbxout_symbol): Remove #if 0 block.
	(dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this
	macro is never defined.
	* sdbout.c (sdbout_source_line_counter): Delete.
	(PUT_SDB_SRC_FILE): Delete.  Uses replaced with sole definition.
	(sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes
	only two arguments.
	* xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE.

	* config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs.
	* config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro
	definitions (identical to default).
	* config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
	* config/h8300/coff.h, config/pa/som.h, config/sh/elf.h:
	Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not
	DBX_OUTPUT_MAIN_SOURCE_FILE_END.
	* config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
	* config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h:
	Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE.
	* config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno.
	* config/alpha/alpha.c: Move declaration of num_source_filenames up.
	(alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE.
	(sym_lineno): Delete.
	(alpha_output_filename): Do not emit N_SOL stabs here.  Remove
	now-unused variable.
	(alpha_output_lineno): Delete.
	* config/mips/mips-protos.h: Don't prototype mips_output_lineno.
	* config/mips/mips.c (mips_output_filename): Don't use
	ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here.
	(mips_output_lineno): Delete.
	(mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE.
	* config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and
	SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE.
	* config/mips/mips.h: Likewise.  Don't define ASM_OUTPUT_FILENAME.
	* config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE.
	* config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE.
	* config/mmix/mmix.h: Likewise.
	* config/mmix/mmix.c (mmix_asm_output_source_line): Delete.
	* config/mmix/mmix-protos.h: Don't prototype it.
	* config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE;
	no need to #undef ASM_OUTPUT_SOURCE_LINE.
	* config/arm/aout.h: Remove RISCiX-specific definition of
	DBX_OUTPUT_MAIN_SOURCE_FILENAME.
	* config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not
	ASM_OUTPUT_SOURCE_LINE.
	* config/rs6000/rs6000.h: (ASM_OUTPUT_SOURCE_LINE): Rename
	DBX_OUTPUT_SOURCE_LINE.  Don't use current_function_func_begin_label.
	* config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END.

	* doc/tm.texi: Update.

From-SVN: r89357
2004-10-21 00:53:47 +00:00
Alan Modra c4ad648e16 linux.h: Formatting, whitespace.
* config/rs6000/linux.h: Formatting, whitespace.
	* config/rs6000/linux64.h: Likewise.
	* config/rs6000/rs6000-protos.h: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	(easy_vector_splat_const): Add fall thru comments.
	(output_vec_const_move): Likewise.

From-SVN: r88551
2004-10-05 22:13:58 +09:30
Alan Modra bf276e5c28 linux.h (TARGET_C99_FUNCTIONS): Define.
* config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
	(OS_MISSING_POWERPC64): Move, and comment.
	* config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
	(OS_MISSING_POWERPC64): Move, and comment.

From-SVN: r88440
2004-10-03 13:01:38 +09:30
David Edelsohn d962e7adc0 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
From-SVN: r88290
2004-09-29 11:19:56 -04:00
David Edelsohn 0a4f029430 linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
* config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.

        * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.

From-SVN: r87843
2004-09-22 00:05:12 -04:00
Kazu Hirata 19525b57d1 m32r.md, [...]: Fix comment typos.
* config/m32r/m32r.md, config/m68k/m68kelf.h,
	config/mcore/mcore.md, config/rs6000/linux64.h,
	config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
	typos.

From-SVN: r87481
2004-09-14 04:05:40 +00:00
Geoffrey Keating 375d2edc9f dbxout.c (dbxout_block): Update for current_function_func_begin_label a string.
* dbxout.c (dbxout_block): Update for
	current_function_func_begin_label a string.
	* dwarf2out.c (dwarf2out_begin_prologue): Likewise.
	* except.c (dw2_output_call_site_table): Likewise.
	* toplev.c (current_function_func_begin_label): Likewise.
	* tree.h (current_function_func_begin_label): Likewise.
	* config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.

From-SVN: r87317
2004-09-10 19:03:13 +00:00
Alan Modra 8662eb14c0 tm.texi (MD_UNWIND_SUPPORT): Document.
* doc/tm.texi (MD_UNWIND_SUPPORT): Document.
	(MD_FALLBACK_FRAME_STATE_FOR): Update.
	* unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
	(uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
	(MD_FROB_UPDATE_CONTEXT): Remove default.
	(uw_update_context_1): Instead #ifdef invocation.
	* config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
	(uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
	* config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
	(MD_UNWIND_SUPPORT): Undefine this instead.
	* config/i386/gnu.h: Likewise.
	* config/alpha/linux-unwind.h: New file, macro converted to
	function, extracted from..
	* config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
	(MD_UNWIND_SUPPORT): Define.
	* config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
	* config/i386/linux-unwind.h, config/i386/linux.h,
	config/i386/linux64.h: Likewise.
	* config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
	MD_HANDLE_UNWABI too.
	* config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
	* config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
	* config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
	* config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
	* config/sparc/linux-unwind.h, config/sparc/linux.h,
	config/sparc/linux64.h: Likewise.
	* config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
	SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
	* config/rs6000/linux-unwind.h, config/rs6000/linux.h,
	config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
	function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.

From-SVN: r87167
2004-09-08 09:47:19 +09:30
Alan Modra d86c1b9173 linux64.h: Don't include signal.h or sys/ucontext.h.
* config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
	(struct kernel_old_ucontext): Delete.
	(struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
	(MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
	when IN_LIGGCC2.

From-SVN: r86962
2004-09-02 22:16:27 +09:30
Alan Modra 85b776dff7 linux64.h (DOT_SYMBOLS): Define.
* config/rs6000/linux64.h (DOT_SYMBOLS): Define.
	(CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
	(ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
	(ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
	(RS6000_ABI_NAME): Define as "linux".
	(SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
	ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
	* config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
	* config/rs6000/rs6000.c (dot_symbols): New global var.
	(rs6000_output_function_entry): New function, modified for
	!DOT_SYMBOLS..
	(print_operand <case 'z'>): ..extracted from here.
	(rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
	(rs6000_output_function_epilogue): Likewise.
	(rs6000_elf_declare_function_name): Likewise.
	* config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
	(ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
	* configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
	* configure: Regenerate.
	* config.in: Regenerate.

From-SVN: r86354
2004-08-21 11:10:00 +09:30
Richard Henderson fe9841365e target-def.h (TARGET_MUST_PASS_IN_STACK): New.
* target-def.h (TARGET_MUST_PASS_IN_STACK): New.
	* target.h (struct gcc_target): Add calls.must_pass_in_stack.
	* expr.h (MUST_PASS_IN_STACK): Remove.
	* system.h (MUST_PASS_IN_STACK): Poison.
	* tree.h (must_pass_in_stack_var_size): Declare.
	(must_pass_in_stack_var_size_or_pad): Declare.
	* calls.c (must_pass_in_stack_var_size): New.
	(must_pass_in_stack_var_size_or_pad): Rename from
	default_must_pass_in_stack.
	* config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
	(TARGET_MUST_PASS_IN_STACK): New.
	* config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
	* config/fr30/fr30.c (fr30_must_pass_in_stack): New.
	(TARGET_MUST_PASS_IN_STACK): New.
	* config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
	* config/frv/frv.c (frv_must_pass_in_stack): New.
	(TARGET_MUST_PASS_IN_STACK): New.
	* config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
	* config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
	* config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
	(ix86_must_pass_in_stack): Make static.
	* config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
	* config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
	* config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
	* config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
	* config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
	* config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
	* config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
	(mcore_must_pass_on_stack): Remove.
	* config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
	* config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
	* config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
	* config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
	* config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
	* config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
	* config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
	* config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
	(TARGET_MUST_PASS_IN_STACK): New.
	* config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
	* config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
	* config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
	* config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
	* config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
	* config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
	* doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
	MUST_PASS_IN_STACK.

	* calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
	config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
	config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
	config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
	config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
	config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
	config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
	config/xtensa/xtensa.c: Use target hook.

From-SVN: r84606
2004-07-13 00:45:09 -07:00
Alan Modra 8efcd34fa2 gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
* gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
	* config/linux.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.

From-SVN: r81072
2004-04-23 11:46:26 +09:30
Andrew Pinski aa5fa0fc22 linux.h (OS_MISSING_POWERPC64): Define.
* config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
	* config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.

From-SVN: r78309
2004-02-23 06:54:11 -08:00
Jakub Jelinek c2cd64b5a9 gcov-io.c (gcov_open): Use open + fdopen instead of fopen.
* gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
	fopen.
	* libgcov.c: Include sys/stat.h.
	* config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
	* config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
	* config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
	* config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.

From-SVN: r78281
2004-02-23 00:18:53 +01:00
Alan Modra d1d5c836a1 linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't bump retaddr here.
* config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
	bump retaddr here.

	* include/powerpc-signal.h: Revert 2004-01-21 change.
	(INIT_SEGV, INIT_FPE): Provide powerpc64 versions.  Check return
	from syscall for ppc32 versions.

From-SVN: r77601
2004-02-10 23:57:43 +10:30
Alan Modra 79d69d750e re PR target/13914 ([3.4 only] dwarf2 frame unwinding broken.)
PR target/13914
	* config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
	for retaddr_column.

From-SVN: r77146
2004-02-03 11:10:26 +10:30
Alan Modra 895ea8f080 rs6000.h: Correct target_flags free bits comment.
* config/rs6000/rs6000.h: Correct target_flags free bits comment.
	(PREDICATE_CODES): Remove duplicate.
	* config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
	(SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
	(MASK_PROFILE_KERNEL): Adjust define.

From-SVN: r76697
2004-01-27 21:45:23 +10:30
Jakub Jelinek 02731d29be linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Corrected to handle kernels with changed ucontext.
* config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
	[!__powerpc64__]: Corrected to handle kernels with changed ucontext.

	* include/powerpc-signal.h: Add #ifndef __powerpc64__ around the
	header.  For __powerpc64__ provide the default-signal.h definitions
	for now.
	* include/x86_64-signal.h [!__x86_64__]: Include java-signal-aux.h
	instead of the dummy definitions.
	* configure.host (x86_64-*): Remove CHECKREFSPEC, add DIVIDESPEC.
	(powerpc64*-*): Remove with_libffi_default.
	Only add -mminimal-toc for 64-bit compilations.
	* configure.in: Use powerpc-signal.h on powerpc64 as well.
	(x86_64-*-linux*): Set SIGNAL_HANDLER_AUX.
	Link SIGNAL_HANDLER_AUX to include/java-signal-aux.h.
	* configure: Rebuilt.

From-SVN: r76437
2004-01-23 18:32:16 +01:00
Andrew Pinski 95727fb877 re PR target/10781 (wrong class size and alignment with static class member)
2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>

        PR target/10781
        * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
        Prototype.
        * config/rs6000/rs6000.c (rs6000_special_round_type_align):
        New function.
        * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
        * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
        * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.

2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>

        PR target/10781
        * encoding.c (rs6000_special_round_type_align): Define.

From-SVN: r76043
2004-01-17 11:48:50 -08:00
Alan Modra 7ddb6568e3 linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure target_flags has MASK_POWERPC64 when -m64.
* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
	target_flags has MASK_POWERPC64 when -m64.
	* config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
	to 620, 630, power3, power4 and rs64a entries.
	* config/rs6000/rs6000.h (MASK_64BIT): Expand comment.

From-SVN: r75550
2004-01-09 01:43:23 +10:30
Alan Modra c3a77bf9c6 linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test target_flags directly rather than using TARGET_* defines.
* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
	target_flags directly rather than using TARGET_* defines.

From-SVN: r74078
2003-12-01 10:13:05 +10:30
Alan Modra b20a9cca04 linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Choose MASK_ALIGN_NATURAL if rs6000_alignment_string not given.
* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Choose
	MASK_ALIGN_NATURAL if rs6000_alignment_string not given.  Don't
	assign DEFAULT_ABI.
	(ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Update comment.
	* config/rs6000/rs6000.c: Formatting.
	(rs6000_parse_alignment_option): Only set rs6000_alignment_flags
	when rs6000_alignment_string given.

From-SVN: r72431
2003-10-14 01:58:23 +09:30
Kazu Hirata 368ebcd6ff fold-const.c: Follow spelling conventions.
* fold-const.c: Follow spelling conventions.
	* function.c: Likewise.
	* config/c4x/c4x.h: Likewise.
	* config/c4x/c4x.md: Likewise.
	* config/frv/frv.md: Likewise.
	* config/rs6000/aix.h: Likewise.
	* config/rs6000/linux64.h: Likewise.
	* config/xtensa/xtensa.c: Likewise.

From-SVN: r72111
2003-10-05 13:34:45 +00:00
Jakub Jelinek 42df219332 linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
* config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
	* config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
	* config/arm/linux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
	* config/rs6000/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
	* config/rs6000/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
	* config/sh/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
	* config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
	* config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define.

From-SVN: r71425
2003-09-16 10:04:34 +02:00
Jakub Jelinek fc4767bbb6 unwind-dw2.c (MD_FROB_UPDATE_CONTEXT): Define.
* unwind-dw2.c (MD_FROB_UPDATE_CONTEXT): Define.
	(uw_update_context_1): Use it.
	* config/rs6000/rs6000.c (insn_after_throw): Remove.
	(rs6000_aix_emit_builtin_unwind_init): Save $r2 to its location
	in parent frame if _Unwind_* called directly instead of through
	.plt.
	(rs6000_emit_eh_toc_restore): Remove.
	(rs6000_emit_prologue): Update stack pointer before doing any saving
	if current_function_calls_eh_return.  Generate unwind info for $r2.
	(rs6000_emit_epilogue): Restore stack pointer after doing all
	restoring if current_function_calls_eh_return.  Restore $r2.
	* config/rs6000/rs6000-protos.h (rs6000_emit_eh_toc_restore): Remove.
	* config/rs6000/rs6000.md (eh_return): Remove call to
	rs6000_emit_eh_toc_restore.
	* config/rs6000/linux64.h (MD_FROB_UPDATE_CONTEXT): Define.
	* config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Define.

	* gcc.dg/cleanup-8.c: New test.
	* gcc.dg/cleanup-9.c: New test.

From-SVN: r69450
2003-07-16 13:52:55 +02:00
Alan Modra 6e98504002 tm.texi (BLOCK_REG_PADDING): Describe.
* doc/tm.texi (BLOCK_REG_PADDING): Describe.
	* expr.h (struct locate_and_pad_arg_data): Add where_pad.
	(emit_group_load, emit_group_store): Adjust declarations.
	Remove most occurrences of #ifdef TREE_CODE.
	* expr.c (emit_group_load): Add "type" param, and use
	BLOCK_REG_PADDING to determine need for a shift.  Optimize non-
	aligned accesses if !SLOW_UNALIGNED_ACCESS.
	(emit_group_store): Likewise.
	(emit_push_insn, expand_assignment, store_expr, expand_expr): Adjust
	emit_group_load and emit_group_store calls.
	* calls.c (store_unaligned_arguments_into_pseudos): Tidy.  Use
	BLOCK_REG_PADDING to determine whether we need endian_correction.
	(load_register_parameters): Localize vars.  Handle shifting of
	small values to the correct end of regs.  Adjust emit_group_load
	call.
	(expand_call, emit_library_call_value_1): Adjust emit_group_load
	and emit_group_store calls.
	* function.c (assign_parms): Set mem alignment for stack slots.
	Adjust emit_group_store call.  Store values at the "wrong" end
	of regs to the stack.  Use BLOCK_REG_PADDING.
	(locate_and_pad_parm): Save where_pad.
	(expand_function_end): Adjust emit_group_load call.
	* stmt.c (expand_value_return): Adjust emit_group_load call.
	* Makefile.in (calls.o): Depend on $(OPTABS_H).
	* config/rs6000/linux64.h (TARGET_LITTLE_ENDIAN): Redefine as 0.
	(AGGREGATE_PADDING_FIXED, AGGREGATES_PAD_UPWARD_ALWAYS): Define.
	(MUST_PASS_IN_STACK): Define.
	(BLOCK_REG_PADDING): Define.
	* config/rs6000/rs6000.h (struct rs6000_args): Remove orig_nargs.
	(PAD_VARARGS_DOWN): Define in terms of FUNCTION_ARG_PADDING.
	* config/rs6000/rs6000.c (init_cumulative_args): Don't set orig_nargs.
	(function_arg_padding): !AGGREGATE_PADDING_FIXED compatibility code.
	Act on AGGREGATES_PAD_UPWARD_ALWAYS.

From-SVN: r69318
2003-07-14 14:47:18 +09:30
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
Eric Botcazou a8d0467e65 dbxout.c (dbxout_source_line_counter): New global variable.
* dbxout.c (dbxout_source_line_counter): New global variable.
	Mark it with GTY(()).
	(dbxout_source_line): Increment dbxout_source_line_counter
	and pass it to ASM_OUTPUT_SOURCE_LINE.
	* sdbout.c (sdbout_source_line_counter): New global variable.
	Mark it with GTY(()).
	(unnamed_struct_number): Mark it with GTY(()).
	(sdbout_source_line): Increment sdbout_source_line_counter
	and pass it to ASM_OUTPUT_SOURCE_LINE.
	* xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Add third parameter
	(xcoffout_source_line): Pass 0 as third argument to
	ASM_OUTPUT_SOURCE_LINE.
	(xcoffout_begin_prologue): Likewise.
	* config/dbxout.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter.
	Use it instead of 'sym_lineno' but without incrementing it.
	* config/dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
	* config/lynx.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
	* config/ptx4.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
	* config/alpha/alpha.c (alpha_start_function): Pass 0 as third
	argument to ASM_OUTPUT_SOURCE_LINE.
	* config/alpha/alpha.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter.
	* config/arm/aout.h: Remove useless comment.
	* config/avr/avr.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter.
	* config/i960/i960.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
	* config/m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter.
	Use it instead of 'sym_lineno' but without incrementing it.
	* config/m68k/hp320.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter.
	* config/mcore/mcore-pe.h (ASM_OUTPUT_SOURCE_LINE): Add third
	parameter. Use it instead of 'sym_lineno' but without incrementing it.
	* config/mips/mips.c (mips_output_function_prologue): Pass 0 as third
	argument to ASM_OUTPUT_SOURCE_LINE.
	* config/mips/mips.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter.
	* config/mmix/mmix.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
	* config/pa/som.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter.
	Use it instead of 'sym_lineno' but without incrementing it.
	* config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
	* config/sh/elf.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
	* config/sparc/aout.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
	* config/sparc/pbd.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
	* doc/tm.texi (ASM_OUTPUT_SOURCE_LINE): Document third parameter.

From-SVN: r68072
2003-06-17 08:06:58 +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
Alan Modra ffbc65c3e0 * config/rs6000/linux64.h (CRT_CALL_STATIC_FUNCTION): Define.
From-SVN: r67578
2003-06-07 15:41:18 +09:30
Jakub Jelinek 3edc56a9e5 function.c (trampolines_created): New variable.
* function.c (trampolines_created): New variable.
	(expand_function_end): Set it when doing INITIALIZE_TRAMPOLINE.
	* function.h (trampolines_created): Add.
	* config/s390/linux.h (ASM_FILE_END): Define.
	* config/alpha/linux-elf.h (ASM_FILE_END): Define.
	* config/m68k/linux.h (ASM_FILE_END): Define.
	* config/rs6000/linux.h (ASM_FILE_END): Define.
	* config/rs6000/linux64.h (ASM_FILE_END): Define.
	* config/rs6000/ppc-asm.h: Add .note.GNU-stack on powerpc-linux.
	* config/sparc/linux.h (ASM_FILE_END): Define.
	* config/sparc/linux64.h (ASM_FILE_END): Define.
	* config/i386/i386.c (ix86_asm_file_end): Use SUBTARGET_FILE_END.
	* config/i386/linux.h (SUBTARGET_FILE_END): Define.
	* config/i386/linux64.h (SUBTARGET_FILE_END): Define.

From-SVN: r67447
2003-06-04 18:44:51 +02:00
Jakub Jelinek 9739c90c8d linux.h (NO_PROFILE_COUNTERS): Define to 1.
* config/i386/linux.h (NO_PROFILE_COUNTERS): Define to 1.
	* config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
	* config/i386/netbsd-elf.h (NO_PROFILE_COUNTERS): Likewise.
	* config/xtensa/xtensa.h (NO_PROFILE_COUTNERS): Likewise.
	* config/darwin.h (NO_PROFILE_COUNTERS): Likewise.
	* final.c (NO_PROFILE_COUNTERS): Define to 0 if not defined.
	(profile_function): Allow NO_PROFILE_COUNTERS to be non-constant.
	* config/rs6000/rs6000.c (output_profile_hook): Likewise.

	* configure.in (powerpc*-*, s390*-*): Set tls_as_opt.
	Pass it to $gcc_cv_as.
	* configure: Rebuilt.

	* config/rs6000/rs6000.c (rs6000_abi_name): Remove initializer.
	(print_operand): Allow TARGET_AIX to be non-constant.
	(rs6000_aix_emit_builtin_unwind_init, rs6000_emit_eh_toc_restore):
	Define unconditionally.
	(rs6000_elf_declare_function_name): New function.
	* config/rs6000/rs6000.md (eh_return): Allow TARGET_AIX to be
	non-constant.
	* config/rs6000/linux64.h [!RS6000_BI_ARCH] (TARGET_64BIT): Define
	to 1.
	(DEFAULT_ARCH64_P, RS6000_BI_ARCH_P): Define.
	[IN_LIBGCC2] (TARGET_64BIT): Define based on whether __powerpc64__
	is defined.
	(TARGET_AIX): Define to 1 if TARGET_64BIT.
	(PROCESSOR_DEFAULT): Remove.
	(TARGET_RELOCATABLE, RS6000_ABI_NAME, INVALID_64BIT,
	INVALID_32BIT, SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
	[RS6000_BI_ARCH] (OVERRIDE_OPTIONS, ASM_FILE_START): Define.
	(ASM_DEFAULT_SPEC, ASM_SPEC, LINK_OS_LINUX_SPEC): Define for both
	-m32 and -m64.
	(MULTILIB_DEFAULTS): Define.
	(SUBSUBTARGET_EXTRA_SPECS): Define.
	(ASM_SPEC32, ASM_SPEC64, ASM_SPEC_COMMON): Define.
	(TARGET_TOC): Define only if !RS6000_BI_ARCH.
	(TARGET_NO_TOC): Remove.
	[!RS6000_BI_ARCH] (TARGET_RELOCATABLE, TARGET_EABI,
	TARGET_PROTOTYPE): Define to 0.
	(NO_PROFILE_COUNTERS): Define to TARGET_64BIT.
	(PROFILE_HOOK): Only call output_profile_hook if TARGET_64BIT.
	(ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Adjust to work properly
	if !TARGET_64BIT.
	(USER_LABEL_PREFIX): Remove.
	(JUMP_TABLES_IN_TEXT_SECTION): Define to TARGET_64BIT.
	(SETUP_FRAME_ADDRESSES): Only call rs6000_aix_emit_builtin_unwind_init
	if TARGET_64BIT.
	(TARGET_OS_CPP_BUILTINS): Handle both -m32 and -m64.
	(LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Define.
	(STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Remove.
	(TOC_SECTION_ASM_OP): Define depending on TARGET_64BIT.
	(MINIMAL_TOC_SECTION_ASM_OP): Likewise.
	(SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Define depending on
	TARGET_64BIT.
	(RS6000_CALL_GLUE): Likewise.
	(SAVE_FP_PREFIX, SAVE_FP_SUFFIX, RESTORE_FP_PREFIX,
	RESTORE_FP_SUFFIX): Likewise.
	(ASM_DECLARE_FUNCTION_NAME): Remove.
	(ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_SOURCE_LINE,
	DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Only output dot before function
	name if TARGET_64BIT.
	(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Handle both TARGET_64BIT and
	!TARGET_64BIT.
	(ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Remove undefs.
	(ASM_PREFERRED_EH_DATA_FORMAT): Take TARGET_64BIT into account.
	(DRAFT_V4_STRUCT_RET): Define.
	(SIGNAL_FRAMESIZE): New enum value.
	(MD_FALLBACK_FRAME_STATE_FOR): Define.
	* config/rs6000/default64.h: New file.
	* config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -m32 and -m64
	options.
	(SUBTARGET_OVERRIDE_OPTIONS): If rs6000_abi_name is NULL, set it
	to RS6000_ABI_NAME.  Only disallow mixing of -fPIC with -mcall-aixdesc
	if !TARGET_64BIT.
	[!RS6000_BI_ARCH] (SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
	(ASM_DECLARE_FUNCTION_NAME): Use rs6000_elf_declare_function_name
	function.
	(TARGET_OS_SYSV_CPP_BUILTINS): Define.
	(TARGET_OS_CPP_BUILTINS): Use it.
	(CPP_SYSV_SPEC): Remove.
	(CPP_SPEC): Remove cpp_sysv.
	(SUBTARGET_EXTRA_SPECS): Remove cpp_sysv.
	Add SUBSUBTARGET_EXTRA_SPECS.
	(SUBSUBTARGET_EXTRA_SPECS): Define.
	* config/rs6000/biarch64.h: New file.
	* config/rs6000/rs6000-protos.h (rs6000_elf_declare_function_name):
	New prototype.
	* config/rs6000/x-linux64: New file.
	* config/rs6000/t-linux64: Build -m64, -m32 and -m32 -msoft-float
	multilibs.
	* config/rs6000/eabi-ci.asm: Protect with #ifndef __powerpc64__.
	* config/rs6000/eabi-cn.asm: Likewise.
	* config/rs6000/tramp.asm: Likewise.
	* config/rs6000/sol-ci.asm: Likewise.
	* config/rs6000/sol-cn.asm: Likewise.
	* config/rs6000/linux.h (TARGET_64BIT): Define to 0.
	(TARGET_OS_CPP_BUILTINS): Use TARGET_OS_SYSV_CPP_BUILTINS.
	* config/rs6000/ppc-asm.h: Move __powerpc64__ section before
	_CALL_AIXDESC section.
	* config.gcc (powerpc64-*-linux*): Configure a bi-arch compiler,
	defaulting to -m64 unless --with-cpu= is one of the 32-bit CPUs
	or default32.

Co-Authored-By: Alan Modra <amodra@bigpond.net.au>

From-SVN: r67442
2003-06-04 17:23:42 +02:00
Jakub Jelinek 24a4dd31f8 configure.in (HAVE_LD_PIE): Check for ld -pie.
* configure.in (HAVE_LD_PIE): Check for ld -pie.
	* config.in: Rebuilt.
	* configure: Rebuilt.
	* toplev.c (flag_pie, flag_shlib): New variables.
	(f_options): Add -fpie and -fPIE.
	(parse_options_and_default_flags): Set flag_pic if -fpie/-fPIE.
	Set flag_shlib if flag_pic and not -fpie/-fPIE.
	* flags.h (flag_pic, flag_shlib): Add.
	* varasm.c (default_binds_local_p): Use flag_shlib instead of
	flag_pic.
	* gcc.c (LINK_PIE_SPEC): Define.
	(LINK_COMMAND_SPEC): Use LINK_PIE_SPEC.
	(option_map): Add --pie -> -pie mapping.
	* config/sol2.h (ASM_SPEC): Handle -fpie the same way as -fpic
	and -fPIE the same way as -fPIC.
	* config/openbsd.h (ASM_SPEC): Likewise.
	* config/frv/frv.h (ASM_SPEC): Likewise.
	* config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Likewise.
	* config/arm/semi.h (ASM_SPEC): Likewise.
	* config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
	* config/freebsd-spec.h (FBSD_CPP_SPEC): Likewise.
	* config/i386/beos-elf.h (CC1_SPEC): Likewise.
	* config/i386/freebsd-aout.h (ASM_SPEC): Likewise.
	* config/m68k/linux.h (CPP_SPEC): Likewise.
	* config/m68k/netbsd.h (ASM_SPEC): Likewise.
	* config/m68k/openbsd.h (ASM_SPEC): Likewise.
	* config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
	* config/mips/linux.h (SUBTARGET_CPP_SPEC): Likewise.
	* config/mips/openbsd.h (SUBTARGET_ASM_SPEC): Likewise.
	* config/pa/pa-linux.h (CPP_SPEC): Likewise.
	* config/netbsd-aout.h (ASM_SPEC): Likewise.
	* config/rs6000/sysv4.h (ASM_SPEC, CPP_SYSV_SPEC): Likewise.
	* config/rs6000/vxworks.h (CPP_SPEC): Likewise.
	* config/sparc/linux.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
	* config/sparc/linux64.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
	* config/sparc/sparc.h (ASM_SPEC): Likewise.
	* config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
	* config/sparc/sysv4.h (ASM_SPEC): Likewise.
	* config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
	* config/sparc/openbsd64.h (ASM_SPEC): Likewise.
	* config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
	* config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Handle -pie.
	Simplify.
	* config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
	* config/i386/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
	* config/ia64/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
	* config/rs6000/sysv4.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
	* config/rs6000/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
	* config/sparc/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
	* config/sparc/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
	* doc/invoke.texi: Document -pie, -fpie and -fPIE options.

From-SVN: r67359
2003-06-03 11:06:55 +02:00
Kevin B. Hendricks 025d9908d3 rs6000.c (rs6000_alignment_string, [...]): New variables.
2003-05-18  Kevin B. Hendricks  <kevin.hendricks@sympatico.ca>
            David Edelsohn  <edelsohn@gnu.org>

        * config/rs6000/rs6000.c (rs6000_alignment_string,
        rs6000_alignment_flags): New variables.
        (rs6000_parse_alignment_option): New function.
        (rs6000_override_options): Call it.
        * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -malign-XXX option.
        (MASK_ALIGN_POWER, MASK_ALIGN_NATURAL, TARGET_ALIGN_NATURAL): New
        macros.
        * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Always use COMPUTED
        natural alignment if TARGET_NATURAL_ALIGNMENT
        (ROUND_TYPE_ALIGN): Always use default record alignment if
        TAGET_NATURAL_ALIGNMENT.
        * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Same
        (ROUND_TYPE_ALIGN): Same.
        * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Same
        (ROUND_TYPE_ALIGN): Same.

Co-Authored-By: David Edelsohn <edelsohn@gnu.org>

From-SVN: r66967
2003-05-19 13:39:51 -04:00
Neil Booth 4e2e315f25 c-cppbuiltin.c (TARGET_OS_CPP_BUILTINS, [...]): Default here.
* c-cppbuiltin.c (TARGET_OS_CPP_BUILTINS, TARGET_OBJFMT_CPP_BUILTINS):
	Default here.
	(c_cpp_builtins): Invoke TARGET_OBJFMT_CPP_BUILTINS().
	* defaults.h: Don't default TARGET_OS_CPP_BUILTINS here.
	* config/elfos.h (TARGET_OBJFMT_CPP_BUILTINS): Define __ELF__.
	* config/freebsd-spec.h, config/netbsd-elf.h, config/alpha/gnu.h,
	config/arm/linux-elf.h, config/arm/rtems-elf.h,
	config/arm/unknown-elf.h, config/cris/cris.h, config/cris/linux.h,
	config/h8300/elf.h, config/i370/linux.h, config/i386/beos-elf.h,
	config/i386/gnu.h, config/i386/linux.h, config/i386/linux64.h,
	config/i386/moss.h, config/i386/rtemself.h, config/ia64/ia64.h,
	config/m68k/rtemself.h, config/mcore/mcore-elf.h, config/mips/linux.h,
	config/pa/pa-linux.h, config/rs6000/linux.h, config/rs6000/linux64.h,
	config/rs6000/sysv4.h, config/rs6000/vxworks.h, config/s390/linux.h,
	config/sh/coff.h, config/sh/elf.h, config/sh/rtemself.h,
	config/sh/sh.h, config/sparc/linux.h, config/sparc/linux64.h,
	config/sparc/openbsd64.h, config/sparc/sp64-elf.h,
	config/sparc/sp86x-elf.h, config/xtensa/elf.h, config/xtensa/linux.h:
	Don't define __ELF__.
	* config/alpha.h, config/m68k/linux.h (TARGET_OBJFMT_CPP_BUILTINS):
	Define __ELF__.
	* doc/cpp.texi: Document __ELF__.
	* doc/tm.texi: Document TARGET_OBJFMT_CPP_BUILTINS.

From-SVN: r66926
2003-05-18 09:46:23 +00:00
Janis Johnson d1908febec linux64.h (ASM_OUTPUT_LABELREF): Remove.
2003-04-30  Janis Johnson  <janis187@us.ibm.com>

	* config/rs6000/linux64.h (ASM_OUTPUT_LABELREF): Remove.
	* config/rs6000/rs6000.c (rs6000_elf_strip_name_encoding): Remove.
	(rs6000_xcoff_encode_section_info): Remove.
	(current_file_function_operand): Use SYMBOL_REF_FLAGS; fix latent bug.
	(rs6000_output_mi_thunk): Remove dead code; use SYMBOL_REF_FLAGS.
	(small_data_operand, rs6000_emit_move, rs6000_elf_in_small_data_p,):
	Use SYMBOL_REF_FLAGS.
	(rs6000_elf_encode_section_info): Call default_encode_section_info for
	generic flags, use SYMBOL_REF_FLAGS; code cleanups.
	* sysv4.h (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove.
	(SYMBOL_FLAG_SMALL_V4, SYMBOL_REF_SMALL_V4_P): New.
	* xcoff.h (TARGET_ENCODE_SECTION_INFO): Remove.
	(ASM_DECLARE_FUNCTION_NAME): Remove setting of SYMBOL_REF_FLAG.

From-SVN: r66297
2003-04-30 16:51:23 +00:00
Nick Clifton 5de601cf57 Replace "GNU CC" with "GCC"
From-SVN: r65549
2003-04-13 17:51:08 +00:00
Alan Modra ffcfcb5fd9 linux64.h (MASK_PROFILE_KERNEL): Define.
* config/rs6000/linux64.h (MASK_PROFILE_KERNEL): Define.
	(TARGET_PROFILE_KERNEL): Define.
	(SUBTARGET_SWITCHES): Handle -mprofile-kernel.
	(PROFILE_BEFORE_PROLOGUE): Don't define.
	(PROFILE_KERNEL): Remove hacks.
	* config/rs6000/rs6000.c (TARGET_PROFILE_KERNEL): Define default.
	(rs6000_stack_info): No need to save lr if just for profiling when
	TARGET_KERNEL_PROFILE.
	(output_profile_hook): Output nothing when TARGET_KERNEL_PROFILE.
	(output_function_profiler): Localize label generation.  Emit code
	for kernel profiling.

From-SVN: r64519
2003-03-18 12:58:46 +10:30
Alan Modra 7b3464eefe linux64.h (TARGET_64BIT): Redefine.
* config/rs6000/linux64.h (TARGET_64BIT): Redefine.
	(TARGET_RELOCATABLE, TARGET_EABI, TARGET_PROTOTYPE): Likewise.
	(SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Likewise.
	(SUBTARGET_OVERRIDE_OPTIONS, CPP_SYSV_SPEC): Likewise.

From-SVN: r64462
2003-03-17 14:17:16 +10:30
Alan Modra f138425784 rs6000.c (rs6000_flag_pic): Delete.
* config/rs6000/rs6000.c (rs6000_flag_pic): Delete.
	(rs6000_xcoff_encode_section_info): #ifdef TARGET_XCOFF.
	(rs6000_binds_local_p, TARGET_BINDS_LOCAL_P): #if TARGET_MACHO.
	(rs6000_override_options): Don't clear flag_pic for ABI_AIX.
	(rs6000_legitimize_address): Formatting.
	(rs6000_emit_move): Likewise.
	(rs6000_return_addr): Test ABI_AIX as well as flag_pic.
	(rs6000_emit_prologue <save_LR_around_toc_setup>): Likewise.
	(rs6000_elf_select_section): Comment reason for shlib being
	set for ABI_AIX.
	(rs6000_elf_unique_section): Likewise.
	(rs6000_elf_encode_section_info): Test !TARGET_AIX as well as ABI_AIX.
	* config/rs6000/rs6000.h (LEGITIMATE_LO_SUM_ADDRESS_P): Test ABI_AIX
	as well as flag_pic.
	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
	(MINIMAL_TOC_SECTION_ASM_OP): Likewise.
	* config/rs6000/linux64.h (TARGET_ENCODE_SECTION_INFO): Don't define.

From-SVN: r64304
2003-03-13 21:05:47 +10:30
Zack Weinberg 4977bab6ed Merge basic-improvements-branch to trunk
From-SVN: r60174
2002-12-16 18:23:00 +00:00