abi64.h (LONG_MAX_SPEC): Check MIPS_ABI_DEFAULT and TARGET_DEFAULT, and define __LONG_MAX__ appropriately.
* abi64.h (LONG_MAX_SPEC): Check MIPS_ABI_DEFAULT and TARGET_DEFAULT, and define __LONG_MAX__ appropriately. Add support for -mabi=X, -mlong64, and -mgp{32,64} options. * mips.c (mips_abi): Change type to int. * mips.h (enum mips_abi_type): Delete. (ABI_32, ABI_N32, ABI_64, ABI_EABI): Define as constants. (mips_abi): Change type to int. From-SVN: r17229
This commit is contained in:
parent
439d5a35d8
commit
04bd620d20
4 changed files with 36 additions and 11 deletions
|
@ -1,3 +1,13 @@
|
|||
Wed Dec 24 23:12:14 1997 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* abi64.h (LONG_MAX_SPEC): Check MIPS_ABI_DEFAULT and TARGET_DEFAULT,
|
||||
and define __LONG_MAX__ appropriately. Add support for -mabi=X,
|
||||
-mlong64, and -mgp{32,64} options.
|
||||
* mips.c (mips_abi): Change type to int.
|
||||
* mips.h (enum mips_abi_type): Delete.
|
||||
(ABI_32, ABI_N32, ABI_64, ABI_EABI): Define as constants.
|
||||
(mips_abi): Change type to int.
|
||||
|
||||
Wed Dec 24 22:38:34 1997 John Carr <jfc@mit.edu>
|
||||
|
||||
* flags.h, toplev.c, calls.c, alias.c: Remove flag_alias_check;
|
||||
|
|
|
@ -213,8 +213,24 @@ extern struct rtx_def *mips_function_value ();
|
|||
(mips_abi == ABI_EABI && (NAMED) \
|
||||
&& FUNCTION_ARG_PASS_BY_REFERENCE (CUM, MODE, TYPE, NAMED))
|
||||
|
||||
/* Define LONG_MAX correctly for all users. We need to handle 32 bit EABI,
|
||||
64 bit EABI, N32, and N64 as possible defaults. The checks performed here
|
||||
are the same as the checks in override_options in mips.c that determines
|
||||
whether MASK_LONG64 will be set.
|
||||
|
||||
This does not handle inappropriate options or ununusal option
|
||||
combinations. */
|
||||
|
||||
#undef LONG_MAX_SPEC
|
||||
#define LONG_MAX_SPEC "%{!mno-long64:-D__LONG_MAX__=9223372036854775807LL}"
|
||||
#if ((MIPS_ABI_DEFAULT == ABI_64) || ((MIPS_ABI_DEFAULT == ABI_EABI) && ((TARGET_DEFAULT | TARGET_CPU_DEFAULT) & MASK_64BIT)))
|
||||
#define LONG_MAX_SPEC \
|
||||
"%{!mabi=n32:%{!mno-long64:%{!mgp32:-D__LONG_MAX__=9223372036854775807L}}}"
|
||||
#else
|
||||
#define LONG_MAX_SPEC \
|
||||
"%{mabi=64:-D__LONG_MAX__=9223372036854775807L} \
|
||||
%{mlong64:-D__LONG_MAX__=9223372036854775807L} \
|
||||
%{mgp64:-D__LONG_MAX__=9223372036854775807L}"
|
||||
#endif
|
||||
|
||||
/* ??? Unimplemented stuff follows. */
|
||||
|
||||
|
|
|
@ -194,9 +194,9 @@ enum processor_type mips_cpu;
|
|||
int mips_isa;
|
||||
|
||||
#ifdef MIPS_ABI_DEFAULT
|
||||
/* which ABI to use. This is defined to a constant in mips.h if the target
|
||||
/* Which ABI to use. This is defined to a constant in mips.h if the target
|
||||
doesn't support multiple ABIs. */
|
||||
enum mips_abi_type mips_abi;
|
||||
int mips_abi;
|
||||
#endif
|
||||
|
||||
/* Strings to hold which cpu and instruction set architecture to use. */
|
||||
|
|
|
@ -75,21 +75,20 @@ enum processor_type {
|
|||
/* Recast the cpu class to be the cpu attribute. */
|
||||
#define mips_cpu_attr ((enum attr_cpu)mips_cpu)
|
||||
|
||||
/* Which ABI to use. This is only used by the Irix 6 port currently. */
|
||||
/* Which ABI to use. These are constants because abi64.h must check their
|
||||
value at preprocessing time. */
|
||||
|
||||
enum mips_abi_type {
|
||||
ABI_32,
|
||||
ABI_N32,
|
||||
ABI_64,
|
||||
ABI_EABI
|
||||
};
|
||||
#define ABI_32 0
|
||||
#define ABI_N32 1
|
||||
#define ABI_64 2
|
||||
#define ABI_EABI 3
|
||||
|
||||
#ifndef MIPS_ABI_DEFAULT
|
||||
/* We define this away so that there is no extra runtime cost if the target
|
||||
doesn't support multiple ABIs. */
|
||||
#define mips_abi ABI_32
|
||||
#else
|
||||
extern enum mips_abi_type mips_abi;
|
||||
extern int mips_abi;
|
||||
#endif
|
||||
|
||||
/* Whether to emit abicalls code sequences or not. */
|
||||
|
|
Loading…
Add table
Reference in a new issue