Home | History | Annotate | Line # | Download | only in sys
ptrace.S revision 1.1
      1 /*	$NetBSD: ptrace.S,v 1.1 2006/07/01 16:37:20 ross Exp $	*/
      2 
      3 #include "SYS.h"
      4 
      5 ENTRY(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
     45 1:
     46 	b	PIC_PLT(_C_LABEL(__cerror))
     47