]> git.proxmox.com Git - mirror_qemu.git/blob - tests/tcg/xtensa/macros.inc
Merge remote-tracking branch 'aneesh/for-upstream' into staging
[mirror_qemu.git] / tests / tcg / xtensa / macros.inc
1 .macro test_suite name
2 .data
3 status: .word result
4 result: .space 256
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 print text
33 .data
34 97: .ascii "\text\n"
35 98:
36 .align 4
37 .text
38 movi a2, 4
39 movi a3, 2
40 movi a4, 97b
41 movi a5, 98b
42 sub a5, a5, a4
43 simcall
44 .endm
45
46 .macro test name
47 //print test_\name
48 test_\name:
49 .global test_\name
50 .endm
51
52 .macro test_end
53 99:
54 reset_ps
55 movi a2, status
56 l32i a3, a2, 0
57 addi a3, a3, 1
58 s32i a3, a2, 0
59 .endm
60
61 .macro exit
62 movi a2, 1
63 simcall
64 .endm
65
66 .macro test_fail
67 movi a2, status
68 l32i a2, a2, 0
69 movi a3, 1
70 s8i a3, a2, 0
71 j 99f
72 .endm
73
74 .macro assert cond, arg1, arg2
75 b\cond \arg1, \arg2, 90f
76 test_fail
77 90:
78 nop
79 .endm
80
81 .macro set_vector vector, addr
82 movi a2, handler_\vector
83 movi a3, \addr
84 s32i a3, a2, 0
85 .endm