diff options
Diffstat (limited to 'ports/sysdeps/unix/sysv/linux/arm/sysdep.h')
-rw-r--r-- | ports/sysdeps/unix/sysv/linux/arm/sysdep.h | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/ports/sysdeps/unix/sysv/linux/arm/sysdep.h b/ports/sysdeps/unix/sysv/linux/arm/sysdep.h index f40cb95e87..89208a9f19 100644 --- a/ports/sysdeps/unix/sysv/linux/arm/sysdep.h +++ b/ports/sysdeps/unix/sysv/linux/arm/sysdep.h @@ -110,12 +110,10 @@ # if RTLD_PRIVATE_ERRNO # define SYSCALL_ERROR_HANDLER \ __local_syscall_error: \ - ldr r1, 1f; \ - rsb r0, r0, #0; \ -0: str r0, [pc, r1]; \ - mvn r0, #0; \ - DO_RET(lr); \ -1: .word C_SYMBOL_NAME(rtld_errno) - 0b - PC_OFS; + rsb r0, r0, #0; \ + LDST_PCREL(str, r0, r1, C_SYMBOL_NAME(rtld_errno)); \ + mvn r0, #0; \ + DO_RET(lr) # else # if defined(__ARM_ARCH_4T__) && defined(__THUMB_INTERWORK__) # define POP_PC \ |