root / tests / xtensa / macros.inc @ 7d890b40
History | View | Annotate | Download (968 Bytes)
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 |