From: Eric Christopher Date: Thu, 17 Jan 2002 07:53:56 +0000 (+0000) Subject: r3900.h: Reformat. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f9f45c6543a717b5294fa827012b739042e5e722;p=gcc.git r3900.h: Reformat. 2002-01-16 Eric Christopher * config/mips/r3900.h: Reformat. (SUBTARGET_CPP_SIZE_SPEC): Remove. * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto. * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "". (SUBTARGET_CPP_SIZE_SPEC): Rewrite. * config/mips/t-elf: Remove mips3 multilib. From-SVN: r48942 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bf2bd56602c..ba33e40024c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2002-01-16 Eric Christopher + + * config/mips/r3900.h: Reformat. + (SUBTARGET_CPP_SIZE_SPEC): Remove. + * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto. + * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "". + (SUBTARGET_CPP_SIZE_SPEC): Rewrite. + * config/mips/t-elf: Remove mips3 multilib. + 2002-01-16 H.J. Lu * config/mips/linux.h: Include "mips/abi64.h". diff --git a/gcc/config/mips/isa3264.h b/gcc/config/mips/isa3264.h index a427d721e15..fc2b2894225 100644 --- a/gcc/config/mips/isa3264.h +++ b/gcc/config/mips/isa3264.h @@ -37,114 +37,9 @@ Boston, MA 02111-1307, USA. */ #include "mips/elf.h" -/* This must be done after including mips.h so that the - ABI_{EABI,O64,O32,...} are #defined. */ - -#if MIPS_ABI_DEFAULT == ABI_EABI -#undef SUBTARGET_CPP_SIZE_SPEC -#define SUBTARGET_CPP_SIZE_SPEC "\ -%{mabi=eabi|!mabi=*:\ - %{mips1|mips2|mips32|mlong32: -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ - %{!mips1:%{!mips2:%{!mips32:%{!mlong32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}} \ -%{mabi=o64:\ - %{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ - %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ -%{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ -" -#endif - -#if MIPS_ABI_DEFAULT == ABI_O64 -#undef SUBTARGET_CPP_SIZE_SPEC -#define SUBTARGET_CPP_SIZE_SPEC "\ -%{mabi=eabi:\ - %{mips1|mips2|mips32|mlong32: -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ - %{!mips1:%{!mips2:%{!mips32:%{!mlong32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}} \ -%{mabi=o64|!mabi=*:\ - %{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ - %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ -%{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ -" -#endif - -#if MIPS_ABI_DEFAULT == ABI_32 -#if MIPS_ISA_DEFAULT == 3 || MIPS_ISA_DEFAULT == 4 || MIPS_ISA_DEFAULT == 5 || MIPS_ISA_DEFAULT == 64 -#undef SUBTARGET_CPP_SIZE_SPEC -#define SUBTARGET_CPP_SIZE_SPEC "\ -%{mabi=eabi:\ - %{mips1|mips2|mips32|mlong32: -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ - %{!mips1:%{!mips2:%{!mips32:%{!mlong32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}} \ -%{mabi=o64|!!mabi=*:\ - %{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ - %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ -%{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ -" -#else /* not a 64bit default ISA */ -#undef SUBTARGET_CPP_SIZE_SPEC -#define SUBTARGET_CPP_SIZE_SPEC "\ -%{mabi=eabi:\ - %{mips3|mips4|mips5|mips64|mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ - %{!mips3:%{!mips4:%{!mips5:%{!mips64:%{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}}} \ -%{mabi=o64:\ - %{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ - %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ -%{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ -%{!mabi=*:\ - %{mips3|mips4|mips5|mips64:\ - %{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ - %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ - %{!mips3:%{!mips4:%{!mips5:%{!mips64:\ - -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}} \ -" -#endif /* ISA */ -#endif - #if MIPS_ABI_DEFAULT == ABI_MEABI /* For MEABI, don't link with crt0 files, let the linker start files specify the appropriate crt0 file. */ #undef STARTFILE_SPEC #define STARTFILE_SPEC "crti%O%s crtbegin%O%s %{!mno-crt0: }" - -/* - The MIPS_ISA_DEFAULT test is for EABI, in which the size of longs depends on - the ISA. - - For MEABI the size of longs is always 32bits. If long64 is specified then - we honor that. The errors for long64 & long32 is because while CC1 can - handle overriding mlong32 with mlong64 and vise-versa, the specs cannot. */ - -#if MIPS_ISA_DEFAULT == 3 || MIPS_ISA_DEFAULT == 4 || MIPS_ISA_DEFAULT == 5 || MIPS_ISA_DEFAULT == 64 -#undef SUBTARGET_CPP_SIZE_SPEC -#define SUBTARGET_CPP_SIZE_SPEC "\ -%{mabi=meabi:\ - %{mips1|mips2|mips32|mlong32: -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ - %{!mips1:%{!mips2:%{!mips32:%{!mlong32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}} \ -%{mabi=o64:\ - %{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int \ - %{mlong32:%e-mlong32 and -mlong64 can not both be specified}} \ - %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int }} \ -%{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ -%{mabi=meabi|!mabi=*:\ - %{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int \ - %{mlong32:%e-mlong32 and -mlong64 can not both be specified}} \ - %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int }} \ -" - -#else /* not a 64bit default ISA */ -#undef SUBTARGET_CPP_SIZE_SPEC -#define SUBTARGET_CPP_SIZE_SPEC "\ -%{mabi=meabi:\ - %{mips3|mips4|mips5|mips64|mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ - %{!mips3:%{!mips4:%{!mips5:%{!mips64:%{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}}} \ -%{mabi=o64:\ - %{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int \ - %{mlong32:%e-mlong32 and -mlong64 can not both be specified}} \ - %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int }} \ -%{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ -%{mabi=meabi|!mabi=*:\ - %{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int \ - %{mlong32:%e-mlong32 and -mlong64 can not both be specified}} \ - %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int }} \ -" -#endif /* ISA */ #endif - diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index 2c3588a30e3..8653942c4da 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -867,47 +867,14 @@ while (0) #define GAS_ASM_SPEC "%{march=*} %{mtune=*} %{mcpu=*} %{m4650} %{mmad:-m4650} %{m3900} %{v} %{mgp32} %{mgp64} %(abi_gas_asm_spec) %{mabi=32:%{!mips*:-mips1}}" -/* We use the o32 abi as default for mips1 and mips2. SGI uses n32/n64 for - mips3 and mips4 by default, however, this is unsupported at this point in - binutils so we use o64. This should change when n32/n64 is supported. */ - extern int mips_abi; #ifndef MIPS_ABI_DEFAULT #define MIPS_ABI_DEFAULT ABI_32 #endif -#if MIPS_ABI_DEFAULT == ABI_32 -#define ABI_GAS_ASM_SPEC "%{mabi=*} \ -%{!mabi=*:%{mips3|mips4|mips5|mips64:-mabi=o64} %{!mips3:%{!mips4:%{!mips5:%{!mips64:-mabi=32}}}}}" -#endif - -#if MIPS_ABI_DEFAULT == ABI_N32 -#define ABI_GAS_ASM_SPEC "%{mabi=*} %{!mabi=*:-mabi=n32}" -#endif - -#if MIPS_ABI_DEFAULT == ABI_64 -#define ABI_GAS_ASM_SPEC "%{mabi=*} %{!mabi=*:-mabi=64}" -#endif - -#if MIPS_ABI_DEFAULT == ABI_EABI -#define ABI_GAS_ASM_SPEC "%{mabi=*} %{!mabi=*:-mabi=eabi}" -#endif - -#if MIPS_ABI_DEFAULT == ABI_O64 -#define ABI_GAS_ASM_SPEC "\ -%{mabi=*} \ -%{!mabi=*:%{mips1|mips2|mips32:-mabi=32} %{!mips1:%{!mips2:%{!mips3:%{!mips32:-mabi=o64}}}}}" -#endif - -#if MIPS_ABI_DEFAULT == ABI_MEABI -#define ABI_GAS_ASM_SPEC "\ -%{mabi=*} \ -%{!mabi=*:-mabi=meabi }" -#endif - #ifndef ABI_GAS_ASM_SPEC - #error "Unhandled MIPS_ABI_DEFAULT" +#define ABI_GAS_ASM_SPEC "" #endif /* TARGET_ASM_SPEC is used to select either MIPS_AS_ASM_SPEC or @@ -1070,9 +1037,171 @@ extern int mips_abi; be overridden by subtargets. */ #ifndef SUBTARGET_CPP_SIZE_SPEC + +#if MIPS_ISA_DEFAULT != 3 && MIPS_ISA_DEFAULT != 4 && MIPS_ISA_DEFAULT != 5 && MIPS_ISA_DEFAULT != 64 + +/* 32-bit cases first. */ + +#if MIPS_ABI_DEFAULT == ABI_EABI +#define SUBTARGET_CPP_SIZE_SPEC "\ +%{mabi=eabi|!mabi=*:\ + %{mips1|mips2|mips32|mlong32|mgp32:%{!mips3:%{!mips4:%{!mips5:%{!mips64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}} \ + %{mlong64:\ + %{mgp64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ + %{!mgp64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}\ + %{mips3|mips4|mips5|mips64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}} \ + %{!mips1:%{!mips2:%{!mips3:%{!mips4:%{!mips5:%{!mips32:%{!mips64:%{!mlong32:%{!mlong64:%{!mgp32:%{!mgp64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}}}}}}}}\ +%{mabi=o64:\ + %{mlong64:\ + %{!mgp32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ + %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ + %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ +%{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ +" +#endif + +#if MIPS_ABI_DEFAULT == ABI_O64 +#define SUBTARGET_CPP_SIZE_SPEC "\ +%{mabi=eabi:\ + %{mips1|mips2|mips32|mlong32|mgp32:%{!mips3:%{!mips4:%{!mips5:%{!mips64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}} \ + %{mlong64:\ + %{mgp64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ + %{!mgp64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}\ + %{mips3|mips4|mips5|mips64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}} \ + %{!mips1:%{!mips2:%{!mips3:%{!mips4:%{!mips5:%{!mips32:%{!mips64:%{!mlong32:%{!mlong64:%{!mgp32:%{!mgp64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}}}}}}}}\ +%{mabi=o64|!mabi=*:\ + %{mlong64:\ + %{!mgp32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ + %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ + %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ +%{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}\ +" +#endif + +#if MIPS_ABI_DEFAULT == ABI_32 #define SUBTARGET_CPP_SIZE_SPEC "\ -%{mlong64:%{!mips1:%{!mips2:%{!mips32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}} \ -%{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}" +%{mabi=eabi:\ + %{mips1|mips2|mips32|mlong32|mgp32:%{!mips3:%{!mips4:%{!mips5:%{!mips64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}} \ + %{mlong64:\ + %{mgp64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ + %{!mgp64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}\ + %{mips3|mips4|mips5|mips64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}} \ + %{!mips1:%{!mips2:%{!mips3:%{!mips4:%{!mips5:%{!mips32:%{!mips64:%{!mlong32:%{!mlong64:%{!mgp32:%{!mgp64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}}}}}}}}\ +%{mabi=o64:\ + %{mlong64:\ + %{!mgp32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ + %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ + %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ +%{mabi=32|!mabi=*:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}\ +" +#endif + +#if MIPS_ABI_DEFAULT == ABI_MEABI +#define SUBTARGET_CPP_SIZE_SPEC "\ +%{mabi=eabi:\ + %{mips1|mips2|mips32|mlong32|mgp32:%{!mips3:%{!mips4:%{!mips5:%{!mips64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}} \ + %{mlong64:\ + %{mgp64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ + %{!mgp64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}\ + %{mips3|mips4|mips5|mips64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}} \ + %{!mips1:%{!mips2:%{!mips3:%{!mips4:%{!mips5:%{!mips32:%{!mips64:%{!mlong32:%{!mlong64:%{!mgp32:%{!mgp64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}}}}}}}}\ +%{mabi=o64:\ + %{mlong64:\ + %{!mgp32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ + %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ + %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ +%{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}\ +%{mabi=meabi|!mabi=*:\ + %{mips3|mips4|mips5|mips64|mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ + %{!mips3:%{!mips4:%{!mips5:%{!mips64:%{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}}} \ +" +#endif + +#else + +/* 64-bit default ISA. */ + +#if MIPS_ABI_DEFAULT == ABI_EABI +#define SUBTARGET_CPP_SIZE_SPEC "\ +%{mabi=eabi|!mabi=*: \ + %{mips1|mips2|mips32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ + %{mlong32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ + %{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ + %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ + %{mips3|mips4|mips5|mips64:%{!mips1:%{!mips2:%{!mips32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}\ + %{!mips1:%{!mips2:%{!mips3:%{!mips4:%{!mips5:%{!mips32:%{!mips64:%{!mlong32:%{!mlong64:%{!mgp32:%{!mgp64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}}}}}}}}\ + %{mgp64:%{!mlong32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}\ +%{mabi=o64:\ + %{mlong64:\ + %{!mgp32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ + %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ + %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ +%{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ +" +#endif + +#if MIPS_ABI_DEFAULT == ABI_O64 +#define SUBTARGET_CPP_SIZE_SPEC "\ +%{mabi=eabi: \ + %{mips1|mips2|mips32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ + %{mlong32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ + %{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ + %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ + %{mips3|mips4|mips5|mips64:%{!mips1:%{!mips2:%{!mips32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}\ + %{!mips1:%{!mips2:%{!mips3:%{!mips4:%{!mips5:%{!mips32:%{!mips64:%{!mlong32:%{!mlong64:%{!mgp32:%{!mgp64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}}}}}}}}\ + %{mgp64:%{!mlong32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}\ +%{mabi=o64|!mabi=*:\ + %{mlong64:\ + %{!mgp32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ + %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ + %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ +%{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}\ +" +#endif + +#if MIPS_ABI_DEFAULT == ABI_32 +#define SUBTARGET_CPP_SIZE_SPEC "\ +%{mabi=eabi:\ + %{mips1|mips2|mips32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ + %{mlong32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ + %{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ + %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ + %{mips3|mips4|mips5|mips64:%{!mips1:%{!mips2:%{!mips32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}\ + %{!mips1:%{!mips2:%{!mips3:%{!mips4:%{!mips5:%{!mips32:%{!mips64:%{!mlong32:%{!mlong64:%{!mgp32:%{!mgp64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}}}}}}}}\ + %{mgp64:%{!mlong32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}\ +%{mabi=o64:\ + %{mlong64:\ + %{!mgp32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ + %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ + %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ +%{mabi=32|!mabi=*:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}\ +" +#endif + +#if MIPS_ABI_DEFAULT == ABI_MEABI +#define SUBTARGET_CPP_SIZE_SPEC "\ +%{mabi=eabi:\ + %{mips1|mips2|mips32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ + %{mlong32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ + %{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ + %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ + %{mips3|mips4|mips5|mips64:%{!mips1:%{!mips2:%{!mips32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}\ + %{!mips1:%{!mips2:%{!mips3:%{!mips4:%{!mips5:%{!mips32:%{!mips64:%{!mlong32:%{!mlong64:%{!mgp32:%{!mgp64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}}}}}}}}\ + %{mgp64:%{!mlong32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}\ +%{mabi=o64:\ + %{mlong64:\ + %{!mgp32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ + %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ + %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \ +%{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}\ +%{mabi=meabi|!mabi=*:\ + %{mips1|mips2|mips32|mlong32: -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ + %{!mips1:%{!mips2:%{!mips32:%{!mlong32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}} \ +" +#endif + +#endif + #endif /* SUBTARGET_CPP_SPEC is passed to the preprocessor. It may be @@ -2233,7 +2362,6 @@ extern enum reg_class mips_char_to_class[256]; /* If defined, gives a class of registers that cannot be used as the operand of a SUBREG that changes the mode of the object illegally. - When FP regs are larger than integer regs... Er, anyone remember what goes wrong? diff --git a/gcc/config/mips/r3900.h b/gcc/config/mips/r3900.h index 8fee4e73d3a..3eb62d89da2 100644 --- a/gcc/config/mips/r3900.h +++ b/gcc/config/mips/r3900.h @@ -1,4 +1,4 @@ -/* Definitions of MIPS sub target machine for GNU compiler. +/* Definitions of MIPS sub target machine for GNU compiler. Toshiba r3900. You should include mips.h after this. Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997 @@ -22,6 +22,14 @@ along with GNU CC; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#define MIPS_CPU_STRING_DEFAULT "R3900" +#define MIPS_ISA_DEFAULT 1 + +#define MULTILIB_DEFAULTS { MULTILIB_ENDIAN_DEFAULT, "msoft-float" } + +/* We use the MIPS EABI by default. */ +#define MIPS_ABI_DEFAULT ABI_EABI + #define SUBTARGET_CPP_SPEC "\ %{!mabi=32: %{!mabi=n32: %{!mabi=64: -D__mips_eabi}}} \ %{!msingle-float:-D__mips_soft_float} \ @@ -29,37 +37,20 @@ Boston, MA 02111-1307, USA. */ %{msingle-float:%{msoft-float: \ %e-msingle-float and -msoft-float can not both be specified}}" -/* The following is needed because -mips3 and -mips4 set gp64 which in - combination with abi=eabi, causes long64 to be set. */ -#define SUBTARGET_CPP_SIZE_SPEC "\ -%{mips3:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ -%{mips4:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ -%{!mips3:%{!mips4:%{!m4650:\ - -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}} " - /* by default (if not mips-something-else) produce code for the r3900 */ #define SUBTARGET_CC1_SPEC "\ %{mhard-float:%e-mhard-float not supported} \ %{msingle-float:%{msoft-float: \ %e-msingle-float and -msoft-float can not both be specified}}" -#define MIPS_CPU_STRING_DEFAULT "R3900" -#define MIPS_ISA_DEFAULT 1 - -#define MULTILIB_DEFAULTS { MULTILIB_ENDIAN_DEFAULT, "msoft-float" } - -/* We use the MIPS EABI by default. */ -#define MIPS_ABI_DEFAULT ABI_EABI - - /* Debugging */ #define DWARF2_DEBUGGING_INFO #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG -/* For the 'preferred' cases ("gN" and "ggdbN") we need to tell the +/* For the 'preferred' cases ("gN" and "ggdbN") we need to tell the gnu assembler not to generate debugging information. */ - + #define SUBTARGET_ASM_DEBUGGING_SPEC "\ %{!mmips-as: \ %{g:-g0} %{g0:-g0} %{g1:-g0} %{g2:-g0} %{g3:-g0} \ diff --git a/gcc/config/mips/t-elf b/gcc/config/mips/t-elf index 0e8da0474e5..06c297c540b 100644 --- a/gcc/config/mips/t-elf +++ b/gcc/config/mips/t-elf @@ -53,8 +53,8 @@ fp-bit.c: $(srcdir)/config/fp-bit.c # Build the libraries for both hard and soft floating point -MULTILIB_OPTIONS = msoft-float/msingle-float EL/EB mips1/mips3 -MULTILIB_DIRNAMES = soft-float single el eb mips1 mips3 +MULTILIB_OPTIONS = msoft-float/msingle-float EL/EB +MULTILIB_DIRNAMES = soft-float single el eb MULTILIB_MATCHES = msingle-float=m4650 EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o