diff options
Diffstat (limited to 'qemu/tests/tcg/xtensa/test_interrupt.S')
-rw-r--r-- | qemu/tests/tcg/xtensa/test_interrupt.S | 194 |
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 |