xref: /openbmc/qemu/tests/tcg/xtensa/macros.inc (revision 1529ae1b)
1.macro test_suite name
2.data
3status: .word result
4result: .space 20
5.text
6.global main
7.align 4
8main:
9.endm
10
11.macro reset_ps
12    movi    a2, 0x4000f
13    wsr     a2, ps
14    isync
15.endm
16
17.macro test_suite_end
18    reset_ps
19    movi    a0, status
20    l32i    a2, a0, 0
21    movi    a0, result
22    sub     a2, a2, a0
23    movi    a3, 0
24    loopnez a2, 1f
25    l8ui    a2, a0, 0
26    or      a3, a3, a2
27    addi    a0, a0, 1
281:
29    exit
30.endm
31
32.macro test name
33.endm
34
35.macro test_end
3699:
37    reset_ps
38    movi    a2, status
39    l32i    a3, a2, 0
40    addi    a3, a3, 1
41    s32i    a3, a2, 0
42.endm
43
44.macro exit
45    movi    a2, 1
46    simcall
47.endm
48
49.macro test_fail
50    movi    a2, status
51    l32i    a2, a2, 0
52    movi    a3, 1
53    s8i     a3, a2, 0
54    j       99f
55.endm
56
57.macro assert cond, arg1, arg2
58    b\cond  \arg1, \arg2, 90f
59    test_fail
6090:
61    nop
62.endm
63
64.macro set_vector vector, addr
65    movi    a2, handler_\vector
66    movi    a3, \addr
67    s32i    a3, a2, 0
68.endm
69