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