Use R*_LP to call _dl_profile_fixup and frame size
This commit is contained in:
parent
d9754f5572
commit
d86813a021
@ -1,3 +1,9 @@
|
||||
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.
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user