NetBSD/lib/libc/arch/powerpc/sys/brk.S

30 lines
486 B
ArmAsm

/* $NetBSD: brk.S,v 1.3 1998/05/25 15:35:06 ws Exp $ */
#include "SYS.h"
.globl _ASM_LABEL(curbrk)
.text
#ifdef PIC
XXX
#else
ENTRY(brk)
lis 5,_C_LABEL(end)@ha # r5 = &_end
addi 5,5,_C_LABEL(end)@l
cmplw 5,3 # if (&_end <= r3)
bgt 0f
mr 5,3 # r5 = r3
0:
mr 3,5 # new break value
li 0,SYS_break
sc # assume, that r5 is kept
bso 1f
lis 6,_ASM_LABEL(curbrk)@ha # record new break
stw 5,_ASM_LABEL(curbrk)@l(6)
blr # return 0
1:
b _ASM_LABEL(cerror)
#endif