diff options
author | Richard Henderson <rth@redhat.com> | 2014-05-21 11:36:03 -0400 |
---|---|---|
committer | Will Newton <will.newton@linaro.org> | 2014-07-03 14:41:18 +0100 |
commit | 30dfe53de773f49e432060e59d551b18d1b064f5 (patch) | |
tree | ffb9dd04af4501e64ea083aa95f2ef96f30989f9 | |
parent | b51c908c3b113fc3d67d16b1230c47b4a5be4eca (diff) |
aarch64: Merge rtld_errno offset with memory reference
-rw-r--r-- | libc/ports/ChangeLog.aarch64.linaro | 5 | ||||
-rw-r--r-- | libc/ports/sysdeps/unix/sysv/linux/aarch64/sysdep.h | 3 |
2 files changed, 6 insertions, 2 deletions
diff --git a/libc/ports/ChangeLog.aarch64.linaro b/libc/ports/ChangeLog.aarch64.linaro index 65de2f98c..18e815e65 100644 --- a/libc/ports/ChangeLog.aarch64.linaro +++ b/libc/ports/ChangeLog.aarch64.linaro @@ -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-06-02 Wilco <wdijkstr@arm.com> * sysdeps/aarch64/fpu/fpu_control.h (_FPU_SETCW): Remove ISB after diff --git a/libc/ports/sysdeps/unix/sysv/linux/aarch64/sysdep.h b/libc/ports/sysdeps/unix/sysv/linux/aarch64/sysdep.h index 5ccf1da18..88325a367 100644 --- a/libc/ports/sysdeps/unix/sysv/linux/aarch64/sysdep.h +++ b/libc/ports/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 |