Cross Reference: brk.S
xref: /src/lib/libc/arch/powerpc64/sys/brk.S
  • Home
  • History
  • AnnotateAnnotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /src/lib/libc/arch/powerpc64/sys/
11.5Smatt/*	$NetBSD: brk.S,v 1.5 2014/08/23 02:24:22 matt Exp $	*/
21.1Sross
31.1Sross#include "SYS.h"
41.1Sross
51.5Smatt
61.5Smatt	.hidden	_C_LABEL(__curbrk)
71.1Sross	.globl	_C_LABEL(__curbrk)
81.5Smatt	.hidden	_C_LABEL(__minbrk)
91.1Sross	.globl	_C_LABEL(__minbrk)
101.1Sross	.globl	_C_LABEL(_end)
111.1Sross
121.1Sross#ifdef WEAK_ALIAS
131.1SrossWEAK_ALIAS(brk, _brk)
141.1Sross#endif
151.1Sross
161.5Smatt	.data
171.5Smatt	.p2align 3
181.3Sross_C_LABEL(__minbrk):
191.5Smatt	.quad	_C_LABEL(_end)
201.5Smatt_C_LABEL(__curbrk):
211.5Smatt	.quad	_C_LABEL(_end)
221.1Sross
231.1SrossENTRY(_brk)
241.5Smatt	addis	%r9,%r2,_C_LABEL(__minbrk)@toc@ha
251.5Smatt	ldptru	%r5,_C_LABEL(__minbrk)@toc@l(%r9)
261.5Smatt	cmpptrl	%r5,%r3			# if (__minbrk <= r3)
271.5Smatt#ifdef __PPC_ISEL__
281.5Smatt	iselgt	%r3,%r5,%r3
291.5Smatt#else
301.1Sross	bgt	0f
311.1Sross	mr	%r5,%r3			# r5 = r3
321.1Sross0:
331.1Sross	mr	%r3,%r5			# new break value
341.5Smatt#endif
351.5Smatt	_DOSYSCALL(break)		# assume that r5 is preserved
361.1Sross	bso	1f
371.5Smatt	stptr	%r5,__SIZEOF_POINTER__(%r9)
381.1Sross	blr				# return 0
391.1Sross
401.1Sross1:
411.5Smatt	BRANCH_TO_CERROR()
421.5SmattEND(_brk)
43

Indexes created Mon Nov 10 17:20:41 GMT 2025