+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.
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