pshar.s revision 1.1 1 1.1 christos # sh testcase for psha <reg>
2 1.1 christos # mach: shdsp
3 1.1 christos # as(shdsp): -defsym sim_cpu=1 -dsp
4 1.1 christos
5 1.1 christos .include "testutils.inc"
6 1.1 christos
7 1.1 christos start
8 1.1 christos
9 1.1 christos psha_reg: ! shift arithmetic, register operand
10 1.1 christos set_grs_a5a5
11 1.1 christos lds r0, a0
12 1.1 christos pcopy a0, a1
13 1.1 christos lds r0, x0
14 1.1 christos lds r0, x1
15 1.1 christos lds r0, y0
16 1.1 christos lds r0, y1
17 1.1 christos pcopy x0, m0
18 1.1 christos pcopy y1, m1
19 1.1 christos
20 1.1 christos set_sreg 0x1, x0
21 1.1 christos set_sreg 0x0, y0
22 1.1 christos psha x0, y0, x0
23 1.1 christos assert_sreg 0x1, x0
24 1.1 christos pneg y0, y0
25 1.1 christos psha x0, y0, x0
26 1.1 christos assert_sreg 0x1, x0
27 1.1 christos
28 1.1 christos set_sreg 0x10000, y0
29 1.1 christos psha x0, y0, x0
30 1.1 christos assert_sreg 0x2, x0
31 1.1 christos pneg y0, y0
32 1.1 christos psha x0, y0, x0
33 1.1 christos assert_sreg 0x1, x0
34 1.1 christos
35 1.1 christos set_sreg 0x20000, y0
36 1.1 christos psha x0, y0, x0
37 1.1 christos assert_sreg 0x4, x0
38 1.1 christos pneg y0, y0
39 1.1 christos psha x0, y0, x0
40 1.1 christos assert_sreg 0x1, x0
41 1.1 christos
42 1.1 christos set_sreg 0x30000, y0
43 1.1 christos psha x0, y0, x0
44 1.1 christos assert_sreg 0x8, x0
45 1.1 christos pneg y0, y0
46 1.1 christos psha x0, y0, x0
47 1.1 christos assert_sreg 0x1, x0
48 1.1 christos
49 1.1 christos set_sreg 0x40000, y0
50 1.1 christos psha x0, y0, x0
51 1.1 christos assert_sreg 0x10, x0
52 1.1 christos pneg y0, y0
53 1.1 christos psha x0, y0, x0
54 1.1 christos assert_sreg 0x1, x0
55 1.1 christos
56 1.1 christos set_sreg 0x50000, y0
57 1.1 christos psha x0, y0, x0
58 1.1 christos assert_sreg 0x20, x0
59 1.1 christos pneg y0, y0
60 1.1 christos psha x0, y0, x0
61 1.1 christos assert_sreg 0x1, x0
62 1.1 christos
63 1.1 christos set_sreg 0x60000, y0
64 1.1 christos psha x0, y0, x0
65 1.1 christos assert_sreg 0x40, x0
66 1.1 christos pneg y0, y0
67 1.1 christos psha x0, y0, x0
68 1.1 christos assert_sreg 0x1, x0
69 1.1 christos
70 1.1 christos set_sreg 0x70000, y0
71 1.1 christos psha x0, y0, x0
72 1.1 christos assert_sreg 0x80, x0
73 1.1 christos pneg y0, y0
74 1.1 christos psha x0, y0, x0
75 1.1 christos assert_sreg 0x1, x0
76 1.1 christos
77 1.1 christos set_sreg 0x80000, y0
78 1.1 christos psha x0, y0, x0
79 1.1 christos assert_sreg 0x100, x0
80 1.1 christos pneg y0, y0
81 1.1 christos psha x0, y0, x0
82 1.1 christos assert_sreg 0x1, x0
83 1.1 christos
84 1.1 christos set_sreg 0x90000, y0
85 1.1 christos psha x0, y0, x0
86 1.1 christos assert_sreg 0x200, x0
87 1.1 christos pneg y0, y0
88 1.1 christos psha x0, y0, x0
89 1.1 christos assert_sreg 0x1, x0
90 1.1 christos
91 1.1 christos set_sreg 0xa0000, y0
92 1.1 christos psha x0, y0, x0
93 1.1 christos assert_sreg 0x400, x0
94 1.1 christos pneg y0, y0
95 1.1 christos psha x0, y0, x0
96 1.1 christos assert_sreg 0x1, x0
97 1.1 christos
98 1.1 christos set_sreg 0xb0000, y0
99 1.1 christos psha x0, y0, x0
100 1.1 christos assert_sreg 0x800, x0
101 1.1 christos pneg y0, y0
102 1.1 christos psha x0, y0, x0
103 1.1 christos assert_sreg 0x1, x0
104 1.1 christos
105 1.1 christos set_sreg 0xc0000, y0
106 1.1 christos psha x0, y0, x0
107 1.1 christos assert_sreg 0x1000, x0
108 1.1 christos pneg y0, y0
109 1.1 christos psha x0, y0, x0
110 1.1 christos assert_sreg 0x1, x0
111 1.1 christos
112 1.1 christos set_sreg 0xd0000, y0
113 1.1 christos psha x0, y0, x0
114 1.1 christos assert_sreg 0x2000, x0
115 1.1 christos pneg y0, y0
116 1.1 christos psha x0, y0, x0
117 1.1 christos assert_sreg 0x1, x0
118 1.1 christos
119 1.1 christos set_sreg 0xe0000, y0
120 1.1 christos psha x0, y0, x0
121 1.1 christos assert_sreg 0x4000, x0
122 1.1 christos pneg y0, y0
123 1.1 christos psha x0, y0, x0
124 1.1 christos assert_sreg 0x1, x0
125 1.1 christos
126 1.1 christos set_sreg 0xf0000, y0
127 1.1 christos psha x0, y0, x0
128 1.1 christos assert_sreg 0x8000, x0
129 1.1 christos pneg y0, y0
130 1.1 christos psha x0, y0, x0
131 1.1 christos assert_sreg 0x1, x0
132 1.1 christos
133 1.1 christos set_sreg 0x100000, y0
134 1.1 christos psha x0, y0, x0
135 1.1 christos assert_sreg 0x10000, x0
136 1.1 christos pneg y0, y0
137 1.1 christos psha x0, y0, x0
138 1.1 christos assert_sreg 0x1, x0
139 1.1 christos
140 1.1 christos set_sreg 0x110000, y0
141 1.1 christos psha x0, y0, x0
142 1.1 christos assert_sreg 0x20000, x0
143 1.1 christos pneg y0, y0
144 1.1 christos psha x0, y0, x0
145 1.1 christos assert_sreg 0x1, x0
146 1.1 christos
147 1.1 christos set_sreg 0x120000, y0
148 1.1 christos psha x0, y0, x0
149 1.1 christos assert_sreg 0x40000, x0
150 1.1 christos pneg y0, y0
151 1.1 christos psha x0, y0, x0
152 1.1 christos assert_sreg 0x1, x0
153 1.1 christos
154 1.1 christos set_sreg 0x130000, y0
155 1.1 christos psha x0, y0, x0
156 1.1 christos assert_sreg 0x80000, x0
157 1.1 christos pneg y0, y0
158 1.1 christos psha x0, y0, x0
159 1.1 christos assert_sreg 0x1, x0
160 1.1 christos
161 1.1 christos set_sreg 0x140000, y0
162 1.1 christos psha x0, y0, x0
163 1.1 christos assert_sreg 0x100000, x0
164 1.1 christos pneg y0, y0
165 1.1 christos psha x0, y0, x0
166 1.1 christos assert_sreg 0x1, x0
167 1.1 christos
168 1.1 christos set_sreg 0x150000, y0
169 1.1 christos psha x0, y0, x0
170 1.1 christos assert_sreg 0x200000, x0
171 1.1 christos pneg y0, y0
172 1.1 christos psha x0, y0, x0
173 1.1 christos assert_sreg 0x1, x0
174 1.1 christos
175 1.1 christos set_sreg 0x160000, y0
176 1.1 christos psha x0, y0, x0
177 1.1 christos assert_sreg 0x400000, x0
178 1.1 christos pneg y0, y0
179 1.1 christos psha x0, y0, x0
180 1.1 christos assert_sreg 0x1, x0
181 1.1 christos
182 1.1 christos set_sreg 0x170000, y0
183 1.1 christos psha x0, y0, x0
184 1.1 christos assert_sreg 0x800000, x0
185 1.1 christos pneg y0, y0
186 1.1 christos psha x0, y0, x0
187 1.1 christos assert_sreg 0x1, x0
188 1.1 christos
189 1.1 christos set_sreg 0x180000, y0
190 1.1 christos psha x0, y0, x0
191 1.1 christos assert_sreg 0x1000000, x0
192 1.1 christos pneg y0, y0
193 1.1 christos psha x0, y0, x0
194 1.1 christos assert_sreg 0x1, x0
195 1.1 christos
196 1.1 christos set_sreg 0x190000, y0
197 1.1 christos psha x0, y0, x0
198 1.1 christos assert_sreg 0x2000000, x0
199 1.1 christos pneg y0, y0
200 1.1 christos psha x0, y0, x0
201 1.1 christos assert_sreg 0x1, x0
202 1.1 christos
203 1.1 christos set_sreg 0x1a0000, y0
204 1.1 christos psha x0, y0, x0
205 1.1 christos assert_sreg 0x4000000, x0
206 1.1 christos pneg y0, y0
207 1.1 christos psha x0, y0, x0
208 1.1 christos assert_sreg 0x1, x0
209 1.1 christos
210 1.1 christos set_sreg 0x1b0000, y0
211 1.1 christos psha x0, y0, x0
212 1.1 christos assert_sreg 0x8000000, x0
213 1.1 christos pneg y0, y0
214 1.1 christos psha x0, y0, x0
215 1.1 christos assert_sreg 0x1, x0
216 1.1 christos
217 1.1 christos set_sreg 0x1c0000, y0
218 1.1 christos psha x0, y0, x0
219 1.1 christos assert_sreg 0x10000000, x0
220 1.1 christos pneg y0, y0
221 1.1 christos psha x0, y0, x0
222 1.1 christos assert_sreg 0x1, x0
223 1.1 christos
224 1.1 christos set_sreg 0x1d0000, y0
225 1.1 christos psha x0, y0, x0
226 1.1 christos assert_sreg 0x20000000, x0
227 1.1 christos pneg y0, y0
228 1.1 christos psha x0, y0, x0
229 1.1 christos assert_sreg 0x1, x0
230 1.1 christos
231 1.1 christos set_sreg 0x1e0000, y0
232 1.1 christos psha x0, y0, x0
233 1.1 christos assert_sreg 0x40000000, x0
234 1.1 christos pneg y0, y0
235 1.1 christos psha x0, y0, x0
236 1.1 christos assert_sreg 0x1, x0
237 1.1 christos
238 1.1 christos set_sreg 0x1f0000, y0
239 1.1 christos psha x0, y0, x0
240 1.1 christos assert_sreg 0x80000000, x0
241 1.1 christos pneg y0, y0
242 1.1 christos psha x0, y0, x0
243 1.1 christos assert_sreg 0xffffffff, x0
244 1.1 christos
245 1.1 christos set_sreg 0x200000, y0
246 1.1 christos psha x0, y0, x0
247 1.1 christos assert_sreg 0x00000000, x0
248 1.1 christos # I don't grok what should happen here...
249 1.1 christos # pneg y0, y0
250 1.1 christos # psha x0, y0, x0
251 1.1 christos # assert_sreg 0x0, x0
252 1.1 christos
253 1.1 christos test_grs_a5a5
254 1.1 christos assert_sreg 0xa5a5a5a5, a0
255 1.1 christos assert_sreg2 0xa5a5a5a5, a1
256 1.1 christos assert_sreg 0xa5a5a5a5, x1
257 1.1 christos assert_sreg 0xa5a5a5a5, y1
258 1.1 christos assert_sreg2 0xa5a5a5a5, m0
259 1.1 christos assert_sreg2 0xa5a5a5a5, m1
260 1.1 christos
261 1.1 christos
262 1.1 christos pass
263 1.1 christos exit 0
264 1.1 christos
265