about summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2012-05-14 15:17:30 -0700
committerH.J. Lu <hjl.tools@gmail.com>2012-05-14 15:17:30 -0700
commit11de3a3371c18b6fe955d4b43071656baf4b8804 (patch)
tree5c103ab69b4e5642e8fd91ff389d5b0d17f273e0
parente02f153a1ab75b95e3991dd9dbd3b9220dc9c3ae (diff)
downloadglibc-11de3a3371c18b6fe955d4b43071656baf4b8804.tar.gz
glibc-11de3a3371c18b6fe955d4b43071656baf4b8804.tar.xz
glibc-11de3a3371c18b6fe955d4b43071656baf4b8804.zip
Update elf_machine_load_address for x32
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/x86_64/dl-machine.h6
2 files changed, 8 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 6fbcc32a84..7c487bd6a9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2012-05-14  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/dl-machine.h (elf_machine_load_address): Remove
+	the `q' suffix from lea and replace .quad with ASM_ADDR.
+
+2012-05-14  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/sysdep.h (PTR_MANGLE): Remove
 	the `q' suffix from xor/rol instructions.  Use $2*LP_SIZE+1
 	instead of $17.
diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h
index 32814b14f7..9c27ecffd8 100644
--- a/sysdeps/x86_64/dl-machine.h
+++ b/sysdeps/x86_64/dl-machine.h
@@ -72,10 +72,10 @@ elf_machine_load_address (void)
      load offset which is zero if the binary was loaded at the address
      it is prelinked for.  */
 
-  asm ("leaq _dl_start(%%rip), %0\n\t"
-       "subq 1f(%%rip), %0\n\t"
+  asm ("lea _dl_start(%%rip), %0\n\t"
+       "sub 1f(%%rip), %0\n\t"
        ".section\t.data.rel.ro\n"
-       "1:\t.quad _dl_start\n\t"
+       "1:\t" ASM_ADDR " _dl_start\n\t"
        ".previous\n\t"
        : "=r" (addr) : : "cc");