xref: /csrg-svn/lib/libc/sparc/sys/sbrk.s (revision 61176)
154408Storek/*
2*61176Sbostic * Copyright (c) 1992, 1993
3*61176Sbostic *	The Regents of the University of California.  All rights reserved.
454408Storek *
554408Storek * This software was developed by the Computer Systems Engineering group
654408Storek * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
754408Storek * contributed to Berkeley.
854408Storek *
954408Storek * %sccs.include.redist.c%
1054408Storek *
1154588Storek * from: $Header: sbrk.s,v 1.3 92/07/02 00:56:49 torek Exp $
1254408Storek */
1354408Storek
1454408Storek#if defined(LIBC_SCCS) && !defined(lint)
15*61176Sbostic	.asciz "@(#)sbrk.s	8.1 (Berkeley) 06/04/93"
1654408Storek#endif /* LIBC_SCCS and not lint */
1754408Storek
1854408Storek#include "SYS.h"
1954408Storek
2054408Storek	.globl	_end
2154408Storek	.globl	curbrk
2254408Storek
2354408Storek	.data
2454408Storekcurbrk:	.long	_end
2554408Storek	.text
2654408Storek
2754408StorekENTRY(sbrk)
2854408Storek	sethi	%hi(curbrk), %o2
2954408Storek	ld	[%o2 + %lo(curbrk)], %o3	! %o3 = old break
3054408Storek	add	%o3, %o0, %o4			! %o4 = new break
3154408Storek	mov	%o4, %o0			! copy for syscall
3254408Storek	mov	SYS_break, %g1
3354408Storek	t	ST_SYSCALL			! break(new_break)
3454588Storek	bcc,a	1f				! if success,
3554408Storek	 mov	%o3, %o0			!    set return value
3654408Storek	ERROR()
3754408Storek1:
3854408Storek	retl					! and update curbrk
3954408Storek	 st	%o4, [%o2 + %lo(curbrk)]
40