summaryrefslogtreecommitdiff
path: root/gcc/config/mips/mips.h
diff options
context:
space:
mode:
authorgavin <gavin@138bc75d-0d04-0410-961f-82ee72b054a4>1999-03-16 07:25:31 +0000
committergavin <gavin@138bc75d-0d04-0410-961f-82ee72b054a4>1999-03-16 07:25:31 +0000
commit23317e356cfea9767204c6578b3c1c069cae9143 (patch)
treee615d0f3f80e5164dd0c8c28416a04e0245726f3 /gcc/config/mips/mips.h
parent4c9096cc1de90a755d8ee6e5e1c313c67865f5e4 (diff)
downloadgcc-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.h10
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