lm32: opcode testsuite
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>
This commit is contained in:
		
							parent
							
								
									45664345fa
								
							
						
					
					
						commit
						d65f083146
					
				@ -142,6 +142,10 @@ hello-mipsel: hello-mips.c
 | 
				
			|||||||
test-cris:
 | 
					test-cris:
 | 
				
			||||||
	$(MAKE) -C cris check
 | 
						$(MAKE) -C cris check
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# testsuite for the LM32 port.
 | 
				
			||||||
 | 
					test-lm32:
 | 
				
			||||||
 | 
						$(MAKE) -C lm32 check
 | 
				
			||||||
 | 
					
 | 
				
			||||||
clean:
 | 
					clean:
 | 
				
			||||||
	rm -f *~ *.o test-i386.out test-i386.ref \
 | 
						rm -f *~ *.o test-i386.out test-i386.ref \
 | 
				
			||||||
           test-x86_64.log test-x86_64.ref qruncom $(TESTS)
 | 
					           test-x86_64.log test-x86_64.ref qruncom $(TESTS)
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										102
									
								
								tests/lm32/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								tests/lm32/Makefile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,102 @@
 | 
				
			|||||||
 | 
					-include ../../config-host.mak
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CROSS=lm32-elf-
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SIM = qemu-system-lm32
 | 
				
			||||||
 | 
					SIMFLAGS = -M lm32-evr -nographic -device lm32-sys -net none -kernel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CC      = $(CROSS)gcc
 | 
				
			||||||
 | 
					AS      = $(CROSS)as
 | 
				
			||||||
 | 
					AS      = $(CC) -x assembler
 | 
				
			||||||
 | 
					SIZE    = $(CROSS)size
 | 
				
			||||||
 | 
					LD      = $(CC)
 | 
				
			||||||
 | 
					OBJCOPY = $(CROSS)objcopy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LDFLAGS = -Tlinker.ld
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CRT        = crt.o
 | 
				
			||||||
 | 
					TESTCASES += test_add.tst
 | 
				
			||||||
 | 
					TESTCASES += test_addi.tst
 | 
				
			||||||
 | 
					TESTCASES += test_and.tst
 | 
				
			||||||
 | 
					TESTCASES += test_andhi.tst
 | 
				
			||||||
 | 
					TESTCASES += test_andi.tst
 | 
				
			||||||
 | 
					TESTCASES += test_b.tst
 | 
				
			||||||
 | 
					TESTCASES += test_be.tst
 | 
				
			||||||
 | 
					TESTCASES += test_bg.tst
 | 
				
			||||||
 | 
					TESTCASES += test_bge.tst
 | 
				
			||||||
 | 
					TESTCASES += test_bgeu.tst
 | 
				
			||||||
 | 
					TESTCASES += test_bgu.tst
 | 
				
			||||||
 | 
					TESTCASES += test_bi.tst
 | 
				
			||||||
 | 
					TESTCASES += test_bne.tst
 | 
				
			||||||
 | 
					TESTCASES += test_break.tst
 | 
				
			||||||
 | 
					TESTCASES += test_bret.tst
 | 
				
			||||||
 | 
					TESTCASES += test_call.tst
 | 
				
			||||||
 | 
					TESTCASES += test_calli.tst
 | 
				
			||||||
 | 
					TESTCASES += test_cmpe.tst
 | 
				
			||||||
 | 
					TESTCASES += test_cmpei.tst
 | 
				
			||||||
 | 
					TESTCASES += test_cmpg.tst
 | 
				
			||||||
 | 
					TESTCASES += test_cmpgi.tst
 | 
				
			||||||
 | 
					TESTCASES += test_cmpge.tst
 | 
				
			||||||
 | 
					TESTCASES += test_cmpgei.tst
 | 
				
			||||||
 | 
					TESTCASES += test_cmpgeu.tst
 | 
				
			||||||
 | 
					TESTCASES += test_cmpgeui.tst
 | 
				
			||||||
 | 
					TESTCASES += test_cmpgu.tst
 | 
				
			||||||
 | 
					TESTCASES += test_cmpgui.tst
 | 
				
			||||||
 | 
					TESTCASES += test_cmpne.tst
 | 
				
			||||||
 | 
					TESTCASES += test_cmpnei.tst
 | 
				
			||||||
 | 
					TESTCASES += test_divu.tst
 | 
				
			||||||
 | 
					TESTCASES += test_eret.tst
 | 
				
			||||||
 | 
					TESTCASES += test_lb.tst
 | 
				
			||||||
 | 
					TESTCASES += test_lbu.tst
 | 
				
			||||||
 | 
					TESTCASES += test_lh.tst
 | 
				
			||||||
 | 
					TESTCASES += test_lhu.tst
 | 
				
			||||||
 | 
					TESTCASES += test_lw.tst
 | 
				
			||||||
 | 
					TESTCASES += test_modu.tst
 | 
				
			||||||
 | 
					TESTCASES += test_mul.tst
 | 
				
			||||||
 | 
					TESTCASES += test_muli.tst
 | 
				
			||||||
 | 
					TESTCASES += test_nor.tst
 | 
				
			||||||
 | 
					TESTCASES += test_nori.tst
 | 
				
			||||||
 | 
					TESTCASES += test_or.tst
 | 
				
			||||||
 | 
					TESTCASES += test_ori.tst
 | 
				
			||||||
 | 
					TESTCASES += test_orhi.tst
 | 
				
			||||||
 | 
					#TESTCASES += test_rcsr.tst
 | 
				
			||||||
 | 
					TESTCASES += test_ret.tst
 | 
				
			||||||
 | 
					TESTCASES += test_sb.tst
 | 
				
			||||||
 | 
					TESTCASES += test_scall.tst
 | 
				
			||||||
 | 
					TESTCASES += test_sextb.tst
 | 
				
			||||||
 | 
					TESTCASES += test_sexth.tst
 | 
				
			||||||
 | 
					TESTCASES += test_sh.tst
 | 
				
			||||||
 | 
					TESTCASES += test_sl.tst
 | 
				
			||||||
 | 
					TESTCASES += test_sli.tst
 | 
				
			||||||
 | 
					TESTCASES += test_sr.tst
 | 
				
			||||||
 | 
					TESTCASES += test_sri.tst
 | 
				
			||||||
 | 
					TESTCASES += test_sru.tst
 | 
				
			||||||
 | 
					TESTCASES += test_srui.tst
 | 
				
			||||||
 | 
					TESTCASES += test_sub.tst
 | 
				
			||||||
 | 
					TESTCASES += test_sw.tst
 | 
				
			||||||
 | 
					#TESTCASES += test_wcsr.tst
 | 
				
			||||||
 | 
					TESTCASES += test_xnor.tst
 | 
				
			||||||
 | 
					TESTCASES += test_xnori.tst
 | 
				
			||||||
 | 
					TESTCASES += test_xor.tst
 | 
				
			||||||
 | 
					TESTCASES += test_xori.tst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%.o: $(SRC_PATH)/tests/lm32/%.c
 | 
				
			||||||
 | 
						$(CC) $(CFLAGS) -c $< -o $@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%.o: $(SRC_PATH)/tests/lm32/%.S
 | 
				
			||||||
 | 
						$(AS) $(ASFLAGS) -c $< -o $@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%.tst: %.o macros.inc $(CRT)
 | 
				
			||||||
 | 
						$(LD) $(LDFLAGS) $(NOSTDFLAGS) $(CRT) $< -o $@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					build: $(CRT) $(TESTCASES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					check: $(CRT) $(SYS) $(TESTCASES)
 | 
				
			||||||
 | 
						@for case in $(TESTCASES); do \
 | 
				
			||||||
 | 
							$(SIM) $(SIMFLAGS) ./$$case; \
 | 
				
			||||||
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clean:
 | 
				
			||||||
 | 
						$(RM) -fr $(TESTCASES) $(CRT)
 | 
				
			||||||
							
								
								
									
										84
									
								
								tests/lm32/crt.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								tests/lm32/crt.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,84 @@
 | 
				
			|||||||
 | 
					.text
 | 
				
			||||||
 | 
					.global _start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_start:
 | 
				
			||||||
 | 
					_reset_handler:
 | 
				
			||||||
 | 
						xor r0, r0, r0
 | 
				
			||||||
 | 
						mvhi r1, hi(_start)
 | 
				
			||||||
 | 
						ori r1, r1, lo(_start)
 | 
				
			||||||
 | 
						wcsr eba, r1
 | 
				
			||||||
 | 
						wcsr deba, r1
 | 
				
			||||||
 | 
						bi _main
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_breakpoint_handler:
 | 
				
			||||||
 | 
						ori r25, r25, 1
 | 
				
			||||||
 | 
						addi ra, ba, 4
 | 
				
			||||||
 | 
						ret
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_instruction_bus_error_handler:
 | 
				
			||||||
 | 
						ori r25, r25, 2
 | 
				
			||||||
 | 
						addi ra, ea, 4
 | 
				
			||||||
 | 
						ret
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_watchpoint_handler:
 | 
				
			||||||
 | 
						ori r25, r25, 4
 | 
				
			||||||
 | 
						addi ra, ba, 4
 | 
				
			||||||
 | 
						ret
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_data_bus_error_handler:
 | 
				
			||||||
 | 
						ori r25, r25, 8
 | 
				
			||||||
 | 
						addi ra, ea, 4
 | 
				
			||||||
 | 
						ret
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_divide_by_zero_handler:
 | 
				
			||||||
 | 
						ori r25, r25, 16
 | 
				
			||||||
 | 
						addi ra, ea, 4
 | 
				
			||||||
 | 
						ret
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_interrupt_handler:
 | 
				
			||||||
 | 
						ori r25, r25, 32
 | 
				
			||||||
 | 
						addi ra, ea, 4
 | 
				
			||||||
 | 
						ret
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_system_call_handler:
 | 
				
			||||||
 | 
						ori r25, r25, 64
 | 
				
			||||||
 | 
						addi ra, ea, 4
 | 
				
			||||||
 | 
						ret
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										55
									
								
								tests/lm32/linker.ld
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								tests/lm32/linker.ld
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,55 @@
 | 
				
			|||||||
 | 
					OUTPUT_FORMAT("elf32-lm32")
 | 
				
			||||||
 | 
					ENTRY(_start)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__DYNAMIC = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MEMORY {
 | 
				
			||||||
 | 
						ram : ORIGIN = 0x08000000, LENGTH = 0x04000000  /* 64M */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SECTIONS
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						.text :
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							_ftext = .;
 | 
				
			||||||
 | 
							*(.text .stub .text.* .gnu.linkonce.t.*)
 | 
				
			||||||
 | 
							_etext = .;
 | 
				
			||||||
 | 
						} > ram
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.rodata :
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							. = ALIGN(4);
 | 
				
			||||||
 | 
							_frodata = .;
 | 
				
			||||||
 | 
							*(.rodata .rodata.* .gnu.linkonce.r.*)
 | 
				
			||||||
 | 
							*(.rodata1)
 | 
				
			||||||
 | 
							_erodata = .;
 | 
				
			||||||
 | 
						} > ram
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.data :
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							. = ALIGN(4);
 | 
				
			||||||
 | 
							_fdata = .;
 | 
				
			||||||
 | 
							*(.data .data.* .gnu.linkonce.d.*)
 | 
				
			||||||
 | 
							*(.data1)
 | 
				
			||||||
 | 
							_gp = ALIGN(16);
 | 
				
			||||||
 | 
							*(.sdata .sdata.* .gnu.linkonce.s.*)
 | 
				
			||||||
 | 
							_edata = .;
 | 
				
			||||||
 | 
						} > ram
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.bss :
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							. = ALIGN(4);
 | 
				
			||||||
 | 
							_fbss = .;
 | 
				
			||||||
 | 
							*(.dynsbss)
 | 
				
			||||||
 | 
							*(.sbss .sbss.* .gnu.linkonce.sb.*)
 | 
				
			||||||
 | 
							*(.scommon)
 | 
				
			||||||
 | 
							*(.dynbss)
 | 
				
			||||||
 | 
							*(.bss .bss.* .gnu.linkonce.b.*)
 | 
				
			||||||
 | 
							*(COMMON)
 | 
				
			||||||
 | 
							_ebss = .;
 | 
				
			||||||
 | 
							_end = .;
 | 
				
			||||||
 | 
						} > ram
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PROVIDE(_fstack = ORIGIN(ram) + LENGTH(ram) - 4);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										79
									
								
								tests/lm32/macros.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								tests/lm32/macros.inc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,79 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					.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
 | 
				
			||||||
							
								
								
									
										75
									
								
								tests/lm32/test_add.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								tests/lm32/test_add.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,75 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADD_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					add r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADD_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					add r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADD_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					add r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADD_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					add r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADD_5
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					add r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADD_6
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					add r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 -1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADD_7
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					add r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 -1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADD_8
 | 
				
			||||||
 | 
					mvi r3, 2
 | 
				
			||||||
 | 
					add r3, r3, r3
 | 
				
			||||||
 | 
					check_r3 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADD_9
 | 
				
			||||||
 | 
					mvi r1, 4
 | 
				
			||||||
 | 
					mvi r3, 2
 | 
				
			||||||
 | 
					add r3, r1, r3
 | 
				
			||||||
 | 
					check_r3 6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADD_10
 | 
				
			||||||
 | 
					mvi r1, 4
 | 
				
			||||||
 | 
					mvi r3, 2
 | 
				
			||||||
 | 
					add r3, r3, r1
 | 
				
			||||||
 | 
					check_r3 6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADD_11
 | 
				
			||||||
 | 
					mvi r1, 4
 | 
				
			||||||
 | 
					add r3, r1, r1
 | 
				
			||||||
 | 
					check_r3 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADD_12
 | 
				
			||||||
 | 
					load r1 0x12345678
 | 
				
			||||||
 | 
					load r2 0xabcdef97
 | 
				
			||||||
 | 
					add r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0xbe02460f
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										56
									
								
								tests/lm32/test_addi.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								tests/lm32/test_addi.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,56 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADDI_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					addi r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADDI_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					addi r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADDI_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					addi r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADDI_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					addi r3, r1, -1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADDI_5
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					addi r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADDI_6
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					addi r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 -1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADDI_7
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					addi r3, r1, -1
 | 
				
			||||||
 | 
					check_r3 -1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADDI_8
 | 
				
			||||||
 | 
					mvi r3, 4
 | 
				
			||||||
 | 
					addi r3, r3, 4
 | 
				
			||||||
 | 
					check_r3 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADDI_9
 | 
				
			||||||
 | 
					mvi r3, 4
 | 
				
			||||||
 | 
					addi r3, r3, -4
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ADDI_10
 | 
				
			||||||
 | 
					mvi r3, 4
 | 
				
			||||||
 | 
					addi r3, r3, -5
 | 
				
			||||||
 | 
					check_r3 -1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										45
									
								
								tests/lm32/test_and.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								tests/lm32/test_and.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name AND_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					and r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name AND_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					and r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name AND_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					and r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name AND_4
 | 
				
			||||||
 | 
					mvi r3, 7
 | 
				
			||||||
 | 
					and r3, r3, r3
 | 
				
			||||||
 | 
					check_r3 7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name AND_5
 | 
				
			||||||
 | 
					mvi r1, 7
 | 
				
			||||||
 | 
					and r3, r1, r1
 | 
				
			||||||
 | 
					check_r3 7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name AND_6
 | 
				
			||||||
 | 
					mvi r1, 7
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					and r3, r1, r3
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name AND_7
 | 
				
			||||||
 | 
					load r1 0xaa55aa55
 | 
				
			||||||
 | 
					load r2 0x55aa55aa
 | 
				
			||||||
 | 
					and r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										35
									
								
								tests/lm32/test_andhi.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								tests/lm32/test_andhi.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ANDHI_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					andhi r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ANDHI_2
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					andhi r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ANDHI_3
 | 
				
			||||||
 | 
					load r1 0x000f0000
 | 
				
			||||||
 | 
					andhi r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0x00010000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ANDHI_4
 | 
				
			||||||
 | 
					load r1 0xffffffff
 | 
				
			||||||
 | 
					andhi r3, r1, 0xffff
 | 
				
			||||||
 | 
					check_r3 0xffff0000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ANDHI_5
 | 
				
			||||||
 | 
					load r1 0xffffffff
 | 
				
			||||||
 | 
					andhi r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ANDHI_6
 | 
				
			||||||
 | 
					load r3 0x55aaffff
 | 
				
			||||||
 | 
					andhi r3, r3, 0xaaaa
 | 
				
			||||||
 | 
					check_r3 0x00aa0000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										35
									
								
								tests/lm32/test_andi.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								tests/lm32/test_andi.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ANDI_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					andi r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ANDI_2
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					andi r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ANDI_3
 | 
				
			||||||
 | 
					load r1 0x000f0000
 | 
				
			||||||
 | 
					andi r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ANDI_4
 | 
				
			||||||
 | 
					load r1 0xffffffff
 | 
				
			||||||
 | 
					andi r3, r1, 0xffff
 | 
				
			||||||
 | 
					check_r3 0xffff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ANDI_5
 | 
				
			||||||
 | 
					load r1 0xffffffff
 | 
				
			||||||
 | 
					andi r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ANDI_6
 | 
				
			||||||
 | 
					load r3 0xffff55aa
 | 
				
			||||||
 | 
					andi r3, r3, 0xaaaa
 | 
				
			||||||
 | 
					check_r3 0x000000aa
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										13
									
								
								tests/lm32/test_b.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								tests/lm32/test_b.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name B_1
 | 
				
			||||||
 | 
					load r1 jump
 | 
				
			||||||
 | 
					b r1
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jump:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										48
									
								
								tests/lm32/test_be.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								tests/lm32/test_be.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BE_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					be r1, r2, 1f
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BE_2
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					be r1, r2, 1f
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BE_3
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					be r1, r2, 1f
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 3f
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					test_name BE_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					be r1, r2, 1b
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					3:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										78
									
								
								tests/lm32/test_bg.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								tests/lm32/test_bg.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,78 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BG_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					bg r1, r2, 1f
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BG_2
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					bg r1, r2, 1f
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BG_3
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					bg r1, r2, 1f
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BG_4
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					bg r1, r2, 1f
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BG_5
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					bg r1, r2, 1f
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BG_6
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					bg r1, r2, 1f
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 3f
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					test_name BG_7
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					bg r1, r2, 1b
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					3:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										78
									
								
								tests/lm32/test_bge.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								tests/lm32/test_bge.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,78 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BGE_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					bge r1, r2, 1f
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BGE_2
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					bge r1, r2, 1f
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BGE_3
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					bge r1, r2, 1f
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BGE_4
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					bge r1, r2, 1f
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BGE_5
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					bge r1, r2, 1f
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BGE_6
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					bge r1, r2, 1f
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 3f
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					test_name BGE_7
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					bge r1, r2, 1b
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					3:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										78
									
								
								tests/lm32/test_bgeu.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								tests/lm32/test_bgeu.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,78 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BGEU_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					bgeu r1, r2, 1f
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BGEU_2
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					bgeu r1, r2, 1f
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BGEU_3
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					bgeu r1, r2, 1f
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BGEU_4
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					bgeu r1, r2, 1f
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BGEU_5
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					bgeu r1, r2, 1f
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BGEU_6
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					bgeu r1, r2, 1f
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 3f
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					test_name BGEU_7
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					bgeu r1, r2, 1b
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					3:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										78
									
								
								tests/lm32/test_bgu.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								tests/lm32/test_bgu.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,78 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BGU_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					bgu r1, r2, 1f
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BGU_2
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					bgu r1, r2, 1f
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BGU_3
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					bgu r1, r2, 1f
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BGU_4
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					bgu r1, r2, 1f
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BGU_5
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					bgu r1, r2, 1f
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BGU_6
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					bgu r1, r2, 1f
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 3f
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					test_name BGU_7
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					bgu r1, r2, 1b
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					3:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										23
									
								
								tests/lm32/test_bi.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								tests/lm32/test_bi.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BI_1
 | 
				
			||||||
 | 
					bi jump
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jump_back:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jump:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BI_2
 | 
				
			||||||
 | 
					bi jump_back
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										48
									
								
								tests/lm32/test_bne.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								tests/lm32/test_bne.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BNE_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					bne r1, r2, 1f
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BNE_2
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					bne r1, r2, 1f
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BNE_3
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					bne r1, r2, 1f
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bi 2f
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 3f
 | 
				
			||||||
 | 
					2:
 | 
				
			||||||
 | 
					test_name BNE_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					bne r1, r2, 1b
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					3:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										20
									
								
								tests/lm32/test_break.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								tests/lm32/test_break.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BREAK_1
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					wcsr IE, r1
 | 
				
			||||||
 | 
					insn:
 | 
				
			||||||
 | 
					break
 | 
				
			||||||
 | 
					check_excp 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BREAK_2
 | 
				
			||||||
 | 
					mv r3, ba
 | 
				
			||||||
 | 
					check_r3 insn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BREAK_3
 | 
				
			||||||
 | 
					rcsr r3, IE
 | 
				
			||||||
 | 
					check_r3 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										38
									
								
								tests/lm32/test_bret.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								tests/lm32/test_bret.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BRET_1
 | 
				
			||||||
 | 
					mvi r1, 4
 | 
				
			||||||
 | 
					wcsr IE, r1
 | 
				
			||||||
 | 
					load ba mark
 | 
				
			||||||
 | 
					bret
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 1f
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mark:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					test_name BRET_2
 | 
				
			||||||
 | 
					rcsr r3, IE
 | 
				
			||||||
 | 
					check_r3 5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name BRET_3
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					wcsr IE, r1
 | 
				
			||||||
 | 
					load ba mark2
 | 
				
			||||||
 | 
					bret
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 1f
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mark2:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					test_name BRET_4
 | 
				
			||||||
 | 
					rcsr r3, IE
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										16
									
								
								tests/lm32/test_call.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								tests/lm32/test_call.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CALL_1
 | 
				
			||||||
 | 
					load r1 mark
 | 
				
			||||||
 | 
					call r1
 | 
				
			||||||
 | 
					return:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mark:
 | 
				
			||||||
 | 
					mv r3, ra
 | 
				
			||||||
 | 
					check_r3 return
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										15
									
								
								tests/lm32/test_calli.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								tests/lm32/test_calli.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CALLI_1
 | 
				
			||||||
 | 
					calli mark
 | 
				
			||||||
 | 
					return:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mark:
 | 
				
			||||||
 | 
					mv r3, ra
 | 
				
			||||||
 | 
					check_r3 return
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										40
									
								
								tests/lm32/test_cmpe.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								tests/lm32/test_cmpe.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPE_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpe r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPE_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					cmpe r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPE_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpe r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPE_4
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					cmpe r3, r3, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPE_5
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpe r3, r3, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPE_6
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					cmpe r3, r3, r3
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										35
									
								
								tests/lm32/test_cmpei.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								tests/lm32/test_cmpei.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPEI_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					cmpei r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPEI_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					cmpei r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPEI_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					cmpei r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPEI_4
 | 
				
			||||||
 | 
					load r1 0xffffffff
 | 
				
			||||||
 | 
					cmpei r3, r1, -1
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPEI_5
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					cmpei r3, r3, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPEI_6
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					cmpei r3, r3, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										64
									
								
								tests/lm32/test_cmpg.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								tests/lm32/test_cmpg.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,64 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPG_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpg r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPG_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					cmpg r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPG_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpg r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPG_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					cmpg r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPG_5
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					cmpg r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPG_6
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpg r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPG_7
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					cmpg r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPG_8
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					cmpg r3, r3, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPG_9
 | 
				
			||||||
 | 
					mvi r3, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpg r3, r3, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPG_10
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					cmpg r3, r3, r3
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										64
									
								
								tests/lm32/test_cmpge.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								tests/lm32/test_cmpge.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,64 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGE_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpge r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGE_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					cmpge r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGE_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpge r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGE_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					cmpge r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGE_5
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					cmpge r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGE_6
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpge r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGE_7
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					cmpge r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGE_8
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					cmpge r3, r3, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGE_9
 | 
				
			||||||
 | 
					mvi r3, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpge r3, r3, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGE_10
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					cmpge r3, r3, r3
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										55
									
								
								tests/lm32/test_cmpgei.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								tests/lm32/test_cmpgei.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,55 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEI_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					cmpgei r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEI_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					cmpgei r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEI_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					cmpgei r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEI_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					cmpgei r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEI_5
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					cmpgei r3, r1, -1
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEI_6
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					cmpgei r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEI_7
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					cmpgei r3, r1, -1
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEI_8
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					cmpgei r3, r3, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEI_9
 | 
				
			||||||
 | 
					mvi r3, 1
 | 
				
			||||||
 | 
					cmpgei r3, r3, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEI_10
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					cmpgei r3, r3, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										64
									
								
								tests/lm32/test_cmpgeu.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								tests/lm32/test_cmpgeu.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,64 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEU_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpgeu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEU_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					cmpgeu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEU_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpgeu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEU_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					cmpgeu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEU_5
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					cmpgeu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEU_6
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpgeu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEU_7
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					cmpgeu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEU_8
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					cmpgeu r3, r3, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEU_9
 | 
				
			||||||
 | 
					mvi r3, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpgeu r3, r3, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEU_10
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					cmpgeu r3, r3, r3
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										55
									
								
								tests/lm32/test_cmpgeui.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								tests/lm32/test_cmpgeui.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,55 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEUI_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					cmpgeui r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEUI_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					cmpgeui r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEUI_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					cmpgeui r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEUI_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					cmpgeui r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEUI_5
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					cmpgeui r3, r1, 0xffff
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEUI_6
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					cmpgeui r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEUI_7
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					cmpgeui r3, r1, 0xffff
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEUI_8
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					cmpgeui r3, r3, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEUI_9
 | 
				
			||||||
 | 
					mvi r3, 1
 | 
				
			||||||
 | 
					cmpgeui r3, r3, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGEUI_10
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					cmpgeui r3, r3, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										55
									
								
								tests/lm32/test_cmpgi.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								tests/lm32/test_cmpgi.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,55 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGI_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					cmpgi r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGI_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					cmpgi r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGI_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					cmpgi r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGI_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					cmpgi r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGI_5
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					cmpgi r3, r1, -1
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGI_6
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					cmpgi r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGI_7
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					cmpgi r3, r1, -1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGI_8
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					cmpgi r3, r3, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGI_9
 | 
				
			||||||
 | 
					mvi r3, 1
 | 
				
			||||||
 | 
					cmpgi r3, r3, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGI_10
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					cmpgi r3, r3, 0
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										64
									
								
								tests/lm32/test_cmpgu.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								tests/lm32/test_cmpgu.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,64 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGU_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpgu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGU_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					cmpgu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGU_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpgu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGU_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					cmpgu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGU_5
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					cmpgu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGU_6
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpgu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGU_7
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					cmpgu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGU_8
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					cmpgu r3, r3, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGU_9
 | 
				
			||||||
 | 
					mvi r3, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpgu r3, r3, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGU_10
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					cmpgu r3, r3, r3
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										55
									
								
								tests/lm32/test_cmpgui.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								tests/lm32/test_cmpgui.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,55 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGUI_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					cmpgui r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGUI_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					cmpgui r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGUI_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					cmpgui r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGUI_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					cmpgui r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGUI_5
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					cmpgui r3, r1, 0xffff
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGUI_6
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					cmpgui r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGUI_7
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					cmpgui r3, r1, 0xffff
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGUI_8
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					cmpgui r3, r3, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGUI_9
 | 
				
			||||||
 | 
					mvi r3, 1
 | 
				
			||||||
 | 
					cmpgui r3, r3, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPGUI_10
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					cmpgui r3, r3, 0
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										40
									
								
								tests/lm32/test_cmpne.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								tests/lm32/test_cmpne.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPNE_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpne r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPNE_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					cmpne r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPNE_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpne r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPNE_4
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					cmpne r3, r3, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPNE_5
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					cmpne r3, r3, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPNE_6
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					cmpne r3, r3, r3
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										35
									
								
								tests/lm32/test_cmpnei.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								tests/lm32/test_cmpnei.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPNEI_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					cmpnei r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPNEI_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					cmpnei r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPNEI_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					cmpnei r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPNEI_4
 | 
				
			||||||
 | 
					load r1 0xffffffff
 | 
				
			||||||
 | 
					cmpnei r3, r1, -1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPNEI_5
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					cmpnei r3, r3, 0
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name CMPNEI_6
 | 
				
			||||||
 | 
					mvi r3, 0
 | 
				
			||||||
 | 
					cmpnei r3, r3, 1
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										29
									
								
								tests/lm32/test_divu.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								tests/lm32/test_divu.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name DIVU_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					divu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name DIVU_2
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					divu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name DIVU_3
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					divu r3, r1, r2
 | 
				
			||||||
 | 
					check_excp 16
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name DIVU_4
 | 
				
			||||||
 | 
					load r1 0xabcdef12
 | 
				
			||||||
 | 
					load r2 0x12345
 | 
				
			||||||
 | 
					divu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0x9700
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										38
									
								
								tests/lm32/test_eret.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								tests/lm32/test_eret.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ERET_1
 | 
				
			||||||
 | 
					mvi r1, 2
 | 
				
			||||||
 | 
					wcsr IE, r1
 | 
				
			||||||
 | 
					load ea mark
 | 
				
			||||||
 | 
					eret
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 1f
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mark:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					test_name ERET_2
 | 
				
			||||||
 | 
					rcsr r3, IE
 | 
				
			||||||
 | 
					check_r3 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ERET_3
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					wcsr IE, r1
 | 
				
			||||||
 | 
					load ea mark2
 | 
				
			||||||
 | 
					eret
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					bi 1f
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mark2:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1:
 | 
				
			||||||
 | 
					test_name ERET_4
 | 
				
			||||||
 | 
					rcsr r3, IE
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										45
									
								
								tests/lm32/test_lb.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								tests/lm32/test_lb.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LB_1
 | 
				
			||||||
 | 
					load r1 data
 | 
				
			||||||
 | 
					lb r3, (r1+0)
 | 
				
			||||||
 | 
					check_r3 0x7e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LB_2
 | 
				
			||||||
 | 
					lb r3, (r1+1)
 | 
				
			||||||
 | 
					check_r3 0x7f
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LB_3
 | 
				
			||||||
 | 
					lb r3, (r1+-1)
 | 
				
			||||||
 | 
					check_r3 0x7d
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LB_4
 | 
				
			||||||
 | 
					load r1 data_msb
 | 
				
			||||||
 | 
					lb r3, (r1+0)
 | 
				
			||||||
 | 
					check_r3 0xfffffffe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LB_5
 | 
				
			||||||
 | 
					lb r3, (r1+1)
 | 
				
			||||||
 | 
					check_r3 0xffffffff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LB_6
 | 
				
			||||||
 | 
					lb r3, (r1+-1)
 | 
				
			||||||
 | 
					check_r3 0xfffffffd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LB_7
 | 
				
			||||||
 | 
					load r3 data
 | 
				
			||||||
 | 
					lb r3, (r3+0)
 | 
				
			||||||
 | 
					check_r3 0x7e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.data
 | 
				
			||||||
 | 
						.align 4
 | 
				
			||||||
 | 
						.byte 0x7a, 0x7b, 0x7c, 0x7d
 | 
				
			||||||
 | 
					data:
 | 
				
			||||||
 | 
						.byte 0x7e, 0x7f, 0x70, 0x71
 | 
				
			||||||
 | 
						.byte 0xfa, 0xfb, 0xfc, 0xfd
 | 
				
			||||||
 | 
					data_msb:
 | 
				
			||||||
 | 
						.byte 0xfe, 0xff, 0xf0, 0xf1
 | 
				
			||||||
							
								
								
									
										45
									
								
								tests/lm32/test_lbu.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								tests/lm32/test_lbu.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LBU_1
 | 
				
			||||||
 | 
					load r1 data
 | 
				
			||||||
 | 
					lbu r3, (r1+0)
 | 
				
			||||||
 | 
					check_r3 0x7e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LBU_2
 | 
				
			||||||
 | 
					lbu r3, (r1+1)
 | 
				
			||||||
 | 
					check_r3 0x7f
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LBU_3
 | 
				
			||||||
 | 
					lbu r3, (r1+-1)
 | 
				
			||||||
 | 
					check_r3 0x7d
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LBU_4
 | 
				
			||||||
 | 
					load r1 data_msb
 | 
				
			||||||
 | 
					lbu r3, (r1+0)
 | 
				
			||||||
 | 
					check_r3 0xfe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LBU_5
 | 
				
			||||||
 | 
					lbu r3, (r1+1)
 | 
				
			||||||
 | 
					check_r3 0xff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LBU_6
 | 
				
			||||||
 | 
					lbu r3, (r1+-1)
 | 
				
			||||||
 | 
					check_r3 0xfd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LBU_7
 | 
				
			||||||
 | 
					load r3 data
 | 
				
			||||||
 | 
					lbu r3, (r3+0)
 | 
				
			||||||
 | 
					check_r3 0x7e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.data
 | 
				
			||||||
 | 
						.align 4
 | 
				
			||||||
 | 
						.byte 0x7a, 0x7b, 0x7c, 0x7d
 | 
				
			||||||
 | 
					data:
 | 
				
			||||||
 | 
						.byte 0x7e, 0x7f, 0x70, 0x71
 | 
				
			||||||
 | 
						.byte 0xfa, 0xfb, 0xfc, 0xfd
 | 
				
			||||||
 | 
					data_msb:
 | 
				
			||||||
 | 
						.byte 0xfe, 0xff, 0xf0, 0xf1
 | 
				
			||||||
							
								
								
									
										45
									
								
								tests/lm32/test_lh.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								tests/lm32/test_lh.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LH_1
 | 
				
			||||||
 | 
					load r1 data
 | 
				
			||||||
 | 
					lh r3, (r1+0)
 | 
				
			||||||
 | 
					check_r3 0x7e7f
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LH_2
 | 
				
			||||||
 | 
					lh r3, (r1+2)
 | 
				
			||||||
 | 
					check_r3 0x7071
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LH_3
 | 
				
			||||||
 | 
					lh r3, (r1+-2)
 | 
				
			||||||
 | 
					check_r3 0x7c7d
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LH_4
 | 
				
			||||||
 | 
					load r1 data_msb
 | 
				
			||||||
 | 
					lh r3, (r1+0)
 | 
				
			||||||
 | 
					check_r3 0xfffffeff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LH_5
 | 
				
			||||||
 | 
					lh r3, (r1+2)
 | 
				
			||||||
 | 
					check_r3 0xfffff0f1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LH_6
 | 
				
			||||||
 | 
					lh r3, (r1+-2)
 | 
				
			||||||
 | 
					check_r3 0xfffffcfd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LH_7
 | 
				
			||||||
 | 
					load r3 data
 | 
				
			||||||
 | 
					lh r3, (r3+0)
 | 
				
			||||||
 | 
					check_r3 0x7e7f
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.data
 | 
				
			||||||
 | 
						.align 4
 | 
				
			||||||
 | 
						.byte 0x7a, 0x7b, 0x7c, 0x7d
 | 
				
			||||||
 | 
					data:
 | 
				
			||||||
 | 
						.byte 0x7e, 0x7f, 0x70, 0x71
 | 
				
			||||||
 | 
						.byte 0xfa, 0xfb, 0xfc, 0xfd
 | 
				
			||||||
 | 
					data_msb:
 | 
				
			||||||
 | 
						.byte 0xfe, 0xff, 0xf0, 0xf1
 | 
				
			||||||
							
								
								
									
										45
									
								
								tests/lm32/test_lhu.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								tests/lm32/test_lhu.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LHU_1
 | 
				
			||||||
 | 
					load r1 data
 | 
				
			||||||
 | 
					lhu r3, (r1+0)
 | 
				
			||||||
 | 
					check_r3 0x7e7f
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LHU_2
 | 
				
			||||||
 | 
					lhu r3, (r1+2)
 | 
				
			||||||
 | 
					check_r3 0x7071
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LHU_3
 | 
				
			||||||
 | 
					lhu r3, (r1+-2)
 | 
				
			||||||
 | 
					check_r3 0x7c7d
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LHU_4
 | 
				
			||||||
 | 
					load r1 data_msb
 | 
				
			||||||
 | 
					lhu r3, (r1+0)
 | 
				
			||||||
 | 
					check_r3 0xfeff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LHU_5
 | 
				
			||||||
 | 
					lhu r3, (r1+2)
 | 
				
			||||||
 | 
					check_r3 0xf0f1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LHU_6
 | 
				
			||||||
 | 
					lhu r3, (r1+-2)
 | 
				
			||||||
 | 
					check_r3 0xfcfd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LHU_7
 | 
				
			||||||
 | 
					load r3 data
 | 
				
			||||||
 | 
					lhu r3, (r3+0)
 | 
				
			||||||
 | 
					check_r3 0x7e7f
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.data
 | 
				
			||||||
 | 
						.align 4
 | 
				
			||||||
 | 
						.byte 0x7a, 0x7b, 0x7c, 0x7d
 | 
				
			||||||
 | 
					data:
 | 
				
			||||||
 | 
						.byte 0x7e, 0x7f, 0x70, 0x71
 | 
				
			||||||
 | 
						.byte 0xfa, 0xfb, 0xfc, 0xfd
 | 
				
			||||||
 | 
					data_msb:
 | 
				
			||||||
 | 
						.byte 0xfe, 0xff, 0xf0, 0xf1
 | 
				
			||||||
							
								
								
									
										30
									
								
								tests/lm32/test_lw.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								tests/lm32/test_lw.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LW_1
 | 
				
			||||||
 | 
					load r1 data
 | 
				
			||||||
 | 
					lw r3, (r1+0)
 | 
				
			||||||
 | 
					check_r3 0x7e7f7071
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LW_2
 | 
				
			||||||
 | 
					lw r3, (r1+4)
 | 
				
			||||||
 | 
					check_r3 0x72737475
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LW_3
 | 
				
			||||||
 | 
					lw r3, (r1+-4)
 | 
				
			||||||
 | 
					check_r3 0x7a7b7c7d
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name LW_4
 | 
				
			||||||
 | 
					load r3 data
 | 
				
			||||||
 | 
					lw r3, (r3+0)
 | 
				
			||||||
 | 
					check_r3 0x7e7f7071
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.data
 | 
				
			||||||
 | 
						.align 4
 | 
				
			||||||
 | 
						.byte 0x7a, 0x7b, 0x7c, 0x7d
 | 
				
			||||||
 | 
					data:
 | 
				
			||||||
 | 
						.byte 0x7e, 0x7f, 0x70, 0x71
 | 
				
			||||||
 | 
						.byte 0x72, 0x73, 0x74, 0x75
 | 
				
			||||||
							
								
								
									
										35
									
								
								tests/lm32/test_modu.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								tests/lm32/test_modu.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MODU_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					modu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MODU_2
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					modu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MODU_3
 | 
				
			||||||
 | 
					mvi r1, 3
 | 
				
			||||||
 | 
					mvi r2, 2
 | 
				
			||||||
 | 
					modu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MODU_4
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					modu r3, r1, r2
 | 
				
			||||||
 | 
					check_excp 16
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MODU_5
 | 
				
			||||||
 | 
					load r1 0xabcdef12
 | 
				
			||||||
 | 
					load r2 0x12345
 | 
				
			||||||
 | 
					modu r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0x3c12
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										70
									
								
								tests/lm32/test_mul.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								tests/lm32/test_mul.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,70 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MUL_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					mul r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MUL_2
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					mul r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MUL_3
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					mul r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MUL_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					mul r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MUL_5
 | 
				
			||||||
 | 
					mvi r1, 2
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					mul r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 -2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MUL_6
 | 
				
			||||||
 | 
					mvi r1, -2
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					mul r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MUL_7
 | 
				
			||||||
 | 
					mvi r1, 0x1234
 | 
				
			||||||
 | 
					mvi r2, 0x789
 | 
				
			||||||
 | 
					mul r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0x8929d4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MUL_8
 | 
				
			||||||
 | 
					mvi r3, 4
 | 
				
			||||||
 | 
					mul r3, r3, r3
 | 
				
			||||||
 | 
					check_r3 16
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MUL_9
 | 
				
			||||||
 | 
					mvi r2, 2
 | 
				
			||||||
 | 
					mvi r3, 4
 | 
				
			||||||
 | 
					mul r3, r3, r2
 | 
				
			||||||
 | 
					check_r3 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MUL_10
 | 
				
			||||||
 | 
					load r1 0x12345678
 | 
				
			||||||
 | 
					load r2 0x7bcdef12
 | 
				
			||||||
 | 
					mul r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0xa801c70
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MUL_11
 | 
				
			||||||
 | 
					load r1 0x12345678
 | 
				
			||||||
 | 
					load r2 0xabcdef12
 | 
				
			||||||
 | 
					mul r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0x8a801c70
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										45
									
								
								tests/lm32/test_muli.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								tests/lm32/test_muli.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MULI_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					muli r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MULI_2
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					muli r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MULI_3
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					muli r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MULI_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					muli r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MULI_5
 | 
				
			||||||
 | 
					mvi r1, 2
 | 
				
			||||||
 | 
					muli r3, r1, -1
 | 
				
			||||||
 | 
					check_r3 -2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MULI_6
 | 
				
			||||||
 | 
					mvi r1, -2
 | 
				
			||||||
 | 
					muli r3, r1, -1
 | 
				
			||||||
 | 
					check_r3 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MULI_7
 | 
				
			||||||
 | 
					mvi r1, 0x1234
 | 
				
			||||||
 | 
					muli r3, r1, 0x789
 | 
				
			||||||
 | 
					check_r3 0x8929d4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name MULI_8
 | 
				
			||||||
 | 
					mvi r3, 4
 | 
				
			||||||
 | 
					muli r3, r3, 4
 | 
				
			||||||
 | 
					check_r3 16
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										51
									
								
								tests/lm32/test_nor.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								tests/lm32/test_nor.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,51 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name NOR_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					nor r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0xffffffff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name NOR_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					nor r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0xfffffffe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name NOR_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					nor r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0xfffffffe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name NOR_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					nor r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0xfffffffe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name NOR_5
 | 
				
			||||||
 | 
					load r1 0xaa55aa55
 | 
				
			||||||
 | 
					load r2 0x55aa55aa
 | 
				
			||||||
 | 
					nor r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name NOR_6
 | 
				
			||||||
 | 
					load r1 0xaa550000
 | 
				
			||||||
 | 
					load r2 0x0000aa55
 | 
				
			||||||
 | 
					nor r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0x55aa55aa
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name NOR_7
 | 
				
			||||||
 | 
					load r1 0xaa55aa55
 | 
				
			||||||
 | 
					nor r3, r1, r1
 | 
				
			||||||
 | 
					check_r3 0x55aa55aa
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name NOR_8
 | 
				
			||||||
 | 
					load r3 0xaa55aa55
 | 
				
			||||||
 | 
					nor r3, r3, r3
 | 
				
			||||||
 | 
					check_r3 0x55aa55aa
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										35
									
								
								tests/lm32/test_nori.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								tests/lm32/test_nori.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name NORI_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					nori r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0xffffffff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name NORI_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					nori r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0xfffffffe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name NORI_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					nori r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0xfffffffe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name NORI_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					nori r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0xfffffffe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name NORI_5
 | 
				
			||||||
 | 
					load r1 0xaa55aa55
 | 
				
			||||||
 | 
					nori r3, r1, 0x55aa
 | 
				
			||||||
 | 
					check_r3 0x55aa0000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name NORI_6
 | 
				
			||||||
 | 
					load r3 0xaa55aa55
 | 
				
			||||||
 | 
					nori r3, r3, 0x55aa
 | 
				
			||||||
 | 
					check_r3 0x55aa0000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										51
									
								
								tests/lm32/test_or.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								tests/lm32/test_or.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,51 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name OR_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					or r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name OR_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					or r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name OR_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					or r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name OR_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					or r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name OR_5
 | 
				
			||||||
 | 
					load r1 0xaa55aa55
 | 
				
			||||||
 | 
					load r2 0x55aa55aa
 | 
				
			||||||
 | 
					or r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0xffffffff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name OR_6
 | 
				
			||||||
 | 
					load r1 0xaa550000
 | 
				
			||||||
 | 
					load r2 0x0000aa55
 | 
				
			||||||
 | 
					or r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0xaa55aa55
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name OR_7
 | 
				
			||||||
 | 
					load r1 0xaa55aa55
 | 
				
			||||||
 | 
					or r3, r1, r1
 | 
				
			||||||
 | 
					check_r3 0xaa55aa55
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name OR_8
 | 
				
			||||||
 | 
					load r3 0xaa55aa55
 | 
				
			||||||
 | 
					or r3, r3, r3
 | 
				
			||||||
 | 
					check_r3 0xaa55aa55
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										35
									
								
								tests/lm32/test_orhi.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								tests/lm32/test_orhi.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ORHI_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					orhi r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ORHI_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					orhi r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0x00010000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ORHI_3
 | 
				
			||||||
 | 
					load r1 0x00010000
 | 
				
			||||||
 | 
					orhi r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0x00010000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ORHI_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					orhi r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ORHI_5
 | 
				
			||||||
 | 
					load r1 0xaa55aa55
 | 
				
			||||||
 | 
					orhi r3, r1, 0x55aa
 | 
				
			||||||
 | 
					check_r3 0xffffaa55
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ORHI_6
 | 
				
			||||||
 | 
					load r3 0xaa55aa55
 | 
				
			||||||
 | 
					orhi r3, r3, 0x55aa
 | 
				
			||||||
 | 
					check_r3 0xffffaa55
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										35
									
								
								tests/lm32/test_ori.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								tests/lm32/test_ori.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ORI_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					ori r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ORI_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					ori r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ORI_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					ori r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ORI_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					ori r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ORI_5
 | 
				
			||||||
 | 
					load r1 0xaa55aa55
 | 
				
			||||||
 | 
					ori r3, r1, 0x55aa
 | 
				
			||||||
 | 
					check_r3 0xaa55ffff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name ORI_6
 | 
				
			||||||
 | 
					load r3 0xaa55aa55
 | 
				
			||||||
 | 
					ori r3, r3, 0x55aa
 | 
				
			||||||
 | 
					check_r3 0xaa55ffff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										14
									
								
								tests/lm32/test_ret.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								tests/lm32/test_ret.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name RET_1
 | 
				
			||||||
 | 
					load ra mark
 | 
				
			||||||
 | 
					ret
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tc_fail
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mark:
 | 
				
			||||||
 | 
					tc_pass
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										30
									
								
								tests/lm32/test_sb.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								tests/lm32/test_sb.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SB_1
 | 
				
			||||||
 | 
					load r1 data
 | 
				
			||||||
 | 
					load r2 0xf0f1f2aa
 | 
				
			||||||
 | 
					sb (r1+0), r2
 | 
				
			||||||
 | 
					check_mem data 0xaa000000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SB_2
 | 
				
			||||||
 | 
					load r2 0xf0f1f2bb
 | 
				
			||||||
 | 
					sb (r1+1), r2
 | 
				
			||||||
 | 
					check_mem data 0xaabb0000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SB_3
 | 
				
			||||||
 | 
					load r2 0xf0f1f2cc
 | 
				
			||||||
 | 
					sb (r1+-1), r2
 | 
				
			||||||
 | 
					check_mem data0 0x000000cc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.data
 | 
				
			||||||
 | 
						.align 4
 | 
				
			||||||
 | 
					data0:
 | 
				
			||||||
 | 
						.byte 0, 0, 0, 0
 | 
				
			||||||
 | 
					data:
 | 
				
			||||||
 | 
						.byte 0, 0, 0, 0
 | 
				
			||||||
 | 
					data1:
 | 
				
			||||||
 | 
						.byte 0, 0, 0, 0
 | 
				
			||||||
							
								
								
									
										20
									
								
								tests/lm32/test_scall.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								tests/lm32/test_scall.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SCALL_1
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					wcsr IE, r1
 | 
				
			||||||
 | 
					insn:
 | 
				
			||||||
 | 
					scall
 | 
				
			||||||
 | 
					check_excp 64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SCALL_2
 | 
				
			||||||
 | 
					mv r3, ea
 | 
				
			||||||
 | 
					check_r3 insn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SCALL_3
 | 
				
			||||||
 | 
					rcsr r3, IE
 | 
				
			||||||
 | 
					check_r3 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										20
									
								
								tests/lm32/test_sextb.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								tests/lm32/test_sextb.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SEXTB_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					sextb r3, r1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SEXTB_2
 | 
				
			||||||
 | 
					mvi r1, 0x7f
 | 
				
			||||||
 | 
					sextb r3, r1
 | 
				
			||||||
 | 
					check_r3 0x0000007f
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SEXTB_3
 | 
				
			||||||
 | 
					mvi r1, 0x80
 | 
				
			||||||
 | 
					sextb r3, r1
 | 
				
			||||||
 | 
					check_r3 0xffffff80
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										20
									
								
								tests/lm32/test_sexth.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								tests/lm32/test_sexth.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SEXTH_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					sexth r3, r1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SEXTH_2
 | 
				
			||||||
 | 
					load r1 0x7fff
 | 
				
			||||||
 | 
					sexth r3, r1
 | 
				
			||||||
 | 
					check_r3 0x00007fff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SEXTH_3
 | 
				
			||||||
 | 
					load r1 0x8000
 | 
				
			||||||
 | 
					sexth r3, r1
 | 
				
			||||||
 | 
					check_r3 0xffff8000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										30
									
								
								tests/lm32/test_sh.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								tests/lm32/test_sh.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SH_1
 | 
				
			||||||
 | 
					load r1 data
 | 
				
			||||||
 | 
					load r2 0xf0f1aaaa
 | 
				
			||||||
 | 
					sh (r1+0), r2
 | 
				
			||||||
 | 
					check_mem data 0xaaaa0000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SH_2
 | 
				
			||||||
 | 
					load r2 0xf0f1bbbb
 | 
				
			||||||
 | 
					sh (r1+2), r2
 | 
				
			||||||
 | 
					check_mem data 0xaaaabbbb
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SH_3
 | 
				
			||||||
 | 
					load r2 0xf0f1cccc
 | 
				
			||||||
 | 
					sh (r1+-2), r2
 | 
				
			||||||
 | 
					check_mem data0 0x0000cccc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.data
 | 
				
			||||||
 | 
						.align 4
 | 
				
			||||||
 | 
					data0:
 | 
				
			||||||
 | 
						.byte 0, 0, 0, 0
 | 
				
			||||||
 | 
					data:
 | 
				
			||||||
 | 
						.byte 0, 0, 0, 0
 | 
				
			||||||
 | 
					data1:
 | 
				
			||||||
 | 
						.byte 0, 0, 0, 0
 | 
				
			||||||
							
								
								
									
										45
									
								
								tests/lm32/test_sl.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								tests/lm32/test_sl.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SL_1
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					sl r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SL_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					sl r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SL_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 31
 | 
				
			||||||
 | 
					sl r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0x80000000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SL_4
 | 
				
			||||||
 | 
					mvi r1, 16
 | 
				
			||||||
 | 
					mvi r2, 31
 | 
				
			||||||
 | 
					sl r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SL_5
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 34
 | 
				
			||||||
 | 
					sl r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SL_6
 | 
				
			||||||
 | 
					mvi r1, 2
 | 
				
			||||||
 | 
					sl r3, r1, r1
 | 
				
			||||||
 | 
					check_r3 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SL_7
 | 
				
			||||||
 | 
					mvi r3, 2
 | 
				
			||||||
 | 
					sl r3, r3, r3
 | 
				
			||||||
 | 
					check_r3 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										30
									
								
								tests/lm32/test_sli.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								tests/lm32/test_sli.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SLI_1
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					sli r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SLI_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					sli r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SLI_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					sli r3, r1, 31
 | 
				
			||||||
 | 
					check_r3 0x80000000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SLI_4
 | 
				
			||||||
 | 
					mvi r1, 16
 | 
				
			||||||
 | 
					sli r3, r1, 31
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SLI_7
 | 
				
			||||||
 | 
					mvi r3, 2
 | 
				
			||||||
 | 
					sli r3, r3, 2
 | 
				
			||||||
 | 
					check_r3 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										57
									
								
								tests/lm32/test_sr.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								tests/lm32/test_sr.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,57 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SR_1
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					sr r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SR_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					sr r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SR_3
 | 
				
			||||||
 | 
					load r1 0x40000000
 | 
				
			||||||
 | 
					mvi r2, 30
 | 
				
			||||||
 | 
					sr r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SR_4
 | 
				
			||||||
 | 
					load r1 0x40000000
 | 
				
			||||||
 | 
					mvi r2, 31
 | 
				
			||||||
 | 
					sr r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SR_5
 | 
				
			||||||
 | 
					mvi r1, 16
 | 
				
			||||||
 | 
					mvi r2, 34
 | 
				
			||||||
 | 
					sr r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SR_6
 | 
				
			||||||
 | 
					mvi r1, 2
 | 
				
			||||||
 | 
					sr r3, r1, r1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SR_7
 | 
				
			||||||
 | 
					mvi r3, 2
 | 
				
			||||||
 | 
					sr r3, r3, r3
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SR_8
 | 
				
			||||||
 | 
					mvi r1, 0xfffffff0
 | 
				
			||||||
 | 
					mvi r2, 2
 | 
				
			||||||
 | 
					sr r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0xfffffffc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SR_9
 | 
				
			||||||
 | 
					mvi r1, 0xfffffff0
 | 
				
			||||||
 | 
					mvi r2, 4
 | 
				
			||||||
 | 
					sr r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0xffffffff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										40
									
								
								tests/lm32/test_sri.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								tests/lm32/test_sri.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRI_1
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					sri r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRI_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					sri r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRI_3
 | 
				
			||||||
 | 
					load r1 0x40000000
 | 
				
			||||||
 | 
					sri r3, r1, 30
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRI_4
 | 
				
			||||||
 | 
					load r1 0x40000000
 | 
				
			||||||
 | 
					sri r3, r1, 31
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRI_5
 | 
				
			||||||
 | 
					mvi r3, 2
 | 
				
			||||||
 | 
					sri r3, r3, 2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRI_6
 | 
				
			||||||
 | 
					mvi r1, 0xfffffff0
 | 
				
			||||||
 | 
					sri r3, r1, 2
 | 
				
			||||||
 | 
					check_r3 0xfffffffc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRI_7
 | 
				
			||||||
 | 
					mvi r1, 0xfffffff0
 | 
				
			||||||
 | 
					sri r3, r1, 4
 | 
				
			||||||
 | 
					check_r3 0xffffffff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										57
									
								
								tests/lm32/test_sru.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								tests/lm32/test_sru.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,57 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRU_1
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					sru r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRU_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					sru r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRU_3
 | 
				
			||||||
 | 
					load r1 0x40000000
 | 
				
			||||||
 | 
					mvi r2, 30
 | 
				
			||||||
 | 
					sru r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRU_4
 | 
				
			||||||
 | 
					load r1 0x40000000
 | 
				
			||||||
 | 
					mvi r2, 31
 | 
				
			||||||
 | 
					sru r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRU_5
 | 
				
			||||||
 | 
					mvi r1, 16
 | 
				
			||||||
 | 
					mvi r2, 34
 | 
				
			||||||
 | 
					sru r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRU_6
 | 
				
			||||||
 | 
					mvi r1, 2
 | 
				
			||||||
 | 
					sru r3, r1, r1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRU_7
 | 
				
			||||||
 | 
					mvi r3, 2
 | 
				
			||||||
 | 
					sru r3, r3, r3
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRU_8
 | 
				
			||||||
 | 
					mvi r1, 0xfffffff0
 | 
				
			||||||
 | 
					mvi r2, 2
 | 
				
			||||||
 | 
					sru r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0x3ffffffc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRU_9
 | 
				
			||||||
 | 
					mvi r1, 0xfffffff0
 | 
				
			||||||
 | 
					mvi r2, 4
 | 
				
			||||||
 | 
					sru r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0x0fffffff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										40
									
								
								tests/lm32/test_srui.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								tests/lm32/test_srui.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRUI_1
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					srui r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRUI_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					srui r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRUI_3
 | 
				
			||||||
 | 
					load r1 0x40000000
 | 
				
			||||||
 | 
					srui r3, r1, 30
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRUI_4
 | 
				
			||||||
 | 
					load r1 0x40000000
 | 
				
			||||||
 | 
					srui r3, r1, 31
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRUI_5
 | 
				
			||||||
 | 
					mvi r3, 2
 | 
				
			||||||
 | 
					srui r3, r3, 2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRUI_6
 | 
				
			||||||
 | 
					mvi r1, 0xfffffff0
 | 
				
			||||||
 | 
					srui r3, r1, 2
 | 
				
			||||||
 | 
					check_r3 0x3ffffffc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SRUI_7
 | 
				
			||||||
 | 
					mvi r1, 0xfffffff0
 | 
				
			||||||
 | 
					srui r3, r1, 4
 | 
				
			||||||
 | 
					check_r3 0x0fffffff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										75
									
								
								tests/lm32/test_sub.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								tests/lm32/test_sub.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,75 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SUB_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					sub r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SUB_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					sub r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 -1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SUB_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					sub r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SUB_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					sub r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SUB_5
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					sub r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 -2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SUB_6
 | 
				
			||||||
 | 
					mvi r1, -1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					sub r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 -1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SUB_7
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, -1
 | 
				
			||||||
 | 
					sub r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SUB_8
 | 
				
			||||||
 | 
					mvi r3, 2
 | 
				
			||||||
 | 
					sub r3, r3, r3
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SUB_9
 | 
				
			||||||
 | 
					mvi r1, 4
 | 
				
			||||||
 | 
					mvi r3, 2
 | 
				
			||||||
 | 
					sub r3, r1, r3
 | 
				
			||||||
 | 
					check_r3 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SUB_10
 | 
				
			||||||
 | 
					mvi r1, 4
 | 
				
			||||||
 | 
					mvi r3, 2
 | 
				
			||||||
 | 
					sub r3, r3, r1
 | 
				
			||||||
 | 
					check_r3 -2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SUB_11
 | 
				
			||||||
 | 
					mvi r1, 4
 | 
				
			||||||
 | 
					sub r3, r1, r1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SUB_12
 | 
				
			||||||
 | 
					load r1 0x12345678
 | 
				
			||||||
 | 
					load r2 0xabcdef97
 | 
				
			||||||
 | 
					sub r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0x666666e1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										35
									
								
								tests/lm32/test_sw.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								tests/lm32/test_sw.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SW_1
 | 
				
			||||||
 | 
					load r1 data
 | 
				
			||||||
 | 
					load r2 0xaabbccdd
 | 
				
			||||||
 | 
					sw (r1+0), r2
 | 
				
			||||||
 | 
					check_mem data 0xaabbccdd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SW_2
 | 
				
			||||||
 | 
					load r2 0x00112233
 | 
				
			||||||
 | 
					sw (r1+4), r2
 | 
				
			||||||
 | 
					check_mem data1 0x00112233
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SW_3
 | 
				
			||||||
 | 
					load r2 0x44556677
 | 
				
			||||||
 | 
					sw (r1+-4), r2
 | 
				
			||||||
 | 
					check_mem data0 0x44556677
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name SW_4
 | 
				
			||||||
 | 
					sw (r1+0), r1
 | 
				
			||||||
 | 
					lw r3, (r1+0)
 | 
				
			||||||
 | 
					check_r3 data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.data
 | 
				
			||||||
 | 
						.align 4
 | 
				
			||||||
 | 
					data0:
 | 
				
			||||||
 | 
						.byte 0, 0, 0, 0
 | 
				
			||||||
 | 
					data:
 | 
				
			||||||
 | 
						.byte 0, 0, 0, 0
 | 
				
			||||||
 | 
					data1:
 | 
				
			||||||
 | 
						.byte 0, 0, 0, 0
 | 
				
			||||||
							
								
								
									
										51
									
								
								tests/lm32/test_xnor.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								tests/lm32/test_xnor.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,51 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XNOR_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					xnor r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0xffffffff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XNOR_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					xnor r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0xfffffffe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XNOR_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					xnor r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0xffffffff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XNOR_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					xnor r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0xfffffffe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XNOR_5
 | 
				
			||||||
 | 
					load r1 0xaa55aa55
 | 
				
			||||||
 | 
					load r2 0x55aa55aa
 | 
				
			||||||
 | 
					xnor r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XNOR_6
 | 
				
			||||||
 | 
					load r1 0xaa550000
 | 
				
			||||||
 | 
					load r2 0x0000aa55
 | 
				
			||||||
 | 
					xnor r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0x55aa55aa
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XNOR_7
 | 
				
			||||||
 | 
					load r1 0xaa55aa55
 | 
				
			||||||
 | 
					xnor r3, r1, r1
 | 
				
			||||||
 | 
					check_r3 0xffffffff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XNOR_8
 | 
				
			||||||
 | 
					load r3 0xaa55aa55
 | 
				
			||||||
 | 
					xnor r3, r3, r3
 | 
				
			||||||
 | 
					check_r3 0xffffffff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										35
									
								
								tests/lm32/test_xnori.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								tests/lm32/test_xnori.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XNORI_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					xnori r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0xffffffff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XNORI_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					xnori r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0xfffffffe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XNORI_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					xnori r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0xffffffff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XNORI_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					xnori r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0xfffffffe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XNORI_5
 | 
				
			||||||
 | 
					load r1 0xaa55aa55
 | 
				
			||||||
 | 
					xnori r3, r1, 0x5555
 | 
				
			||||||
 | 
					check_r3 0x55aa00ff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XNORI_6
 | 
				
			||||||
 | 
					load r3 0xaa55aa55
 | 
				
			||||||
 | 
					xnori r3, r3, 0x5555
 | 
				
			||||||
 | 
					check_r3 0x55aa00ff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										51
									
								
								tests/lm32/test_xor.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								tests/lm32/test_xor.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,51 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XOR_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					xor r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XOR_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					xor r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XOR_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 1
 | 
				
			||||||
 | 
					xor r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XOR_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					mvi r2, 0
 | 
				
			||||||
 | 
					xor r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XOR_5
 | 
				
			||||||
 | 
					load r1 0xaa55aa55
 | 
				
			||||||
 | 
					load r2 0x55aa55aa
 | 
				
			||||||
 | 
					xor r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0xffffffff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XOR_6
 | 
				
			||||||
 | 
					load r1 0xaa550000
 | 
				
			||||||
 | 
					load r2 0x0000aa55
 | 
				
			||||||
 | 
					xor r3, r1, r2
 | 
				
			||||||
 | 
					check_r3 0xaa55aa55
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XOR_7
 | 
				
			||||||
 | 
					load r1 0xaa55aa55
 | 
				
			||||||
 | 
					xor r3, r1, r1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XOR_8
 | 
				
			||||||
 | 
					load r3 0xaa55aa55
 | 
				
			||||||
 | 
					xor r3, r3, r3
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										35
									
								
								tests/lm32/test_xori.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								tests/lm32/test_xori.S
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					.include "macros.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XORI_1
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					xori r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XORI_2
 | 
				
			||||||
 | 
					mvi r1, 0
 | 
				
			||||||
 | 
					xori r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XORI_3
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					xori r3, r1, 1
 | 
				
			||||||
 | 
					check_r3 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XORI_4
 | 
				
			||||||
 | 
					mvi r1, 1
 | 
				
			||||||
 | 
					xori r3, r1, 0
 | 
				
			||||||
 | 
					check_r3 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XORI_5
 | 
				
			||||||
 | 
					load r1 0xaa55aa55
 | 
				
			||||||
 | 
					xori r3, r1, 0x5555
 | 
				
			||||||
 | 
					check_r3 0xaa55ff00
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_name XORI_6
 | 
				
			||||||
 | 
					load r3 0xaa55aa55
 | 
				
			||||||
 | 
					xori r3, r3, 0x5555
 | 
				
			||||||
 | 
					check_r3 0xaa55ff00
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user