Add qemu 2.4.0
[kvmfornfv.git] / qemu / tests / tcg / xtensa / test_sar.S
1 #include "macros.inc"
2
3 test_suite sar
4
5 .macro test_sar prefix, imm
6     \prefix\()_set \imm
7     \prefix\()_ver \imm
8 .endm
9
10 .macro tests_sar prefix
11     test_sar \prefix, 0
12     test_sar \prefix, 1
13     test_sar \prefix, 2
14     test_sar \prefix, 3
15     test_sar \prefix, 0x1f
16     test_sar \prefix, 0x20
17     test_sar \prefix, 0x3f
18     test_sar \prefix, 0x40
19     test_sar \prefix, 0xfffffffe
20 .endm
21
22 .macro sar_set imm
23     movi    a2, \imm
24     wsr     a2, sar
25 .endm
26
27 .macro sar_ver imm
28     rsr     a3, sar
29     movi    a2, \imm & 0x3f
30     assert  eq, a2, a3
31 .endm
32
33 test sar
34     tests_sar sar
35 test_end
36
37 .macro ssr_set imm
38     movi    a2, \imm
39     ssr     a2
40 .endm
41
42 .macro ssr_ver imm
43     rsr     a3, sar
44     movi    a2, \imm & 0x1f
45     assert  eq, a2, a3
46 .endm
47
48 test ssr
49     tests_sar ssr
50 test_end
51
52 .macro ssl_set imm
53     movi    a2, \imm
54     ssl     a2
55 .endm
56
57 .macro ssl_ver imm
58     rsr     a3, sar
59     movi    a2, 32 - (\imm & 0x1f)
60     assert  eq, a2, a3
61 .endm
62
63 test ssl
64     tests_sar ssl
65 test_end
66
67 .macro ssa8l_set imm
68     movi    a2, \imm
69     ssa8l   a2
70 .endm
71
72 .macro ssa8l_ver imm
73     rsr     a3, sar
74     movi    a2, (\imm & 0x3) << 3
75     assert  eq, a2, a3
76 .endm
77
78 test ssa8l
79     tests_sar ssa8l
80 test_end
81
82 .macro ssa8b_set imm
83     movi    a2, \imm
84     ssa8b   a2
85 .endm
86
87 .macro ssa8b_ver imm
88     rsr     a3, sar
89     movi    a2, 32 - ((\imm & 0x3) << 3)
90     assert  eq, a2, a3
91 .endm
92
93 test ssa8b
94     tests_sar ssa8b
95 test_end
96
97 .macro ssai_set imm
98     ssai    \imm & 0x1f
99 .endm
100
101 .macro ssai_ver imm
102     rsr     a3, sar
103     movi    a2, \imm & 0x1f
104     assert  eq, a2, a3
105 .endm
106
107 test ssai
108     tests_sar ssai
109 test_end
110
111 test_suite_end