Home | History | Annotate | Line # | Download | only in sys
sbrk.S revision 1.12.4.1
      1  1.12.4.1   martin /*	$NetBSD: sbrk.S,v 1.12.4.1 2015/02/04 22:00:24 martin Exp $	*/
      2       1.1  thorpej 
      3       1.1  thorpej #include "SYS.h"
      4       1.1  thorpej 
      5      1.10     matt #if defined(LIBC_SCCS) && !defined(lint)
      6  1.12.4.1   martin __RCSID("$NetBSD: sbrk.S,v 1.12.4.1 2015/02/04 22:00:24 martin Exp $")
      7      1.10     matt #endif /* LIBC_SCCS && !lint */
      8      1.10     matt 
      9  1.12.4.1   martin 	.hidden	_C_LABEL(__curbrk)
     10       1.5   kleink 	.globl	_C_LABEL(__curbrk)
     11       1.1  thorpej 
     12       1.7   kleink #ifdef WEAK_ALIAS
     13       1.7   kleink WEAK_ALIAS(sbrk, _sbrk)
     14       1.7   kleink #endif
     15       1.7   kleink 
     16       1.7   kleink ENTRY(_sbrk)
     17      1.12    joerg #ifdef __PIC__
     18  1.12.4.1   martin 	mflr	%r0
     19  1.12.4.1   martin 	bcl	20,31,.LPIC0
     20  1.12.4.1   martin .LPIC0:	mflr	%r5
     21  1.12.4.1   martin 	mtlr	%r0
     22  1.12.4.1   martin 	addis	%r8,%r5,(_C_LABEL(__curbrk)-.LPIC0)@ha
     23  1.12.4.1   martin 	ldptru	%r6,(_C_LABEL(__curbrk)-.LPIC0)@l(%r8)
     24       1.1  thorpej #else
     25  1.12.4.1   martin 	lis	%r8,_C_LABEL(__curbrk)@ha
     26  1.12.4.1   martin 	ldptru	%r6,_C_LABEL(__curbrk)@l(%r8)	# r6 = old break, r5 = &curbrk
     27       1.4   tsubai #endif
     28       1.9     matt 	add	%r3,%r3,%r6
     29       1.9     matt 	mr	%r7,%r3				# r7 = new break
     30      1.10     matt 	_DOSYSCALL(break)			# break(new_break)
     31       1.1  thorpej 	bso	1f
     32       1.9     matt 	mr	%r3,%r6				# set return value
     33  1.12.4.1   martin 	stptr	%r7,0(%r8)			# record new break
     34       1.1  thorpej 	blr
     35       1.1  thorpej 1:
     36  1.12.4.1   martin 	BRANCH_TO_CERROR()
     37      1.10     matt END(_sbrk)
     38