]> git.saurik.com Git - apple/xnu.git/blobdiff - libsyscall/custom/__ptrace.s
xnu-3248.60.10.tar.gz
[apple/xnu.git] / libsyscall / custom / __ptrace.s
index 2fd53b4604c29760d492e958aa049d54c5e04746..bdcbec9fb7ebc60aa060722db2109bb8d907453a 100644 (file)
 
 #include "SYS.h"
 
-#if defined(__ppc__) || defined(__ppc64__)
-
-MI_ENTRY_POINT(___ptrace)
-       li      r7,0
-    MI_GET_ADDRESS(r8,_errno)
-    stw     r7,0(r8)
-    SYSCALL_NONAME(ptrace, 4)
-       blr
-
-#elif defined(__i386__)
+#if defined(__i386__)
 
        .globl  _errno
 
 LEAF(___ptrace, 0)
        xorl    %eax,%eax
        REG_TO_EXTERN(%eax,_errno)
-UNIX_SYSCALL_NONAME(ptrace, 4)
+       UNIX_SYSCALL_NONAME(ptrace, 4, cerror)
        ret
 
 #elif defined(__x86_64__)
@@ -54,8 +45,9 @@ UNIX_SYSCALL_NONAME(ptrace, 4)
 
 LEAF(___ptrace, 0)
        xorq    %rax,%rax
-       REG_TO_EXTERN(%rax,_errno)
-UNIX_SYSCALL_NONAME(ptrace, 4)
+       PICIFY(_errno)
+       movl    %eax,(%r11)
+       UNIX_SYSCALL_NONAME(ptrace, 4, cerror)
        ret
 
 #else