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