Statistics
| Branch: | Revision:

root / tests / tcg / xtensa / macros.inc @ c09015dd

History | View | Annotate | Download (968 Bytes)

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