One GLOBAL_OFFSET_TABLE to fix...
This commit is contained in:
parent
d57441d59e
commit
8ae06fad92
29
lang/egcs/stable/patches/patch-gcc_config_i386_unix_h
Normal file
29
lang/egcs/stable/patches/patch-gcc_config_i386_unix_h
Normal 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); \
|
Loading…
Reference in New Issue
Block a user