xref: /netbsd/lib/libc/arch/powerpc/sys/ptrace.S (revision c4a72b64)
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