46 lines
		
	
	
	
		
			537 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
	
		
			537 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
.global cerror, __brk, __sbrk, limhp, brk, sbrk
 | 
						|
 | 
						|
__brk:	
 | 
						|
	ld	[%l0], %o0
 | 
						|
brk:	inc	7, %o0
 | 
						|
	andn	%o0, 7, %o0
 | 
						|
	mov     %o0, %o2
 | 
						|
	mov     0x11, %g1
 | 
						|
	ta	%g0
 | 
						|
	nop
 | 
						|
	bgeu	0f
 | 
						|
	nop
 | 
						|
	set	cerror, %o5
 | 
						|
	jmp	%o5
 | 
						|
	nop
 | 
						|
0:
 | 
						|
	set	limhp, %g1
 | 
						|
	st	%o2, [%g1]
 | 
						|
	retl
 | 
						|
	nop
 | 
						|
 | 
						|
 | 
						|
__sbrk:	
 | 
						|
	ld	[%l0], %o0
 | 
						|
sbrk:	inc	7, %o0
 | 
						|
	andn	%o0, 7, %o0
 | 
						|
	set	limhp, %o1
 | 
						|
	ld	[%o1], %o2
 | 
						|
	inc	7, %o2
 | 
						|
	andn	%o2, 7, %o3
 | 
						|
	add	%o3, %o0, %o0
 | 
						|
	mov	%o0, %o4
 | 
						|
	mov     0x11, %g1
 | 
						|
	ta	%g0
 | 
						|
	nop
 | 
						|
	bgeu	0f
 | 
						|
	nop
 | 
						|
	set	cerror, %o5
 | 
						|
	jmp	%o5
 | 
						|
	nop
 | 
						|
0:
 | 
						|
	set	limhp, %g1
 | 
						|
	st	%o4, [%g1]
 | 
						|
	mov	%o3, %o0
 | 
						|
	retl
 | 
						|
	nop
 |