22 lines
		
	
	
	
		
			449 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
	
		
			449 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| .define	.gto
 | |
| .sect .text
 | |
| .sect .rom
 | |
| .sect .data
 | |
| .sect .bss
 | |
| .sect .text
 | |
| 
 | |
| 	.sect .text
 | |
| 
 | |
| !r0 contains descriptor addres
 | |
| .gto:	
 | |
| 	addr 0(sp), r7		!first put future localbase in sp
 | |
| 	subd 8(r0), r7
 | |
| 	subd 4, r7
 | |
| 	adjspd r7		!done
 | |
| 	movd -4(sp), r1		!save this memory location
 | |
| 	enter[], 0		!adjust local base
 | |
| 	movd r1, 0(sp)		!restore saved memory location
 | |
| 	addr 0(sp), r7		!adjust stackpointer now
 | |
| 	subd 4(r0), r7
 | |
| 	adjspd r7
 | |
| 	jump r0			!adjust programcounter
 |