xref: /csrg-svn/lib/libc/sparc/sys/sbrk.s (revision 54408)
1*54408Storek/*
2*54408Storek * Copyright (c) 1992 The Regents of the University of California.
3*54408Storek * All rights reserved.
4*54408Storek *
5*54408Storek * This software was developed by the Computer Systems Engineering group
6*54408Storek * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
7*54408Storek * contributed to Berkeley.
8*54408Storek *
9*54408Storek * %sccs.include.redist.c%
10*54408Storek *
11*54408Storek * from: $Header: sbrk.s,v 1.1 91/07/06 13:05:59 torek Exp $
12*54408Storek */
13*54408Storek
14*54408Storek#if defined(LIBC_SCCS) && !defined(lint)
15*54408Storek	.asciz "@(#)sbrk.s	5.1 (Berkeley) 06/25/92"
16*54408Storek#endif /* LIBC_SCCS and not lint */
17*54408Storek
18*54408Storek#include "SYS.h"
19*54408Storek
20*54408Storek	.globl	_end
21*54408Storek	.globl	curbrk
22*54408Storek
23*54408Storek	.data
24*54408Storekcurbrk:	.long	_end
25*54408Storek	.text
26*54408Storek
27*54408StorekENTRY(sbrk)
28*54408Storek	sethi	%hi(curbrk), %o2
29*54408Storek	ld	[%o2 + %lo(curbrk)], %o3	! %o3 = old break
30*54408Storek	add	%o3, %o0, %o4			! %o4 = new break
31*54408Storek	mov	%o4, %o0			! copy for syscall
32*54408Storek	mov	SYS_break, %g1
33*54408Storek	t	ST_SYSCALL			! break(new_break)
34*54408Storek	bcc	1f				! if success,
35*54408Storek	 mov	%o3, %o0			!    set return value
36*54408Storek	ERROR()
37*54408Storek1:
38*54408Storek	retl					! and update curbrk
39*54408Storek	 st	%o4, [%o2 + %lo(curbrk)]
40