154403Storek/* 2*61176Sbostic * Copyright (c) 1992, 1993 3*61176Sbostic * The Regents of the University of California. All rights reserved. 454403Storek * 554403Storek * This software was developed by the Computer Systems Engineering group 654403Storek * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and 754403Storek * contributed to Berkeley. 854403Storek * 954403Storek * %sccs.include.redist.c% 1054403Storek * 1154403Storek * from: $Header: brk.s,v 1.3 92/06/25 12:56:05 mccanne Exp $ 1254403Storek */ 1354403Storek 1454403Storek#if defined(LIBC_SCCS) && !defined(lint) 15*61176Sbostic .asciz "@(#)brk.s 8.1 (Berkeley) 06/04/93" 1654403Storek#endif /* LIBC_SCCS and not lint */ 1754403Storek 1854403Storek#include "SYS.h" 1954403Storek 2054403Storek .globl curbrk 2154403Storek .globl minbrk 2254403Storek 2354403Storek .data 2454403Storekminbrk: .long _end ! lower brk limit; also for gmon code 2554403Storek .text 2654403Storek 2754403StorekENTRY(brk) 2854403Storek sethi %hi(minbrk), %o1 ! %o1 = minbrk 2954403Storek ld [%o1 + %lo(minbrk)], %o1 3054403Storek cmp %o1, %o0 ! if (minbrk > %o0) 3154403Storek bg,a 0f 3254403Storek mov %o1, %o0 ! %o0 = minbrk 3354403Storek0: 3454403Storek mov %o0, %o2 ! save argument to syscall 3554403Storek mov SYS_break, %g1 3654403Storek t ST_SYSCALL 3754403Storek bcc,a 1f 3854403Storek sethi %hi(curbrk), %g1 3954403Storek ERROR() 4054403Storek1: 4154403Storek retl ! success, return 0 & record new break 4254403Storek st %o2, [%g1 + %lo(curbrk)] 43