diff options
author | comex | 2015-02-22 23:03:31 -0500 |
---|---|---|
committer | comex | 2015-02-23 00:54:13 -0500 |
commit | eaf872dc03498d99bfbca802237ea8d10b8523b0 (patch) | |
tree | e0d22908cc51f3bfeebcc28f81752d931c32b468 /lib/darwin/manual-syscall.h | |
parent | Fix vm_remap, of trouble with which the previous diagnosis was completely inc... (diff) | |
download | substitute-eaf872dc03498d99bfbca802237ea8d10b8523b0.tar.gz |
fix i386 manual syscall, mmap return check
Diffstat (limited to 'lib/darwin/manual-syscall.h')
-rw-r--r-- | lib/darwin/manual-syscall.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/darwin/manual-syscall.h b/lib/darwin/manual-syscall.h index b1bac7e..88ac179 100644 --- a/lib/darwin/manual-syscall.h +++ b/lib/darwin/manual-syscall.h @@ -23,9 +23,12 @@ #elif defined(__i386__) #define GEN_SYSCALL_INNER() \ "mov $num, %eax\n" \ - "pop %edx\n" \ + "call 0f\n" \ + "0: pop %edx\n" \ + "add $(1f-0b), %edx\n" \ "mov %esp, %ecx\n" \ - "sysenter\n" + "sysenter\n" \ + "1: ret\n" #elif defined(__arm__) #define GEN_SYSCALL_INNER() \ "mov r12, #num\n" \ |