Use R*_LP to call _dl_profile_fixup and frame size
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 15 May 2012 21:24:00 +0000 (14:24 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 15 May 2012 21:24:00 +0000 (14:24 -0700)
ChangeLog
sysdeps/x86_64/dl-trampoline.h

index 214ef35..06d3a4f 100644 (file)
--- 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>
index 4c18e69..0f3de3d 100644 (file)
        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
 
 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