1/* $NetBSD: ptrace.S,v 1.4 2002/07/30 06:08:00 matt Exp $ */ 2 3#include "SYS.h" 4 5ENTRY(ptrace) 6#ifdef _REENTRANT 7 mflr %r0 8 stwu %r1,-32(%r1) 9 stw %r0,36(%r1) 10 stw %r3,8(%r1) 11 stw %r4,12(%r1) 12 stw %r5,16(%r1) 13 stw %r6,20(%r1) 14 15 bl PIC_PLT(_C_LABEL(__errno)) 16 li %r7,0 17 stw %r7,0(%r3) 18 19 lwz %r3,8(%r1) 20 lwz %r4,12(%r1) 21 lwz %r5,16(%r1) 22 lwz %r0,36(%r1) 23 lwz %r6,20(%r1) 24 mtlr %r0 25 la %r1,32(%r1) 26#else 27#ifdef PIC 28 mflr %r0 29 bl _GLOBAL_OFFSET_TABLE_@local-4 30 mflr %r7 31 lwz %r7,_C_LABEL(errno)@got(%r7) 32 li %r8,0 33 stw %r8,0(%r7) 34 mtlr 0 35#else 36 lis %r7,_C_LABEL(errno)@ha 37 li %r8,0 38 stw %r8,_C_LABEL(errno)@l(%r7) 39#endif /* PIC */ 40#endif /* _REENTRANT */ 41 li %r0,SYS_ptrace 42 sc 43 bso 1f 44 blr 451: 46 b PIC_PLT(_C_LABEL(__cerror)) 47