aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2012-05-15 14:24:00 -0700
committerH.J. Lu <hjl.tools@gmail.com>2012-05-15 14:24:00 -0700
commitd86813a021b6200cf2ff75041abc101cefcb2da2 (patch)
tree78229daafca1e152159b4953f12fc602f5f62ff3
parentd9754f5572a0bde769804157cf2e47a47fd65b9c (diff)
downloadglibc-d86813a021b6200cf2ff75041abc101cefcb2da2.tar
glibc-d86813a021b6200cf2ff75041abc101cefcb2da2.tar.gz
glibc-d86813a021b6200cf2ff75041abc101cefcb2da2.tar.bz2
glibc-d86813a021b6200cf2ff75041abc101cefcb2da2.zip
Use R*_LP to call _dl_profile_fixup and frame size
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/x86_64/dl-trampoline.h16
2 files changed, 14 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 214ef35d84..06d3a4f54e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2012-05-15 H.J. Lu <hongjiu.lu@intel.com>
+ * sysdeps/x86_64/dl-trampoline.h: Use R*_LP to pass arguments
+ and access return value for _dl_profile_fixup. Use R10_LP to
+ load frame size.
+
+2012-05-15 H.J. Lu <hongjiu.lu@intel.com>
+
* sysdeps/unix/sysv/linux/x86_64/x32/init-first.c: New.
2012-05-15 H.J. Lu <hongjiu.lu@intel.com>
diff --git a/sysdeps/x86_64/dl-trampoline.h b/sysdeps/x86_64/dl-trampoline.h
index 4c18e692db..0f3de3d3d5 100644
--- a/sysdeps/x86_64/dl-trampoline.h
+++ b/sysdeps/x86_64/dl-trampoline.h
@@ -40,14 +40,14 @@
vmovdqa %xmm7, (LR_SIZE + XMM_SIZE*7)(%rsp)
#endif
- movq %rsp, %rcx # La_x86_64_regs pointer to %rcx.
- movq 48(%rbx), %rdx # Load return address if needed.
- movq 40(%rbx), %rsi # Copy args pushed by PLT in register.
- movq 32(%rbx), %rdi # %rdi: link_map, %rsi: reloc_index
- leaq 16(%rbx), %r8
+ mov %RSP_LP, %RCX_LP # La_x86_64_regs pointer to %rcx.
+ mov 48(%rbx), %RDX_LP # Load return address if needed.
+ mov 40(%rbx), %RSI_LP # Copy args pushed by PLT in register.
+ mov 32(%rbx), %RDI_LP # %rdi: link_map, %rsi: reloc_index
+ lea 16(%rbx), %R8_LP # Address of framesize
call _dl_profile_fixup # Call resolver.
- movq %rax, %r11 # Save return value.
+ mov %RAX_LP, %R11_LP # Save return value.
movq 8(%rbx), %rax # Get back register content.
movq LR_RDX_OFFSET(%rsp), %rdx
@@ -140,8 +140,8 @@
1:
#endif
- movq 16(%rbx), %r10 # Anything in framesize?
- testq %r10, %r10
+ mov 16(%rbx), %R10_LP # Anything in framesize?
+ test %R10_LP, %R10_LP
jns 3f
/* There's nothing in the frame size, so there