2005-02-01 Segher Boessenkool <segher@kernel.crashing.org>
* config.gcc (powerpc64-*-linux*): Default to -m64 also for
specific 64-bit CPUs.
From-SVN: r94545
Turns out OpenBSD was mistakenly including an embedded system fragment,
and thus outputting stabs debug by default.
Once the only needed definition is saved from that file, we happily compile
with default dwarf2. The rest of the toolchain is happy, and any recent
gdb works very well with that...
This obviously improves the stability of the compiler, since dwarf2 output
is so much more well-tested than stabs on elf platforms...
2005-01-31 Marc Espie <espie@openbsd.org>
* config.gcc: Don't include embedded systems fragment, switches default
debugging format to ELF.
* config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
longer pick it up there.
From-SVN: r94488
* config.gcc (mips64*-*-linux*): Set the default abi to n32. Remove
redundant target_cpu_default and extra_parts lines. Use the default
"from-abi" ISA.
* config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
(SUBTARGET_EXTRA_SPECS): Delete.
(DRIVER_SELF_SPECS): Remove architecture lines. Set the ABI directly.
(SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
* config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
and "n32" for -mabi=n32.
From-SVN: r93777
2005-01-11 Marc Espie <espie@openbsd.org>
* config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
(i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
* config/openbsd.h: Fix C++ includes for native configurations.
Add proper OS_CPP_BUILTINS. Fix libspec for recent OpenBSD.
Add trampoline support.
* config/i386/openbsdelf.h: New.
okay Richard Earnshaw, Zack Weinberg, further changes in a separate patch.
From-SVN: r93694
gcc/
2004-12-22 Jan Beulich <jbeulich@novell.com>
* config.gcc: Add dbxelf.h to NetWare's tm_file.
* config/i386/netware-crt0.c: Prototype __init_environment and
__deinit_environment prior to their definition.
(__init_environment): Correct invokation of constructor function.
* config/i386/netware.h (TARGET_OS_CPP_BUILTINS): Use
builtin_define_std rather than builtin_define on IAPX386.
* config/i386/nwld.h: Disable stabs debugging info with the linker
this file supports.
* config/i386/t-nwld (SHLIB_LINK): Do not use a temporary file for
the output. Add -posix to the options as that is the more compatible
mode.
* gthr-nks.h: Formatting.
(__gthread_mutex_init_function): Kill the dubious use of
NX_MUTEX_RECURSIVE as it is now clear that the traditional mutexes
were not meant to be recursive.
(__gthread_recursive_mutex_t, __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION,
__gthread_recursive_mutex_init_function,
__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
__gthread_recursive_mutex_unlock): New.
gcc/testsuite/
2004-12-22 Jan Beulich <jbeulich@novell.com>
* gcc.dg/20040813-1.c: Skip for *-*-netware*.
From-SVN: r92488
2004-11-22 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
* config.gcc: Use t-slibgcc-elf to build libgcc_s.so on
m32r*linux.
* config/m32r/t-linux (SHLIB_MAPFILES): Override to use
m32r/libgcc-glibc.ver.
* config/m32r/libgcc-glibc.ver: Add New file.
From-SVN: r91143
PR target/18444
* configure.ac (threading): Accept 'posix95'.
* configure: Regenerate.
* config.gcc (i[34567]86-*-solaris2*): On Solaris up to 2.6,
include sol26.h and default to posix95 threads if have_pthread_h.
(sparc-*-solaris2*): Likewise.
* gthr.h: Include gthr-posix95.h if _PTHREADS95 is defined.
* gthr-posix95.h: New file.
* config/sol26.h: New file.
* doc/install.texi (--enable-threads): Document 'posix95'.
From-SVN: r91041
* config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
if the GNU assembler is used.
(sparc-*-solaris2*): Likewise.
* dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
(dbxout_function_end): Protect N_ENSYM with it.
(dbxout_begin_prologue): Protect N_BNSYM with it.
* doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
* config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
* config/sparc/sol2-gas.h: New file.
From-SVN: r88013
/
* configure.in: Remove target-libstdc++-v3 from noconfigdirs for
*-*-netware, but add target-libmudflap.
Consolidate *-*-netware targets (of which really only i?86 exists)
into a single entry.
* configure: Likewise.
gcc/
* config.gcc: Resurrect NetWare as a target. Handle special case of
Novell linker to be used (specified through --with-ld=) and threading
model of either Posix (default) or NKS.
* config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
* config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
* config/i386/netware.c, config/i386/netware.h: New.
* config/i386/nwld.c, config/i386/nwld.h: New.
* config/i386/netware-crt0.c: New.
* config/i386/netware-libgcc.c: New.
* config/i386/netware-libgcc.def: New.
* config/i386/netware-libgcc.exp: New.
* config/i386/t-netware, config/i386/t-nwld: New.
* gthr-nks.h: New.
* doc/install.texi: Document NKS threading model.
gcc/cp/
* g++spec.c (MATH_LIBRARY_PROFILE): Default to MATH_LIBRARY rather
than "-lm".
gcc/testsuite/
* g++.dg/abi/bitfield5.C: Use -mno-ms-bitfields.
* g++.old-deja/g++.jason/thunk2.C: xfail for NetWare.
* g++.old-deja/g++.law/profile1.C: xfail for NetWare.
* g++.old-deja/g++.other/store-expr1.C: xfail for NetWare.
* gcc.c-torture/compile/20001109-1.c: xfail for NetWare.
* gcc.c-torture/compile/20001109-2.c: xfail for NetWare.
* gcc.c-torture/execute/multi-ix.c: Use __builtin_bzero rather than
the non-portable bzero.
* gcc.dg/20010912-1.c: xfail for NetWare.
* gcc.dg/20020426-2.c: xfail for NetWare.
* gcc.dg/20021014-1.c: xfail for NetWare.
* gcc.dg/20021018-1.c: xfail for NetWare.
* gcc.dg/20030213-1.c: xfail for NetWare.
* gcc.dg/20030225-1.c: xfail for NetWare.
* gcc.dg/20030708-1.c: xfail for NetWare.
* gcc.dg/builtins-config.h: Also exclude NetWare.
* gcc.dg/format/format.h: Define restrict only if not already defined.
* gcc.dg/nest.c: xfail for NetWare.
* gcc.dg/special/gcsec-1.c: Don't pass -static for NetWare.
* lib/target-supports.exp (check_visibility_available): Exclude
NetWare.
fixincludes/
* inclhack.def: Suppress exception_structure and math_exception
for NetWare headers.
* fixincl.x: Regenerate.
libstdc++-v3/
* crossconfig.m4: Add NetWare as a target.
* configure: Regenerate.
From-SVN: r87040
* config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
for use in configargs.h. Put the cname in a separate variable. Use
that to set target_cpu_default2.
From-SVN: r86903
* arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
CPU.
(arm7tdmi-s): New CPU name.
* arm/arm.c (ARM_CORE): Update for new format.
* arm/arm.h (ARM_CORE): Likewise.
* arm/gentune.sh: Update for extra field.
* config.gcc: Likewise.
* arm/arm-tune.md: Regenerate.
* doc/invoke.texi: Document the real processor names for ARM cpus.
From-SVN: r86884
* config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
* config/arm/lib1funcs.asm: Do not include supplemental .S files
when compiling for Symbian.
* config/arm/symbian.h (RENAME_LIBRARY): New macro.
(TARGET_OS_CPP_BUILTINS): Likewise.
* config/arm/t-symbian (LIB1ASMFUNCS): Define.
From-SVN: r86875
PR libstdc++/17005 (fix for HP-UX 11.11)
* config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
(hppa*-*-hpux*): Consolidate hppa1.0-*-* code. Rework handling of
tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
* config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
* config/pa/pa-hpux.h (TARGET_HPUX): Define.
(LINK_SPEC): Handle march=1.0 option.
* config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
and _XOPEN_SOURCE_EXTENDED for UNIX 95.
(SUBTARGET_OPTIONS): New define.
(LINK_SPEC): Handle march=1.0 option.
(STARTFILE_SPEC): New define.
* config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
and _XOPEN_SOURCE_EXTENDED for UNIX 95. Additionally, predefine
_INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
(SUBTARGET_OPTIONS): New define.
(LINK_SPEC): Handle march=1.0 option.
(STARTFILE_SPEC): New define.
* config/pa/pa.c (override_options): Add code to process -munix= option.
* config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
(TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
defines.
(TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
(SUBTARGET_OPTIONS): Provide default define.
* config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
STANDARD_STARTFILE_PREFIX_2): New defines.
(STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
(ENDFILE_SPEC): Use %O.
* doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
Mention issue caused by changing namespace and runtime to UNIX 95/98.
* doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
Document -munix=std option.
From-SVN: r86561
* config.gcc (mips-*-*): Remove definitions of MASK_GAS and
OBJECT_FORMAT_ELF. Set MASK_SPLIT_ADDR by default if using GNU ld.
* config/mips/mips.h (MASK_GAS): Delete. Shuffle later masks down.
(TARGET_GAS, TARGET_MIPS_AS): Delete.
(TARGET_GPWORD): Define to true for n32 on IRIX.
(TARGET_SWITCHES): Remove -mmips-as. Turn -mgas into a no-op.
(MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
(GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
(ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
(MDEBUG_ASM_SPEC): Delete, folding into...
(SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
(ASM_SPEC): Inline old GAS_ASM_SPEC. Use GNU names for ABI switches.
(EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
subtarget_mips_as_asm_spec, mdebug_asm_spec. Use MULTILIB_ABI_DEFAULT
to define asm_abi_default_spec.
(ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
(TARGET_ASM_SELECT_SECTION): Delete.
* config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
for non-mips16 code, removing previous workaround for SGI assemblers.
(TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
(TARGET_ASM_ALIGNED_DI_OP): Define this instead.
(override_options): Remove !TARGET_GAS and !have_named_sections code.
(print_operand): Fold TARGET_GAS conditionals into asm strings.
(mips_output_filename): Remove !TARGET_GAS code. Replace use of
ASM_STABS_OP and ASM_STABN_OP.
(mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
(mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
(mips_output_function_prologue): Remove !TARGET_GAS code.
(mips_select_rtx_section): Remove !have_named_sections code.
(mips_select_section): Delete.
* config/mips/mips.md (trap): Remove !TARGET_GAS check.
* config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
* config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
(PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
* config/mips/vxworks.h (ASM_SPEC): As for mips.h.
* config/mips/windiss.h (ASM_SPEC): Likewise.
testsuite/
* gcc.dg/special/mips-abi.exp: Expect gcc to pass the GNU ABI flags
to the assembler. Simplify test accordingly.
(asm_abi_flags): Use GNU names.
(check_mips_abi, default_abi): Use string matches against "-mabi=*"
to check for ABI flags.
From-SVN: r86405
* config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
(case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*. Update
to LynxOS 4.0.
* gthr-lynx.h: New file.
* config/lynx-ng.h: Remove file.
* config/lynx.h: Update to LynxOS 4.0.
* config/t-lynx: New file.
* config/i386/lynx-ng.h: Remove file.
* config/i386/lynx.h: Update to LynxOS 4.0.
* config/rs6000/lynxbase.h: Remove file.
* config/rs6000/lynx.h: Update to LynxOS 4.0.
* config/rs6000/t-lynx: New file.
* doc/install.texi (Options specification): Remove reference to
LynxOS from systems where --with-gnu-as makes a difference.
From-SVN: r85591
* arm/gentune.sh: New file.
* arm/t-arm: New file.
* arm/arm-tune.md: New file (autogenerated).
* config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
* arm.md (attribute tune): Delete. Include arm-tune.md.
From-SVN: r85472
gcc/
* Makefile.in (c-format.o): Depend on c-format.h.
* c-format.h: New file.
(struct format_char_info): Add CHAIN member.
* c-format.c: Move some types and constants to c-format.h.
(format_type_error): Set to -1.
(struct function_format_info): Use an int for format_type.
(decode_format_type): Return an int. Return format_type_error
on error.
(print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
(gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
(scan_char_table, time_char_table, monetary_char_table): Initialize
CHAIN to NULL.
(n_format_types): New variable.
(check_format_info_main): Handle CHAIN in format_char_info.
(handle_format_attribute): Handle TARGET_FORMAT_TYPES and
TARGET_N_FORMAT_TYPES.
* config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
(sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
* config/sol2-c.c: New file.
* config/t-sol2: New file.
* config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
* config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
* doc/extend.texi (Target Format Checks): New section.
(Function Attributes): Mention it.
* doc/invoke.texi: Mention target format checks.
* doc/sourcebuild.texi: Mention target format checks.
* dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
TARGET_FORMAT_TYPES.
testsuite/
* gcc.dg/format/cmn-err-1.c: New test.
From-SVN: r84920
* config.gcc: Add sh-*-symbianelf target.
* config/sh/sh.c: Add new target macros:
TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
TARGET_CXX_IMPORT_EXPORT_CLASS.
(sh_file_start): Create a definition of the .directive section.
(sh_attribute): Add dllimport and dllexport attributes.
* config/sh/symbian-pre.h: New file.
* config/sh/symbian-post.h: New file.
* config/sh/symbian.c: New file. Contains Symbian specific functions.
* config/sh/sh-protos.h: Add prototypes for new functions provided by symbian.c.
* config/sh/t-symbian: New file.
* doc/extend.texi: Document support for dllimport and dllexport attributes by
the sh-symbianelf target.
From-SVN: r84551
2004-04-23 Andrew Pinski <pinskia@physics.uc.edu>
* config/darwin7.h: New file.
* config.gcc (*-*-darwin*): Add darwin7.h if the
version is greater than 6.
* config/darwin.h (TARGET_C99_FUNCTIONS): Define.
(MATH_LIBRARY): Wrap in ifdefs.
From-SVN: r81100
* config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
* config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
(MULTILIB_DEFAULTS): Use it.
(MIPS_CPU_STRING_DEFAULT): Remove.
(MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
(DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120. Make
EABI64 -mlong32 the default ABI. Enforce the default architecture.
* config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
(MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
(MULTILIB_EXCEPTIONS): Change choice of multilibs. Update comments
accordingly.
and commit config.gcc hunk.
From-SVN: r79916
* config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
/pentium4m.
* i386.c (override_options): Add support for new CPUs.
* i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
(TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
constants.
* invoke.texi: Extend documentation of -mtune/-march for new CPUs.
From-SVN: r78524
2004-02-05 Alexandre Oliva <aoliva@redhat.com>
* config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
symbols in sections named by the user.
2004-01-30 Alexandre Oliva <aoliva@redhat.com>
* config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
2004-01-27 Alexandre Oliva <aoliva@redhat.com>
* config.gcc (frv-*-*linux*): Handle like *-*-linux*.
* config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
the above.
2004-01-20 Alexandre Oliva <aoliva@redhat.com>
* config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
one more pseudo to further improve code generation.
2004-01-19 Alexandre Oliva <aoliva@redhat.com>
* config/frv/frv.md (movdi_ldd): Introduce explicit indirection
inside UNSPEC.
2004-01-16 Alexandre Oliva <aoliva@redhat.com>
* config/frv/frv.c (frv_legitimate_address_p): Added
allow_double_reg_p argument. Adjust all callers. Use it to
decide whether to enable double-register indirect addressing.
(frv_funcdesc_alias_set): Remove.
(frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
register. Emit movdi_ldd.
(ldd_address_operand): New.
* config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
* config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
(PREDICATE_CODES): Add ldd_address_operand.
* config/frv/frv.md (movdi_ldd): New.
(symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
intermediate computations if possible.
(symGOTOFF2reg_i): Fix harmless typo.
2003-12-18 Alexandre Oliva <aoliva@redhat.com>
* unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
relocated p_vaddr to vaddr type.
* config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
* config/frv/frv.c (frv_get_funcdesc_alias_set): New.
(frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
MEM, or use a funcdesc alias set. Use regular move instead of
ldd.
(dbl_memory_one_insn_operand): Recognize function descriptors by
type or by alias set, and don't split them.
* config/frv/frv.md (call, call_value): Never use call_internal
for fdpic.
(call_internal, call_value_internal): Never match for FDPIC.
(call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
call_value_fdpicsi): Require FDPIC.
(ldd): Removed.
2003-12-17 Alexandre Oliva <aoliva@redhat.com>
* config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
* unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
(_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
FDPIC. Compute data base address.
* config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
before the other self-specs are processed.
* config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
Build with -fPIC.
2003-12-15 Alexandre Oliva <aoliva@redhat.com>
* unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
inhibit_libc is defined.
2003-12-12 Alexandre Oliva <aoliva@redhat.com>
* unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
__FRV_FDPIC__.
(__RELOC_POINTER): Define.
(_Unwind_IteratePhdrCallback): Use it.
* config/frv/frv.h (Twrite): Define.
(TRANSFER_FROM_TRAMPOLINE): Use it.
* config/frv/linux.h (INVOKE__main): Undefine.
(Twrite): Override.
2003-12-05 Richard Sandiford <rsandifo@redhat.com>
* doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
(-mlibrary-pic): Emphasize that this option generates EABI code.
(-mcpu): Add fr550.
(-mpack): Remove.
2003-11-30 Alexandre Oliva <aoliva@redhat.com>
* config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
and CONSTs in FDPIC mode.
* gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
2003-11-29 Richard Sandiford <rsandifo@redhat.com>
* config/frv/frv.c (move_source_operand): Don't accept symbolic
constants.
* config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
rather than 'i' constraint for the 2-instruction alternative.
(*movsi_2word): New, incorporating existing int_2word_operand splitter.
2003-11-29 Richard Sandiford <rsandifo@redhat.com>
* config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
EXTRA_CONSTRAINT_FOR_Y.
(EXTRA_CONSTRAINT): Remove handling of 'Y'.
* config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
(addsi3): Change 'Y' constraint to 'Q'.
2003-11-27 Richard Sandiford <rsandifo@redhat.com>
* reload.c (CONST_POOL_OK_P): New macro.
(find_reloads): Use it to decide whether a constant can be forced
into memory.
* config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
constant satisfies got12_operand.
(frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
(frv_legitimate_address_p): Check for valid unspec offsets using
got12_operand rather than frv_legitimate_fdpic_operand_p.
(frv_legitimate_fdpic_operand_p): Delete.
(frv_emit_movsi): Abort if we try to use the FDPIC register during
or after reload.
(frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
TARGET_FDPIC.
* config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
2003-11-19 Richard Sandiford <rsandifo@redhat.com>
* config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
(frv_fdpic_fptr_operand): Don't declare here.
* config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
rather than fdpic_got12_operand.
(PREDICATE_CODES): Remove symbolic_operand entry. Add entries for
got12_operand and const_unspec_operand.
* config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
(gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
(symbolic_operand): Remove.
(const_unspec_operand): New predicate.
* config/frv/frv.md (*movsi_got): Use got12_operand.
(*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
2003-11-18 Richard Sandiford <rsandifo@redhat.com>
* config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
* config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
* config/frv/frv.c (frv_unspec): New structure.
(frv_small_data_reloc_p, frv_const_unspec_p): New functions.
(frv_print_operand_memory_reference): Use frv_const_unspec_p to
validate CONST indices. Use frv_output_const_unspec to print them.
(frv_print_operand): Update call to unspec_got_name. Use
frv_output_const_unspec to print constant unspecs.
(frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
Reject UNSPECs otherwise.
(unspec_got_name): Take the relocation number as argument, not an
rtx containing it.
(frv_output_addr_const_extra): Remove, replacing with...
(frv_output_const_unspec): ...this new function.
(frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
(gpr_or_int12_operand): Use fdpic_got12_operand.
(dbl_memory_one_insn_operand): Likewise.
(fdpic_got12_operand): Use frv_const_unspec_p.
(frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
are already legitimate. Use frv_small_data_reloc_p when deciding
whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
2003-11-18 Alexandre Oliva <aoliva@redhat.com>
* config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
* config/frv/libgcc-frv.ver: ... frv-specific symbols. New file.
* config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
label, for real this time.
* config/frv/frv.c (frv_local_funcdesc_p): Update to new
representation of visibility.
(fdpic_got12_operand, symbolic_operand): Mark unused arguments as
such.
2003-11-17 Richard Sandiford <rsandifo@redhat.com>
* config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
(TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
* config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
it was explicitly disabled.
(frv_stack_info): There is no need to save the link register in every
frame unless TARGET_LINKED_FP is true.
(frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
frame pointer if the stack pointer might change value.
(frv_return_addr_rtx): Check and process "count" argument.
2003-11-14 Richard Sandiford <rsandifo@redhat.com>
* config/frv/frv-protos.h (frv_legitimize_address): Remove.
(frv_find_base_term): Declare.
* config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
(FIND_BASE_TERM): Define.
(PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
small_data_register_operand, small_data_symbolic_operand. Add
symbolic_operand.
* config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
(frv_print_operand_memory_reference, output_move_single): Remove
special handling for unlegitimized sdata addresses.
(frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
and symbolic addresses.
(frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
(frv_find_base_term): New function.
(int_2word_operand): Check specifically for symbolic address constants.
(pic_register_operand, pic_symbolic_operand): Delete.
(small_data_register_operand, small_data_symbolic_operand): Delete.
(dbl_memory_one_insn_operand): Don't call plus_small_data_p.
Allow UNSPEC_GOT constants if !TARGET_FDPIC.
(move_source_operand): Only accept CONSTs if they're a two-insn
symbolic constant.
(fdpic_got12_operand): Don't require TARGET_FDPIC.
(frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
using gen_symGOTOFF2reg*.
(frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
(frv_rtx_costs): Give all MEM addresses a cost of 0. Give MEMs
themselves a cost of 3 insns.
* config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
Change predicate to symbolic_operand.
(*movsi_high_got, *movsi_lo_sum_got): Likewise.
(*movsi_lda_sdata): Delete.
(*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
2003-11-05 Alexandre Oliva <aoliva@redhat.com>
* config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
frv-*-*linux*.
* config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
label.
* config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
-multilib-library-pic.
(LINK_SPEC): Add -z text for -mfdpic.
* config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
* config/frv/frvend.c (__ROFIXUP_END__): Likewise.
* config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
Override.
(OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
* config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
crtstuff-generated files.
2003-10-31 Alexandre Oliva <aoliva@redhat.com>
* config.gcc: Add frv-*-*linux*.
* config/frv/linux.h, config/frv/t-linux: New.
2003-10-06 Alexandre Oliva <aoliva@redhat.com>
* config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
when -mfdpic even if a linker script is explicitly listed.
2003-10-02 Alexandre Oliva <aoliva@redhat.com>
* config/frv/frv.c (frv_override_options): Clear asm_out
unaligned_op for SImode on FDPIC.
(frv_emit_movsi): Use compute_reloc_for_constant to compute the
argument passed to decl_readonly_section.
(frv_assemble_integer): Revert 2003-09-30's change, but make the
whole block run with FDPIC even with -fno-PIC.
2003-10-02 Alexandre Oliva <aoliva@redhat.com>
* config/frv/frv.c (frv_cannot_force_const_mem): Don't force
symbol or label plus offset to memory.
(frv_emit_movsi): Emit GPREL only if -mgprel-ro. Emit 32-bit
GOTOFF and GPREL for LABEL_REF.
* config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
-mfdpic unless -mno-gprel-ro, -fpic or -fpie.
(MASK_GPREL_RO, TARGET_GPREL_RO): New.
(TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
* doc/invoke.texi: Document them.
2003-09-30 Alexandre Oliva <aoliva@redhat.com>
* config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
(frv_splittable_got_operand): Removed.
* config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
LO_SUM. Add comments.
(frv_override_options): Moved enabling of FDPIC to
DRIVER_SELF_SPECS. Don't enable MASK_DWORD.
(frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
(frv_legitimize_fdpic_address): Don't duplicate logic in
frv_emit_movsi.
(frv_gen_GPsym2reg): New.
(unspec_got_name): Added gprel.
(frv_expand_fdpic_call): Add support for inlining PLTs.
(fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
(gpr_or_int12_operand): Added GPREL12.
(pic_symbolic_operand): Match even if !flag_pic for FDPIC.
(small_data_symbolic_operand): Fail if FDPIC.
(fdpic_splittable_got_operand): Removed.
(fdpic_got12_operand): Added GPREL12.
(frv_emit_movsi): Reorganize to avoid duplication. Emit GPREL
when appropriate. Fix sdata GOTOFF.
(frv_legitimate_constant_p): Require legitimate PIC operand for
FDPIC with pic, but only a legitimate fdpic operand for non-pic.
(frv_assemble_integer): Move FDPIC funcdesc handling out of
flag_pic case.
(frv_asm_out_constructor, frv_asm_out_destructor): Abort if
frv_assemble_integer fails.
* config/frv/frv.h (DRIVER_SELF_SPECS): New.
(SUBTARGET_DRIVER_SELF_SPECS): New.
(ASM_SPEC): Don't pass -mno-fdpic.
(LINK_SPEC): Pass -melf32frvfd for FDPIC.
(MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
(TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
-multilib-library-pic.
(PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
condexec_si_media_operator, condexec_sf_add_operator and
condexec_sf_conv_operator. Removed condexec_sf_binary_operator
and condexec_sf_unary_operator.
* config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
New.
(movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
movsi_internal. Give them internal names. movsi_got has type
int.
(fdpic got splitters): Remove.
(symGPREL2reg, symGPREL2reg_hilo): New.
* config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
to -mlibrary-pic. Map -multilib-library-pic to it.
* doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
Document.
2003-09-28 Alexandre Oliva <aoliva@redhat.com>
* config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
(TARGET_CANNOT_FORCE_CONST_MEM): Define to...
(frv_cannot_force_const_mem): New function.
(const_small_data_p, plus_small_data_p): Update comments on sdata
on FDPIC.
(frv_override_options): Set flag_pie for FDPIC too.
(frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
call-saved registers on FDPIC.
(frv_stack_info): Don't preserve the PIC register on FDPIC, and
don't force LR to be preserved.
(frv_expand_prologue): Likewise.
(frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
(frv_frame_pointer_required): Don't force it just because the
FDPIC register is used.
(frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
operand only if !condexec_p.
(frv_legitimize_address): Return the FDPIC-legitimized address.
Don't match small data here on FDPIC.
(frv_legitimate_fdpic_operand_p): Don't accept unadorned function
symbols. Use TRUE/FALSE instead of 1/0.
(frv_local_funcdesc_p): New.
(frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
immediates when possible.
(pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
(dbl_memory_one_insn_operand): Accept addresses that add a REG and
an UNSPEC_GOT.
(frv_emit_movsi): Handle FDPIC before small data. Use GOTOFF and
12-bit immediates when possible.
(frv_legitimate_constant_p): In FDPIC, reject SImode operands that
are not legitimate pic operands.
(frv_in_small_data_p): Re-enable for FDPIC.
* config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
(FRV_GLOBAL_P): Removed.
* config/frv/frv.md: Add modes to CONSTs.
(movsi_got): New.
(movsi_lo_sum_got): Use separate matches instead of match_dup.
(movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
(fdpic splittable operations): Match on flag_pic != 1.
2003-09-22 Alexandre Oliva <aoliva@redhat.com>
* config/frv/frv.c (frv_asm_out_constructor,
frv_asm_out_destructor): Pass to frv_assemble_integer the size in
bytes, not bits.
2003-09-19 Alexandre Oliva <aoliva@redhat.com>
* config/frv/frv.c (frv_assemble_integer): Reject complex
expressions referencing function SYMBOL_REFs.
* config/frv/frv.c (frv_function_symbol_referenced_p): New.
(move_source_operand): Reject CONSTs that reference function
SYMBOL_REFs on FDPIC.
(frv_emit_movsi): If we get such a CONST, break it up.
* config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
(TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
* config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
MEM.
(frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
(frv_trampoline_size): Increase for FDPIC.
* config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
(TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
* config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
Disable use of GOTOFF for now.
(const_small_data_p, plus_small_data_p, frv_in_small_data_p):
Disable use of small data in FDPIC for now.
(frv_asm_output_mi_thunk): Implement for FDPIC.
* config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
* config/frv/frv.c (frv_asm_out_constructor): Use
frv_assemble_integer for FDPIC pointers.
(frv_asm_out_destructor): Likewise.
* config/frv/frv.md (ldd): Fix order of operands. Use
address_operand for input.
2003-09-18 DJ Delorie <dj@redhat.com>
* config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
(unspec_got_name): Correct typo.
(frv_emit_movsi): Pre-expand splittable GOTs.
(frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
* config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
(symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
* config/frv/t-frv: Add -mfdpic multilibs.
* config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
(TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
* config/frv/frv.c (frv_override_options): -mfdpic assumes
flag_pic, default to 32-bit pics, require DWORD ops.
(frv_override_options): Add W and Z constraints.
(frv_expand_prologue): No pic prologue for -mfdpic.
(frv_asm_output_mi_thunk): Support -mfdpic (soon).
(frv_print_operand_memory_reference): Handle GOT constants.
(frv_legitimate_address_p): Allow GOT constants.
(frv_legitimize_address): Handle GOT addresses too.
(frv_legitimate_fdpic_operand_p): New.
(frv_legitimize_fdpic_address): New.
(unspec_got_name): New.
(frv_output_addr_const_extra): New.
(frv_expand_fdpic_call): New.
(frv_fdpic_fptr_operand): New.
(gpr_or_int12_operand): Handle GOT operands.
(int_2word_operand): Handle GOT operands.
(fdpic_operand): New.
(fdpic_splittable_got_operand): New.
(fdpic_got12_operand): New.
(frv_emit_movsi): Handle GOT operands.
(frv_assemble_integer): -mfdpic doesn't use rofixups.
(frv_print_operand): Support 'g' code for GOT operands.
* config/frv/frv-protos.h: Add prototypes as needed.
* config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
R_FRV_GOTOFFLO): New.
(movsi_high_got, movsi_lo_sum_got): New.
(*movsi_pic): Don't use this splitter for -mfdpic.
(addsi3): Allow GOT references also.
(call, call_value): Handle -mfdpic separately.
(call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
call_value_fdpicsi): New.
(symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
symGOTOFF2reg_i): New.
* config/frv/frv.h (MASK_FDPIC): New.
(TARGET_FDPIC): New.
(TARGET_SWITCHES): Add -mfdpic.
(FDPIC_FPTR_REGNO): New.
(FDPIC_REGNO): New.
(OUR_FDPIC_REG): New.
(enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
FDPIC_CALL_REGS.
(REG_CLASS_NAMES): Likewise.
(REG_CLASS_CONTENTS): Likewise.
(EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
(EXTRA_CONSTRAINT): Add it here.
(FRV_GLOBAL_P): New.
(OUTPUT_ADDR_CONST_EXTRA): New.
From-SVN: r78373
* config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify extra
host object file when targetting cygwin rather than generic object files.
From-SVN: r78278
* config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host object
file when targetting cygwin.
* config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
overridden by top-level Makefile.
From-SVN: r78241
* config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
in terms of SHLIB_SOVERSION.
* config/m68k/t-slibgcc-elf-ver: New file.
* config/pa/t-slibgcc-elf-ver: New file.
* config.gcc (m68k-linux, parisc-linux): Use them when not
sjlj exceptions are not configured.
From-SVN: r77920
PR bootstrap/12527
* config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
Move linux-gas.h and linux-elf.h before aout.h.
* arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
* arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
From-SVN: r75870
2004-01-12 Jonathan Merriman <jonm@dualitymedia.com>
PR target/10847
* config.gcc: No longer includes conflicting header sparc/sol2.h when
building on sparc64-*-openbsd*.
From-SVN: r75751