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