Statistics
| Branch: | Revision:

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

History | View | Annotate | Download (1.2 kB)

1
#include "core-isa.h"
2

    
3
.macro test_suite name
4
.data
5
status: .word result
6
result: .space 256
7
.text
8
.global main
9
.align 4
10
main:
11
.endm
12

    
13
.macro reset_ps
14
    movi    a2, 0x4000f
15
    wsr     a2, ps
16
    isync
17
.endm
18

    
19
.macro test_suite_end
20
    reset_ps
21
    movi    a0, status
22
    l32i    a2, a0, 0
23
    movi    a0, result
24
    sub     a2, a2, a0
25
    movi    a3, 0
26
    loopnez a2, 1f
27
    l8ui    a2, a0, 0
28
    or      a3, a3, a2
29
    addi    a0, a0, 1
30
1:
31
    exit
32
.endm
33

    
34
.macro print text
35
.data
36
97: .ascii "\text\n"
37
98:
38
    .align 4
39
.text
40
    movi    a2, 4
41
    movi    a3, 2
42
    movi    a4, 97b
43
    movi    a5, 98b
44
    sub     a5, a5, a4
45
    simcall
46
.endm
47

    
48
.macro test_init
49
.endm
50

    
51
.macro test name
52
    //print test_\name
53
    test_init
54
test_\name:
55
.global test_\name
56
.endm
57

    
58
.macro test_end
59
99:
60
    reset_ps
61
    movi    a2, status
62
    l32i    a3, a2, 0
63
    addi    a3, a3, 1
64
    s32i    a3, a2, 0
65
.endm
66

    
67
.macro exit
68
    movi    a2, 1
69
    simcall
70
.endm
71

    
72
.macro test_fail
73
    movi    a2, status
74
    l32i    a2, a2, 0
75
    movi    a3, 1
76
    s8i     a3, a2, 0
77
    j       99f
78
.endm
79

    
80
.macro assert cond, arg1, arg2
81
    b\cond  \arg1, \arg2, 90f
82
    test_fail
83
90:
84
    nop
85
.endm
86

    
87
.macro set_vector vector, addr
88
    movi    a2, handler_\vector
89
    movi    a3, \addr
90
    s32i    a3, a2, 0
91
.endm