Statistics
| Branch: | Revision:

root / tests / tcg / xtensa / test_pipeline.S @ c09015dd

History | View | Annotate | Download (2.4 kB)

1 7d890b40 Max Filippov
.include "macros.inc"
2 7d890b40 Max Filippov
3 7d890b40 Max Filippov
.purgem test
4 7d890b40 Max Filippov
.macro test name
5 7d890b40 Max Filippov
    movi    a2, 1f
6 7d890b40 Max Filippov
    movi    a3, 99f
7 7d890b40 Max Filippov
0:
8 7d890b40 Max Filippov
    ipf     a2, 0
9 7d890b40 Max Filippov
    ipf     a2, 4
10 7d890b40 Max Filippov
    ipf     a2, 8
11 7d890b40 Max Filippov
    ipf     a2, 12
12 7d890b40 Max Filippov
    addi    a2, a2, 16
13 7d890b40 Max Filippov
    blt     a2, a3, 0b
14 7d890b40 Max Filippov
    j       1f
15 7d890b40 Max Filippov
    .align 4
16 7d890b40 Max Filippov
1:
17 7d890b40 Max Filippov
.endm
18 7d890b40 Max Filippov
19 7d890b40 Max Filippov
test_suite pipeline
20 7d890b40 Max Filippov
21 7d890b40 Max Filippov
test register_no_stall
22 7d890b40 Max Filippov
    rsr     a3, ccount
23 7d890b40 Max Filippov
    add     a5, a6, a6
24 7d890b40 Max Filippov
    add     a6, a5, a5
25 7d890b40 Max Filippov
    rsr     a4, ccount
26 7d890b40 Max Filippov
    sub     a3, a4, a3
27 7d890b40 Max Filippov
    assert  eqi, a3, 3
28 7d890b40 Max Filippov
test_end
29 7d890b40 Max Filippov
30 7d890b40 Max Filippov
test register_stall
31 7d890b40 Max Filippov
    l32i    a5, a1, 0   /* data cache preload */
32 7d890b40 Max Filippov
    nop
33 7d890b40 Max Filippov
    rsr     a3, ccount
34 7d890b40 Max Filippov
    l32i    a5, a1, 0
35 7d890b40 Max Filippov
    add     a6, a5, a5  /* M-to-E interlock */
36 7d890b40 Max Filippov
    rsr     a4, ccount
37 7d890b40 Max Filippov
    sub     a3, a4, a3
38 7d890b40 Max Filippov
    assert  eqi, a3, 4
39 7d890b40 Max Filippov
test_end
40 7d890b40 Max Filippov
41 7d890b40 Max Filippov
test j0_stall
42 7d890b40 Max Filippov
    rsr     a3, ccount
43 7d890b40 Max Filippov
    j       1f          /* E + 2-cycle penalty */
44 7d890b40 Max Filippov
1:
45 7d890b40 Max Filippov
    rsr     a4, ccount  /* E */
46 7d890b40 Max Filippov
    sub     a3, a4, a3
47 7d890b40 Max Filippov
    assert  eqi, a3, 4
48 7d890b40 Max Filippov
test_end
49 7d890b40 Max Filippov
50 7d890b40 Max Filippov
test j1_stall
51 7d890b40 Max Filippov
    rsr     a3, ccount
52 7d890b40 Max Filippov
    j       1f
53 7d890b40 Max Filippov
    nop
54 7d890b40 Max Filippov
1:
55 7d890b40 Max Filippov
    rsr     a4, ccount
56 7d890b40 Max Filippov
    sub     a3, a4, a3
57 7d890b40 Max Filippov
    assert  eqi, a3, 4
58 7d890b40 Max Filippov
test_end
59 7d890b40 Max Filippov
60 7d890b40 Max Filippov
test j5_stall
61 7d890b40 Max Filippov
    rsr     a3, ccount
62 7d890b40 Max Filippov
    j       1f
63 7d890b40 Max Filippov
    nop
64 7d890b40 Max Filippov
    nop
65 7d890b40 Max Filippov
    nop
66 7d890b40 Max Filippov
    nop
67 7d890b40 Max Filippov
    nop
68 7d890b40 Max Filippov
1:
69 7d890b40 Max Filippov
    rsr     a4, ccount
70 7d890b40 Max Filippov
    sub     a3, a4, a3
71 7d890b40 Max Filippov
    assert  eqi, a3, 4
72 7d890b40 Max Filippov
test_end
73 7d890b40 Max Filippov
74 7d890b40 Max Filippov
test b_no_stall
75 7d890b40 Max Filippov
    movi    a5, 1
76 7d890b40 Max Filippov
    rsr     a3, ccount
