diff options
Diffstat (limited to 'sysdeps/i386/dl-machine.h')
-rw-r--r-- | sysdeps/i386/dl-machine.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h index 213060ba84..f9913cf00c 100644 --- a/sysdeps/i386/dl-machine.h +++ b/sysdeps/i386/dl-machine.h @@ -57,10 +57,9 @@ static inline Elf32_Addr __attribute__ ((unused)) elf_machine_load_address (void) { Elf32_Addr addr; - asm (" call 1f\n" - "1: popl %0\n" - " subl 1b@GOT(%%ebx), %0" - : "=r" (addr)); + asm ("leal _dl_start@GOTOFF(%%ebx), %0\n" + "subl _dl_start@GOT(%%ebx), %0" + : "=r" (addr) : : "cc"); return addr; } @@ -250,6 +249,7 @@ _dl_start_user:\n\ movl _dl_fini@GOT(%ebx), %edx\n\ # Jump to the user's entry point.\n\ jmp *%edi\n\ +.previous\n\ "); /* Nonzero iff TYPE should not be allowed to resolve to one of |