]> git.proxmox.com Git - mirror_qemu.git/blob - tests/tcg/xtensa/test_sar.S
Merge remote-tracking branch 'remotes/otubo/tags/pull-seccomp-20141111' into staging
[mirror_qemu.git] / 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