94 lines
		
	
	
		
			937 B
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			937 B
		
	
	
	
		
			ArmAsm
		
	
	
	
# mach: crisv0 crisv3 crisv8 crisv10 crisv32
 | 
						|
# output: a\n
 | 
						|
 | 
						|
 | 
						|
 .set smalloffset,0
 | 
						|
 .set largeoffset,0
 | 
						|
 | 
						|
 | 
						|
	.macro fail
 | 
						|
	jump _fail
 | 
						|
	.endm
 | 
						|
 | 
						|
	.global	main
 | 
						|
main:
 | 
						|
 moveq 0,$r3
 | 
						|
 | 
						|
; Short forward branch.
 | 
						|
 ba 0f
 | 
						|
 addq 1,$r3
 | 
						|
 fail
 | 
						|
 | 
						|
; Max short forward branch.
 | 
						|
1:
 | 
						|
 ba 2f
 | 
						|
 addq 1,$r3
 | 
						|
 fail
 | 
						|
 | 
						|
; Short backward branch.
 | 
						|
0:
 | 
						|
 ba 1b
 | 
						|
 addq 1,$r3
 | 
						|
 fail
 | 
						|
 | 
						|
 .space 254-2+smalloffset+1b-.,0
 | 
						|
 moveq 0,$r3
 | 
						|
 | 
						|
2:
 | 
						|
; Transit branch (long).
 | 
						|
 ba 3f
 | 
						|
 addq 1,$r3
 | 
						|
 fail
 | 
						|
 | 
						|
 moveq 0,$r3
 | 
						|
4:
 | 
						|
; Long forward branch.
 | 
						|
 ba 5f
 | 
						|
 addq 1,$r3
 | 
						|
 fail
 | 
						|
 | 
						|
 .space 256-2-smalloffset+4b-.,0
 | 
						|
 | 
						|
 moveq 0,$r3
 | 
						|
 | 
						|
; Max short backward branch.
 | 
						|
3:
 | 
						|
 ba 4b
 | 
						|
 addq 1,$r3
 | 
						|
 fail
 | 
						|
 | 
						|
5:
 | 
						|
; Max long forward branch.
 | 
						|
 ba 6f
 | 
						|
 addq 1,$r3
 | 
						|
 fail
 | 
						|
 | 
						|
 .space 32766+largeoffset-2+5b-.,0
 | 
						|
 | 
						|
 moveq 0,$r3
 | 
						|
6:
 | 
						|
; Transit branch.
 | 
						|
 ba 7f
 | 
						|
 addq 1,$r3
 | 
						|
 fail
 | 
						|
 | 
						|
 moveq 0,$r3
 | 
						|
9:
 | 
						|
 jsr pass
 | 
						|
 nop
 | 
						|
 | 
						|
; Transit branch.
 | 
						|
 moveq 0,$r3
 | 
						|
7:
 | 
						|
 ba 8f
 | 
						|
 addq 1,$r3
 | 
						|
 fail
 | 
						|
 | 
						|
 .space 32768-largeoffset+9b-.,0
 | 
						|
 | 
						|
8:
 | 
						|
; Max long backward branch.
 | 
						|
 ba 9b
 | 
						|
 addq 1,$r3
 | 
						|
 fail
 |