aboutsummaryrefslogtreecommitdiff
path: root/tests/xtensa
diff options
context:
space:
mode:
authorAnthony Liguori <aliguori@us.ibm.com>2012-01-10 13:10:42 -0600
committerAnthony Liguori <aliguori@us.ibm.com>2012-01-12 10:03:28 -0600
commitc09015dd04e14a9b99250ed06fb5a47e2efa387f (patch)
treecc9e2078c44558a7d0e4ee9bd914383c6be130b5 /tests/xtensa
parenta0f426109e17d579c2712f5b96a50215e6cc06a4 (diff)
tests: mv tests/* -> tests/tcg
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'tests/xtensa')
-rw-r--r--tests/xtensa/Makefile75
-rw-r--r--tests/xtensa/crt.S24
-rw-r--r--tests/xtensa/linker.ld112
-rw-r--r--tests/xtensa/macros.inc68
-rw-r--r--tests/xtensa/test_b.S221
-rw-r--r--tests/xtensa/test_bi.S103
-rw-r--r--tests/xtensa/test_boolean.S23
-rw-r--r--tests/xtensa/test_bz.S57
-rw-r--r--tests/xtensa/test_clamps.S42
-rw-r--r--tests/xtensa/test_fail.S9
-rw-r--r--tests/xtensa/test_interrupt.S194
-rw-r--r--tests/xtensa/test_loop.S77
-rw-r--r--tests/xtensa/test_mac16.S243
-rw-r--r--tests/xtensa/test_max.S81
-rw-r--r--tests/xtensa/test_min.S81
-rw-r--r--tests/xtensa/test_mmu.S318
-rw-r--r--tests/xtensa/test_mul16.S83
-rw-r--r--tests/xtensa/test_mul32.S20
-rw-r--r--tests/xtensa/test_nsa.S59
-rw-r--r--tests/xtensa/test_pipeline.S157
-rw-r--r--tests/xtensa/test_quo.S147
-rw-r--r--tests/xtensa/test_rem.S147
-rw-r--r--tests/xtensa/test_rst0.S148
-rw-r--r--tests/xtensa/test_sar.S111
-rw-r--r--tests/xtensa/test_sext.S69
-rw-r--r--tests/xtensa/test_shift.S206
-rw-r--r--tests/xtensa/test_timer.S178
-rw-r--r--tests/xtensa/test_windowed.S302
-rw-r--r--tests/xtensa/vectors.S39
29 files changed, 0 insertions, 3394 deletions
diff --git a/tests/xtensa/Makefile b/tests/xtensa/Makefile
deleted file mode 100644
index 8713af16eb..0000000000
--- a/tests/xtensa/Makefile
+++ /dev/null
@@ -1,75 +0,0 @@
--include ../../config-host.mak
-
-CROSS=xtensa-dc232b-elf-
-
-ifndef XT
-SIM = qemu-system-xtensa
-SIMFLAGS = -M sim -cpu dc232b -nographic -semihosting $(EXTFLAGS) -kernel
-SIMDEBUG = -s -S
-else
-SIM = xt-run
-SIMFLAGS = --xtensa-core=DC_B_232L --exit_with_target_code $(EXTFLAGS)
-SIMDEBUG = --gdbserve=0
-endif
-
-CC = $(CROSS)gcc
-AS = $(CROSS)gcc -x assembler
-LD = $(CROSS)ld
-
-LDFLAGS = -Tlinker.ld
-
-CRT = crt.o vectors.o
-
-TESTCASES += test_b.tst
-TESTCASES += test_bi.tst
-#TESTCASES += test_boolean.tst
-TESTCASES += test_bz.tst
-TESTCASES += test_clamps.tst
-TESTCASES += test_fail.tst
-TESTCASES += test_interrupt.tst
-TESTCASES += test_loop.tst
-TESTCASES += test_mac16.tst
-TESTCASES += test_max.tst
-TESTCASES += test_min.tst
-TESTCASES += test_mmu.tst
-TESTCASES += test_mul16.tst
-TESTCASES += test_mul32.tst
-TESTCASES += test_nsa.tst
-ifdef XT
-TESTCASES += test_pipeline.tst
-endif
-TESTCASES += test_quo.tst
-TESTCASES += test_rem.tst
-TESTCASES += test_rst0.tst
-TESTCASES += test_sar.tst
-TESTCASES += test_sext.tst
-TESTCASES += test_shift.tst
-TESTCASES += test_timer.tst
-TESTCASES += test_windowed.tst
-
-all: build
-
-%.o: $(SRC_PATH)/tests/xtensa/%.c
- $(CC) $(CFLAGS) -c $< -o $@
-
-%.o: $(SRC_PATH)/tests/xtensa/%.S
- $(AS) $(ASFLAGS) -c $< -o $@
-
-%.tst: %.o macros.inc $(CRT) Makefile
- $(LD) $(LDFLAGS) $(NOSTDFLAGS) $(CRT) $< -o $@
-
-build: $(TESTCASES)
-
-check: $(addprefix run-, $(TESTCASES))
-
-run-%.tst: %.tst
- $(SIM) $(SIMFLAGS) ./$<
-
-run-test_fail.tst: test_fail.tst
- ! $(SIM) $(SIMFLAGS) ./$<
-
-debug-%.tst: %.tst
- $(SIM) $(SIMDEBUG) $(SIMFLAGS) ./$<
-
-clean:
- $(RM) -fr $(TESTCASES) $(CRT)
diff --git a/tests/xtensa/crt.S b/tests/xtensa/crt.S
deleted file mode 100644
index d9846acace..0000000000
--- a/tests/xtensa/crt.S
+++ /dev/null
@@ -1,24 +0,0 @@
-.section .init
- j 1f
-.section .init.text
-1:
- movi a2, _start
- jx a2
-
-.text
-.global _start
-_start:
- movi a2, 1
- wsr a2, windowstart
- movi a2, 0
- wsr a2, windowbase
- movi a1, _fstack
- movi a2, 0x4000f
- wsr a2, ps
- isync
-
- call0 main
-
- mov a3, a2
- movi a2, 1
- simcall
diff --git a/tests/xtensa/linker.ld b/tests/xtensa/linker.ld
deleted file mode 100644
index 4d0b307fd2..0000000000
--- a/tests/xtensa/linker.ld
+++ /dev/null
@@ -1,112 +0,0 @@
-OUTPUT_FORMAT("elf32-xtensa-le")
-ENTRY(_start)
-
-__DYNAMIC = 0;
-
-MEMORY {
- ram : ORIGIN = 0xd0000000, LENGTH = 0x08000000 /* 128M */
- rom : ORIGIN = 0xfe000000, LENGTH = 0x00001000 /* 4k */
-}
-
-SECTIONS
-{
- .init :
- {
- *(.init)
- *(.init.*)
- } > rom
-
- .vector :
- {
- . = 0x00000000;
- *(.vector.window_overflow_4)
- *(.vector.window_overflow_4.*)
- . = 0x00000040;
- *(.vector.window_underflow_4)
- *(.vector.window_underflow_4.*)
- . = 0x00000080;
- *(.vector.window_overflow_8)
- *(.vector.window_overflow_8.*)
- . = 0x000000c0;
- *(.vector.window_underflow_8)
- *(.vector.window_underflow_8.*)
- . = 0x00000100;
- *(.vector.window_overflow_12)
- *(.vector.window_overflow_12.*)
- . = 0x00000140;
- *(.vector.window_underflow_12)
- *(.vector.window_underflow_12.*)
-
- . = 0x00000180;
- *(.vector.level2)
- *(.vector.level2.*)
- . = 0x000001c0;
- *(.vector.level3)
- *(.vector.level3.*)
- . = 0x00000200;
- *(.vector.level4)
- *(.vector.level4.*)
- . = 0x00000240;
- *(.vector.level5)
- *(.vector.level5.*)
- . = 0x00000280;
- *(.vector.level6)
- *(.vector.level6.*)
- . = 0x000002c0;
- *(.vector.level7)
- *(.vector.level7.*)
-
- . = 0x00000300;
- *(.vector.kernel)
- *(.vector.kernel.*)
- . = 0x00000340;
- *(.vector.user)
- *(.vector.user.*)
- . = 0x000003c0;
- *(.vector.double)
- *(.vector.double.*)
- } > ram
-
- .text :
- {
- _ftext = .;
- *(.text .stub .text.* .gnu.linkonce.t.* .literal .literal.*)
- _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);
diff --git a/tests/xtensa/macros.inc b/tests/xtensa/macros.inc
deleted file mode 100644
index 2d4515e14f..0000000000
--- a/tests/xtensa/macros.inc
+++ /dev/null
@@ -1,68 +0,0 @@
-.macro test_suite name
-.data
-status: .word result
-result: .space 20
-.text
-.global main
-.align 4
-main:
-.endm
-
-.macro reset_ps
- movi a2, 0x4000f
- wsr a2, ps
- isync
-.endm
-
-.macro test_suite_end
- reset_ps
- movi a0, status
- l32i a2, a0, 0
- movi a0, result
- sub a2, a2, a0
- movi a3, 0
- loopnez a2, 1f
- l8ui a2, a0, 0
- or a3, a3, a2
- addi a0, a0, 1
-1:
- exit
-.endm
-
-.macro test name
-.endm
-
-.macro test_end
-99:
- reset_ps
- movi a2, status
- l32i a3, a2, 0
- addi a3, a3, 1
- s32i a3, a2, 0
-.endm
-
-.macro exit
- movi a2, 1
- simcall
-.endm
-
-.macro test_fail
- movi a2, status
- l32i a2, a2, 0
- movi a3, 1
- s8i a3, a2, 0
- j 99f
-.endm
-
-.macro assert cond, arg1, arg2
- b\cond \arg1, \arg2, 90f
- test_fail
-90:
- nop
-.endm
-
-.macro set_vector vector, addr
- movi a2, handler_\vector
- movi a3, \addr
- s32i a3, a2, 0
-.endm
diff --git a/tests/xtensa/test_b.S b/tests/xtensa/test_b.S
deleted file mode 100644
index 6cbe5f1fca..0000000000
--- a/tests/xtensa/test_b.S
+++ /dev/null
@@ -1,221 +0,0 @@
-.include "macros.inc"
-
-test_suite b
-
-test bnone
- movi a2, 0xa5a5ff00
- movi a3, 0x5a5a00ff
- bnone a2, a3, 1f
- test_fail
-1:
- movi a2, 0xa5a5ff01
- bnone a2, a3, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test beq
- movi a2, 0
- movi a3, 0
- beq a2, a3, 1f
- test_fail
-1:
- movi a2, 1
- beq a2, a3, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test blt
- movi a2, 6
- movi a3, 7
- blt a2, a3, 1f
- test_fail
-1:
- movi a2, 0xffffffff
- blt a2, a3, 1f
- test_fail
-1:
- movi a2, 7
- blt a2, a3, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test bltu
- movi a2, 6
- movi a3, 7
- bltu a2, a3, 1f
- test_fail
-1:
- movi a2, 7
- bltu a2, a3, 1f
- j 2f
-1:
- test_fail
-2:
- movi a2, 0xffffffff
- bltu a2, a3, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test ball
- movi a2, 0xa5a5ffa5
- movi a3, 0xa5a5ff00
- ball a2, a3, 1f
- test_fail
-1:
- movi a2, 0xa5a5a5a5
- ball a2, a3, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test bbc
- movi a2, 0xfffffffd
- movi a3, 0xffffff01
- bbc a2, a3, 1f
- test_fail
-1:
- movi a2, 8
- movi a3, 0xffffff03
- bbc a2, a3, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test bbci
- movi a2, 0xfffdffff
- bbci a2, 17, 1f
- test_fail
-1:
- movi a2, 0x00020000
- bbci a2, 17, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test bany
- movi a2, 0xa5a5ff01
- movi a3, 0x5a5a00ff
- bany a2, a3, 1f
- test_fail
-1:
- movi a2, 0xa5a5ff00
- bany a2, a3, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test bne
- movi a2, 1
- movi a3, 0
- bne a2, a3, 1f
- test_fail
-1:
- movi a2, 0
- bne a2, a3, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test bge
- movi a2, 7
- movi a3, 7
- bge a2, a3, 1f
- test_fail
-1:
- movi a2, 6
- bge a2, a3, 1f
- j 2f
-1:
- test_fail
-2:
- movi a2, 0xffffffff
- bge a2, a3, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test bgeu
- movi a2, 7
- movi a3, 7
- bgeu a2, a3, 1f
- test_fail
-1:
- movi a2, 0xffffffff
- bgeu a2, a3, 1f
- test_fail
-1:
- movi a2, 6
- bgeu a2, a3, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test bnall
- movi a2, 0xa5a5a5a5
- movi a3, 0xa5a5ff00
- bnall a2, a3, 1f
- test_fail
-1:
- movi a2, 0xa5a5ffa5
- bnall a2, a3, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test bbs
- movi a2, 8
- movi a3, 0xffffff03
- bbs a2, a3, 1f
- test_fail
-1:
- movi a2, 0xfffffffd
- movi a3, 0xffffff01
- bbs a2, a3, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test bbsi
- movi a2, 0x00020000
- bbsi a2, 17, 1f
- test_fail
-1:
- movi a2, 0xfffdffff
- bbsi a2, 17, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_bi.S b/tests/xtensa/test_bi.S
deleted file mode 100644
index 6a5f1dffc9..0000000000
--- a/tests/xtensa/test_bi.S
+++ /dev/null
@@ -1,103 +0,0 @@
-.include "macros.inc"
-
-test_suite bi
-
-test beqi
- movi a2, 7
- beqi a2, 7, 1f
- test_fail
-1:
- movi a2, 1
- beqi a2, 7, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test bnei
- movi a2, 1
- bnei a2, 7, 1f
- test_fail
-1:
- movi a2, 7
- bnei a2, 7, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test blti
- movi a2, 6
- blti a2, 7, 1f
- test_fail
-1:
- movi a2, 0xffffffff
- blti a2, 7, 1f
- test_fail
-1:
- movi a2, 7
- blti a2, 7, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test bgei
- movi a2, 7
- bgei a2, 7, 1f
- test_fail
-1:
- movi a2, 6
- bgei a2, 7, 1f
- j 2f
-1:
- test_fail
-2:
- movi a2, 0xffffffff
- bgei a2, 7, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test bltui
- movi a2, 6
- bltui a2, 7, 1f
- test_fail
-1:
- movi a2, 7
- bltui a2, 7, 1f
- j 2f
-1:
- test_fail
-2:
- movi a2, 0xffffffff
- bltui a2, 7, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test bgeui
- movi a2, 7
- bgeui a2, 7, 1f
- test_fail
-1:
- movi a2, 0xffffffff
- bgeui a2, 7, 1f
- test_fail
-1:
- movi a2, 6
- bgeui a2, 7, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_boolean.S b/tests/xtensa/test_boolean.S
deleted file mode 100644
index 50e6d2c22a..0000000000
--- a/tests/xtensa/test_boolean.S
+++ /dev/null
@@ -1,23 +0,0 @@
-.include "macros.inc"
-
-test_suite boolean
-
-test all4
- movi a2, 0xfec0
- wsr a2, br
- all4 b0, b0
- rsr a3, br
- assert eq, a2, a3
- all4 b0, b4
- rsr a3, br
- assert eq, a2, a3
- all4 b0, b8
- rsr a3, br
- assert eq, a2, a3
- all4 b0, b12
- rsr a3, br
- addi a2, a2, 1
- assert eq, a2, a3
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_bz.S b/tests/xtensa/test_bz.S
deleted file mode 100644
index f9ba6e22e8..0000000000
--- a/tests/xtensa/test_bz.S
+++ /dev/null
@@ -1,57 +0,0 @@
-.include "macros.inc"
-
-test_suite bz
-
-test beqz
- movi a2, 0
- _beqz a2, 1f
- test_fail
-1:
- movi a2, 1
- _beqz a2, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test bnez
- movi a2, 1
- _bnez a2, 1f
- test_fail
-1:
- movi a2, 0
- _bnez a2, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test bltz
- movi a2, 0xffffffff
- bltz a2, 1f
- test_fail
-1:
- movi a2, 0
- bltz a2, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test bgez
- movi a2, 0
- bgez a2, 1f
- test_fail
-1:
- movi a2, 0xffffffff
- bgez a2, 1f
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_clamps.S b/tests/xtensa/test_clamps.S
deleted file mode 100644
index c186cc98d8..0000000000
--- a/tests/xtensa/test_clamps.S
+++ /dev/null
@@ -1,42 +0,0 @@
-.include "macros.inc"
-
-test_suite clamps
-
-test clamps
- movi a2, 0
- movi a3, 0
- clamps a4, a2, 7
- assert eq, a3, a4
-
- movi a2, 0x7f
- movi a3, 0x7f
- clamps a4, a2, 7
- assert eq, a3, a4
-
- movi a2, 0xffffff80
- movi a3, 0xffffff80
- clamps a4, a2, 7
- assert eq, a3, a4
-
- movi a2, 0x80
- movi a3, 0x7f
- clamps a2, a2, 7
- assert eq, a3, a2
-
- movi a2, 0xffffff7f
- movi a3, 0xffffff80
- clamps a2, a2, 7
- assert eq, a3, a2
-
- movi a2, 0x7fffffff
- movi a3, 0x7f
- clamps a2, a2, 7
- assert eq, a3, a2
-
- movi a2, 0x80000000
- movi a3, 0xffffff80
- clamps a2, a2, 7
- assert eq, a3, a2
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_fail.S b/tests/xtensa/test_fail.S
deleted file mode 100644
index e8d1b425bc..0000000000
--- a/tests/xtensa/test_fail.S
+++ /dev/null
@@ -1,9 +0,0 @@
-.include "macros.inc"
-
-test_suite fail
-
-test fail
- test_fail
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_interrupt.S b/tests/xtensa/test_interrupt.S
deleted file mode 100644
index 68b3ee1492..0000000000
--- a/tests/xtensa/test_interrupt.S
+++ /dev/null
@@ -1,194 +0,0 @@
-.include "macros.inc"
-
-test_suite interrupt
-
-.macro clear_interrupts
- movi a2, 0
- wsr a2, intenable
- wsr a2, ccompare0
- wsr a2, ccompare1
- wsr a2, ccompare2
- esync
- rsr a2, interrupt
- wsr a2, intclear
-
- esync
- rsr a2, interrupt
- assert eqi, a2, 0
-.endm
-
-.macro check_l1
- rsr a2, ps
- movi a3, 0x1f /* EXCM | INTMASK */
- and a2, a2, a3
- assert eqi, a2, 0x10 /* only EXCM is set for level-1 interrupt */
- rsr a2, exccause
- assert eqi, a2, 4
-.endm
-
-test rsil
- clear_interrupts
-
- rsr a2, ps
- rsil a3, 7
- rsr a4, ps
- assert eq, a2, a3
- movi a2, 0xf
- and a2, a4, a2
- assert eqi, a2, 7
- xor a3, a3, a4
- movi a2, 0xfffffff0
- and a2, a3, a2
- assert eqi, a2, 0
-test_end
-
-test soft_disabled
- set_vector kernel, 1f
- clear_interrupts
-
- movi a2, 0x80
- wsr a2, intset
- esync
- rsr a3, interrupt
- assert eq, a2, a3
- wsr a2, intclear
- esync
- rsr a3, interrupt
- assert eqi, a3, 0
- j 2f
-1:
- test_fail
-2:
-test_end
-
-test soft_intenable
- set_vector kernel, 1f
- clear_interrupts
-
- movi a2, 0x80
- wsr a2, intset
- esync
- rsr a3, interrupt
- assert eq, a2, a3
- rsil a3, 0
- wsr a2, intenable
- esync
- test_fail
-1:
- check_l1
-test_end
-
-test soft_rsil
- set_vector kernel, 1f
- clear_interrupts
-
- movi a2, 0x80
- wsr a2, intset
- esync
- rsr a3, interrupt
- assert eq, a2, a3
- wsr a2, intenable
- rsil a3, 0
- esync
- test_fail
-1:
- check_l1
-test_end
-
-test soft_waiti
- set_vector kernel, 1f
- clear_interrupts
-
- movi a2, 0x80
- wsr a2, intset
- esync
- rsr a3, interrupt
- assert eq, a2, a3
- wsr a2, intenable
- waiti 0
- test_fail
-1:
- check_l1
-test_end
-
-test soft_user
- set_vector kernel, 1f
- set_vector user, 2f
- clear_interrupts
-
- movi a2, 0x80
- wsr a2, intset
- esync
- rsr a3, interrupt
- assert eq, a2, a3
- wsr a2, intenable
-
- rsr a2, ps
- movi a3, 0x20
- or a2, a2, a3
- wsr a2, ps
- waiti 0
-1:
- test_fail
-2:
- check_l1
-test_end
-
-test soft_priority
- set_vector kernel, 1f
- set_vector level3, 2f
- clear_interrupts
-
- movi a2, 0x880
- wsr a2, intenable
- rsil a3, 0
- esync
- wsr a2, intset
- esync
-1:
- test_fail
-2:
- rsr a2, ps
- movi a3, 0x1f /* EXCM | INTMASK */
- and a2, a2, a3
- movi a3, 0x13
- assert eq, a2, a3 /* EXCM and INTMASK are set
- for high-priority interrupt */
-test_end
-
-test eps_epc_rfi
- set_vector level3, 3f
- clear_interrupts
- reset_ps
-
- movi a2, 0x880
- wsr a2, intenable
- rsil a3, 0
- rsr a3, ps
- esync
- wsr a2, intset
-1:
- esync
-2:
- test_fail
-3:
- rsr a2, eps3
- assert eq, a2, a3
- rsr a2, epc3
- movi a3, 1b
- assert ge, a2, a3
- movi a3, 2b
- assert ge, a3, a2
- movi a2, 4f
- wsr a2, epc3
- movi a2, 0x40003
- wsr a2, eps3
- rfi 3
- test_fail
-4:
- rsr a2, ps
- movi a3, 0x40003
- assert eq, a2, a3
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_loop.S b/tests/xtensa/test_loop.S
deleted file mode 100644
index a5ea933913..0000000000
--- a/tests/xtensa/test_loop.S
+++ /dev/null
@@ -1,77 +0,0 @@
-.include "macros.inc"
-
-test_suite loop
-
-test loop
- movi a2, 0
- movi a3, 5
- loop a3, 1f
- addi a2, a2, 1
-1:
- assert eqi, a2, 5
-test_end
-
-test loop0
- movi a2, 0
- loop a2, 1f
- rsr a2, lcount
- assert eqi, a2, -1
- j 1f
-1:
-test_end
-
-test loop_jump
- movi a2, 0
- movi a3, 5
- loop a3, 1f
- addi a2, a2, 1
- j 1f
-1:
- assert eqi, a2, 1
-test_end
-
-test loop_branch
- movi a2, 0
- movi a3, 5
- loop a3, 1f
- addi a2, a2, 1
- beqi a2, 3, 1f
-1:
- assert eqi, a2, 3
-test_end
-
-test loop_manual
- movi a2, 0
- movi a3, 5
- movi a4, 1f
- movi a5, 2f
- wsr a3, lcount
- wsr a4, lbeg
- wsr a5, lend
- isync
- j 1f
-.align 4
-1:
- addi a2, a2, 1
-2:
- assert eqi, a2, 6
-test_end
-
-test loop_excm
- movi a2, 0
- movi a3, 5
- rsr a4, ps
- movi a5, 0x10
- or a4, a4, a5
- wsr a4, ps
- isync
- loop a3, 1f
- addi a2, a2, 1
-1:
- xor a4, a4, a5
- isync
- wsr a4, ps
- assert eqi, a2, 1
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_mac16.S b/tests/xtensa/test_mac16.S
deleted file mode 100644
index 5ddd160ffc..0000000000
--- a/tests/xtensa/test_mac16.S
+++ /dev/null
@@ -1,243 +0,0 @@
-.include "macros.inc"
-
-test_suite mac16
-
-#define ext16(v) (((v) & 0xffff) | (((v) & 0x8000) * 0x1ffffffe))
-#define mul16(a, b) ((ext16(a) * ext16(b)))
-
-.macro assert_acc_value v
- rsr a4, ACCLO
- movi a5, (\v) & 0xffffffff
- assert eq, a4, a5
- rsr a4, ACCHI
- movi a5, (\v) >> 32
- sext a5, a5, 7
- assert eq, a4, a5
-.endm
-
-.macro init_reg sr, reg, val
- .if (\sr)
- movi a4, \val
- wsr a4, \reg
- .else
- movi \reg, \val
- .endif
-.endm
-
-.macro test_mulxx mulop, comb, s, t, a, b
- init_reg \comb & 2, \s, \a
- init_reg \comb & 1, \t, \b
-
- \mulop\().ll \s, \t
- assert_acc_value mul16(\a, \b)
-
- \mulop\().lh \s, \t
- assert_acc_value mul16(\a, (\b >> 16))
-
- \mulop\().hl \s, \t
- assert_acc_value mul16((\a >> 16), \b)
-
- \mulop\().hh \s, \t
- assert_acc_value mul16((\a >> 16), (\b >> 16))
-.endm
-
-test mul_aa
- test_mulxx mul.aa, 0, a2, a3, 0xf7315a5a, 0xa5a5137f
-test_end
-
-test mul_ad
- test_mulxx mul.ad, 1, a2, m2, 0xf7315a5a, 0xa5a5137f
-test_end
-
-test mul_da
- test_mulxx mul.da, 2, m1, a3, 0xf7315a5a, 0xa5a5137f
-test_end
-
-test mul_dd
- test_mulxx mul.dd, 3, m0, m3, 0xf7315a5a, 0xa5a5137f
-test_end
-
-
-.macro init_acc iv
- movi a4, (\iv) & 0xffffffff
- wsr a4, ACCLO
- movi a4, (\iv) >> 32
- wsr a4, ACCHI
-.endm
-
-.macro test_mulxxx mulop, comb, s, t, a, b, iv, op
- init_reg \comb & 2, \s, \a
- init_reg \comb & 1, \t, \b
-
- init_acc \iv
- \mulop\().ll \s, \t
- assert_acc_value (\iv \op mul16(\a, \b))
-
- init_acc \iv
- \mulop\().lh \s, \t
- assert_acc_value (\iv \op mul16(\a, (\b >> 16)))
-
- init_acc \iv
- \mulop\().hl \s, \t
- assert_acc_value (\iv \op mul16((\a >> 16), \b))
-
- init_acc \iv
- \mulop\().hh \s, \t
- assert_acc_value (\iv \op mul16((\a >> 16), (\b >> 16)))
-.endm
-
-
-test mula_aa
- test_mulxxx mula.aa, 0, a2, a3, 0xf7315a5a, 0xa5a5137f, 0xfff73155aa, +
-test_end
-
-test mula_ad
- test_mulxxx mula.ad, 1, a2, m2, 0xf7315a5a, 0xa5a5137f, 0xfff73155aa, +
-test_end
-
-test mula_da
- test_mulxxx mula.da, 2, m1, a3, 0xf7315a5a, 0xa5a5137f, 0x0ff73155aa, +
-test_end
-
-test mula_dd
- test_mulxxx mula.dd, 3, m0, m3, 0xf7315a5a, 0xa5a5137f, 0x0ff73155aa, +
-test_end
-
-
-test muls_aa
- test_mulxxx muls.aa, 0, a2, a3, 0xf7315a5a, 0xa5a5137f, 0x0ff73155aa, -
-test_end
-
-test muls_ad
- test_mulxxx muls.ad, 1, a2, m2, 0xf7315a5a, 0xa5a5137f, 0x0ff73155aa, -
-test_end
-
-test muls_da
- test_mulxxx muls.da, 2, m1, a3, 0xf7315a5a, 0xa5a5137f, 0xfff73155aa, -
-test_end
-
-test muls_dd
- test_mulxxx muls.dd, 3, m0, m3, 0xf7315a5a, 0xa5a5137f, 0xfff73155aa, -
-test_end
-
-test ldinc
- movi a2, 1f - 4
- ldinc m0, a2
- movi a3, 1f
- assert eq, a2, a3
- rsr a3, m0
- movi a4, 0x55aa137f
- assert eq, a3, a4
- ldinc m1, a2
- movi a3, 1f + 4
- assert eq, a2, a3
- rsr a3, m1
- movi a4, 0x12345678
- assert eq, a3, a4
-
-.data
-1: .word 0x55aa137f, 0x12345678, 0x137fa5a5
-.text
-test_end
-
-test lddec
- movi a2, 1f
- lddec m2, a2
- movi a3, 1f - 4
- assert eq, a2, a3
- rsr a3, m2
- movi a4, 0x12345678
- assert eq, a3, a4
- lddec m3, a2
- movi a3, 1f - 8
- assert eq, a2, a3
- rsr a3, m3
- movi a4, 0x55aa137f
- assert eq, a3, a4
-.data
- .word 0x55aa137f, 0x12345678
-1:
-.text
-test_end
-
-
-.macro test_mulxxx_ld mulop, ldop, comb, w, x, s, t, a, b, iv, op
- init_reg \comb & 2, \s, \a
- init_reg \comb & 1, \t, \b
-
- init_acc \iv
- \mulop\().ll.\ldop \w, \x, \s, \t
- assert_acc_value (\iv \op mul16(\a, \b))
-
- init_acc \iv
- \mulop\().lh.\ldop \w, \x, \s, \t
- assert_acc_value (\iv \op mul16(\a, (\b >> 16)))
-
- init_acc \iv
- \mulop\().hl.\ldop \w, \x, \s, \t
- assert_acc_value (\iv \op mul16((\a >> 16), \b))
-
- init_acc \iv
- \mulop\().hh.\ldop \w, \x, \s, \t
- assert_acc_value (\iv \op mul16((\a >> 16), (\b >> 16)))
-.endm
-
-test mula_da_ldinc
- movi a2, 1f - 4
- test_mulxxx_ld mula.da, ldinc, 2, m1, a2, m1, a3, \
- 0xf7315a5a, 0xa5a5137f, 0x0ff73155aa, +
- movi a3, 1f + 12
- assert eq, a2, a3
- rsr a2, m1
- movi a3, 0x12345678
- assert eq, a2, a3
-.data
-1: .word 0xf7315a5a, 0xf7315a5a, 0xf7315a5a, 0x12345678
-.text
-test_end
-
-test mula_dd_ldinc
- movi a2, 1f - 4
- test_mulxxx_ld mula.dd, ldinc, 3, m2, a2, m1, m2, \
- 0xf7315a5a, 0xa5a5137f, 0x0ff73155aa, +
- movi a3, 1f + 12
- assert eq, a2, a3
- rsr a2, m2
- movi a3, 0x12345678
- assert eq, a2, a3
-.data
-1: .word 0xa5a5137f, 0xa5a5137f, 0xa5a5137f, 0x12345678
-.text
-test_end
-
-test mula_da_lddec
- movi a2, 1f
- test_mulxxx_ld mula.da, lddec, 2, m1, a2, m1, a3, \
- 0xf7315a5a, 0xa5a5137f, 0x0ff73155aa, +
- movi a3, 1f - 16
- assert eq, a2, a3
- rsr a2, m1
- movi a3, 0x12345678
- assert eq, a2, a3
-.data
- .word 0x12345678, 0xf7315a5a, 0xf7315a5a, 0xf7315a5a
-1:
-.text
-test_end
-
-test mula_dd_lddec
- movi a2, 1f
- test_mulxxx_ld mula.dd, lddec, 3, m2, a2, m1, m2, \
- 0xf7315a5a, 0xa5a5137f, 0x0ff73155aa, +
- movi a3, 1f - 16
- assert eq, a2, a3
- rsr a2, m2
- movi a3, 0x12345678
- assert eq, a2, a3
-.data
- .word 0x12345678, 0xa5a5137f, 0xa5a5137f, 0xa5a5137f
-1:
-.text
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_max.S b/tests/xtensa/test_max.S
deleted file mode 100644
index 2534c9d90b..0000000000
--- a/tests/xtensa/test_max.S
+++ /dev/null
@@ -1,81 +0,0 @@
-.include "macros.inc"
-
-test_suite max
-
-test max
- movi a2, 0xffffffff
- movi a3, 1
- movi a4, 1
- max a5, a2, a3
- assert eq, a5, a4
-
- movi a2, 1
- movi a3, 0xffffffff
- movi a4, 1
- max a5, a2, a3
- assert eq, a5, a4
-
- movi a2, 0xffffffff
- movi a3, 1
- movi a4, 1
- max a2, a2, a3
- assert eq, a2, a4
-
- movi a2, 0xffffffff
- movi a3, 1
- movi a4, 1
- max a3, a2, a3
- assert eq, a3, a4
-
- movi a2, 1
- movi a3, 0xffffffff
- movi a4, 1
- max a2, a2, a3
- assert eq, a2, a4
-
- movi a2, 1
- movi a3, 0xffffffff
- movi a4, 1
- max a3, a2, a3
- assert eq, a3, a4
-test_end
-
-test maxu
- movi a2, 0xffffffff
- movi a3, 1
- movi a4, 0xffffffff
- maxu a5, a2, a3
- assert eq, a5, a4
-
- movi a2, 1
- movi a3, 0xffffffff
- movi a4, 0xffffffff
- maxu a5, a2, a3
- assert eq, a5, a4
-
- movi a2, 0xffffffff
- movi a3, 1
- movi a4, 0xffffffff
- maxu a2, a2, a3
- assert eq, a2, a4
-
- movi a2, 0xffffffff
- movi a3, 1
- movi a4, 0xffffffff
- maxu a3, a2, a3
- assert eq, a3, a4
-
- movi a2, 1
- movi a3, 0xffffffff
- movi a4, 0xffffffff
- maxu a2, a2, a3
- assert eq, a2, a4
-
- movi a2, 1
- movi a3, 0xffffffff
- movi a4, 0xffffffff
- maxu a3, a2, a3
- assert eq, a3, a4
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_min.S b/tests/xtensa/test_min.S
deleted file mode 100644
index 6d9ddeb1ac..0000000000
--- a/tests/xtensa/test_min.S
+++ /dev/null
@@ -1,81 +0,0 @@
-.include "macros.inc"
-
-test_suite min
-
-test min
- movi a2, 0xffffffff
- movi a3, 1
- movi a4, 0xffffffff
- min a5, a2, a3
- assert eq, a5, a4
-
- movi a2, 1
- movi a3, 0xffffffff
- movi a4, 0xffffffff
- min a5, a2, a3
- assert eq, a5, a4
-
- movi a2, 0xffffffff
- movi a3, 1
- movi a4, 0xffffffff
- min a2, a2, a3
- assert eq, a2, a4
-
- movi a2, 0xffffffff
- movi a3, 1
- movi a4, 0xffffffff
- min a3, a2, a3
- assert eq, a3, a4
-
- movi a2, 1
- movi a3, 0xffffffff
- movi a4, 0xffffffff
- min a2, a2, a3
- assert eq, a2, a4
-
- movi a2, 1
- movi a3, 0xffffffff
- movi a4, 0xffffffff
- min a3, a2, a3
- assert eq, a3, a4
-test_end
-
-test minu
- movi a2, 0xffffffff
- movi a3, 1
- movi a4, 1
- minu a5, a2, a3
- assert eq, a5, a4
-
- movi a2, 1
- movi a3, 0xffffffff
- movi a4, 1
- minu a5, a2, a3
- assert eq, a5, a4
-
- movi a2, 0xffffffff
- movi a3, 1
- movi a4, 1
- minu a2, a2, a3
- assert eq, a2, a4
-
- movi a2, 0xffffffff
- movi a3, 1
- movi a4, 1
- minu a3, a2, a3
- assert eq, a3, a4
-
- movi a2, 1
- movi a3, 0xffffffff
- movi a4, 1
- minu a2, a2, a3
- assert eq, a2, a4
-
- movi a2, 1
- movi a3, 0xffffffff
- movi a4, 1
- minu a3, a2, a3
- assert eq, a3, a4
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_mmu.S b/tests/xtensa/test_mmu.S
deleted file mode 100644
index 52d5774212..0000000000
--- a/tests/xtensa/test_mmu.S
+++ /dev/null
@@ -1,318 +0,0 @@
-.include "macros.inc"
-
-test_suite mmu
-
-.purgem test
-
-.macro test name
- movi a2, 0x00000004
- idtlb a2
- movi a2, 0x00100004
- idtlb a2
- movi a2, 0x00200004
- idtlb a2
- movi a2, 0x00300004
- idtlb a2
- movi a2, 0x00000007
- idtlb a2
-.endm
-
-test tlb_group
- movi a2, 0x04000002 /* PPN */
- movi a3, 0x01200004 /* VPN */
- wdtlb a2, a3
- witlb a2, a3
- movi a3, 0x00200004
- rdtlb0 a1, a3
- ritlb0 a2, a3
- movi a3, 0x01000001
- assert eq, a1, a3
- assert eq, a2, a3
- movi a3, 0x00200004
- rdtlb1 a1, a3
- ritlb1 a2, a3
- movi a3, 0x04000002
- assert eq, a1, a3
- assert eq, a2, a3
- movi a3, 0x01234567
- pdtlb a1, a3
- pitlb a2, a3
- movi a3, 0x01234014
- assert eq, a1, a3
- movi a3, 0x0123400c
- assert eq, a2, a3
- movi a3, 0x00200004
- idtlb a3
- iitlb a3
- movi a3, 0x01234567
- pdtlb a1, a3
- pitlb a2, a3
- movi a3, 0x00000010
- and a1, a1, a3
- assert eqi, a1, 0
- movi a3, 0x00000008
- and a2, a2, a3
- assert eqi, a2, 0
-test_end
-
-test itlb_miss
- set_vector kernel, 1f
-
- movi a3, 0x00100000
- jx a3
- test_fail
-1:
- rsr a2, excvaddr
- assert eq, a2, a3
- rsr a2, exccause
- movi a3, 16
- assert eq, a2, a3
-test_end
-
-test dtlb_miss
- set_vector kernel, 1f
-
- movi a3, 0x00100000
- l8ui a2, a3, 0
- test_fail
-1:
- rsr a2, excvaddr
- assert eq, a2, a3
- rsr a2, exccause
- movi a3, 24
- assert eq, a2, a3
-test_end
-
-test itlb_multi_hit
- set_vector kernel, 1f
-
- movi a2, 0x04000002 /* PPN */
- movi a3, 0xf0000004 /* VPN */
- witlb a2, a3
- movi a3, 0xf0000000
- pitlb a2, a3
- test_fail
-1:
- rsr a2, exccause
- movi a3, 17
- assert eq, a2, a3
-test_end
-
-test dtlb_multi_hit
- set_vector kernel, 1f
-
- movi a2, 0x04000002 /* PPN */
- movi a3, 0x01200004 /* VPN */
- wdtlb a2, a3
- movi a3, 0x01200007 /* VPN */
- wdtlb a2, a3
- movi a3, 0x01200000
- pdtlb a2, a3
- test_fail
-1:
- rsr a2, exccause
- movi a3, 25
- assert eq, a2, a3
-test_end
-
-test inst_fetch_privilege
- set_vector kernel, 3f
-
- movi a2, 0x4004f
- wsr a2, ps
-1:
- isync
- nop
-2:
- test_fail
-3:
- movi a1, 1b
- rsr a2, excvaddr
- rsr a3, epc1
- assert ge, a2, a1
- assert ge, a3, a1
- movi a1, 2b
- assert lt, a2, a1
- assert lt, a3, a1
- rsr a2, exccause
- movi a3, 18
- assert eq, a2, a3
- rsr a2, ps
- movi a3, 0x4005f
- assert eq, a2, a3
-test_end
-
-test load_store_privilege
- set_vector kernel, 2f
-
- movi a3, 10f
- pitlb a3, a3
- ritlb1 a2, a3
- movi a1, 0x10
- or a2, a2, a1
- movi a1, 0x000ff000
- and a3, a3, a1
- movi a1, 4
- or a3, a3, a1
- witlb a2, a3
- movi a3, 10f
- movi a1, 0x000fffff
- and a1, a3, a1
-
- movi a2, 0x04000003 /* PPN */
- movi a3, 0x01200004 /* VPN */
- wdtlb a2, a3
- movi a3, 0x01200001
- movi a2, 0x4004f
- jx a1
-10:
- wsr a2, ps
- isync
-1:
- l8ui a2, a3, 0
- test_fail
-2:
- rsr a2, excvaddr
- assert eq, a2, a3
- rsr a2, epc1
- movi a3, 1b
- movi a1, 0x000fffff
- and a3, a3, a1
- assert eq, a2, a3
- rsr a2, exccause
- movi a3, 26
- assert eq, a2, a3
- rsr a2, ps
- movi a3, 0x4005f
- assert eq, a2, a3
-test_end
-
-test cring_load_store_privilege
- set_vector kernel, 0
- set_vector double, 2f
-
- movi a2, 0x04000003 /* PPN */
- movi a3, 0x01200004 /* VPN */
- wdtlb a2, a3
- movi a3, 0x01200004
- movi a2, 0x4005f /* ring 1 + excm => cring == 0 */
- wsr a2, ps
- isync
- l8ui a2, a3, 0 /* cring used */
-1:
- l32e a2, a3, -4 /* ring used */
- test_fail
-2:
- rsr a2, excvaddr
- addi a2, a2, 4
- assert eq, a2, a3
- rsr a2, depc
- movi a3, 1b
- assert eq, a2, a3
- rsr a2, exccause
- movi a3, 26
- assert eq, a2, a3
- rsr a2, ps
- movi a3, 0x4005f
- assert eq, a2, a3
-test_end
-
-test inst_fetch_prohibited
- set_vector kernel, 2f
-
- movi a3, 10f
- pitlb a3, a3
- ritlb1 a2, a3
- movi a1, 0xfffff000
- and a2, a2, a1
- movi a1, 0x4
- or a2, a2, a1
- movi a1, 0x000ff000
- and a3, a3, a1
- movi a1, 4
- or a3, a3, a1
- witlb a2, a3
- movi a3, 10f
- movi a1, 0x000fffff
- and a1, a3, a1
- jx a1
- .align 4
-10:
- nop
- test_fail
-2:
- rsr a2, excvaddr
- assert eq, a2, a1
- rsr a2, epc1
- assert eq, a2, a1
- rsr a2, exccause
- movi a3, 20
- assert eq, a2, a3
-test_end
-
-test load_prohibited
- set_vector kernel, 2f
-
- movi a2, 0x0400000c /* PPN */
- movi a3, 0x01200004 /* VPN */
- wdtlb a2, a3
- movi a3, 0x01200002
-1:
- l8ui a2, a3, 0
- test_fail
-2:
- rsr a2, excvaddr
- assert eq, a2, a3
- rsr a2, epc1
- movi a3, 1b
- assert eq, a2, a3
- rsr a2, exccause
- movi a3, 28
- assert eq, a2, a3
-test_end
-
-test store_prohibited
- set_vector kernel, 2f
-
- movi a2, 0x04000001 /* PPN */
- movi a3, 0x01200004 /* VPN */
- wdtlb a2, a3
- movi a3, 0x01200003
- l8ui a2, a3, 0
-1:
- s8i a2, a3, 0
- test_fail
-2:
- rsr a2, excvaddr
- assert eq, a2, a3
- rsr a2, epc1
- movi a3, 1b
- assert eq, a2, a3
- rsr a2, exccause
- movi a3, 29
- assert eq, a2, a3
-test_end
-
-test dtlb_autoload
- set_vector kernel, 0
-
- movi a2, 0xd4000000
- wsr a2, ptevaddr
- movi a3, 0x00001013
- s32i a3, a2, 4
- pdtlb a2, a3
- movi a1, 0x10
- and a1, a1, a2
- assert eqi, a1, 0
- l8ui a1, a3, 0
- pdtlb a2, a3
- movi a1, 0xfffff010
- and a1, a1, a2
- movi a3, 0x00001010
- assert eq, a1, a3
- movi a1, 0xf
- and a1, a1, a2
- assert lti, a1, 4
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_mul16.S b/tests/xtensa/test_mul16.S
deleted file mode 100644
index bf94376649..0000000000
--- a/tests/xtensa/test_mul16.S
+++ /dev/null
@@ -1,83 +0,0 @@
-.include "macros.inc"
-
-test_suite mul16
-
-test mul16u_pp
- movi a2, 0x137f5a5a
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0x06e180a6
- mul16u a5, a2, a4
- assert eq, a5, a6
- mul16u a2, a2, a4
- assert eq, a2, a6
- mul16u a3, a4, a3
- assert eq, a3, a6
-test_end
-
-test mul16u_np
- movi a2, 0x137fa5a5
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0x0c9d6bdb
- mul16u a5, a2, a4
- assert eq, a5, a6
- mul16u a2, a2, a4
- assert eq, a2, a6
- mul16u a3, a4, a3
- assert eq, a3, a6
-test_end
-
-test mul16u_nn
- movi a2, 0x137fa5a5
- mov a3, a2
- movi a4, 0xa5a5f731
- movi a6, 0x9ff1e795
- mul16u a5, a2, a4
- assert eq, a5, a6
- mul16u a2, a2, a4
- assert eq, a2, a6
- mul16u a3, a4, a3
- assert eq, a3, a6
-test_end
-
-test mul16s_pp
- movi a2, 0x137f5a5a
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0x06e180a6
- mul16s a5, a2, a4
- assert eq, a5, a6
- mul16s a2, a2, a4
- assert eq, a2, a6
- mul16s a3, a4, a3
- assert eq, a3, a6
-test_end
-
-test mul16s_np
- movi a2, 0x137fa5a5
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0xf91e6bdb
- mul16s a5, a2, a4
- assert eq, a5, a6
- mul16s a2, a2, a4
- assert eq, a2, a6
- mul16s a3, a4, a3
- assert eq, a3, a6
-test_end
-
-test mul16s_nn
- movi a2, 0x137fa5a5
- mov a3, a2
- movi a4, 0xa5a5f731
- movi a6, 0x031be795
- mul16s a5, a2, a4
- assert eq, a5, a6
- mul16s a2, a2, a4
- assert eq, a2, a6
- mul16s a3, a4, a3
- assert eq, a3, a6
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_mul32.S b/tests/xtensa/test_mul32.S
deleted file mode 100644
index fdaf57331b..0000000000
--- a/tests/xtensa/test_mul32.S
+++ /dev/null
@@ -1,20 +0,0 @@
-.include "macros.inc"
-
-test_suite mul32
-
-test mull
- movi a2, 0x137f5a5a
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0x5de480a6
- mull a5, a2, a4
- assert eq, a5, a6
- mull a2, a2, a4
- assert eq, a2, a6
- mull a3, a4, a3
- assert eq, a3, a6
-test_end
-
-/* unfortunately dc232b doesn't have muluh/mulsh*/
-
-test_suite_end
diff --git a/tests/xtensa/test_nsa.S b/tests/xtensa/test_nsa.S
deleted file mode 100644
index a5fe5debe4..0000000000
--- a/tests/xtensa/test_nsa.S
+++ /dev/null
@@ -1,59 +0,0 @@
-.include "macros.inc"
-
-test_suite nsa
-
-test nsa
- movi a2, 0
- movi a3, 31
- nsa a4, a2
- assert eq, a3, a4
-
- movi a2, 0xffffffff
- movi a3, 31
- nsa a4, a2
- assert eq, a3, a4
-
- movi a2, 1
- movi a3, 30
- nsa a2, a2
- assert eq, a3, a2
-
- movi a2, 0xfffffffe
- movi a3, 30
- nsa a2, a2
- assert eq, a3, a2
-
- movi a2, 0x5a5a5a5a
- movi a3, 0
- nsa a4, a2
- assert eq, a3, a4
-
- movi a2, 0xa5a5a5a5
- movi a3, 0
- nsa a4, a2
- assert eq, a3, a4
-test_end
-
-test nsau
- movi a2, 0
- movi a3, 32
- nsau a4, a2
- assert eq, a3, a4
-
- movi a2, 0xffffffff
- movi a3, 0
- nsau a4, a2
- assert eq, a3, a4
-
- movi a2, 1
- movi a3, 31
- nsau a2, a2
- assert eq, a3, a2
-
- movi a2, 0x5a5a5a5a
- movi a3, 1
- nsau a2, a2
- assert eq, a3, a2
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_pipeline.S b/tests/xtensa/test_pipeline.S
deleted file mode 100644
index 6be6085fc3..0000000000
--- a/tests/xtensa/test_pipeline.S
+++ /dev/null
@@ -1,157 +0,0 @@
-.include "macros.inc"
-
-.purgem test
-.macro test name
- movi a2, 1f
- movi a3, 99f
-0:
- ipf a2, 0
- ipf a2, 4
- ipf a2, 8
- ipf a2, 12
- addi a2, a2, 16
- blt a2, a3, 0b
- j 1f
- .align 4
-1:
-.endm
-
-test_suite pipeline
-
-test register_no_stall
- rsr a3, ccount
- add a5, a6, a6
- add a6, a5, a5
- rsr a4, ccount
- sub a3, a4, a3
- assert eqi, a3, 3
-test_end
-
-test register_stall
- l32i a5, a1, 0 /* data cache preload */
- nop
- rsr a3, ccount
- l32i a5, a1, 0
- add a6, a5, a5 /* M-to-E interlock */
- rsr a4, ccount
- sub a3, a4, a3
- assert eqi, a3, 4
-test_end
-
-test j0_stall
- rsr a3, ccount
- j 1f /* E + 2-cycle penalty */
-1:
- rsr a4, ccount /* E */
- sub a3, a4, a3
- assert eqi, a3, 4
-test_end
-
-test j1_stall
- rsr a3, ccount
- j 1f
- nop
-1:
- rsr a4, ccount
- sub a3, a4, a3
- assert eqi, a3, 4
-test_end
-
-test j5_stall
- rsr a3, ccount
- j 1f
- nop
- nop
- nop
- nop
- nop
-1:
- rsr a4, ccount
- sub a3, a4, a3
- assert eqi, a3, 4
-test_end
-
-test b_no_stall
- movi a5, 1
- rsr a3, ccount
- beqi a5, 2, 1f
- rsr a4, ccount
- sub a3, a4, a3
- assert eqi, a3, 2
-1:
-test_end
-
-test b1_stall
- movi a5, 1
- rsr a3, ccount
- beqi a5, 1, 1f
- nop
-1:
- rsr a4, ccount
- sub a3, a4, a3
- assert eqi, a3, 4
-test_end
-
-test b5_stall
- movi a5, 1
- rsr a3, ccount
- beqi a5, 1, 1f
- nop
- nop
- nop
- nop
- nop
-1:
- rsr a4, ccount
- sub a3, a4, a3
- assert eqi, a3, 4
-test_end
-
-/* PS *SYNC */
-
-test ps_dsync
- rsr a5, ps
- isync
- rsr a3, ccount
- wsr a5, ps
- dsync
- rsr a4, ccount
- sub a3, a4, a3
- assert eqi, a3, 5
-test_end
-
-test ps_esync
- rsr a5, ps
- isync
- rsr a3, ccount
- wsr a5, ps
- esync
- rsr a4, ccount
- sub a3, a4, a3
- assert eqi, a3, 5
-test_end
-
-test ps_rsync
- rsr a5, ps
- isync
- rsr a3, ccount
- wsr a5, ps
- rsync
- rsr a4, ccount
- sub a3, a4, a3
- assert eqi, a3, 5
-test_end
-
-test ps_isync
- rsr a5, ps
- isync
- rsr a3, ccount
- wsr a5, ps
- isync
- rsr a4, ccount
- sub a3, a4, a3
- movi a4, 9
- assert eq, a3, a4
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_quo.S b/tests/xtensa/test_quo.S
deleted file mode 100644
index 12debf1fe0..0000000000
--- a/tests/xtensa/test_quo.S
+++ /dev/null
@@ -1,147 +0,0 @@
-.include "macros.inc"
-
-test_suite quo
-
-test quou_pp
- movi a2, 0x5a5a137f
- mov a3, a2
- movi a4, 0x137f5a5a
- movi a6, 0x4
- quou a5, a2, a4
- assert eq, a5, a6
- quou a2, a2, a4
- assert eq, a2, a6
- quou a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test quou_np
- movi a2, 0xa5a5137f
- mov a3, a2
- movi a4, 0x137f5a5a
- movi a6, 0x8
- quou a5, a2, a4
- assert eq, a5, a6
- quou a2, a2, a4
- assert eq, a2, a6
- quou a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test quou_pn
- movi a2, 0x5a5a137f
- mov a3, a2
- movi a4, 0xf7315a5a
- movi a6, 0
- quou a5, a2, a4
- assert eq, a5, a6
- quou a2, a2, a4
- assert eq, a2, a6
- quou a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test quou_nn
- movi a2, 0xf7315a5a
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0x1
- quou a5, a2, a4
- assert eq, a5, a6
- quou a2, a2, a4
- assert eq, a2, a6
- quou a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test quou_exc
- set_vector kernel, 2f
- movi a2, 0xf7315a5a
- movi a4, 0x00000000
-1:
- quou a5, a2, a4
- test_fail
-2:
- rsr a2, exccause
- assert eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */
- rsr a2, epc1
- movi a3, 1b
- assert eq, a2, a3
-test_end
-
-test quos_pp
- movi a2, 0x5a5a137f
- mov a3, a2
- movi a4, 0x137f5a5a
- movi a6, 0x4
- quos a5, a2, a4
- assert eq, a5, a6
- quos a2, a2, a4
- assert eq, a2, a6
- quos a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test quos_np
- movi a2, 0xa5a5137f
- mov a3, a2
- movi a4, 0x137f5a5a
- movi a6, 0xfffffffc
- quos a5, a2, a4
- assert eq, a5, a6
- quos a2, a2, a4
- assert eq, a2, a6
- quos a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test quos_pn
- movi a2, 0x5a5a137f
- mov a3, a2
- movi a4, 0xf7315a5a
- movi a6, 0xfffffff6
- quos a5, a2, a4
- assert eq, a5, a6
- quos a2, a2, a4
- assert eq, a2, a6
- quos a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test quos_nn
- movi a2, 0xf7315a5a
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0
- quos a5, a2, a4
- assert eq, a5, a6
- quos a2, a2, a4
- assert eq, a2, a6
- quos a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test quos_over
- movi a2, 0x80000000
- movi a4, 0xffffffff
- movi a6, 0x80000000
- quos a5, a2, a4
- assert eq, a5, a6
-test_end
-
-test quos_exc
- set_vector kernel, 2f
- movi a2, 0xf7315a5a
- movi a4, 0x00000000
-1:
- quos a5, a2, a4
- test_fail
-2:
- rsr a2, exccause
- assert eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */
- rsr a2, epc1
- movi a3, 1b
- assert eq, a2, a3
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_rem.S b/tests/xtensa/test_rem.S
deleted file mode 100644
index bb0d5fe202..0000000000
--- a/tests/xtensa/test_rem.S
+++ /dev/null
@@ -1,147 +0,0 @@
-.include "macros.inc"
-
-test_suite rem
-
-test remu_pp
- movi a2, 0x5a5a137f
- mov a3, a2
- movi a4, 0x137f5a5a
- movi a6, 0x0c5caa17
- remu a5, a2, a4
- assert eq, a5, a6
- remu a2, a2, a4
- assert eq, a2, a6
- remu a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test remu_np
- movi a2, 0xa5a5137f
- mov a3, a2
- movi a4, 0x137f5a5a
- movi a6, 0x9aa40af
- remu a5, a2, a4
- assert eq, a5, a6
- remu a2, a2, a4
- assert eq, a2, a6
- remu a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test remu_pn
- movi a2, 0x5a5a137f
- mov a3, a2
- movi a4, 0xf7315a5a
- movi a6, 0x5a5a137f
- remu a5, a2, a4
- assert eq, a5, a6
- remu a2, a2, a4
- assert eq, a2, a6
- remu a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test remu_nn
- movi a2, 0xf7315a5a
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0x518c46db
- remu a5, a2, a4
- assert eq, a5, a6
- remu a2, a2, a4
- assert eq, a2, a6
- remu a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test remu_exc
- set_vector kernel, 2f
- movi a2, 0xf7315a5a
- movi a4, 0x00000000
-1:
- remu a5, a2, a4
- test_fail
-2:
- rsr a2, exccause
- assert eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */
- rsr a2, epc1
- movi a3, 1b
- assert eq, a2, a3
-test_end
-
-test rems_pp
- movi a2, 0x5a5a137f
- mov a3, a2
- movi a4, 0x137f5a5a
- movi a6, 0x0c5caa17
- rems a5, a2, a4
- assert eq, a5, a6
- rems a2, a2, a4
- assert eq, a2, a6
- rems a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test rems_np
- movi a2, 0xa5a5137f
- mov a3, a2
- movi a4, 0x137f5a5a
- movi a6, 0xf3a27ce7
- rems a5, a2, a4
- assert eq, a5, a6
- rems a2, a2, a4
- assert eq, a2, a6
- rems a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test rems_pn
- movi a2, 0x5a5a137f
- mov a3, a2
- movi a4, 0xf7315a5a
- movi a6, 0x02479b03
- rems a5, a2, a4
- assert eq, a5, a6
- rems a2, a2, a4
- assert eq, a2, a6
- rems a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test rems_nn
- movi a2, 0xf7315a5a
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0xf7315a5a
- rems a5, a2, a4
- assert eq, a5, a6
- rems a2, a2, a4
- assert eq, a2, a6
- rems a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test rems_over
- movi a2, 0x80000000
- movi a4, 0xffffffff
- movi a6, 0
- rems a5, a2, a4
- assert eq, a5, a6
-test_end
-
-test rems_exc
- set_vector kernel, 2f
- movi a2, 0xf7315a5a
- movi a4, 0x00000000
-1:
- rems a5, a2, a4
- test_fail
-2:
- rsr a2, exccause
- assert eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */
- rsr a2, epc1
- movi a3, 1b
- assert eq, a2, a3
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_rst0.S b/tests/xtensa/test_rst0.S
deleted file mode 100644
index 3eda565e8a..0000000000
--- a/tests/xtensa/test_rst0.S
+++ /dev/null
@@ -1,148 +0,0 @@
-.include "macros.inc"
-
-test_suite rst0
-
-test and
- movi a2, 0x137fa5a5
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0x01250125
- and a5, a2, a4
- assert eq, a5, a6
- and a2, a2, a4
- assert eq, a2, a6
- and a3, a4, a3
- assert eq, a3, a6
-test_end
-
-test or
- movi a2, 0x137fa5a5
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0xb7ffb7ff
- or a5, a2, a4
- assert eq, a5, a6
- or a2, a2, a4
- assert eq, a2, a6
- or a3, a4, a3
- assert eq, a3, a6
-test_end
-
-test xor
- movi a2, 0x137fa5a5
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0xb6dab6da
- xor a5, a2, a4
- assert eq, a5, a6
- xor a2, a2, a4
- assert eq, a2, a6
- xor a3, a4, a3
- assert eq, a3, a6
-test_end
-
-test add
- movi a2, 0x137fa5a5
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0xb924b924
- add a5, a2, a4
- assert eq, a5, a6
- add a2, a2, a4
- assert eq, a2, a6
- add a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test addx2
- movi a2, 0x137fa5a5
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0xcca45ec9
- addx2 a5, a2, a4
- assert eq, a5, a6
- addx2 a2, a2, a4
- assert eq, a2, a6
- addx2 a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test addx4
- movi a2, 0x137fa5a5
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0xf3a3aa13
- addx4 a5, a2, a4
- assert eq, a5, a6
- addx4 a2, a2, a4
- assert eq, a2, a6
- addx4 a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test addx8
- movi a2, 0x137fa5a5
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0x41a240a7
- addx8 a5, a2, a4
- assert eq, a5, a6
- addx8 a2, a2, a4
- assert eq, a2, a6
- addx8 a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test sub
- movi a2, 0x137fa5a5
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0x6dda9226
- sub a5, a2, a4
- assert eq, a5, a6
- sub a2, a2, a4
- assert eq, a2, a6
- sub a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test subx2
- movi a2, 0x137fa5a5
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0x815a37cb
- subx2 a5, a2, a4
- assert eq, a5, a6
- subx2 a2, a2, a4
- assert eq, a2, a6
- subx2 a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test subx4
- movi a2, 0x137fa5a5
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0xa8598315
- subx4 a5, a2, a4
- assert eq, a5, a6
- subx4 a2, a2, a4
- assert eq, a2, a6
- subx4 a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test subx8
- movi a2, 0x137fa5a5
- mov a3, a2
- movi a4, 0xa5a5137f
- movi a6, 0xf65819a9
- subx8 a5, a2, a4
- assert eq, a5, a6
- subx8 a2, a2, a4
- assert eq, a2, a6
- subx8 a4, a3, a4
- assert eq, a4, a6
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_sar.S b/tests/xtensa/test_sar.S
deleted file mode 100644
index 40c649ffb8..0000000000
--- a/tests/xtensa/test_sar.S
+++ /dev/null
@@ -1,111 +0,0 @@
-.include "macros.inc"
-
-test_suite sar
-
-.macro test_sar prefix, imm
- \prefix\()_set \imm
- \prefix\()_ver \imm
-.endm
-
-.macro tests_sar prefix
- test_sar \prefix, 0
- test_sar \prefix, 1
- test_sar \prefix, 2
- test_sar \prefix, 3
- test_sar \prefix, 0x1f
- test_sar \prefix, 0x20
- test_sar \prefix, 0x3f
- test_sar \prefix, 0x40
- test_sar \prefix, 0xfffffffe
-.endm
-
-.macro sar_set imm
- movi a2, \imm
- wsr a2, sar
-.endm
-
-.macro sar_ver imm
- rsr a3, sar
- movi a2, \imm & 0x3f
- assert eq, a2, a3
-.endm
-
-test sar
- tests_sar sar
-test_end
-
-.macro ssr_set imm
- movi a2, \imm
- ssr a2
-.endm
-
-.macro ssr_ver imm
- rsr a3, sar
- movi a2, \imm & 0x1f
- assert eq, a2, a3
-.endm
-
-test ssr
- tests_sar ssr
-test_end
-
-.macro ssl_set imm
- movi a2, \imm
- ssl a2
-.endm
-
-.macro ssl_ver imm
- rsr a3, sar
- movi a2, 32 - (\imm & 0x1f)
- assert eq, a2, a3
-.endm
-
-test ssl
- tests_sar ssl
-test_end
-
-.macro ssa8l_set imm
- movi a2, \imm
- ssa8l a2
-.endm
-
-.macro ssa8l_ver imm
- rsr a3, sar
- movi a2, (\imm & 0x3) << 3
- assert eq, a2, a3
-.endm
-
-test ssa8l
- tests_sar ssa8l
-test_end
-
-.macro ssa8b_set imm
- movi a2, \imm
- ssa8b a2
-.endm
-
-.macro ssa8b_ver imm
- rsr a3, sar
- movi a2, 32 - ((\imm & 0x3) << 3)
- assert eq, a2, a3
-.endm
-
-test ssa8b
- tests_sar ssa8b
-test_end
-
-.macro ssai_set imm
- ssai \imm & 0x1f
-.endm
-
-.macro ssai_ver imm
- rsr a3, sar
- movi a2, \imm & 0x1f
- assert eq, a2, a3
-.endm
-
-test ssai
- tests_sar ssai
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_sext.S b/tests/xtensa/test_sext.S
deleted file mode 100644
index 04dc6500c1..0000000000
--- a/tests/xtensa/test_sext.S
+++ /dev/null
@@ -1,69 +0,0 @@
-.include "macros.inc"
-
-test_suite sext
-
-test sext
- movi a2, 0xffffff5a
- movi a3, 0x0000005a
- sext a4, a2, 7
- assert eq, a3, a4
-
- movi a2, 0x000000a5
- movi a3, 0xffffffa5
- sext a4, a2, 7
- assert eq, a3, a4
-
- movi a2, 0xfffffaa5
- movi a3, 0x000000a5
- sext a4, a2, 8
- assert eq, a3, a4
-
- movi a2, 0x0000055a
- movi a3, 0xffffff5a
- sext a4, a2, 8
- assert eq, a3, a4
-
- movi a2, 0xffff5a5a
- movi a3, 0x00005a5a
- sext a4, a2, 15
- assert eq, a3, a4
-
- movi a2, 0x0000a5a5
- movi a3, 0xffffa5a5
- sext a4, a2, 15
- assert eq, a3, a4
-
- movi a2, 0x00055a5a
- movi a3, 0xffff5a5a
- sext a4, a2, 16
- assert eq, a3, a4
-
- movi a2, 0x000aa5a5
- movi a3, 0x0000a5a5
- sext a4, a2, 16
- assert eq, a3, a4
-
- movi a2, 0x005a5a5a
- movi a3, 0xffda5a5a
- sext a4, a2, 22
- assert eq, a3, a4
-
- movi a2, 0xffa5a5a5
- movi a3, 0x0025a5a5
- sext a4, a2, 22
- assert eq, a3, a4
-test_end
-
-test sext_same_rs
- movi a2, 0xffffff5a
- movi a3, 0x0000005a
- sext a2, a2, 7
- assert eq, a3, a2
-
- movi a2, 0x000000a5
- movi a3, 0xffffffa5
- sext a2, a2, 7
- assert eq, a3, a2
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_shift.S b/tests/xtensa/test_shift.S
deleted file mode 100644
index a8e43645b7..0000000000
--- a/tests/xtensa/test_shift.S
+++ /dev/null
@@ -1,206 +0,0 @@
-.include "macros.inc"
-
-test_suite shift
-
-.macro test_shift prefix, dst, src, v, imm
- \prefix\()_set \dst, \src, \v, \imm
- \prefix\()_ver \dst, \v, \imm
-.endm
-
-.macro test_shift_sd prefix, v, imm
- test_shift \prefix, a3, a2, \v, \imm
- test_shift \prefix, a2, a2, \v, \imm
-.endm
-
-.macro tests_imm_shift prefix, v
- test_shift_sd \prefix, \v, 1
- test_shift_sd \prefix, \v, 2
- test_shift_sd \prefix, \v, 7
- test_shift_sd \prefix, \v, 8
- test_shift_sd \prefix, \v, 15
- test_shift_sd \prefix, \v, 16
- test_shift_sd \prefix, \v, 31
-.endm
-
-.macro tests_shift prefix, v
- test_shift_sd \prefix, \v, 0
- tests_imm_shift \prefix, \v
- test_shift_sd \prefix, \v, 32
-.endm
-
-
-.macro slli_set dst, src, v, imm
- movi \src, \v
- slli \dst, \src, \imm
-.endm
-
-.macro slli_ver dst, v, imm
- mov a2, \dst
- movi a3, ((\v) << (\imm)) & 0xffffffff
- assert eq, a2, a3
-.endm
-
-test slli
- tests_imm_shift slli, 0xa3c51249
-test_end
-
-
-.macro srai_set dst, src, v, imm
- movi \src, \v
- srai \dst, \src, \imm
-.endm
-
-.macro srai_ver dst, v, imm
- mov a2, \dst
- .if (\imm)
- movi a3, (((\v) >> (\imm)) & 0xffffffff) | \
- ~((((\v) & 0x80000000) >> ((\imm) - 1)) - 1)
- .else
- movi a3, \v
- .endif
- assert eq, a2, a3
-.endm
-
-test srai
- tests_imm_shift srai, 0x49a3c512
- tests_imm_shift srai, 0xa3c51249
-test_end
-
-
-.macro srli_set dst, src, v, imm
- movi \src, \v
- srli \dst, \src, \imm
-.endm
-
-.macro srli_ver dst, v, imm
- mov a2, \dst
- movi a3, (((\v) >> (\imm)) & 0xffffffff)
- assert eq, a2, a3
-.endm
-
-test srli
- tests_imm_shift srli, 0x49a3c512
- tests_imm_shift srli, 0xa3c51249
-test_end
-
-
-.macro sll_set dst, src, v, imm
- movi a2, \imm
- ssl a2
- movi \src, \v
- sll \dst, \src
-.endm
-
-.macro sll_sar_set dst, src, v, imm
- movi a2, 32 - \imm
- wsr a2, sar
- movi \src, \v
- sll \dst, \src
-.endm
-
-.macro sll_ver dst, v, imm
- slli_ver \dst, \v, (\imm) & 0x1f
-.endm
-
-.macro sll_sar_ver dst, v, imm
- slli_ver \dst, \v, \imm
-.endm
-
-test sll
- tests_shift sll, 0xa3c51249
- tests_shift sll_sar, 0xa3c51249
-test_end
-
-
-.macro srl_set dst, src, v, imm
- movi a2, \imm
- ssr a2
- movi \src, \v
- srl \dst, \src
-.endm
-
-.macro srl_sar_set dst, src, v, imm
- movi a2, \imm
- wsr a2, sar
- movi \src, \v
- srl \dst, \src
-.endm
-
-.macro srl_ver dst, v, imm
- srli_ver \dst, \v, (\imm) & 0x1f
-.endm
-
-.macro srl_sar_ver dst, v, imm
- srli_ver \dst, \v, \imm
-.endm
-
-test srl
- tests_shift srl, 0xa3c51249
- tests_shift srl_sar, 0xa3c51249
- tests_shift srl, 0x49a3c512
- tests_shift srl_sar, 0x49a3c512
-test_end
-
-
-.macro sra_set dst, src, v, imm
- movi a2, \imm
- ssr a2
- movi \src, \v
- sra \dst, \src
-.endm
-
-.macro sra_sar_set dst, src, v, imm
- movi a2, \imm
- wsr a2, sar
- movi \src, \v
- sra \dst, \src
-.endm
-
-.macro sra_ver dst, v, imm
- srai_ver \dst, \v, (\imm) & 0x1f
-.endm
-
-.macro sra_sar_ver dst, v, imm
- srai_ver \dst, \v, \imm
-.endm
-
-test sra
- tests_shift sra, 0xa3c51249
- tests_shift sra_sar, 0xa3c51249
- tests_shift sra, 0x49a3c512
- tests_shift sra_sar, 0x49a3c512
-test_end
-
-
-.macro src_set dst, src, v, imm
- movi a2, \imm
- ssr a2
- movi \src, (\v) & 0xffffffff
- movi a4, (\v) >> 32
- src \dst, a4, \src
-.endm
-
-.macro src_sar_set dst, src, v, imm
- movi a2, \imm
- wsr a2, sar
- movi \src, (\v) & 0xffffffff
- movi a4, (\v) >> 32
- src \dst, a4, \src
-.endm
-
-.macro src_ver dst, v, imm
- src_sar_ver \dst, \v, (\imm) & 0x1f
-.endm
-
-.macro src_sar_ver dst, v, imm
- mov a2, \dst
- movi a3, ((\v) >> (\imm)) & 0xffffffff
- assert eq, a2, a3
-.endm
-
-test src
- tests_shift src, 0xa3c51249215c3a94
- tests_shift src_sar, 0xa3c51249215c3a94
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_timer.S b/tests/xtensa/test_timer.S
deleted file mode 100644
index 1041cc6658..0000000000
--- a/tests/xtensa/test_timer.S
+++ /dev/null
@@ -1,178 +0,0 @@
-.include "macros.inc"
-
-test_suite timer
-
-test ccount
- rsr a3, ccount
- rsr a4, ccount
- sub a3, a4, a3
- assert eqi, a3, 1
-test_end
-
-test ccompare
- movi a2, 0
- wsr a2, intenable
- rsr a2, interrupt
- wsr a2, intclear
- movi a2, 0
- wsr a2, ccompare1
- wsr a2, ccompare2
-
- movi a3, 20
- rsr a2, ccount
- addi a2, a2, 20
- wsr a2, ccompare0
- rsr a2, interrupt
- assert eqi, a2, 0
- loop a3, 1f
- rsr a3, interrupt
- bnez a3, 2f
-1:
- test_fail
-2:
-test_end
-
-test ccompare0_interrupt
- set_vector kernel, 2f
- movi a2, 0
- wsr a2, intenable
- rsr a2, interrupt
- wsr a2, intclear
- movi a2, 0
- wsr a2, ccompare1
- wsr a2, ccompare2
-
- movi a3, 20
- rsr a2, ccount
- addi a2, a2, 20
- wsr a2, ccompare0
- rsync
- rsr a2, interrupt
- assert eqi, a2, 0
-
- movi a2, 0x40
- wsr a2, intenable
- rsil a2, 0
- loop a3, 1f
- nop
-1:
- test_fail
-2:
- rsr a2, exccause
- assert eqi, a2, 4 /* LEVEL1_INTERRUPT_CAUSE */
-test_end
-
-test ccompare1_interrupt
- set_vector level3, 2f
- movi a2, 0
- wsr a2, intenable
- rsr a2, interrupt
- wsr a2, intclear
- movi a2, 0
- wsr a2, ccompare0
- wsr a2, ccompare2
-
- movi a3, 20
- rsr a2, ccount
- addi a2, a2, 20
- wsr a2, ccompare1
- rsync
- rsr a2, interrupt
- assert eqi, a2, 0
- movi a2, 0x400
- wsr a2, intenable
- rsil a2, 2
- loop a3, 1f
- nop
-1:
- test_fail
-2:
-test_end
-
-test ccompare2_interrupt
- set_vector level5, 2f
- movi a2, 0
- wsr a2, intenable
- rsr a2, interrupt
- wsr a2, intclear
- movi a2, 0
- wsr a2, ccompare0
- wsr a2, ccompare1
-
- movi a3, 20
- rsr a2, ccount
- addi a2, a2, 20
- wsr a2, ccompare2
- rsync
- rsr a2, interrupt
- assert eqi, a2, 0
- movi a2, 0x2000
- wsr a2, intenable
- rsil a2, 4
- loop a3, 1f
- nop
-1:
- test_fail
-2:
-test_end
-
-test ccompare_interrupt_masked
- set_vector kernel, 2f
- movi a2, 0
- wsr a2, intenable
- rsr a2, interrupt
- wsr a2, intclear
- movi a2, 0
- wsr a2, ccompare2
-
- movi a3, 40
- rsr a2, ccount
- addi a2, a2, 20
- wsr a2, ccompare1
- addi a2, a2, 20
- wsr a2, ccompare0
- rsync
- rsr a2, interrupt
- assert eqi, a2, 0
-
- movi a2, 0x40
- wsr a2, intenable
- rsil a2, 0
- loop a3, 1f
- nop
-1:
- test_fail
-2:
- rsr a2, exccause
- assert eqi, a2, 4 /* LEVEL1_INTERRUPT_CAUSE */
-test_end
-
-test ccompare_interrupt_masked_waiti
- set_vector kernel, 2f
- movi a2, 0
- wsr a2, intenable
- rsr a2, interrupt
- wsr a2, intclear
- movi a2, 0
- wsr a2, ccompare2
-
- movi a3, 40
- rsr a2, ccount
- addi a2, a2, 20
- wsr a2, ccompare1
- addi a2, a2, 20
- wsr a2, ccompare0
- rsync
- rsr a2, interrupt
- assert eqi, a2, 0
-
- movi a2, 0x40
- wsr a2, intenable
- waiti 0
- test_fail
-2:
- rsr a2, exccause
- assert eqi, a2, 4 /* LEVEL1_INTERRUPT_CAUSE */
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/test_windowed.S b/tests/xtensa/test_windowed.S
deleted file mode 100644
index cb2d39e1fd..0000000000
--- a/tests/xtensa/test_windowed.S
+++ /dev/null
@@ -1,302 +0,0 @@
-.include "macros.inc"
-
-test_suite windowed
-
-.altmacro
-
-.macro reset_window start
- movi a2, 0xff
- wsr a2, windowstart
- rsync
- movi a2, 0
- wsr a2, windowbase
- rsync
- movi a2, \start
- wsr a2, windowstart
- rsync
-.endm
-
-.macro overflow_test shift, window, probe_ok, probe_ex
- set_vector window_overflow_4, 0
- set_vector window_overflow_8, 0
- set_vector window_overflow_12, 0
-
- movi a2, 1 | (((1 << ((\window) / 4)) | 1) << ((\shift) / 4))
- wsr a2, windowstart
- reset_ps
-
- mov a2, a\probe_ok
- set_vector window_overflow_\window, 10f
-1:
- mov a2, a\probe_ex
- test_fail
-10:
- rsr a2, epc1
- movi a3, 1b
- assert eq, a2, a3
- movi a2, 2f
- wsr a2, epc1
-
- rsr a2, windowbase
- movi a3, (\shift) / 4
- assert eq, a2, a3
- rsr a2, ps
- movi a3, 0x4001f
- assert eq, a2, a3
- rfwo
- test_fail
-2:
- rsr a2, windowbase
- assert eqi, a2, 0
- rsr a2, windowstart
- movi a3, 1 | ((1 << ((\window) / 4)) << ((\shift) / 4))
- assert eq, a2, a3
- rsr a2, ps
- movi a3, 0x4000f
- assert eq, a2, a3
-.endm
-
-.macro overflow_tests shift, window, probe
- .if \probe < 15
- overflow_test \shift, \window, %((\shift) - 1), \probe
- overflow_tests \shift, \window, %((\probe) + 1)
- .endif
-.endm
-
-.macro all_overflow_tests
- .irp shift, 4, 8, 12
- .irp window, 4, 8, 12
- overflow_tests \shift, \window, \shift
- .endr
- .endr
-.endm
-
-test overflow
- all_overflow_tests
-test_end
-
-
-.macro underflow_test window
- set_vector window_underflow_4, 0
- set_vector window_underflow_8, 0
- set_vector window_underflow_12, 0
-
- set_vector window_underflow_\window, 10f
-
- reset_window 1
- reset_ps
-
- ssai 2
- movi a2, 2f
- slli a2, a2, 2
- movi a3, (\window) / 4
- src a0, a3, a2
-1:
- retw
- test_fail
-10:
- rsr a2, epc1
- movi a3, 1b
- assert eq, a2, a3
- movi a2, 2f
- wsr a2, epc1
-
- rsr a2, ps
- movi a3, 0x4001f
- assert eq, a2, a3
- rsr a2, windowbase
- assert eqi, a2, 8 - ((\window) / 4)
- rsr a2, windowstart
- assert eqi, a2, 1
- rfwu
-2:
- rsr a2, ps
- movi a3, 0x4000f
- assert eq, a2, a3
- rsr a2, windowbase
- assert eqi, a2, 0
- rsr a2, windowstart
- assert bsi, a2, 0
- assert bsi, a2, 8 - ((\window) / 4)
-.endm
-
-test underflow
- set_vector window_overflow_4, 0
- set_vector window_overflow_8, 0
- set_vector window_overflow_12, 0
-
- underflow_test 4
- underflow_test 8
- underflow_test 12
-test_end
-
-
-.macro retw_test window
- reset_window %(1 | (1 << (8 - (\window) / 4)))
- reset_ps
-
- ssai 2
- movi a2, 1f
- slli a2, a2, 2
- movi a3, (\window) / 4
- src a0, a3, a2
- retw
- test_fail
-1:
- rsr a2, ps
- movi a3, 0x4000f
- assert eq, a2, a3
- rsr a2, windowbase
- assert eqi, a2, 8 - ((\window) / 4)
- rsr a2, windowstart
- assert bci, a2, 0
- assert bsi, a2, 8 - ((\window) / 4)
-.endm
-
-test retw
- set_vector window_underflow_4, 0
- set_vector window_underflow_8, 0
- set_vector window_underflow_12, 0
-
- retw_test 4
- retw_test 8
- retw_test 12
-test_end
-
-test movsp
- set_vector kernel, 2f
-
- reset_window 1
- reset_ps
-1:
- movsp a2, a3
- test_fail
-2:
- rsr a2, exccause
- assert eqi, a2, 5
- rsr a2, epc1
- movi a3, 1b
- assert eq, a2, a3
-
- set_vector kernel, 0
-
- reset_window 0x81
- reset_ps
-
- movsp a2, a3
-test_end
-
-test rotw
- reset_window 0x4b
- reset_ps
-
- movi a3, 0x10
-
- rotw 1
- rsr a2, windowbase
- assert eqi, a2, 1
- movi a3, 0x11
- movi a7, 0x12
-
- rotw 2
- rsr a2, windowbase
- assert eqi, a2, 3
- movi a3, 0x13
- movi a7, 0x14
- movi a11, 0x15
-
- rotw 3
- rsr a2, windowbase
- assert eqi, a2, 6
- movi a3, 0x16
- movi a7, 0x17
-
- movi a2, 0x44
- wsr a2, windowstart
- rsync
-
- movi a2, 0x10
- assert eq, a2, a11
- movi a11, 0x18
- movi a2, 0x11
- assert eq, a2, a15
- movi a15, 0x19
-
- rotw 4
- movi a2, 0x12
- assert eq, a2, a3
- movi a2, 0x13
- assert eq, a2, a7
- movi a2, 0x14
- assert eq, a2, a11
- movi a2, 0x15
- assert eq, a2, a15
-
- movi a2, 0x5
- wsr a2, windowstart
- rsync
-
- rotw -2
- movi a2, 0x18
- assert eq, a2, a3
- movi a2, 0x19
- assert eq, a2, a7
-test_end
-
-.macro callw_test window
- call\window 2f
-1:
- test_fail
- .align 4
-2:
- rsr a2, windowbase
- assert eqi, a2, 0
- rsr a2, ps
- movi a3, 0x4000f | ((\window) << 14)
- assert eq, a2, a3
- movi a2, 1b
- slli a2, a2, 2
- ssai 2
- movi a3, (\window) / 4
- src a2, a3, a2
- assert eq, a2, a\window
-.endm
-
-test callw
- reset_window 0x1
- reset_ps
-
- callw_test 4
- callw_test 8
- callw_test 12
-test_end
-
-
-.macro entry_test window
- reset_window 0x1
- reset_ps
- movi a2, 0x4000f | ((\window) << 14)
- wsr a2, ps
- isync
- movi a3, 0x12345678
- j 1f
- .align 4
-1:
- entry a3, 0x5678
- movi a2, 0x12340000
- assert eq, a2, a3
- rsr a2, windowbase
- assert eqi, a2, (\window) / 4
- rsr a2, windowstart
- movi a3, 1 | (1 << ((\window) / 4))
- assert eq, a2, a3
- rotw -(\window) / 4
-.endm
-
-test entry
- entry_test 4
- entry_test 8
- entry_test 12
-test_end
-
-test_suite_end
diff --git a/tests/xtensa/vectors.S b/tests/xtensa/vectors.S
deleted file mode 100644
index 265a181239..0000000000
--- a/tests/xtensa/vectors.S
+++ /dev/null
@@ -1,39 +0,0 @@
-.macro vector name
-
-.section .vector.\name
- j 1f
-.section .vector.\name\().text
-1:
- wsr a2, excsave1
- movi a2, handler_\name
- l32i a2, a2, 0
- beqz a2, 1f
- jx a2
-1:
- movi a3, 1b
- movi a2, 1
- simcall
-
-.align 4
-.global handler_\name
-handler_\name\(): .word 0
-
-.endm
-
-vector window_overflow_4
-vector window_overflow_8
-vector window_overflow_12
-vector window_underflow_4
-vector window_underflow_8
-vector window_underflow_12
-
-vector level2
-vector level3
-vector level4
-vector level5
-vector level6
-vector level7
-
-vector kernel
-vector user
-vector double