summaryrefslogtreecommitdiffstats
path: root/qemu/tests/tcg/xtensa/test_interrupt.S
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/tests/tcg/xtensa/test_interrupt.S')
-rw-r--r--qemu/tests/tcg/xtensa/test_interrupt.S194
1 files changed, 0 insertions, 194 deletions
diff --git a/qemu/tests/tcg/xtensa/test_interrupt.S b/qemu/tests/tcg/xtensa/test_interrupt.S
deleted file mode 100644
index 334ddab28..000000000
--- a/qemu/tests/tcg/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