ptrace.S revision 1.2.4.1 1 1.2.4.1 martin /* $NetBSD: ptrace.S,v 1.2.4.1 2015/02/04 22:00:24 martin Exp $ */
2 1.1 ross
3 1.1 ross #include "SYS.h"
4 1.1 ross
5 1.1 ross ENTRY(ptrace)
6 1.1 ross #ifdef _REENTRANT
7 1.1 ross mflr %r0
8 1.2.4.1 martin streg %r0,SZREG(%r1)
9 1.2.4.1 martin stregu %r1,-(SZREG*6)(%r1)
10 1.2.4.1 martin streg %r3,(SZREG*2)(%r1)
11 1.2.4.1 martin streg %r4,(SZREG*3)(%r1)
12 1.2.4.1 martin streg %r5,(SZREG*4)(%r1)
13 1.2.4.1 martin streg %r6,(SZREG*5)(%r1)
14 1.1 ross
15 1.1 ross bl PIC_PLT(_C_LABEL(__errno))
16 1.2.4.1 martin nop
17 1.1 ross li %r7,0
18 1.2.4.1 martin stint %r7,0(%r3)
19 1.1 ross
20 1.2.4.1 martin ldreg %r3,(SZREG*2)(%r1)
21 1.2.4.1 martin ldreg %r4,(SZREG*3)(%r1)
22 1.2.4.1 martin ldreg %r5,(SZREG*4)(%r1)
23 1.2.4.1 martin ldreg %r6,(SZREG*5)(%r1)
24 1.2.4.1 martin addi %r1,%r1,SZREG*6
25 1.2.4.1 martin ldreg %r0,SZREG(%r1)
26 1.1 ross mtlr %r0
27 1.1 ross #else
28 1.2.4.1 martin .pushsection ".toc","aw"
29 1.2.4.1 martin .Lerrno:
30 1.2.4.1 martin .tc errno[TC], errno
31 1.2.4.1 martin .popsection
32 1.2.4.1 martin addis %r7,%r2,_C_LABEL(errno)@toc@ha
33 1.2.4.1 martin ldptr %r7,_C_LABEL(errno)@toc@l(%r7)
34 1.1 ross li %r8,0
35 1.2.4.1 martin stint %r8,0(%r7)
36 1.1 ross mtlr 0
37 1.1 ross #endif /* _REENTRANT */
38 1.2.4.1 martin _DOSYSCALL(ptrace)
39 1.1 ross bso 1f
40 1.1 ross blr
41 1.1 ross 1:
42 1.2.4.1 martin BRANCH_TO_CERROR()
43 1.2.4.1 martin END(ptrace)
44