Lionel Sambuc 0a6a1f1d05 NetBSD re-synchronization of the source tree
This brings our tree to NetBSD 7.0, as found on -current on the
10-10-2015.

This updates:
 - LLVM to 3.6.1
 - GCC to GCC 5.1
 - Replace minix/commands/zdump with usr.bin/zdump
 - external/bsd/libelf has moved to /external/bsd/elftoolchain/
 - Import ctwm
 - Drop sprintf from libminc

Change-Id: I149836ac18e9326be9353958bab9b266efb056f0
2016-01-13 20:32:14 +01:00

44 lines
780 B
ArmAsm

/* $NetBSD: ptrace.S,v 1.3 2014/08/23 02:24:22 matt Exp $ */
#include "SYS.h"
ENTRY(ptrace)
#ifdef _REENTRANT
mflr %r0
streg %r0,SZREG(%r1)
stregu %r1,-(SZREG*6)(%r1)
streg %r3,(SZREG*2)(%r1)
streg %r4,(SZREG*3)(%r1)
streg %r5,(SZREG*4)(%r1)
streg %r6,(SZREG*5)(%r1)
bl PIC_PLT(_C_LABEL(__errno))
nop
li %r7,0
stint %r7,0(%r3)
ldreg %r3,(SZREG*2)(%r1)
ldreg %r4,(SZREG*3)(%r1)
ldreg %r5,(SZREG*4)(%r1)
ldreg %r6,(SZREG*5)(%r1)
addi %r1,%r1,SZREG*6
ldreg %r0,SZREG(%r1)
mtlr %r0
#else
.pushsection ".toc","aw"
.Lerrno:
.tc errno[TC], errno
.popsection
addis %r7,%r2,_C_LABEL(errno)@toc@ha
ldptr %r7,_C_LABEL(errno)@toc@l(%r7)
li %r8,0
stint %r8,0(%r7)
mtlr 0
#endif /* _REENTRANT */
_DOSYSCALL(ptrace)
bso 1f
blr
1:
BRANCH_TO_CERROR()
END(ptrace)