One GLOBAL_OFFSET_TABLE to fix...

This commit is contained in:
espie 2001-09-12 22:15:53 +00:00
parent d57441d59e
commit 8ae06fad92

View File

@ -0,0 +1,29 @@
$OpenBSD: patch-gcc_config_i386_unix_h,v 1.1 2001/09/12 22:15:53 espie Exp $
--- gcc/config/i386/unix.h.orig Wed Sep 12 21:28:57 2001
+++ gcc/config/i386/unix.h Wed Sep 12 22:23:47 2001
@@ -87,7 +87,7 @@ Boston, MA 02111-1307, USA. */
#define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \
do { \
tree parm; \
- rtx xops[2]; \
+ rtx xops[3]; \
\
if (ix86_regparm > 0) \
parm = TYPE_ARG_TYPES (TREE_TYPE (function)); \
@@ -110,6 +110,7 @@ do { \
{ \
xops[0] = pic_offset_table_rtx; \
xops[1] = gen_label_rtx (); \
+ xops[2] = gen_rtx_SYMBOL_REF (Pmode, "_GLOBAL_OFFSET_TABLE_"); \
\
if (ix86_regparm > 2) \
abort (); \
@@ -117,7 +118,7 @@ do { \
output_asm_insn ("call\t%P1", xops); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "L", CODE_LABEL_NUMBER (xops[1])); \
output_asm_insn ("pop{l}\t%0", xops); \
- output_asm_insn ("add{l}\t{$_GLOBAL_OFFSET_TABLE_+[.-%P1], %0|%0, OFFSET FLAT: _GLOBAL_OFFSET_TABLE_+[.-%P1]}", xops); \
+ output_asm_insn ("add{l}\t{%2+[.-%P1], %0|%0, OFFSET FLAT: %2+[.-%P1]}", xops); \
xops[0] = gen_rtx_MEM (SImode, XEXP (DECL_RTL (FUNCTION), 0)); \
output_asm_insn ("mov{l}\t{%0@GOT(%%ebx), %%ecx|%%ecx, %0@GOT[%%ebx]}",\
xops); \