54 lines
2.0 KiB
C
54 lines
2.0 KiB
C
--- config/i386/i386.h.orig Fri Sep 22 15:42:57 1995
|
|
+++ config/i386/i386.h Mon Mar 20 13:29:12 2000
|
|
@@ -1286,6 +1286,22 @@
|
|
} \
|
|
while (0)
|
|
|
|
+/* Define this macro if a SYMBOL_REF representing a non-global
|
|
+ address must be marked specially. This is called for
|
|
+ compiler-generated local symbols, such as "__EXCEPTION_TABLE__".
|
|
+
|
|
+ On i386, if using PIC, we use this to set the rtx's
|
|
+ SYMBOL_REF_FLAG, so that we may access it directly as
|
|
+ an offset from the GOT register. */
|
|
+
|
|
+#define MARK_LOCAL_ADDRESS(X) \
|
|
+do \
|
|
+ { \
|
|
+ if (flag_pic && GET_CODE (X) == SYMBOL_REF) \
|
|
+ SYMBOL_REF_FLAG (X) = 1; \
|
|
+ } \
|
|
+while (0)
|
|
+
|
|
/* Initialize data used by insn expanders. This is called from
|
|
init_emit, once for each function, before code is generated.
|
|
For 386, clear stack slot assignments remembered from previous
|
|
@@ -1621,7 +1637,7 @@
|
|
do { long l[2]; \
|
|
REAL_VALUE_TO_TARGET_DOUBLE (VALUE, l); \
|
|
if (sizeof (int) == sizeof (long)) \
|
|
- fprintf (FILE, "%s 0x%x,0x%x\n", ASM_LONG, l[0], l[1]); \
|
|
+ fprintf (FILE, "%s 0x%x,0x%x\n", ASM_LONG, (int) l[0], (int) l[1]); \
|
|
else \
|
|
fprintf (FILE, "%s 0x%lx,0x%lx\n", ASM_LONG, l[0], l[1]); \
|
|
} while (0)
|
|
@@ -1633,7 +1649,8 @@
|
|
do { long l[3]; \
|
|
REAL_VALUE_TO_TARGET_LONG_DOUBLE (VALUE, l); \
|
|
if (sizeof (int) == sizeof (long)) \
|
|
- fprintf (FILE, "%s 0x%x,0x%x,0x%x\n", ASM_LONG, l[0], l[1], l[2]); \
|
|
+ fprintf (FILE, "%s 0x%x,0x%x,0x%x\n", ASM_LONG, \
|
|
+ (int) l[0], (int) l[1], (int) l[2]); \
|
|
else \
|
|
fprintf (FILE, "%s 0x%lx,0x%lx,0x%lx\n", ASM_LONG, l[0], l[1], l[2]); \
|
|
} while (0)
|
|
@@ -1644,7 +1661,7 @@
|
|
do { long l; \
|
|
REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \
|
|
if (sizeof (int) == sizeof (long)) \
|
|
- fprintf ((FILE), "%s 0x%x\n", ASM_LONG, l); \
|
|
+ fprintf ((FILE), "%s 0x%x\n", ASM_LONG, (int) l); \
|
|
else \
|
|
fprintf ((FILE), "%s 0x%lx\n", ASM_LONG, l); \
|
|
} while (0)
|