about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2014-05-21 11:36:03 -0400
committerRichard Henderson <rth@redhat.com>2014-05-21 11:36:03 -0400
commit3612eb8f25d978e7e4ac536a34098091f737161c (patch)
tree7d70eb50ed9a9a6a6b807cc345b2e27e26983248
parent175cef4163dd60f95106cfd5f593b8a4e09d02c9 (diff)
downloadglibc-3612eb8f25d978e7e4ac536a34098091f737161c.tar.gz
glibc-3612eb8f25d978e7e4ac536a34098091f737161c.tar.xz
glibc-3612eb8f25d978e7e4ac536a34098091f737161c.zip
aarch64: Merge rtld_errno offset with memory reference
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sysdep.h3
2 files changed, 6 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 7f49fbbf70..4f0414ef0a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-05-21  Richard Henderson  <rth@redhat.com>
+
+	* sysdeps/unix/sysv/linux/aarch64/sysdep.h [RTLD_PRIVATE_ERRNO]
+	(SYSCALL_ERROR_HANDLER): Fold add insn into str offset.
+
 2014-05-20  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c
diff --git a/sysdeps/unix/sysv/linux/aarch64/sysdep.h b/sysdeps/unix/sysv/linux/aarch64/sysdep.h
index d90ef25bc4..8397ad30a9 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sysdep.h
@@ -117,9 +117,8 @@
 #   define SYSCALL_ERROR_HANDLER				\
 __local_syscall_error:						\
 	adrp	x1, C_SYMBOL_NAME(rtld_errno);			\
-	add	x1, x1, #:lo12:C_SYMBOL_NAME(rtld_errno);	\
 	neg     w0, w0;						\
-	str     w0, [x1];					\
+	str     w0, [x1, :lo12:C_SYMBOL_NAME(rtld_errno)];	\
 	mov	x0, -1;						\
 	RET;
 #  else