diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2012-05-15 14:24:00 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2012-05-15 14:24:00 -0700 |
commit | d86813a021b6200cf2ff75041abc101cefcb2da2 (patch) | |
tree | 78229daafca1e152159b4953f12fc602f5f62ff3 | |
parent | d9754f5572a0bde769804157cf2e47a47fd65b9c (diff) | |
download | glibc-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-- | ChangeLog | 6 | ||||
-rw-r--r-- | sysdeps/x86_64/dl-trampoline.h | 16 |
2 files changed, 14 insertions, 8 deletions
@@ -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 |