summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/arm/vfork.S
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/linux/arm/vfork.S')
-rw-r--r--libc/sysdeps/linux/arm/vfork.S8
1 files changed, 8 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/arm/vfork.S b/libc/sysdeps/linux/arm/vfork.S
index e13636940..486a7e8e4 100644
--- a/libc/sysdeps/linux/arm/vfork.S
+++ b/libc/sysdeps/linux/arm/vfork.S
@@ -26,7 +26,11 @@ __vfork:
#ifdef __NR_vfork
DO_CALL (vfork)
cmn r0, #4096
+#if defined(__THUMB_INTERWORK__)
+ bxcc lr
+#else
movcc pc, lr
+#endif
/* Check if vfork even exists. */
ldr r1, =-ENOSYS
@@ -39,7 +43,11 @@ __vfork:
cmn r0, #4096
/* Syscall worked. Return to child/parent */
+#if defined(__THUMB_INTERWORK__)
+ bxcc lr
+#else
movcc pc, lr
+#endif
__error:
b __syscall_error