1#include "SYS.h" 2 3 .data 4 .globl _end 5 .globl curbrk 6 .globl minbrk 7curbrk: .long _end 8minbrk: .long _end 9 10 11 .text 12PSEUDO_PREFIX(sbrk,break) 13 14 /* call break(curbrk + size) */ 15 addis 6,0,curbrk@h 16 ori 6,6,curbrk@l /* # 6 = &curbrk */ 17 lwz 5, 0(6) /* # 5 = *6 (old_curbrk) */ 18 add 3, 5, 3 /* # 3 = new_curbrk */ 19 mr 7, 3 20 21 sc 22 23 /* check for error */ 24 cmpwi 0, 0 25 beq+ sbrk_ok /* OK so this is stupid but I haven't read b */ 26 b cerror 27 28 /* update, curbrk and return */ 29sbrk_ok: 30 stw 7, 0(6) /* # remember, 6=&curbrk, 7=new_curbrk */ 31 mr 3, 5 /* # remember, 5=old_curbrk */ 32 blr 33