]> git.proxmox.com Git - mirror_qemu.git/blob - tests/tcg/xtensa/macros.inc
tests: mv tests/* -> tests/tcg
[mirror_qemu.git] / tests / tcg / xtensa / macros.inc
1 .macro test_suite name
2 .data
3 status: .word result
4 result: .space 20
5 .text
6 .global main
7 .align 4
8 main:
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
28 1:
29 exit
30 .endm
31
32 .macro test name
33 .endm
34
35 .macro test_end
36 99:
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
60 90:
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