This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: Use R10_LP to load frame size


On Tue, May 15, 2012 at 10:11 AM, Roland McGrath <roland@hack.frob.com> wrote:
> Might as well use R*_LP for all those arg registers too.

Here is the patch.  OK to install?

Thanks.

-- 
H.J.
---
	* 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.

diff --git a/sysdeps/x86_64/dl-trampoline.h b/sysdeps/x86_64/dl-trampoline.h
index 4c18e69..0f3de3d 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]