16 lines
		
	
	
	
		
			400 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			16 lines
		
	
	
	
		
			400 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
        # $Header$
 | 
						|
 | 
						|
.globl	.strlb
 | 
						|
.globl	.gto
 | 
						|
	# Nonlocal goto.
 | 
						|
	# On the stack is a pointer to a block containing :
 | 
						|
	# 1. the new local base		(ptr+8)
 | 
						|
	# 2. the new stack pointer	(ptr+4)
 | 
						|
	# 3. the new program counter	(ptr)
 | 
						|
.gto:
 | 
						|
	movl	(sp)+,r2
 | 
						|
	movl	4(r2),sp	# Store new stack pointer
 | 
						|
	pushl	(r2)		# Push target address
 | 
						|
	pushl	8(r2)		# Push new local base
 | 
						|
	jsb	.strlb		# Store in fp, compute ap
 | 
						|
	rsb
 |