diff options
author | Rask Ingemann Lambertsen <rask@sygehus.dk> | 2007-11-28 02:04:27 +0100 |
---|---|---|
committer | Rask Ingemann Lambertsen <rask@gcc.gnu.org> | 2007-11-28 01:04:27 +0000 |
commit | 296ea027d231d225df9ebb25c98f0e1f694c82d5 (patch) | |
tree | ec204572e72278a4058175e18b2552656c856360 /gcc/config | |
parent | d46e0870c0206a50b032a5330760757b9afddc0b (diff) | |
download | gcc-296ea027d231d225df9ebb25c98f0e1f694c82d5.zip gcc-296ea027d231d225df9ebb25c98f0e1f694c82d5.tar.gz gcc-296ea027d231d225df9ebb25c98f0e1f694c82d5.tar.bz2 |
linux.h (CRT_GET_RFIB_DATA): Add Intel syntax inline asm to macro.
* config/i386/linux.h (CRT_GET_RFIB_DATA): Add Intel syntax inline
asm to macro.
* config/i386/sco5.h (CRT_GET_RFIB_DATA): Likewise.
* config/i386/sysv4.h (CRT_GET_RFIB_DATA): Likewise.
From-SVN: r130485
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/i386/linux.h | 5 | ||||
-rw-r--r-- | gcc/config/i386/sco5.h | 5 | ||||
-rw-r--r-- | gcc/config/i386/sysv4.h | 5 |
3 files changed, 9 insertions, 6 deletions
diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h index d59dc04..ac81498 100644 --- a/gcc/config/i386/linux.h +++ b/gcc/config/i386/linux.h @@ -180,11 +180,12 @@ along with GCC; see the file COPYING3. If not see #define CRT_GET_RFIB_DATA(BASE) \ __asm__ ("call\t.LPR%=\n" \ ".LPR%=:\n\t" \ - "popl\t%0\n\t" \ + "pop{l}\t%0\n\t" \ /* Due to a GAS bug, this cannot use EAX. That encodes \ smaller than the traditional EBX, which results in the \ offset being off by one. */ \ - "addl\t$_GLOBAL_OFFSET_TABLE_+[.-.LPR%=],%0" \ + "add{l}\t{$_GLOBAL_OFFSET_TABLE_+[.-.LPR%=],%0" \ + "|%0,_GLOBAL_OFFSET_TABLE_+(.-.LPR%=)}" \ : "=d"(BASE)) #endif diff --git a/gcc/config/i386/sco5.h b/gcc/config/i386/sco5.h index 9706846..4f19fd4 100644 --- a/gcc/config/i386/sco5.h +++ b/gcc/config/i386/sco5.h @@ -300,11 +300,12 @@ along with GCC; see the file COPYING3. If not see #define CRT_GET_RFIB_DATA(BASE) \ __asm__ ("call\t.LPR%=\n" \ ".LPR%=:\n\t" \ - "popl\t%0\n\t" \ + "pop{l}\t%0\n\t" \ /* Due to a GAS bug, this cannot use EAX. That encodes \ smaller than the traditional EBX, which results in the \ offset being off by one. */ \ - "addl\t$_GLOBAL_OFFSET_TABLE_+[.-.LPR%=],%0" \ + "add{l}\t{$_GLOBAL_OFFSET_TABLE_+[.-.LPR%=],%0" \ + "|%0,_GLOBAL_OFFSET_TABLE_+(.-.LPR%=)}" \ : "=d"(BASE)) #endif diff --git a/gcc/config/i386/sysv4.h b/gcc/config/i386/sysv4.h index f9180e2..e105272 100644 --- a/gcc/config/i386/sysv4.h +++ b/gcc/config/i386/sysv4.h @@ -123,10 +123,11 @@ along with GCC; see the file COPYING3. If not see #define CRT_GET_RFIB_DATA(BASE) \ __asm__ ("call\t.LPR%=\n" \ ".LPR%=:\n\t" \ - "popl\t%0\n\t" \ + "pop{l}\t%0\n\t" \ /* Due to a GAS bug, this cannot use EAX. That encodes \ smaller than the traditional EBX, which results in the \ offset being off by one. */ \ - "addl\t$_GLOBAL_OFFSET_TABLE_+[.-.LPR%=],%0" \ + "add{l}\t{$_GLOBAL_OFFSET_TABLE_+[.-.LPR%=],%0" \ + "|%0,_GLOBAL_OFFSET_TABLE_+(.-.LPR%=)}" \ : "=d"(BASE)) #endif |