Statistics
| Branch: | Revision:

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