root / tests / xtensa / test_loop.S @ 7d890b40
History | View | Annotate | Download (1.1 kB)
1 |
.include "macros.inc" |
---|---|
2 |
|
3 |
test_suite loop |
4 |
|
5 |
test loop |
6 |
movi a2, 0 |
7 |
movi a3, 5 |
8 |
loop a3, 1f |
9 |
addi a2, a2, 1 |
10 |
1: |
11 |
assert eqi, a2, 5 |
12 |
test_end |
13 |
|
14 |
test loop0 |
15 |
movi a2, 0 |
16 |
loop a2, 1f |
17 |
rsr a2, lcount |
18 |
assert eqi, a2, -1 |
19 |
j 1f |
20 |
1: |
21 |
test_end |
22 |
|
23 |
test loop_jump |
24 |
movi a2, 0 |
25 |
movi a3, 5 |
26 |
loop a3, 1f |
27 |
addi a2, a2, 1 |
28 |
j 1f |
29 |
1: |
30 |
assert eqi, a2, 1 |
31 |
test_end |
32 |
|
33 |
test loop_branch |
34 |
movi a2, 0 |
35 |
movi a3, 5 |
36 |
loop a3, 1f |
37 |
addi a2, a2, 1 |
38 |
beqi a2, 3, 1f |
39 |
1: |
40 |
assert eqi, a2, 3 |
41 |
test_end |
42 |
|
43 |
test loop_manual |
44 |
movi a2, 0 |
45 |
movi a3, 5 |
46 |
movi a4, 1f |
47 |
movi a5, 2f |
48 |
wsr a3, lcount |
49 |
wsr a4, lbeg |
50 |
wsr a5, lend |
51 |
isync |
52 |
j 1f |
53 |
.align 4 |
54 |
1: |
55 |
addi a2, a2, 1 |
56 |
2: |
57 |
assert eqi, a2, 6 |
58 |
test_end |
59 |
|
60 |
test loop_excm |
61 |
movi a2, 0 |
62 |
movi a3, 5 |
63 |
rsr a4, ps |
64 |
movi a5, 0x10 |
65 |
or a4, a4, a5 |
66 |
wsr a4, ps |
67 |
isync |
68 |
loop a3, 1f |
69 |
addi a2, a2, 1 |
70 |
1: |
71 |
xor a4, a4, a5 |
72 |
isync |
73 |
wsr a4, ps |
74 |
assert eqi, a2, 1 |
75 |
test_end |
76 |
|
77 |
test_suite_end |