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