Cross Reference: brk.S
xref: /src/lib/libc/arch/powerpc/sys/brk.S
  • Home
  • History
  • AnnotateAnnotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /src/lib/libc/arch/powerpc/sys/
brk.S revision 1.4
11.4Stsubai/*	$NetBSD: brk.S,v 1.4 1998/11/24 11:14:54 tsubai Exp $	*/
21.1Sthorpej
31.1Sthorpej#include "SYS.h"
41.1Sthorpej
51.3Sws	.globl	_ASM_LABEL(curbrk)
61.4Stsubai	.globl	minbrk
71.4Stsubai
81.4Stsubai	.data
91.4Stsubaiminbrk:	.long	_C_LABEL(end)		# XXX not used yet
101.1Sthorpej
111.1Sthorpej	.text
121.1Sthorpej
131.4StsubaiENTRY(brk)
141.1Sthorpej#ifdef PIC
151.4Stsubai	mflr	10
161.4Stsubai	bl	_GLOBAL_OFFSET_TABLE_@local-4
171.4Stsubai	mflr	9
181.4Stsubai	mtlr	10
191.4Stsubai	lwz	5,_C_LABEL(end)@got(9)
201.1Sthorpej#else
211.3Sws	lis	5,_C_LABEL(end)@ha	# r5 = &_end
221.3Sws	addi	5,5,_C_LABEL(end)@l
231.4Stsubai#endif
241.1Sthorpej	cmplw	5,3			# if (&_end <= r3)
251.1Sthorpej	bgt	0f
261.1Sthorpej	mr	5,3			# r5 = r3
271.1Sthorpej0:
281.1Sthorpej	mr	3,5			# new break value
291.1Sthorpej	li	0,SYS_break
301.1Sthorpej	sc				# assume, that r5 is kept
311.1Sthorpej	bso	1f
321.4Stsubai#ifdef PIC
331.4Stsubai	lwz	6,_ASM_LABEL(curbrk)@got(9)
341.4Stsubai	stw	5,0(6)
351.4Stsubai#else
361.3Sws	lis	6,_ASM_LABEL(curbrk)@ha	# record new break
371.3Sws	stw	5,_ASM_LABEL(curbrk)@l(6)
381.4Stsubai#endif
391.1Sthorpej	blr				# return 0
401.1Sthorpej
411.1Sthorpej1:
421.4Stsubai	b	PIC_PLT(_ASM_LABEL(cerror))
43

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