about summary refs log tree commit diff
path: root/sysdeps/unix
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix')
-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)						      \