18 lines
		
	
	
	
		
			226 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			18 lines
		
	
	
	
		
			226 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
.define exg
 | 
						|
 | 
						|
!size (bytes) in R0
 | 
						|
exg:
 | 
						|
	ldm	savereg, R4, $10
 | 
						|
	ldl	RR2, RR14
 | 
						|
	inc	R3, $2
 | 
						|
	ldl	RR4, RR2
 | 
						|
	add	R5, R0
 | 
						|
	sra	R0
 | 
						|
1:	ld	R1, *RR2
 | 
						|
	ex	R1, *RR4
 | 
						|
	ld	*RR4, R1
 | 
						|
	inc	R3, $2
 | 
						|
	inc	R5, $2
 | 
						|
	djnz	R0, 1b
 | 
						|
	ldm	R4, savereg, $10
 | 
						|
	ret
 |