1 # sh testcase for loop control
3 # as(shdsp): -defsym sim_cpu=1 -dsp
5 .include "testutils.inc"
15 add #1, r1 ! Before loop
16 # Loop should execute one instruction five times.
18 add #1, r1 ! Within loop
20 add #2, r1 ! After loop
22 # r1 = 0xa5a5a5a5 + 8 (five in loop, two after, one before)
23 assertreg 0xa5a5a5a5+8, r1
25 set_greg 0xa5a5a5a5, r0
26 set_greg 0xa5a5a5a5, r1
36 add #1, r1 ! Before loop
37 # Loop should execute two instructions five times.
39 add #1, r1 ! Within loop
40 add #1, r1 ! Within loop
42 add #3, r1 ! After loop
44 # r1 = 0xa5a5a5a5 + 14 (ten in loop, three after, one before)
45 assertreg 0xa5a5a5a5+14, r1
47 set_greg 0xa5a5a5a5, r0
48 set_greg 0xa5a5a5a5, r1
58 add #1, r1 ! Before loop
59 # Loop should execute three instructions five times.
61 add #1, r1 ! Within loop
62 add #1, r1 ! Within loop
63 add #1, r1 ! Within loop
65 add #2, r1 ! After loop
67 # r1 = 0xa5a5a5a5 + 18 (fifteen in loop, two after, one before)
68 assertreg 0xa5a5a5a5+18, r1
70 set_greg 0xa5a5a5a5, r0
71 set_greg 0xa5a5a5a5, r1
80 add #1, r1 ! Before loop
81 # Loop should execute four instructions five times.
84 add #1, r1 ! Within loop
86 add #1, r1 ! Within loop
88 add #1, r1 ! Within loop
90 add #1, r1 ! Within loop
92 add #2, r1 ! After loop
94 # r1 = 0xa5a5a5a5 + 23 (20 in loop, two after, one before)
95 assertreg 0xa5a5a5a5+23, r1
97 set_greg 0xa5a5a5a5, r0
98 set_greg 0xa5a5a5a5, r1
107 add #1, r1 ! Before loop
108 # Loop should execute five instructions five times.
110 add #1, r1 ! Within loop
112 add #1, r1 ! Within loop
114 add #1, r1 ! Within loop
116 add #1, r1 ! Within loop
118 add #1, r1 ! Within loop
120 add #2, r1 ! After loop
122 # r1 = 0xa5a5a5a5 + 28 (25 in loop, two after, one before)
123 assertreg 0xa5a5a5a5+28, r1
125 set_greg 0xa5a5a5a5, r0
126 set_greg 0xa5a5a5a5, r1
135 add #1, r1 ! Before loop
136 # Loop should execute n instructions five times.
138 add #1, r1 ! Within loop
139 add #1, r1 ! Within loop
140 add #1, r1 ! Within loop
141 add #1, r1 ! Within loop
142 add #1, r1 ! Within loop
143 add #1, r1 ! Within loop
144 add #1, r1 ! Within loop
145 add #1, r1 ! Within loop
147 add #1, r1 ! Within loop
149 add #1, r1 ! Within loop
151 add #1, r1 ! Within loop
153 add #1, r1 ! Within loop
155 add #3, r1 ! After loop
157 # r1 = 0xa5a5a5a5 + 64 (60 in loop, three after, one before)
158 assertreg 0xa5a5a5a5+64, r1
160 set_greg 0xa5a5a5a5, r0
161 set_greg 0xa5a5a5a5, r1
170 add #1, r1 ! Before loop
171 # Loop should execute one instruction five times.
174 add #1, r1 ! Within loop
176 add #2, r1 ! After loop
178 # r1 = 0xa5a5a5a5 + 8 (five in loop, two after, one before)
179 assertreg 0xa5a5a5a5+8, r1
181 set_greg 0xa5a5a5a5, r0
182 set_greg 0xa5a5a5a5, r1
191 add #1, r1 ! Before loop
192 # Loop should execute two instructions five times.
194 add #1, r1 ! Within loop
196 add #1, r1 ! Within loop
198 add #2, r1 ! After loop
200 # r1 = 0xa5a5a5a5 + 13 (ten in loop, two after, one before)
201 assertreg 0xa5a5a5a5+13, r1
203 set_greg 0xa5a5a5a5, r0
204 set_greg 0xa5a5a5a5, r1
213 add #1, r1 ! Before loop
214 # Loop should execute three instructions five times.
216 add #1, r1 ! Within loop
217 add #1, r1 ! Within loop
219 add #1, r1 ! Within loop
221 add #2, r1 ! After loop
223 # r1 = 0xa5a5a5a5 + 18 (fifteen in loop, two after, one before)
224 assertreg 0xa5a5a5a5+18, r1
226 set_greg 0xa5a5a5a5, r0
227 set_greg 0xa5a5a5a5, r1
236 add #1, r1 ! Before loop
237 # Loop should execute four instructions five times.
239 add #1, r1 ! Within loop
240 add #1, r1 ! Within loop
241 add #1, r1 ! Within loop
243 add #1, r1 ! Within loop
245 add #2, r1 ! After loop
247 # r1 = 0xa5a5a5a5 + 23 (twenty in loop, two after, one before)
248 assertreg 0xa5a5a5a5+23, r1
250 set_greg 0xa5a5a5a5, r0
251 set_greg 0xa5a5a5a5, r1
260 add #1, r1 ! Before loop
261 # Loop should execute five instructions five times.
263 add #1, r1 ! Within loop
264 add #1, r1 ! Within loop
265 add #1, r1 ! Within loop
266 add #1, r1 ! Within loop
268 add #1, r1 ! Within loop
270 add #2, r1 ! After loop
272 # r1 = 0xa5a5a5a5 + 28 (twenty five in loop, two after, one before)
273 assertreg 0xa5a5a5a5+28, r1
275 set_greg 0xa5a5a5a5, r0
276 set_greg 0xa5a5a5a5, r1
285 add #1, r1 ! Before loop
286 # Loop should execute n instructions five times.
288 add #1, r1 ! Within loop
289 add #1, r1 ! Within loop
290 add #1, r1 ! Within loop
291 add #1, r1 ! Within loop
292 add #1, r1 ! Within loop
293 add #1, r1 ! Within loop
294 add #1, r1 ! Within loop
295 add #1, r1 ! Within loop
297 add #1, r1 ! Within loop
299 add #2, r1 ! After loop
301 # r1 = 0xa5a5a5a5 + 48 (forty five in loop, two after, one before)
302 assertreg 0xa5a5a5a5+48, r1
304 set_greg 0xa5a5a5a5, r0
305 set_greg 0xa5a5a5a5, r1