This patch creates tests/lm32 directory and adds tests for every LatticeMico32 opcode. Signed-off-by: Michael Walle <michael@walle.cc> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
		
			
				
	
	
		
			80 lines
		
	
	
		
			960 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			960 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
 | 
						|
.macro test_name name
 | 
						|
	.data
 | 
						|
tn_\name:
 | 
						|
	.asciz "\name"
 | 
						|
	.text
 | 
						|
	mvhi r13, hi(tn_\name)
 | 
						|
	ori r13, r13, lo(tn_\name)
 | 
						|
	sw (r12+8), r13
 | 
						|
.endm
 | 
						|
 | 
						|
.macro load reg val
 | 
						|
	mvhi \reg, hi(\val)
 | 
						|
	ori \reg, \reg, lo(\val)
 | 
						|
.endm
 | 
						|
 | 
						|
.macro tc_pass
 | 
						|
	mvi r13, 0
 | 
						|
	sw (r12+4), r13
 | 
						|
.endm
 | 
						|
 | 
						|
.macro tc_fail
 | 
						|
	mvi r13, 1
 | 
						|
	sw (r12+4), r13
 | 
						|
.endm
 | 
						|
 | 
						|
.macro check_r3 val
 | 
						|
	mvhi r13, hi(\val)
 | 
						|
	ori r13, r13, lo(\val)
 | 
						|
	be r3, r13, 1f
 | 
						|
	tc_fail
 | 
						|
	bi 2f
 | 
						|
1:
 | 
						|
	tc_pass
 | 
						|
2:
 | 
						|
.endm
 | 
						|
 | 
						|
.macro check_mem adr val
 | 
						|
	mvhi r13, hi(\adr)
 | 
						|
	ori r13, r13, lo(\adr)
 | 
						|
	mvhi r14, hi(\val)
 | 
						|
	ori r14, r14, lo(\val)
 | 
						|
	lw r13, (r13+0)
 | 
						|
	be r13, r14, 1f
 | 
						|
	tc_fail
 | 
						|
	bi 2f
 | 
						|
1:
 | 
						|
	tc_pass
 | 
						|
2:
 | 
						|
.endm
 | 
						|
 | 
						|
.macro check_excp excp
 | 
						|
	andi r13, r25, \excp
 | 
						|
	bne r13, r0, 1f
 | 
						|
	tc_fail
 | 
						|
	bi 2f
 | 
						|
1:
 | 
						|
	tc_pass
 | 
						|
2:
 | 
						|
.endm
 | 
						|
 | 
						|
.macro start
 | 
						|
	.global _main
 | 
						|
	.text
 | 
						|
_main:
 | 
						|
	mvhi r12, hi(0xffff0000)      # base address of test block
 | 
						|
	ori r12, r12, lo(0xffff0000)
 | 
						|
.endm
 | 
						|
 | 
						|
.macro end
 | 
						|
	sw (r12+0), r0
 | 
						|
1:
 | 
						|
	bi 1b
 | 
						|
.endm
 | 
						|
 | 
						|
# base +
 | 
						|
#  0  ctrl
 | 
						|
#  4  pass/fail
 | 
						|
#  8  ptr to test name
 |