diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/unix/sysv/linux/arm/sysdep.h | 9 |
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 c337af2..1413a48 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) \ |