From edb62049bc2b28a6d6d1dd5f56c1f8d777f3b0ca Mon Sep 17 00:00:00 2001 From: comex Date: Tue, 24 Feb 2015 20:48:40 -0500 Subject: fix armv7 syscall registers :o --- lib/darwin/manual-syscall.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/darwin/manual-syscall.h b/lib/darwin/manual-syscall.h index f16ec54..9966981 100644 --- a/lib/darwin/manual-syscall.h +++ b/lib/darwin/manual-syscall.h @@ -35,11 +35,16 @@ #ifdef __thumb__ #undef GEN_SYSCALL_PRE #define GEN_SYSCALL_PRE(name) \ - ".thumb_func _manual_" #name "\n" + ".thumb_func _manual_" #name "\n" \ + ".align 2\n" #endif #define GEN_SYSCALL_INNER() \ + "mov r12, sp\n" \ + "push {r4-r6}\n" \ + "ldm r12, {r4-r6}\n" \ "mov r12, #num\n" \ "svc #0x80\n" \ + "pop {r4-r6}\n" \ "bx lr\n" #elif defined(__arm64__) #define GEN_SYSCALL_INNER() \ -- cgit v1.2.3