aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/arm/sysdep.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/arm/sysdep.h')
-rw-r--r--sysdeps/unix/sysv/linux/arm/sysdep.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/sysdeps/unix/sysv/linux/arm/sysdep.h b/sysdeps/unix/sysv/linux/arm/sysdep.h
index c337af2b14..1413a48736 100644
--- a/sysdeps/unix/sysv/linux/arm/sysdep.h
+++ b/sysdeps/unix/sysv/linux/arm/sysdep.h
@@ -52,8 +52,13 @@
.type syscall_error,%function; \
ENTRY (name); \
DO_CALL (args, syscall_name); \
- cmn r0, $4096; \
- bhs PLTJMP(C_SYMBOL_NAME(__syscall_error));
+ cmn r0, $4096;
+
+#define PSEUDO_RET \
+ RETINSTR(movcc, pc, lr); \
+ b PLTJMP(__syscall_error)
+#undef ret
+#define ret PSEUDO_RET
#undef PSEUDO_END
#define PSEUDO_END(name) \