77 7d890b40 Max Filippov
    beqi    a5, 2, 1f
78 7d890b40 Max Filippov
    rsr     a4, ccount
79 7d890b40 Max Filippov
    sub     a3, a4, a3
80 7d890b40 Max Filippov
    assert  eqi, a3, 2
81 7d890b40 Max Filippov
1:
82 7d890b40 Max Filippov
test_end
83 7d890b40 Max Filippov
84 7d890b40 Max Filippov
test b1_stall
85 7d890b40 Max Filippov
    movi    a5, 1
86 7d890b40 Max Filippov
    rsr     a3, ccount
87 7d890b40 Max Filippov
    beqi    a5, 1, 1f
88 7d890b40 Max Filippov
    nop
89 7d890b40 Max Filippov
1:
90 7d890b40 Max Filippov
    rsr     a4, ccount
91 7d890b40 Max Filippov
    sub     a3, a4, a3
92 7d890b40 Max Filippov
    assert  eqi, a3, 4
93 7d890b40 Max Filippov
test_end
94 7d890b40 Max Filippov
95 7d890b40 Max Filippov
test b5_stall
96 7d890b40 Max Filippov
    movi    a5, 1
97 7d890b40 Max Filippov
    rsr     a3, ccount
98 7d890b40 Max Filippov
    beqi    a5, 1, 1f
99 7d890b40 Max Filippov
    nop
100 7d890b40 Max Filippov
    nop
101 7d890b40 Max Filippov
    nop
102 7d890b40 Max Filippov
    nop
103 7d890b40 Max Filippov
    nop
104 7d890b40 Max Filippov
1:
105 7d890b40 Max Filippov
    rsr     a4, ccount
106 7d890b40 Max Filippov
    sub     a3, a4, a3
107 7d890b40 Max Filippov
    assert  eqi, a3, 4
108 7d890b40 Max Filippov
test_end
109 7d890b40 Max Filippov
110 7d890b40 Max Filippov
/* PS *SYNC */
111 7d890b40 Max Filippov
112 7d890b40 Max Filippov
test ps_dsync
113 7d890b40 Max Filippov
    rsr     a5, ps
114 7d890b40 Max Filippov
    isync
115 7d890b40 Max Filippov
    rsr     a3, ccount
116 7d890b40 Max Filippov
    wsr     a5, ps
117 7d890b40 Max Filippov
    dsync
118 7d890b40 Max Filippov
    rsr     a4, ccount
119 7d890b40 Max Filippov
    sub     a3, a4, a3
120 7d890b40 Max Filippov
    assert  eqi, a3, 5
121 7d890b40 Max Filippov
test_end
122 7d890b40 Max Filippov
123 7d890b40 Max Filippov
test ps_esync
124 7d890b40 Max Filippov
    rsr     a5, ps
125 7d890b40 Max Filippov
    isync
126 7d890b40 Max Filippov
    rsr     a3, ccount
127 7d890b40 Max Filippov
    wsr     a5, ps
128 7d890b40 Max Filippov
    esync
129 7d890b40 Max Filippov
    rsr     a4, ccount
130 7d890b40 Max Filippov
    sub     a3, a4, a3
131 7d890b40 Max Filippov
    assert  eqi, a3, 5
132 7d890b40 Max Filippov
test_end
133 7d890b40 Max Filippov
134 7d890b40 Max Filippov
test ps_rsync
135 7d890b40 Max Filippov
    rsr     a5, ps
136 7d890b40 Max Filippov
    isync
137 7d890b40 Max Filippov
    rsr     a3, ccount
138 7d890b40 Max Filippov
    wsr     a5, ps
139 7d890b40 Max Filippov
    rsync
140 7d890b40 Max Filippov
    rsr     a4, ccount
141 7d890b40 Max Filippov
    sub     a3, a4, a3
142 7d890b40 Max Filippov
    assert  eqi, a3, 5
143 7d890b40 Max Filippov
test_end
144 7d890b40 Max Filippov
145 7d890b40 Max Filippov
test ps_isync
146 7d890b40 Max Filippov
    rsr     a5, ps
147 7d890b40 Max Filippov
    isync
148 7d890b40 Max Filippov
    rsr     a3, ccount
149 7d890b40 Max Filippov
    wsr     a5, ps
150 7d890b40 Max Filippov
    isync
151 7d890b40 Max Filippov
    rsr     a4, ccount
152 7d890b40 Max Filippov
    sub     a3, a4, a3
153 7d890b40 Max Filippov
    movi    a4, 9
154 7d890b40 Max Filippov
    assert  eq, a3, a4
155 7d890b40 Max Filippov
test_end
156 7d890b40 Max Filippov
157 7d890b40 Max Filippov
test_suite_end