diff options
author | gavin <gavin@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-03-16 07:25:31 +0000 |
---|---|---|
committer | gavin <gavin@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-03-16 07:25:31 +0000 |
commit | 23317e356cfea9767204c6578b3c1c069cae9143 (patch) | |
tree | e615d0f3f80e5164dd0c8c28416a04e0245726f3 /gcc/config/mips/mips.h | |
parent | 4c9096cc1de90a755d8ee6e5e1c313c67865f5e4 (diff) | |
download | gcc-23317e356cfea9767204c6578b3c1c069cae9143.tar.gz |
* config/mips/iris.h (CTORS_SECTION_ASM_OP,DTORS_SECTION_ASM_OP,
dtors_section): Use Pmode == DImode rather than TARGET_LONG64.
* config/mips/mips.c (override_options): Allow -mlong64 and
-mint64 with -mips2 or less.
* config/mips/mips.h (MASK_LONG64): Fix comment.
(POINTER_SIZE): Use Pmode == DImode rather than TARGET_LONG64.
(Pmode): Make Pmode the smaller of longs or gp registers.
* invoke.texi: Note the new size for pointers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25798 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/mips/mips.h')
-rw-r--r-- | gcc/config/mips/mips.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index b6d1dcf3310..ea7174089b6 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -315,7 +315,7 @@ extern void mips_select_section (); /* Bits for real switches */ #define MASK_INT64 0x00000001 /* ints are 64 bits */ -#define MASK_LONG64 0x00000002 /* longs and pointers are 64 bits */ +#define MASK_LONG64 0x00000002 /* longs are 64 bits */ #define MASK_SPLIT_ADDR 0x00000004 /* Address splitting is enabled. */ #define MASK_GPOPT 0x00000008 /* Optimize for global pointer */ #define MASK_GAS 0x00000010 /* Gas used instead of MIPS as */ @@ -1344,7 +1344,7 @@ do { \ /* Width in bits of a pointer. See also the macro `Pmode' defined below. */ #ifndef POINTER_SIZE -#define POINTER_SIZE (TARGET_LONG64 ? 64 : 32) +#define POINTER_SIZE (Pmode == DImode ? 64 : 32) #endif /* Allocation boundary (in *bits*) for storing pointers in memory. */ @@ -3240,10 +3240,12 @@ while (0) /* Specify the machine mode that pointers have. After generation of rtl, the compiler makes no further distinction - between pointers and any other objects of this machine mode. */ + between pointers and any other objects of this machine mode. + + For MIPS we make pointers are the smaller of longs and gp-registers. */ #ifndef Pmode -#define Pmode ((enum machine_mode)(TARGET_LONG64 ? DImode : SImode)) +#define Pmode ((enum machine_mode)((TARGET_LONG64 && TARGET_64BIT) ? DImode : SImode)) #endif /* A function address in a call instruction |