summary refs log tree commit diff
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.gz
glibc-d86813a021b6200cf2ff75041abc101cefcb2da2.tar.xz
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