1 /* $NetBSD: sbrk.S,v 1.3 1998/05/25 15:35:06 ws Exp $ */ 2 3 #include "SYS.h" 4 5 .globl _C_LABEL(end) 6 .globl _ASM_LABEL(curbrk) 7 8 .data 9 _ASM_LABEL(curbrk): 10 .long _C_LABEL(end) 11 .text 12 13 ENTRY(sbrk) 14 #ifdef PIC 15 XXX 16 #else 17 lis 5,_ASM_LABEL(curbrk)@ha 18 lwz 6,_ASM_LABEL(curbrk)@l(5) # r6 = old break 19 add 3,3,6 20 mr 7,3 # r7 = new break 21 li 0,SYS_break 22 sc # break(new_break) 23 bso 1f 24 mr 3,6 # set return value 25 stw 7,_ASM_LABEL(curbrk)@l(5) # record new break 26 blr 27 1: 28 b _ASM_LABEL(cerror) 29 #endif 30