1 // Copyright 2016, VIXL authors
2 // All rights reserved.
3 //
4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are met:
6 //
7 // * Redistributions of source code must retain the above copyright notice,
8 // this list of conditions and the following disclaimer.
9 // * Redistributions in binary form must reproduce the above copyright notice,
10 // this list of conditions and the following disclaimer in the documentation
11 // and/or other materials provided with the distribution.
12 // * Neither the name of ARM Limited nor the names of its contributors may be
13 // used to endorse or promote products derived from this software without
14 // specific prior written permission.
15 //
16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
17 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
20 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
27
28 // -----------------------------------------------------------------------------
29 // This file is auto generated from the
30 // test/aarch32/config/template-assembler-aarch32.cc.in template file using
31 // tools/generate_tests.py.
32 //
33 // PLEASE DO NOT EDIT.
34 // -----------------------------------------------------------------------------
35
36
37 #include "test-runner.h"
38
39 #include "test-utils.h"
40 #include "test-utils-aarch32.h"
41
42 #include "aarch32/assembler-aarch32.h"
43 #include "aarch32/macro-assembler-aarch32.h"
44
45 #define BUF_SIZE (4096)
46
47 namespace vixl {
48 namespace aarch32 {
49
50 // List of instruction mnemonics.
51 #define FOREACH_INSTRUCTION(M) \
52 M(adc) \
53 M(adcs) \
54 M(add) \
55 M(adds) \
56 M(and_) \
57 M(ands) \
58 M(bic) \
59 M(bics) \
60 M(eor) \
61 M(eors) \
62 M(orn) \
63 M(orns) \
64 M(orr) \
65 M(orrs) \
66 M(rsb) \
67 M(rsbs) \
68 M(sbc) \
69 M(sbcs) \
70 M(sub) \
71 M(subs)
72
73
74 // The following definitions are defined again in each generated test, therefore
75 // we need to place them in an anomymous namespace. It expresses that they are
76 // local to this file only, and the compiler is not allowed to share these types
77 // across test files during template instantiation. Specifically, `Operands` has
78 // various layouts across generated tests so it absolutely cannot be shared.
79
80 #ifdef VIXL_INCLUDE_TARGET_T32
81 namespace {
82
83 // Values to be passed to the assembler to produce the instruction under test.
84 struct Operands {
85 Condition cond;
86 Register rd;
87 Register rn;
88 uint32_t immediate;
89 };
90
91 // This structure contains all data needed to test one specific
92 // instruction.
93 struct TestData {
94 // The `operands` field represents what to pass to the assembler to
95 // produce the instruction.
96 Operands operands;
97 // True if we need to generate an IT instruction for this test to be valid.
98 bool in_it_block;
99 // The condition to give the IT instruction, this will be set to "al" by
100 // default.
101 Condition it_condition;
102 // Description of the operands, used for error reporting.
103 const char* operands_description;
104 // Unique identifier, used for generating traces.
105 const char* identifier;
106 };
107
108 struct TestResult {
109 size_t size;
110 const byte* encoding;
111 };
112
113 // Each element of this array produce one instruction encoding.
114 const TestData kTests[] = {{{al, r13, r14, 0x02ac0000},
115 false,
116 al,
117 "al r13 r14 0x02ac0000",
118 "al_r13_r14_0x02ac0000"},
119 {{al, r10, r1, 0x00156000},
120 false,
121 al,
122 "al r10 r1 0x00156000",
123 "al_r10_r1_0x00156000"},
124 {{al, r10, r0, 0x000003fc},
125 false,
126 al,
127 "al r10 r0 0x000003fc",
128 "al_r10_r0_0x000003fc"},
129 {{al, r1, r11, 0x2ac00000},
130 false,
131 al,
132 "al r1 r11 0x2ac00000",
133 "al_r1_r11_0x2ac00000"},
134 {{al, r8, r6, 0x00156000},
135 false,
136 al,
137 "al r8 r6 0x00156000",
138 "al_r8_r6_0x00156000"},
139 {{al, r7, r12, 0x00ff0000},
140 false,
141 al,
142 "al r7 r12 0x00ff0000",
143 "al_r7_r12_0x00ff0000"},
144 {{al, r12, r3, 0x00ff0000},
145 false,
146 al,
147 "al r12 r3 0x00ff0000",
148 "al_r12_r3_0x00ff0000"},
149 {{al, r4, r7, 0x0000ff00},
150 false,
151 al,
152 "al r4 r7 0x0000ff00",
153 "al_r4_r7_0x0000ff00"},
154 {{al, r11, r13, 0x0ab00000},
155 false,
156 al,
157 "al r11 r13 0x0ab00000",
158 "al_r11_r13_0x0ab00000"},
159 {{al, r6, r12, 0xff00ff00},
160 false,
161 al,
162 "al r6 r12 0xff00ff00",
163 "al_r6_r12_0xff00ff00"},
164 {{al, r12, r8, 0x003fc000},
165 false,
166 al,
167 "al r12 r8 0x003fc000",
168 "al_r12_r8_0x003fc000"},
169 {{al, r5, r12, 0x00ab00ab},
170 false,
171 al,
172 "al r5 r12 0x00ab00ab",
173 "al_r5_r12_0x00ab00ab"},
174 {{al, r7, r6, 0x00ab00ab},
175 false,
176 al,
177 "al r7 r6 0x00ab00ab",
178 "al_r7_r6_0x00ab00ab"},
179 {{al, r0, r1, 0x00ab00ab},
180 false,
181 al,
182 "al r0 r1 0x00ab00ab",
183 "al_r0_r1_0x00ab00ab"},
184 {{al, r9, r9, 0x000001fe},
185 false,
186 al,
187 "al r9 r9 0x000001fe",
188 "al_r9_r9_0x000001fe"},
189 {{al, r2, r8, 0xab00ab00},
190 false,
191 al,
192 "al r2 r8 0xab00ab00",
193 "al_r2_r8_0xab00ab00"},
194 {{al, r9, r10, 0x00ff0000},
195 false,
196 al,
197 "al r9 r10 0x00ff0000",
198 "al_r9_r10_0x00ff0000"},
199 {{al, r8, r8, 0x55800000},
200 false,
201 al,
202 "al r8 r8 0x55800000",
203 "al_r8_r8_0x55800000"},
204 {{al, r6, r7, 0x00ab00ab},
205 false,
206 al,
207 "al r6 r7 0x00ab00ab",
208 "al_r6_r7_0x00ab00ab"},
209 {{al, r5, r9, 0xff000000},
210 false,
211 al,
212 "al r5 r9 0xff000000",
213 "al_r5_r9_0xff000000"},
214 {{al, r8, r8, 0x00ab0000},
215 false,
216 al,
217 "al r8 r8 0x00ab0000",
218 "al_r8_r8_0x00ab0000"},
219 {{al, r5, r8, 0xab00ab00},
220 false,
221 al,
222 "al r5 r8 0xab00ab00",
223 "al_r5_r8_0xab00ab00"},
224 {{al, r0, r12, 0xab000000},
225 false,
226 al,
227 "al r0 r12 0xab000000",
228 "al_r0_r12_0xab000000"},
229 {{al, r13, r11, 0xab000000},
230 false,
231 al,
232 "al r13 r11 0xab000000",
233 "al_r13_r11_0xab000000"},
234 {{al, r14, r3, 0xab00ab00},
235 false,
236 al,
237 "al r14 r3 0xab00ab00",
238 "al_r14_r3_0xab00ab00"},
239 {{al, r0, r1, 0x0003fc00},
240 false,
241 al,
242 "al r0 r1 0x0003fc00",
243 "al_r0_r1_0x0003fc00"},
244 {{al, r14, r13, 0x0ab00000},
245 false,
246 al,
247 "al r14 r13 0x0ab00000",
248 "al_r14_r13_0x0ab00000"},
249 {{al, r6, r0, 0x0002ac00},
250 false,
251 al,
252 "al r6 r0 0x0002ac00",
253 "al_r6_r0_0x0002ac00"},
254 {{al, r6, r8, 0x55800000},
255 false,
256 al,
257 "al r6 r8 0x55800000",
258 "al_r6_r8_0x55800000"},
259 {{al, r2, r14, 0x01560000},
260 false,
261 al,
262 "al r2 r14 0x01560000",
263 "al_r2_r14_0x01560000"},
264 {{al, r5, r13, 0x03fc0000},
265 false,
266 al,
267 "al r5 r13 0x03fc0000",
268 "al_r5_r13_0x03fc0000"},
269 {{al, r7, r6, 0x00000ab0},
270 false,
271 al,
272 "al r7 r6 0x00000ab0",
273 "al_r7_r6_0x00000ab0"},
274 {{al, r3, r14, 0x007f8000},
275 false,
276 al,
277 "al r3 r14 0x007f8000",
278 "al_r3_r14_0x007f8000"},
279 {{al, r9, r4, 0x00558000},
280 false,
281 al,
282 "al r9 r4 0x00558000",
283 "al_r9_r4_0x00558000"},
284 {{al, r10, r11, 0x00002ac0},
285 false,
286 al,
287 "al r10 r11 0x00002ac0",
288 "al_r10_r11_0x00002ac0"},
289 {{al, r1, r5, 0x003fc000},
290 false,
291 al,
292 "al r1 r5 0x003fc000",
293 "al_r1_r5_0x003fc000"},
294 {{al, r7, r7, 0x00003fc0},
295 false,
296 al,
297 "al r7 r7 0x00003fc0",
298 "al_r7_r7_0x00003fc0"},
299 {{al, r5, r3, 0x000007f8},
300 false,
301 al,
302 "al r5 r3 0x000007f8",
303 "al_r5_r3_0x000007f8"},
304 {{al, r4, r3, 0x00001560},
305 false,
306 al,
307 "al r4 r3 0x00001560",
308 "al_r4_r3_0x00001560"},
309 {{al, r5, r3, 0x03fc0000},
310 false,
311 al,
312 "al r5 r3 0x03fc0000",
313 "al_r5_r3_0x03fc0000"},
314 {{al, r2, r6, 0x55800000},
315 false,
316 al,
317 "al r2 r6 0x55800000",
318 "al_r2_r6_0x55800000"},
319 {{al, r13, r5, 0x0000ab00},
320 false,
321 al,
322 "al r13 r5 0x0000ab00",
323 "al_r13_r5_0x0000ab00"},
324 {{al, r0, r11, 0xab00ab00},
325 false,
326 al,
327 "al r0 r11 0xab00ab00",
328 "al_r0_r11_0xab00ab00"},
329 {{al, r14, r12, 0x00ff00ff},
330 false,
331 al,
332 "al r14 r12 0x00ff00ff",
333 "al_r14_r12_0x00ff00ff"},
334 {{al, r13, r8, 0x7f800000},
335 false,
336 al,
337 "al r13 r8 0x7f800000",
338 "al_r13_r8_0x7f800000"},
339 {{al, r1, r2, 0x15600000},
340 false,
341 al,
342 "al r1 r2 0x15600000",
343 "al_r1_r2_0x15600000"},
344 {{al, r7, r6, 0xab000000},
345 false,
346 al,
347 "al r7 r6 0xab000000",
348 "al_r7_r6_0xab000000"},
349 {{al, r1, r9, 0x00000ff0},
350 false,
351 al,
352 "al r1 r9 0x00000ff0",
353 "al_r1_r9_0x00000ff0"},
354 {{al, r12, r8, 0x0007f800},
355 false,
356 al,
357 "al r12 r8 0x0007f800",
358 "al_r12_r8_0x0007f800"},
359 {{al, r0, r8, 0x00ab0000},
360 false,
361 al,
362 "al r0 r8 0x00ab0000",
363 "al_r0_r8_0x00ab0000"},
364 {{al, r11, r11, 0x000000ff},
365 false,
366 al,
367 "al r11 r11 0x000000ff",
368 "al_r11_r11_0x000000ff"},
369 {{al, r12, r13, 0xff000000},
370 false,
371 al,
372 "al r12 r13 0xff000000",
373 "al_r12_r13_0xff000000"},
374 {{al, r1, r3, 0x0ab00000},
375 false,
376 al,
377 "al r1 r3 0x0ab00000",
378 "al_r1_r3_0x0ab00000"},
379 {{al, r2, r10, 0x0001fe00},
380 false,
381 al,
382 "al r2 r10 0x0001fe00",
383 "al_r2_r10_0x0001fe00"},
384 {{al, r14, r2, 0x01fe0000},
385 false,
386 al,
387 "al r14 r2 0x01fe0000",
388 "al_r14_r2_0x01fe0000"},
389 {{al, r3, r4, 0x000000ff},
390 false,
391 al,
392 "al r3 r4 0x000000ff",
393 "al_r3_r4_0x000000ff"},
394 {{al, r3, r13, 0x00000558},
395 false,
396 al,
397 "al r3 r13 0x00000558",
398 "al_r3_r13_0x00000558"},
399 {{al, r13, r10, 0x00055800},
400 false,
401 al,
402 "al r13 r10 0x00055800",
403 "al_r13_r10_0x00055800"},
404 {{al, r1, r10, 0xff000000},
405 false,
406 al,
407 "al r1 r10 0xff000000",
408 "al_r1_r10_0xff000000"},
409 {{al, r0, r7, 0x2ac00000},
410 false,
411 al,
412 "al r0 r7 0x2ac00000",
413 "al_r0_r7_0x2ac00000"},
414 {{al, r12, r1, 0xab000000},
415 false,
416 al,
417 "al r12 r1 0xab000000",
418 "al_r12_r1_0xab000000"},
419 {{al, r9, r14, 0x00003fc0},
420 false,
421 al,
422 "al r9 r14 0x00003fc0",
423 "al_r9_r14_0x00003fc0"},
424 {{al, r7, r2, 0x2ac00000},
425 false,
426 al,
427 "al r7 r2 0x2ac00000",
428 "al_r7_r2_0x2ac00000"},
429 {{al, r14, r4, 0x00001fe0},
430 false,
431 al,
432 "al r14 r4 0x00001fe0",
433 "al_r14_r4_0x00001fe0"},
434 {{al, r12, r8, 0x00007f80},
435 false,
436 al,
437 "al r12 r8 0x00007f80",
438 "al_r12_r8_0x00007f80"},
439 {{al, r7, r10, 0x00000ab0},
440 false,
441 al,
442 "al r7 r10 0x00000ab0",
443 "al_r7_r10_0x00000ab0"},
444 {{al, r13, r6, 0x00ab0000},
445 false,
446 al,
447 "al r13 r6 0x00ab0000",
448 "al_r13_r6_0x00ab0000"},
449 {{al, r7, r9, 0x0000ff00},
450 false,
451 al,
452 "al r7 r9 0x0000ff00",
453 "al_r7_r9_0x0000ff00"},
454 {{al, r2, r12, 0xff00ff00},
455 false,
456 al,
457 "al r2 r12 0xff00ff00",
458 "al_r2_r12_0xff00ff00"},
459 {{al, r1, r6, 0x00000156},
460 false,
461 al,
462 "al r1 r6 0x00000156",
463 "al_r1_r6_0x00000156"},
464 {{al, r7, r5, 0x03fc0000},
465 false,
466 al,
467 "al r7 r5 0x03fc0000",
468 "al_r7_r5_0x03fc0000"},
469 {{al, r2, r9, 0x01fe0000},
470 false,
471 al,
472 "al r2 r9 0x01fe0000",
473 "al_r2_r9_0x01fe0000"},
474 {{al, r10, r12, 0x00002ac0},
475 false,
476 al,
477 "al r10 r12 0x00002ac0",
478 "al_r10_r12_0x00002ac0"},
479 {{al, r14, r10, 0x7f800000},
480 false,
481 al,
482 "al r14 r10 0x7f800000",
483 "al_r14_r10_0x7f800000"},
484 {{al, r2, r8, 0x02ac0000},
485 false,
486 al,
487 "al r2 r8 0x02ac0000",
488 "al_r2_r8_0x02ac0000"},
489 {{al, r4, r9, 0x000001fe},
490 false,
491 al,
492 "al r4 r9 0x000001fe",
493 "al_r4_r9_0x000001fe"},
494 {{al, r10, r10, 0x000001fe},
495 false,
496 al,
497 "al r10 r10 0x000001fe",
498 "al_r10_r10_0x000001fe"},
499 {{al, r6, r6, 0x3fc00000},
500 false,
501 al,
502 "al r6 r6 0x3fc00000",
503 "al_r6_r6_0x3fc00000"},
504 {{al, r4, r12, 0x000003fc},
505 false,
506 al,
507 "al r4 r12 0x000003fc",
508 "al_r4_r12_0x000003fc"},
509 {{al, r0, r2, 0x0000ff00},
510 false,
511 al,
512 "al r0 r2 0x0000ff00",
513 "al_r0_r2_0x0000ff00"},
514 {{al, r9, r0, 0x003fc000},
515 false,
516 al,
517 "al r9 r0 0x003fc000",
518 "al_r9_r0_0x003fc000"},
519 {{al, r7, r4, 0x000002ac},
520 false,
521 al,
522 "al r7 r4 0x000002ac",
523 "al_r7_r4_0x000002ac"},
524 {{al, r6, r6, 0x7f800000},
525 false,
526 al,
527 "al r6 r6 0x7f800000",
528 "al_r6_r6_0x7f800000"},
529 {{al, r6, r8, 0x00015600},
530 false,
531 al,
532 "al r6 r8 0x00015600",
533 "al_r6_r8_0x00015600"},
534 {{al, r10, r0, 0x00000ff0},
535 false,
536 al,
537 "al r10 r0 0x00000ff0",
538 "al_r10_r0_0x00000ff0"},
539 {{al, r8, r1, 0xffffffff},
540 false,
541 al,
542 "al r8 r1 0xffffffff",
543 "al_r8_r1_0xffffffff"},
544 {{al, r3, r7, 0x00ab00ab},
545 false,
546 al,
547 "al r3 r7 0x00ab00ab",
548 "al_r3_r7_0x00ab00ab"},
549 {{al, r8, r11, 0x01fe0000},
550 false,
551 al,
552 "al r8 r11 0x01fe0000",
553 "al_r8_r11_0x01fe0000"},
554 {{al, r3, r1, 0x00ff0000},
555 false,
556 al,
557 "al r3 r1 0x00ff0000",
558 "al_r3_r1_0x00ff0000"},
559 {{al, r5, r4, 0x000001fe},
560 false,
561 al,
562 "al r5 r4 0x000001fe",
563 "al_r5_r4_0x000001fe"},
564 {{al, r7, r10, 0x00000558},
565 false,
566 al,
567 "al r7 r10 0x00000558",
568 "al_r7_r10_0x00000558"},
569 {{al, r8, r13, 0x00001560},
570 false,
571 al,
572 "al r8 r13 0x00001560",
573 "al_r8_r13_0x00001560"},
574 {{al, r9, r4, 0x00002ac0},
575 false,
576 al,
577 "al r9 r4 0x00002ac0",
578 "al_r9_r4_0x00002ac0"},
579 {{al, r9, r7, 0x03fc0000},
580 false,
581 al,
582 "al r9 r7 0x03fc0000",
583 "al_r9_r7_0x03fc0000"},
584 {{al, r11, r12, 0x2ac00000},
585 false,
586 al,
587 "al r11 r12 0x2ac00000",
588 "al_r11_r12_0x2ac00000"},
589 {{al, r13, r10, 0x00001fe0},
590 false,
591 al,
592 "al r13 r10 0x00001fe0",
593 "al_r13_r10_0x00001fe0"},
594 {{al, r11, r10, 0x00558000},
595 false,
596 al,
597 "al r11 r10 0x00558000",
598 "al_r11_r10_0x00558000"},
599 {{al, r3, r2, 0x000000ab},
600 false,
601 al,
602 "al r3 r2 0x000000ab",
603 "al_r3_r2_0x000000ab"},
604 {{al, r0, r8, 0x00000ab0},
605 false,
606 al,
607 "al r0 r8 0x00000ab0",
608 "al_r0_r8_0x00000ab0"},
609 {{al, r9, r7, 0xab000000},
610 false,
611 al,
612 "al r9 r7 0xab000000",
613 "al_r9_r7_0xab000000"},
614 {{al, r11, r7, 0x0ff00000},
615 false,
616 al,
617 "al r11 r7 0x0ff00000",
618 "al_r11_r7_0x0ff00000"},
619 {{al, r10, r2, 0x7f800000},
620 false,
621 al,
622 "al r10 r2 0x7f800000",
623 "al_r10_r2_0x7f800000"},
624 {{al, r3, r1, 0x05580000},
625 false,
626 al,
627 "al r3 r1 0x05580000",
628 "al_r3_r1_0x05580000"},
629 {{al, r1, r4, 0x0ab00000},
630 false,
631 al,
632 "al r1 r4 0x0ab00000",
633 "al_r1_r4_0x0ab00000"},
634 {{al, r4, r9, 0x00005580},
635 false,
636 al,
637 "al r4 r9 0x00005580",
638 "al_r4_r9_0x00005580"},
639 {{al, r3, r2, 0x001fe000},
640 false,
641 al,
642 "al r3 r2 0x001fe000",
643 "al_r3_r2_0x001fe000"},
644 {{al, r14, r6, 0x00000156},
645 false,
646 al,
647 "al r14 r6 0x00000156",
648 "al_r14_r6_0x00000156"},
649 {{al, r14, r3, 0x00000ab0},
650 false,
651 al,
652 "al r14 r3 0x00000ab0",
653 "al_r14_r3_0x00000ab0"},
654 {{al, r12, r13, 0x000001fe},
655 false,
656 al,
657 "al r12 r13 0x000001fe",
658 "al_r12_r13_0x000001fe"},
659 {{al, r12, r10, 0x1fe00000},
660 false,
661 al,
662 "al r12 r10 0x1fe00000",
663 "al_r12_r10_0x1fe00000"},
664 {{al, r0, r9, 0x2ac00000},
665 false,
666 al,
667 "al r0 r9 0x2ac00000",
668 "al_r0_r9_0x2ac00000"},
669 {{al, r11, r6, 0x00000156},
670 false,
671 al,
672 "al r11 r6 0x00000156",
673 "al_r11_r6_0x00000156"},
674 {{al, r2, r4, 0x3fc00000},
675 false,
676 al,
677 "al r2 r4 0x3fc00000",
678 "al_r2_r4_0x3fc00000"},
679 {{al, r8, r13, 0x00002ac0},
680 false,
681 al,
682 "al r8 r13 0x00002ac0",
683 "al_r8_r13_0x00002ac0"},
684 {{al, r1, r5, 0x00ff00ff},
685 false,
686 al,
687 "al r1 r5 0x00ff00ff",
688 "al_r1_r5_0x00ff00ff"},
689 {{al, r6, r1, 0x0007f800},
690 false,
691 al,
692 "al r6 r1 0x0007f800",
693 "al_r6_r1_0x0007f800"},
694 {{al, r5, r1, 0x00001fe0},
695 false,
696 al,
697 "al r5 r1 0x00001fe0",
698 "al_r5_r1_0x00001fe0"},
699 {{al, r8, r11, 0xab00ab00},
700 false,
701 al,
702 "al r8 r11 0xab00ab00",
703 "al_r8_r11_0xab00ab00"},
704 {{al, r5, r0, 0xff00ff00},
705 false,
706 al,
707 "al r5 r0 0xff00ff00",
708 "al_r5_r0_0xff00ff00"},
709 {{al, r14, r13, 0x000000ab},
710 false,
711 al,
712 "al r14 r13 0x000000ab",
713 "al_r14_r13_0x000000ab"},
714 {{al, r2, r4, 0x05580000},
715 false,
716 al,
717 "al r2 r4 0x05580000",
718 "al_r2_r4_0x05580000"},
719 {{al, r14, r10, 0x07f80000},
720 false,
721 al,
722 "al r14 r10 0x07f80000",
723 "al_r14_r10_0x07f80000"},
724 {{al, r10, r3, 0x55800000},
725 false,
726 al,
727 "al r10 r3 0x55800000",
728 "al_r10_r3_0x55800000"},
729 {{al, r0, r11, 0x7f800000},
730 false,
731 al,
732 "al r0 r11 0x7f800000",
733 "al_r0_r11_0x7f800000"},
734 {{al, r3, r12, 0xffffffff},
735 false,
736 al,
737 "al r3 r12 0xffffffff",
738 "al_r3_r12_0xffffffff"},
739 {{al, r2, r3, 0x00000558},
740 false,
741 al,
742 "al r2 r3 0x00000558",
743 "al_r2_r3_0x00000558"},
744 {{al, r2, r2, 0x0003fc00},
745 false,
746 al,
747 "al r2 r2 0x0003fc00",
748 "al_r2_r2_0x0003fc00"},
749 {{al, r14, r10, 0x15600000},
750 false,
751 al,
752 "al r14 r10 0x15600000",
753 "al_r14_r10_0x15600000"},
754 {{al, r3, r13, 0x00000156},
755 false,
756 al,
757 "al r3 r13 0x00000156",
758 "al_r3_r13_0x00000156"},
759 {{al, r10, r5, 0x1fe00000},
760 false,
761 al,
762 "al r10 r5 0x1fe00000",
763 "al_r10_r5_0x1fe00000"},
764 {{al, r1, r5, 0x00055800},
765 false,
766 al,
767 "al r1 r5 0x00055800",
768 "al_r1_r5_0x00055800"},
769 {{al, r8, r6, 0xff000000},
770 false,
771 al,
772 "al r8 r6 0xff000000",
773 "al_r8_r6_0xff000000"},
774 {{al, r3, r7, 0x002ac000},
775 false,
776 al,
777 "al r3 r7 0x002ac000",
778 "al_r3_r7_0x002ac000"},
779 {{al, r6, r4, 0x00ff00ff},
780 false,
781 al,
782 "al r6 r4 0x00ff00ff",
783 "al_r6_r4_0x00ff00ff"},
784 {{al, r0, r8, 0x0007f800},
785 false,
786 al,
787 "al r0 r8 0x0007f800",
788 "al_r0_r8_0x0007f800"},
789 {{al, r0, r3, 0xff000000},
790 false,
791 al,
792 "al r0 r3 0xff000000",
793 "al_r0_r3_0xff000000"},
794 {{al, r11, r1, 0xabababab},
795 false,
796 al,
797 "al r11 r1 0xabababab",
798 "al_r11_r1_0xabababab"},
799 {{al, r14, r10, 0x000001fe},
800 false,
801 al,
802 "al r14 r10 0x000001fe",
803 "al_r14_r10_0x000001fe"},
804 {{al, r4, r11, 0x002ac000},
805 false,
806 al,
807 "al r4 r11 0x002ac000",
808 "al_r4_r11_0x002ac000"},
809 {{al, r11, r12, 0x000000ab},
810 false,
811 al,
812 "al r11 r12 0x000000ab",
813 "al_r11_r12_0x000000ab"},
814 {{al, r3, r4, 0x003fc000},
815 false,
816 al,
817 "al r3 r4 0x003fc000",
818 "al_r3_r4_0x003fc000"},
819 {{al, r3, r13, 0x0ff00000},
820 false,
821 al,
822 "al r3 r13 0x0ff00000",
823 "al_r3_r13_0x0ff00000"},
824 {{al, r5, r4, 0x00001fe0},
825 false,
826 al,
827 "al r5 r4 0x00001fe0",
828 "al_r5_r4_0x00001fe0"},
829 {{al, r6, r12, 0x002ac000},
830 false,
831 al,
832 "al r6 r12 0x002ac000",
833 "al_r6_r12_0x002ac000"},
834 {{al, r13, r13, 0x1fe00000},
835 false,
836 al,
837 "al r13 r13 0x1fe00000",
838 "al_r13_r13_0x1fe00000"},
839 {{al, r0, r8, 0x01560000},
840 false,
841 al,
842 "al r0 r8 0x01560000",
843 "al_r0_r8_0x01560000"},
844 {{al, r9, r7, 0x00055800},
845 false,
846 al,
847 "al r9 r7 0x00055800",
848 "al_r9_r7_0x00055800"},
849 {{al, r6, r0, 0x00000156},
850 false,
851 al,
852 "al r6 r0 0x00000156",
853 "al_r6_r0_0x00000156"},
854 {{al, r14, r12, 0x00055800},
855 false,
856 al,
857 "al r14 r12 0x00055800",
858 "al_r14_r12_0x00055800"},
859 {{al, r14, r0, 0xab00ab00},
860 false,
861 al,
862 "al r14 r0 0xab00ab00",
863 "al_r14_r0_0xab00ab00"},
864 {{al, r14, r2, 0x00ab0000},
865 false,
866 al,
867 "al r14 r2 0x00ab0000",
868 "al_r14_r2_0x00ab0000"},
869 {{al, r0, r3, 0x000000ab},
870 false,
871 al,
872 "al r0 r3 0x000000ab",
873 "al_r0_r3_0x000000ab"},
874 {{al, r13, r4, 0x003fc000},
875 false,
876 al,
877 "al r13 r4 0x003fc000",
878 "al_r13_r4_0x003fc000"},
879 {{al, r4, r2, 0x00001560},
880 false,
881 al,
882 "al r4 r2 0x00001560",
883 "al_r4_r2_0x00001560"},
884 {{al, r14, r4, 0x2ac00000},
885 false,
886 al,
887 "al r14 r4 0x2ac00000",
888 "al_r14_r4_0x2ac00000"},
889 {{al, r4, r11, 0x000003fc},
890 false,
891 al,
892 "al r4 r11 0x000003fc",
893 "al_r4_r11_0x000003fc"},
894 {{al, r6, r8, 0x001fe000},
895 false,
896 al,
897 "al r6 r8 0x001fe000",
898 "al_r6_r8_0x001fe000"},
899 {{al, r12, r14, 0x00000558},
900 false,
901 al,
902 "al r12 r14 0x00000558",
903 "al_r12_r14_0x00000558"},
904 {{al, r0, r13, 0x0ff00000},
905 false,
906 al,
907 "al r0 r13 0x0ff00000",
908 "al_r0_r13_0x0ff00000"},
909 {{al, r3, r11, 0xabababab},
910 false,
911 al,
912 "al r3 r11 0xabababab",
913 "al_r3_r11_0xabababab"},
914 {{al, r4, r1, 0x000001fe},
915 false,
916 al,
917 "al r4 r1 0x000001fe",
918 "al_r4_r1_0x000001fe"},
919 {{al, r0, r5, 0x000002ac},
920 false,
921 al,
922 "al r0 r5 0x000002ac",
923 "al_r0_r5_0x000002ac"},
924 {{al, r8, r5, 0x0003fc00},
925 false,
926 al,
927 "al r8 r5 0x0003fc00",
928 "al_r8_r5_0x0003fc00"},
929 {{al, r7, r13, 0x0002ac00},
930 false,
931 al,
932 "al r7 r13 0x0002ac00",
933 "al_r7_r13_0x0002ac00"},
934 {{al, r10, r6, 0x00015600},
935 false,
936 al,
937 "al r10 r6 0x00015600",
938 "al_r10_r6_0x00015600"},
939 {{al, r12, r10, 0x00ff0000},
940 false,
941 al,
942 "al r12 r10 0x00ff0000",
943 "al_r12_r10_0x00ff0000"},
944 {{al, r12, r12, 0x00005580},
945 false,
946 al,
947 "al r12 r12 0x00005580",
948 "al_r12_r12_0x00005580"},
949 {{al, r0, r4, 0x02ac0000},
950 false,
951 al,
952 "al r0 r4 0x02ac0000",
953 "al_r0_r4_0x02ac0000"},
954 {{al, r9, r9, 0x02ac0000},
955 false,
956 al,
957 "al r9 r9 0x02ac0000",
958 "al_r9_r9_0x02ac0000"},
959 {{al, r7, r4, 0x00000558},
960 false,
961 al,
962 "al r7 r4 0x00000558",
963 "al_r7_r4_0x00000558"},
964 {{al, r12, r14, 0x07f80000},
965 false,
966 al,
967 "al r12 r14 0x07f80000",
968 "al_r12_r14_0x07f80000"},
969 {{al, r7, r2, 0xab00ab00},
970 false,
971 al,
972 "al r7 r2 0xab00ab00",
973 "al_r7_r2_0xab00ab00"},
974 {{al, r1, r12, 0xff000000},
975 false,
976 al,
977 "al r1 r12 0xff000000",
978 "al_r1_r12_0xff000000"},
979 {{al, r8, r0, 0x7f800000},
980 false,
981 al,
982 "al r8 r0 0x7f800000",
983 "al_r8_r0_0x7f800000"},
984 {{al, r7, r0, 0x00000ab0},
985 false,
986 al,
987 "al r7 r0 0x00000ab0",
988 "al_r7_r0_0x00000ab0"},
989 {{al, r1, r0, 0x00005580},
990 false,
991 al,
992 "al r1 r0 0x00005580",
993 "al_r1_r0_0x00005580"},
994 {{al, r14, r1, 0x001fe000},
995 false,
996 al,
997 "al r14 r1 0x001fe000",
998 "al_r14_r1_0x001fe000"},
999 {{al, r13, r13, 0x0002ac00},
1000 false,
1001 al,
1002 "al r13 r13 0x0002ac00",
1003 "al_r13_r13_0x0002ac00"},
1004 {{al, r8, r12, 0x0002ac00},
1005 false,
1006 al,
1007 "al r8 r12 0x0002ac00",
1008 "al_r8_r12_0x0002ac00"},
1009 {{al, r10, r10, 0x00ff00ff},
1010 false,
1011 al,
1012 "al r10 r10 0x00ff00ff",
1013 "al_r10_r10_0x00ff00ff"},
1014 {{al, r4, r4, 0x002ac000},
1015 false,
1016 al,
1017 "al r4 r4 0x002ac000",
1018 "al_r4_r4_0x002ac000"},
1019 {{al, r12, r5, 0x000ab000},
1020 false,
1021 al,
1022 "al r12 r5 0x000ab000",
1023 "al_r12_r5_0x000ab000"},
1024 {{al, r1, r2, 0x000003fc},
1025 false,
1026 al,
1027 "al r1 r2 0x000003fc",
1028 "al_r1_r2_0x000003fc"},
1029 {{al, r10, r11, 0x001fe000},
1030 false,
1031 al,
1032 "al r10 r11 0x001fe000",
1033 "al_r10_r11_0x001fe000"},
1034 {{al, r11, r2, 0x05580000},
1035 false,
1036 al,
1037 "al r11 r2 0x05580000",
1038 "al_r11_r2_0x05580000"},
1039 {{al, r2, r6, 0x000000ab},
1040 false,
1041 al,
1042 "al r2 r6 0x000000ab",
1043 "al_r2_r6_0x000000ab"},
1044 {{al, r6, r3, 0x0000ff00},
1045 false,
1046 al,
1047 "al r6 r3 0x0000ff00",
1048 "al_r6_r3_0x0000ff00"},
1049 {{al, r13, r0, 0x00156000},
1050 false,
1051 al,
1052 "al r13 r0 0x00156000",
1053 "al_r13_r0_0x00156000"},
1054 {{al, r2, r9, 0x00002ac0},
1055 false,
1056 al,
1057 "al r2 r9 0x00002ac0",
1058 "al_r2_r9_0x00002ac0"},
1059 {{al, r11, r7, 0x00055800},
1060 false,
1061 al,
1062 "al r11 r7 0x00055800",
1063 "al_r11_r7_0x00055800"},
1064 {{al, r10, r9, 0x00001fe0},
1065 false,
1066 al,
1067 "al r10 r9 0x00001fe0",
1068 "al_r10_r9_0x00001fe0"},
1069 {{al, r10, r11, 0x00156000},
1070 false,
1071 al,
1072 "al r10 r11 0x00156000",
1073 "al_r10_r11_0x00156000"},
1074 {{al, r12, r10, 0xff00ff00},
1075 false,
1076 al,
1077 "al r12 r10 0xff00ff00",
1078 "al_r12_r10_0xff00ff00"},
1079 {{al, r7, r14, 0x00ab00ab},
1080 false,
1081 al,
1082 "al r7 r14 0x00ab00ab",
1083 "al_r7_r14_0x00ab00ab"},
1084 {{al, r14, r7, 0x002ac000},
1085 false,
1086 al,
1087 "al r14 r7 0x002ac000",
1088 "al_r14_r7_0x002ac000"},
1089 {{al, r5, r6, 0x000ff000},
1090 false,
1091 al,
1092 "al r5 r6 0x000ff000",
1093 "al_r5_r6_0x000ff000"},
1094 {{al, r8, r1, 0xff000000},
1095 false,
1096 al,
1097 "al r8 r1 0xff000000",
1098 "al_r8_r1_0xff000000"},
1099 {{al, r8, r0, 0x000002ac},
1100 false,
1101 al,
1102 "al r8 r0 0x000002ac",
1103 "al_r8_r0_0x000002ac"},
1104 {{al, r12, r6, 0x00002ac0},
1105 false,
1106 al,
1107 "al r12 r6 0x00002ac0",
1108 "al_r12_r6_0x00002ac0"},
1109 {{al, r14, r2, 0x3fc00000},
1110 false,
1111 al,
1112 "al r14 r2 0x3fc00000",
1113 "al_r14_r2_0x3fc00000"},
1114 {{al, r3, r3, 0x01560000},
1115 false,
1116 al,
1117 "al r3 r3 0x01560000",
1118 "al_r3_r3_0x01560000"},
1119 {{al, r3, r12, 0x0001fe00},
1120 false,
1121 al,
1122 "al r3 r12 0x0001fe00",
1123 "al_r3_r12_0x0001fe00"},
1124 {{al, r8, r10, 0x000002ac},
1125 false,
1126 al,
1127 "al r8 r10 0x000002ac",
1128 "al_r8_r10_0x000002ac"},
1129 {{al, r9, r9, 0x002ac000},
1130 false,
1131 al,
1132 "al r9 r9 0x002ac000",
1133 "al_r9_r9_0x002ac000"},
1134 {{al, r0, r6, 0x00156000},
1135 false,
1136 al,
1137 "al r0 r6 0x00156000",
1138 "al_r0_r6_0x00156000"},
1139 {{al, r14, r7, 0x0ff00000},
1140 false,
1141 al,
1142 "al r14 r7 0x0ff00000",
1143 "al_r14_r7_0x0ff00000"},
1144 {{al, r1, r3, 0x00005580},
1145 false,
1146 al,
1147 "al r1 r3 0x00005580",
1148 "al_r1_r3_0x00005580"},
1149 {{al, r14, r7, 0x000001fe},
1150 false,
1151 al,
1152 "al r14 r7 0x000001fe",
1153 "al_r14_r7_0x000001fe"},
1154 {{al, r9, r5, 0x03fc0000},
1155 false,
1156 al,
1157 "al r9 r5 0x03fc0000",
1158 "al_r9_r5_0x03fc0000"},
1159 {{al, r7, r14, 0x002ac000},
1160 false,
1161 al,
1162 "al r7 r14 0x002ac000",
1163 "al_r7_r14_0x002ac000"},
1164 {{al, r8, r9, 0x00000558},
1165 false,
1166 al,
1167 "al r8 r9 0x00000558",
1168 "al_r8_r9_0x00000558"},
1169 {{al, r14, r1, 0x007f8000},
1170 false,
1171 al,
1172 "al r14 r1 0x007f8000",
1173 "al_r14_r1_0x007f8000"},
1174 {{al, r11, r0, 0xab00ab00},
1175 false,
1176 al,
1177 "al r11 r0 0xab00ab00",
1178 "al_r11_r0_0xab00ab00"},
1179 {{al, r11, r8, 0x00000156},
1180 false,
1181 al,
1182 "al r11 r8 0x00000156",
1183 "al_r11_r8_0x00000156"},
1184 {{al, r4, r10, 0x00055800},
1185 false,
1186 al,
1187 "al r4 r10 0x00055800",
1188 "al_r4_r10_0x00055800"},
1189 {{al, r2, r7, 0x00007f80},
1190 false,
1191 al,
1192 "al r2 r7 0x00007f80",
1193 "al_r2_r7_0x00007f80"},
1194 {{al, r0, r6, 0x00558000},
1195 false,
1196 al,
1197 "al r0 r6 0x00558000",
1198 "al_r0_r6_0x00558000"},
1199 {{al, r4, r2, 0x00558000},
1200 false,
1201 al,
1202 "al r4 r2 0x00558000",
1203 "al_r4_r2_0x00558000"},
1204 {{al, r2, r3, 0x0007f800},
1205 false,
1206 al,
1207 "al r2 r3 0x0007f800",
1208 "al_r2_r3_0x0007f800"},
1209 {{al, r14, r14, 0xab00ab00},
1210 false,
1211 al,
1212 "al r14 r14 0xab00ab00",
1213 "al_r14_r14_0xab00ab00"},
1214 {{al, r0, r13, 0x000000ff},
1215 false,
1216 al,
1217 "al r0 r13 0x000000ff",
1218 "al_r0_r13_0x000000ff"},
1219 {{al, r10, r9, 0xab00ab00},
1220 false,
1221 al,
1222 "al r10 r9 0xab00ab00",
1223 "al_r10_r9_0xab00ab00"},
1224 {{al, r1, r1, 0x3fc00000},
1225 false,
1226 al,
1227 "al r1 r1 0x3fc00000",
1228 "al_r1_r1_0x3fc00000"},
1229 {{al, r8, r6, 0x002ac000},
1230 false,
1231 al,
1232 "al r8 r6 0x002ac000",
1233 "al_r8_r6_0x002ac000"},
1234 {{al, r12, r4, 0x55800000},
1235 false,
1236 al,
1237 "al r12 r4 0x55800000",
1238 "al_r12_r4_0x55800000"},
1239 {{al, r6, r10, 0x2ac00000},
1240 false,
1241 al,
1242 "al r6 r10 0x2ac00000",
1243 "al_r6_r10_0x2ac00000"},
1244 {{al, r7, r9, 0x001fe000},
1245 false,
1246 al,
1247 "al r7 r9 0x001fe000",
1248 "al_r7_r9_0x001fe000"},
1249 {{al, r4, r12, 0x00005580},
1250 false,
1251 al,
1252 "al r4 r12 0x00005580",
1253 "al_r4_r12_0x00005580"},
1254 {{al, r9, r8, 0x0ab00000},
1255 false,
1256 al,
1257 "al r9 r8 0x0ab00000",
1258 "al_r9_r8_0x0ab00000"},
1259 {{al, r2, r4, 0xff00ff00},
1260 false,
1261 al,
1262 "al r2 r4 0xff00ff00",
1263 "al_r2_r4_0xff00ff00"},
1264 {{al, r8, r14, 0x00001fe0},
1265 false,
1266 al,
1267 "al r8 r14 0x00001fe0",
1268 "al_r8_r14_0x00001fe0"},
1269 {{al, r5, r3, 0x003fc000},
1270 false,
1271 al,
1272 "al r5 r3 0x003fc000",
1273 "al_r5_r3_0x003fc000"},
1274 {{al, r2, r10, 0x00ff00ff},
1275 false,
1276 al,
1277 "al r2 r10 0x00ff00ff",
1278 "al_r2_r10_0x00ff00ff"},
1279 {{al, r11, r12, 0x15600000},
1280 false,
1281 al,
1282 "al r11 r12 0x15600000",
1283 "al_r11_r12_0x15600000"},
1284 {{al, r1, r5, 0x00002ac0},
1285 false,
1286 al,
1287 "al r1 r5 0x00002ac0",
1288 "al_r1_r5_0x00002ac0"},
1289 {{al, r3, r7, 0x2ac00000},
1290 false,
1291 al,
1292 "al r3 r7 0x2ac00000",
1293 "al_r3_r7_0x2ac00000"},
1294 {{al, r5, r1, 0xffffffff},
1295 false,
1296 al,
1297 "al r5 r1 0xffffffff",
1298 "al_r5_r1_0xffffffff"},
1299 {{al, r4, r10, 0xff00ff00},
1300 false,
1301 al,
1302 "al r4 r10 0xff00ff00",
1303 "al_r4_r10_0xff00ff00"},
1304 {{al, r1, r2, 0x00001fe0},
1305 false,
1306 al,
1307 "al r1 r2 0x00001fe0",
1308 "al_r1_r2_0x00001fe0"},
1309 {{al, r5, r14, 0x000000ff},
1310 false,
1311 al,
1312 "al r5 r14 0x000000ff",
1313 "al_r5_r14_0x000000ff"},
1314 {{al, r14, r0, 0x000ab000},
1315 false,
1316 al,
1317 "al r14 r0 0x000ab000",
1318 "al_r14_r0_0x000ab000"},
1319 {{al, r10, r3, 0x00ab0000},
1320 false,
1321 al,
1322 "al r10 r3 0x00ab0000",
1323 "al_r10_r3_0x00ab0000"},
1324 {{al, r10, r12, 0x03fc0000},
1325 false,
1326 al,
1327 "al r10 r12 0x03fc0000",
1328 "al_r10_r12_0x03fc0000"},
1329 {{al, r8, r11, 0x0007f800},
1330 false,
1331 al,
1332 "al r8 r11 0x0007f800",
1333 "al_r8_r11_0x0007f800"},
1334 {{al, r9, r13, 0x0001fe00},
1335 false,
1336 al,
1337 "al r9 r13 0x0001fe00",
1338 "al_r9_r13_0x0001fe00"},
1339 {{al, r12, r13, 0x02ac0000},
1340 false,
1341 al,
1342 "al r12 r13 0x02ac0000",
1343 "al_r12_r13_0x02ac0000"},
1344 {{al, r3, r9, 0x00ab00ab},
1345 false,
1346 al,
1347 "al r3 r9 0x00ab00ab",
1348 "al_r3_r9_0x00ab00ab"},
1349 {{al, r10, r1, 0x3fc00000},
1350 false,
1351 al,
1352 "al r10 r1 0x3fc00000",
1353 "al_r10_r1_0x3fc00000"},
1354 {{al, r6, r8, 0x00000558},
1355 false,
1356 al,
1357 "al r6 r8 0x00000558",
1358 "al_r6_r8_0x00000558"},
1359 {{al, r6, r12, 0x0000ab00},
1360 false,
1361 al,
1362 "al r6 r12 0x0000ab00",
1363 "al_r6_r12_0x0000ab00"},
1364 {{al, r14, r13, 0x000ab000},
1365 false,
1366 al,
1367 "al r14 r13 0x000ab000",
1368 "al_r14_r13_0x000ab000"},
1369 {{al, r1, r5, 0x1fe00000},
1370 false,
1371 al,
1372 "al r1 r5 0x1fe00000",
1373 "al_r1_r5_0x1fe00000"},
1374 {{al, r11, r3, 0x02ac0000},
1375 false,
1376 al,
1377 "al r11 r3 0x02ac0000",
1378 "al_r11_r3_0x02ac0000"},
1379 {{al, r9, r5, 0x55800000},
1380 false,
1381 al,
1382 "al r9 r5 0x55800000",
1383 "al_r9_r5_0x55800000"},
1384 {{al, r5, r5, 0x000ab000},
1385 false,
1386 al,
1387 "al r5 r5 0x000ab000",
1388 "al_r5_r5_0x000ab000"},
1389 {{al, r0, r12, 0x003fc000},
1390 false,
1391 al,
1392 "al r0 r12 0x003fc000",
1393 "al_r0_r12_0x003fc000"},
1394 {{al, r10, r4, 0x0000ab00},
1395 false,
1396 al,
1397 "al r10 r4 0x0000ab00",
1398 "al_r10_r4_0x0000ab00"},
1399 {{al, r3, r2, 0x0000ff00},
1400 false,
1401 al,
1402 "al r3 r2 0x0000ff00",
1403 "al_r3_r2_0x0000ff00"},
1404 {{al, r14, r8, 0x3fc00000},
1405 false,
1406 al,
1407 "al r14 r8 0x3fc00000",
1408 "al_r14_r8_0x3fc00000"},
1409 {{al, r10, r13, 0x05580000},
1410 false,
1411 al,
1412 "al r10 r13 0x05580000",
1413 "al_r10_r13_0x05580000"},
1414 {{al, r4, r13, 0x00156000},
1415 false,
1416 al,
1417 "al r4 r13 0x00156000",
1418 "al_r4_r13_0x00156000"},
1419 {{al, r7, r2, 0x000002ac},
1420 false,
1421 al,
1422 "al r7 r2 0x000002ac",
1423 "al_r7_r2_0x000002ac"},
1424 {{al, r5, r10, 0x000002ac},
1425 false,
1426 al,
1427 "al r5 r10 0x000002ac",
1428 "al_r5_r10_0x000002ac"},
1429 {{al, r7, r0, 0xab000000},
1430 false,
1431 al,
1432 "al r7 r0 0xab000000",
1433 "al_r7_r0_0xab000000"},
1434 {{al, r1, r10, 0x000002ac},
1435 false,
1436 al,
1437 "al r1 r10 0x000002ac",
1438 "al_r1_r10_0x000002ac"},
1439 {{al, r11, r9, 0x00002ac0},
1440 false,
1441 al,
1442 "al r11 r9 0x00002ac0",
1443 "al_r11_r9_0x00002ac0"},
1444 {{al, r4, r0, 0x000001fe},
1445 false,
1446 al,
1447 "al r4 r0 0x000001fe",
1448 "al_r4_r0_0x000001fe"},
1449 {{al, r11, r9, 0x0003fc00},
1450 false,
1451 al,
1452 "al r11 r9 0x0003fc00",
1453 "al_r11_r9_0x0003fc00"},
1454 {{al, r8, r3, 0x00005580},
1455 false,
1456 al,
1457 "al r8 r3 0x00005580",
1458 "al_r8_r3_0x00005580"},
1459 {{al, r4, r4, 0xffffffff},
1460 false,
1461 al,
1462 "al r4 r4 0xffffffff",
1463 "al_r4_r4_0xffffffff"},
1464 {{al, r1, r9, 0x00000558},
1465 false,
1466 al,
1467 "al r1 r9 0x00000558",
1468 "al_r1_r9_0x00000558"},
1469 {{al, r9, r2, 0x00ab0000},
1470 false,
1471 al,
1472 "al r9 r2 0x00ab0000",
1473 "al_r9_r2_0x00ab0000"},
1474 {{al, r11, r6, 0x00003fc0},
1475 false,
1476 al,
1477 "al r11 r6 0x00003fc0",
1478 "al_r11_r6_0x00003fc0"},
1479 {{al, r11, r11, 0x01fe0000},
1480 false,
1481 al,
1482 "al r11 r11 0x01fe0000",
1483 "al_r11_r11_0x01fe0000"},
1484 {{al, r6, r10, 0x0001fe00},
1485 false,
1486 al,
1487 "al r6 r10 0x0001fe00",
1488 "al_r6_r10_0x0001fe00"},
1489 {{al, r8, r3, 0x00000156},
1490 false,
1491 al,
1492 "al r8 r3 0x00000156",
1493 "al_r8_r3_0x00000156"},
1494 {{al, r12, r12, 0x0002ac00},
1495 false,
1496 al,
1497 "al r12 r12 0x0002ac00",
1498 "al_r12_r12_0x0002ac00"},
1499 {{al, r8, r6, 0x7f800000},
1500 false,
1501 al,
1502 "al r8 r6 0x7f800000",
1503 "al_r8_r6_0x7f800000"},
1504 {{al, r5, r13, 0x000002ac},
1505 false,
1506 al,
1507 "al r5 r13 0x000002ac",
1508 "al_r5_r13_0x000002ac"},
1509 {{al, r5, r13, 0x15600000},
1510 false,
1511 al,
1512 "al r5 r13 0x15600000",
1513 "al_r5_r13_0x15600000"},
1514 {{al, r8, r8, 0x000000ab},
1515 false,
1516 al,
1517 "al r8 r8 0x000000ab",
1518 "al_r8_r8_0x000000ab"},
1519 {{al, r12, r14, 0x00156000},
1520 false,
1521 al,
1522 "al r12 r14 0x00156000",
1523 "al_r12_r14_0x00156000"},
1524 {{al, r1, r7, 0x003fc000},
1525 false,
1526 al,
1527 "al r1 r7 0x003fc000",
1528 "al_r1_r7_0x003fc000"},
1529 {{al, r8, r0, 0x00003fc0},
1530 false,
1531 al,
1532 "al r8 r0 0x00003fc0",
1533 "al_r8_r0_0x00003fc0"},
1534 {{al, r14, r11, 0x0007f800},
1535 false,
1536 al,
1537 "al r14 r11 0x0007f800",
1538 "al_r14_r11_0x0007f800"},
1539 {{al, r3, r8, 0x00ab00ab},
1540 false,
1541 al,
1542 "al r3 r8 0x00ab00ab",
1543 "al_r3_r8_0x00ab00ab"},
1544 {{al, r14, r8, 0x55800000},
1545 false,
1546 al,
1547 "al r14 r8 0x55800000",
1548 "al_r14_r8_0x55800000"},
1549 {{al, r7, r8, 0x000ff000},
1550 false,
1551 al,
1552 "al r7 r8 0x000ff000",
1553 "al_r7_r8_0x000ff000"},
1554 {{al, r4, r11, 0x01fe0000},
1555 false,
1556 al,
1557 "al r4 r11 0x01fe0000",
1558 "al_r4_r11_0x01fe0000"},
1559 {{al, r2, r4, 0x01560000},
1560 false,
1561 al,
1562 "al r2 r4 0x01560000",
1563 "al_r2_r4_0x01560000"},
1564 {{al, r4, r3, 0xffffffff},
1565 false,
1566 al,
1567 "al r4 r3 0xffffffff",
1568 "al_r4_r3_0xffffffff"},
1569 {{al, r7, r8, 0xab000000},
1570 false,
1571 al,
1572 "al r7 r8 0xab000000",
1573 "al_r7_r8_0xab000000"},
1574 {{al, r0, r13, 0x00000ab0},
1575 false,
1576 al,
1577 "al r0 r13 0x00000ab0",
1578 "al_r0_r13_0x00000ab0"},
1579 {{al, r1, r2, 0x000001fe},
1580 false,
1581 al,
1582 "al r1 r2 0x000001fe",
1583 "al_r1_r2_0x000001fe"},
1584 {{al, r8, r14, 0x02ac0000},
1585 false,
1586 al,
1587 "al r8 r14 0x02ac0000",
1588 "al_r8_r14_0x02ac0000"},
1589 {{al, r4, r5, 0x00558000},
1590 false,
1591 al,
1592 "al r4 r5 0x00558000",
1593 "al_r4_r5_0x00558000"},
1594 {{al, r6, r7, 0xff00ff00},
1595 false,
1596 al,
1597 "al r6 r7 0xff00ff00",
1598 "al_r6_r7_0xff00ff00"},
1599 {{al, r8, r12, 0x001fe000},
1600 false,
1601 al,
1602 "al r8 r12 0x001fe000",
1603 "al_r8_r12_0x001fe000"},
1604 {{al, r6, r4, 0x07f80000},
1605 false,
1606 al,
1607 "al r6 r4 0x07f80000",
1608 "al_r6_r4_0x07f80000"},
1609 {{al, r4, r0, 0x00001fe0},
1610 false,
1611 al,
1612 "al r4 r0 0x00001fe0",
1613 "al_r4_r0_0x00001fe0"},
1614 {{al, r14, r3, 0xff00ff00},
1615 false,
1616 al,
1617 "al r14 r3 0xff00ff00",
1618 "al_r14_r3_0xff00ff00"},
1619 {{al, r0, r6, 0xab000000},
1620 false,
1621 al,
1622 "al r0 r6 0xab000000",
1623 "al_r0_r6_0xab000000"},
1624 {{al, r12, r13, 0x00000ab0},
1625 false,
1626 al,
1627 "al r12 r13 0x00000ab0",
1628 "al_r12_r13_0x00000ab0"},
1629 {{al, r12, r8, 0x00000558},
1630 false,
1631 al,
1632 "al r12 r8 0x00000558",
1633 "al_r12_r8_0x00000558"},
1634 {{al, r3, r12, 0x0003fc00},
1635 false,
1636 al,
1637 "al r3 r12 0x0003fc00",
1638 "al_r3_r12_0x0003fc00"},
1639 {{al, r2, r11, 0x7f800000},
1640 false,
1641 al,
1642 "al r2 r11 0x7f800000",
1643 "al_r2_r11_0x7f800000"},
1644 {{al, r10, r4, 0x15600000},
1645 false,
1646 al,
1647 "al r10 r4 0x15600000",
1648 "al_r10_r4_0x15600000"},
1649 {{al, r8, r7, 0x0ab00000},
1650 false,
1651 al,
1652 "al r8 r7 0x0ab00000",
1653 "al_r8_r7_0x0ab00000"},
1654 {{al, r10, r6, 0x000000ff},
1655 false,
1656 al,
1657 "al r10 r6 0x000000ff",
1658 "al_r10_r6_0x000000ff"},
1659 {{al, r3, r4, 0xff00ff00},
1660 false,
1661 al,
1662 "al r3 r4 0xff00ff00",
1663 "al_r3_r4_0xff00ff00"},
1664 {{al, r14, r10, 0x00ab0000},
1665 false,
1666 al,
1667 "al r14 r10 0x00ab0000",
1668 "al_r14_r10_0x00ab0000"},
1669 {{al, r8, r3, 0x0002ac00},
1670 false,
1671 al,
1672 "al r8 r3 0x0002ac00",
1673 "al_r8_r3_0x0002ac00"},
1674 {{al, r8, r8, 0x00000558},
1675 false,
1676 al,
1677 "al r8 r8 0x00000558",
1678 "al_r8_r8_0x00000558"},
1679 {{al, r12, r4, 0x00015600},
1680 false,
1681 al,
1682 "al r12 r4 0x00015600",
1683 "al_r12_r4_0x00015600"},
1684 {{al, r8, r1, 0x002ac000},
1685 false,
1686 al,
1687 "al r8 r1 0x002ac000",
1688 "al_r8_r1_0x002ac000"},
1689 {{al, r8, r5, 0x000000ab},
1690 false,
1691 al,
1692 "al r8 r5 0x000000ab",
1693 "al_r8_r5_0x000000ab"},
1694 {{al, r6, r6, 0x000000ab},
1695 false,
1696 al,
1697 "al r6 r6 0x000000ab",
1698 "al_r6_r6_0x000000ab"},
1699 {{al, r5, r7, 0x00002ac0},
1700 false,
1701 al,
1702 "al r5 r7 0x00002ac0",
1703 "al_r5_r7_0x00002ac0"},
1704 {{al, r11, r4, 0x00000ff0},
1705 false,
1706 al,
1707 "al r11 r4 0x00000ff0",
1708 "al_r11_r4_0x00000ff0"},
1709 {{al, r9, r9, 0x00000ff0},
1710 false,
1711 al,
1712 "al r9 r9 0x00000ff0",
1713 "al_r9_r9_0x00000ff0"},
1714 {{al, r0, r8, 0x00ff0000},
1715 false,
1716 al,
1717 "al r0 r8 0x00ff0000",
1718 "al_r0_r8_0x00ff0000"},
1719 {{al, r9, r11, 0x000000ab},
1720 false,
1721 al,
1722 "al r9 r11 0x000000ab",
1723 "al_r9_r11_0x000000ab"},
1724 {{al, r7, r5, 0x000000ff},
1725 false,
1726 al,
1727 "al r7 r5 0x000000ff",
1728 "al_r7_r5_0x000000ff"},
1729 {{al, r14, r0, 0x15600000},
1730 false,
1731 al,
1732 "al r14 r0 0x15600000",
1733 "al_r14_r0_0x15600000"},
1734 {{al, r10, r9, 0x00000156},
1735 false,
1736 al,
1737 "al r10 r9 0x00000156",
1738 "al_r10_r9_0x00000156"},
1739 {{al, r3, r7, 0x00ff0000},
1740 false,
1741 al,
1742 "al r3 r7 0x00ff0000",
1743 "al_r3_r7_0x00ff0000"},
1744 {{al, r6, r11, 0xab00ab00},
1745 false,
1746 al,
1747 "al r6 r11 0xab00ab00",
1748 "al_r6_r11_0xab00ab00"},
1749 {{al, r5, r2, 0x002ac000},
1750 false,
1751 al,
1752 "al r5 r2 0x002ac000",
1753 "al_r5_r2_0x002ac000"},
1754 {{al, r9, r14, 0x55800000},
1755 false,
1756 al,
1757 "al r9 r14 0x55800000",
1758 "al_r9_r14_0x55800000"},
1759 {{al, r10, r13, 0x15600000},
1760 false,
1761 al,
1762 "al r10 r13 0x15600000",
1763 "al_r10_r13_0x15600000"},
1764 {{al, r13, r7, 0x0ff00000},
1765 false,
1766 al,
1767 "al r13 r7 0x0ff00000",
1768 "al_r13_r7_0x0ff00000"},
1769 {{al, r12, r5, 0xffffffff},
1770 false,
1771 al,
1772 "al r12 r5 0xffffffff",
1773 "al_r12_r5_0xffffffff"},
1774 {{al, r8, r10, 0x00000156},
1775 false,
1776 al,
1777 "al r8 r10 0x00000156",
1778 "al_r8_r10_0x00000156"},
1779 {{al, r7, r6, 0x00005580},
1780 false,
1781 al,
1782 "al r7 r6 0x00005580",
1783 "al_r7_r6_0x00005580"},
1784 {{al, r6, r6, 0x0ab00000},
1785 false,
1786 al,
1787 "al r6 r6 0x0ab00000",
1788 "al_r6_r6_0x0ab00000"},
1789 {{al, r3, r7, 0x01fe0000},
1790 false,
1791 al,
1792 "al r3 r7 0x01fe0000",
1793 "al_r3_r7_0x01fe0000"},
1794 {{al, r14, r9, 0x00558000},
1795 false,
1796 al,
1797 "al r14 r9 0x00558000",
1798 "al_r14_r9_0x00558000"},
1799 {{al, r3, r13, 0x000007f8},
1800 false,
1801 al,
1802 "al r3 r13 0x000007f8",
1803 "al_r3_r13_0x000007f8"},
1804 {{al, r10, r2, 0x00055800},
1805 false,
1806 al,
1807 "al r10 r2 0x00055800",
1808 "al_r10_r2_0x00055800"},
1809 {{al, r5, r14, 0x00005580},
1810 false,
1811 al,
1812 "al r5 r14 0x00005580",
1813 "al_r5_r14_0x00005580"},
1814 {{al, r9, r12, 0xab000000},
1815 false,
1816 al,
1817 "al r9 r12 0xab000000",
1818 "al_r9_r12_0xab000000"},
1819 {{al, r2, r14, 0x00000156},
1820 false,
1821 al,
1822 "al r2 r14 0x00000156",
1823 "al_r2_r14_0x00000156"},
1824 {{al, r6, r10, 0x000ff000},
1825 false,
1826 al,
1827 "al r6 r10 0x000ff000",
1828 "al_r6_r10_0x000ff000"},
1829 {{al, r6, r7, 0x000007f8},
1830 false,
1831 al,
1832 "al r6 r7 0x000007f8",
1833 "al_r6_r7_0x000007f8"},
1834 {{al, r8, r3, 0x7f800000},
1835 false,
1836 al,
1837 "al r8 r3 0x7f800000",
1838 "al_r8_r3_0x7f800000"},
1839 {{al, r0, r12, 0x15600000},
1840 false,
1841 al,
1842 "al r0 r12 0x15600000",
1843 "al_r0_r12_0x15600000"},
1844 {{al, r1, r6, 0x00558000},
1845 false,
1846 al,
1847 "al r1 r6 0x00558000",
1848 "al_r1_r6_0x00558000"},
1849 {{al, r3, r8, 0x55800000},
1850 false,
1851 al,
1852 "al r3 r8 0x55800000",
1853 "al_r3_r8_0x55800000"},
1854 {{al, r1, r14, 0x000003fc},
1855 false,
1856 al,
1857 "al r1 r14 0x000003fc",
1858 "al_r1_r14_0x000003fc"},
1859 {{al, r0, r2, 0x0ab00000},
1860 false,
1861 al,
1862 "al r0 r2 0x0ab00000",
1863 "al_r0_r2_0x0ab00000"},
1864 {{al, r10, r12, 0x00000156},
1865 false,
1866 al,
1867 "al r10 r12 0x00000156",
1868 "al_r10_r12_0x00000156"},
1869 {{al, r12, r14, 0x03fc0000},
1870 false,
1871 al,
1872 "al r12 r14 0x03fc0000",
1873 "al_r12_r14_0x03fc0000"},
1874 {{al, r2, r5, 0x0001fe00},
1875 false,
1876 al,
1877 "al r2 r5 0x0001fe00",
1878 "al_r2_r5_0x0001fe00"},
1879 {{al, r5, r11, 0x000ab000},
1880 false,
1881 al,
1882 "al r5 r11 0x000ab000",
1883 "al_r5_r11_0x000ab000"},
1884 {{al, r14, r14, 0x0001fe00},
1885 false,
1886 al,
1887 "al r14 r14 0x0001fe00",
1888 "al_r14_r14_0x0001fe00"},
1889 {{al, r13, r2, 0x00003fc0},
1890 false,
1891 al,
1892 "al r13 r2 0x00003fc0",
1893 "al_r13_r2_0x00003fc0"},
1894 {{al, r0, r8, 0xab000000},
1895 false,
1896 al,
1897 "al r0 r8 0xab000000",
1898 "al_r0_r8_0xab000000"},
1899 {{al, r12, r0, 0x000000ab},
1900 false,
1901 al,
1902 "al r12 r0 0x000000ab",
1903 "al_r12_r0_0x000000ab"},
1904 {{al, r11, r10, 0x002ac000},
1905 false,
1906 al,
1907 "al r11 r10 0x002ac000",
1908 "al_r11_r10_0x002ac000"},
1909 {{al, r12, r11, 0x00ab0000},
1910 false,
1911 al,
1912 "al r12 r11 0x00ab0000",
1913 "al_r12_r11_0x00ab0000"},
1914 {{al, r2, r9, 0x0ff00000},
1915 false,
1916 al,
1917 "al r2 r9 0x0ff00000",
1918 "al_r2_r9_0x0ff00000"},
1919 {{al, r7, r4, 0x000001fe},
1920 false,
1921 al,
1922 "al r7 r4 0x000001fe",
1923 "al_r7_r4_0x000001fe"},
1924 {{al, r7, r6, 0x0000ff00},
1925 false,
1926 al,
1927 "al r7 r6 0x0000ff00",
1928 "al_r7_r6_0x0000ff00"},
1929 {{al, r11, r14, 0x05580000},
1930 false,
1931 al,
1932 "al r11 r14 0x05580000",
1933 "al_r11_r14_0x05580000"},
1934 {{al, r6, r10, 0x00000558},
1935 false,
1936 al,
1937 "al r6 r10 0x00000558",
1938 "al_r6_r10_0x00000558"},
1939 {{al, r11, r6, 0x0001fe00},
1940 false,
1941 al,
1942 "al r11 r6 0x0001fe00",
1943 "al_r11_r6_0x0001fe00"},
1944 {{al, r11, r12, 0xab00ab00},
1945 false,
1946 al,
1947 "al r11 r12 0xab00ab00",
1948 "al_r11_r12_0xab00ab00"},
1949 {{al, r1, r8, 0x7f800000},
1950 false,
1951 al,
1952 "al r1 r8 0x7f800000",
1953 "al_r1_r8_0x7f800000"},
1954 {{al, r4, r3, 0x0000ff00},
1955 false,
1956 al,
1957 "al r4 r3 0x0000ff00",
1958 "al_r4_r3_0x0000ff00"},
1959 {{al, r5, r4, 0x00ff00ff},
1960 false,
1961 al,
1962 "al r5 r4 0x00ff00ff",
1963 "al_r5_r4_0x00ff00ff"},
1964 {{al, r12, r11, 0x2ac00000},
1965 false,
1966 al,
1967 "al r12 r11 0x2ac00000",
1968 "al_r12_r11_0x2ac00000"},
1969 {{al, r1, r6, 0xab00ab00},
1970 false,
1971 al,
1972 "al r1 r6 0xab00ab00",
1973 "al_r1_r6_0xab00ab00"},
1974 {{al, r6, r3, 0x000000ab},
1975 false,
1976 al,
1977 "al r6 r3 0x000000ab",
1978 "al_r6_r3_0x000000ab"},
1979 {{al, r2, r11, 0x0007f800},
1980 false,
1981 al,
1982 "al r2 r11 0x0007f800",
1983 "al_r2_r11_0x0007f800"},
1984 {{al, r3, r0, 0x00001560},
1985 false,
1986 al,
1987 "al r3 r0 0x00001560",
1988 "al_r3_r0_0x00001560"},
1989 {{al, r1, r14, 0x00000558},
1990 false,
1991 al,
1992 "al r1 r14 0x00000558",
1993 "al_r1_r14_0x00000558"},
1994 {{al, r10, r8, 0x00558000},
1995 false,
1996 al,
1997 "al r10 r8 0x00558000",
1998 "al_r10_r8_0x00558000"},
1999 {{al, r0, r8, 0x000ff000},
2000 false,
2001 al,
2002 "al r0 r8 0x000ff000",
2003 "al_r0_r8_0x000ff000"},
2004 {{al, r13, r6, 0x007f8000},
2005 false,
2006 al,
2007 "al r13 r6 0x007f8000",
2008 "al_r13_r6_0x007f8000"},
2009 {{al, r3, r10, 0x000002ac},
2010 false,
2011 al,
2012 "al r3 r10 0x000002ac",
2013 "al_r3_r10_0x000002ac"},
2014 {{al, r12, r2, 0x0003fc00},
2015 false,
2016 al,
2017 "al r12 r2 0x0003fc00",
2018 "al_r12_r2_0x0003fc00"},
2019 {{al, r5, r5, 0x02ac0000},
2020 false,
2021 al,
2022 "al r5 r5 0x02ac0000",
2023 "al_r5_r5_0x02ac0000"},
2024 {{al, r11, r12, 0x001fe000},
2025 false,
2026 al,
2027 "al r11 r12 0x001fe000",
2028 "al_r11_r12_0x001fe000"},
2029 {{al, r0, r14, 0x001fe000},
2030 false,
2031 al,
2032 "al r0 r14 0x001fe000",
2033 "al_r0_r14_0x001fe000"},
2034 {{al, r0, r14, 0x02ac0000},
2035 false,
2036 al,
2037 "al r0 r14 0x02ac0000",
2038 "al_r0_r14_0x02ac0000"},
2039 {{al, r6, r7, 0x0ff00000},
2040 false,
2041 al,
2042 "al r6 r7 0x0ff00000",
2043 "al_r6_r7_0x0ff00000"},
2044 {{al, r10, r13, 0x00000156},
2045 false,
2046 al,
2047 "al r10 r13 0x00000156",
2048 "al_r10_r13_0x00000156"},
2049 {{al, r3, r7, 0x000007f8},
2050 false,
2051 al,
2052 "al r3 r7 0x000007f8",
2053 "al_r3_r7_0x000007f8"},
2054 {{al, r4, r10, 0x000000ab},
2055 false,
2056 al,
2057 "al r4 r10 0x000000ab",
2058 "al_r4_r10_0x000000ab"},
2059 {{al, r0, r6, 0x00000558},
2060 false,
2061 al,
2062 "al r0 r6 0x00000558",
2063 "al_r0_r6_0x00000558"},
2064 {{al, r1, r1, 0x05580000},
2065 false,
2066 al,
2067 "al r1 r1 0x05580000",
2068 "al_r1_r1_0x05580000"},
2069 {{al, r8, r2, 0x00001560},
2070 false,
2071 al,
2072 "al r8 r2 0x00001560",
2073 "al_r8_r2_0x00001560"},
2074 {{al, r9, r5, 0x0001fe00},
2075 false,
2076 al,
2077 "al r9 r5 0x0001fe00",
2078 "al_r9_r5_0x0001fe00"},
2079 {{al, r13, r9, 0x0ab00000},
2080 false,
2081 al,
2082 "al r13 r9 0x0ab00000",
2083 "al_r13_r9_0x0ab00000"},
2084 {{al, r13, r9, 0x00007f80},
2085 false,
2086 al,
2087 "al r13 r9 0x00007f80",
2088 "al_r13_r9_0x00007f80"},
2089 {{al, r10, r5, 0x0000ab00},
2090 false,
2091 al,
2092 "al r10 r5 0x0000ab00",
2093 "al_r10_r5_0x0000ab00"},
2094 {{al, r6, r13, 0x007f8000},
2095 false,
2096 al,
2097 "al r6 r13 0x007f8000",
2098 "al_r6_r13_0x007f8000"},
2099 {{al, r5, r9, 0x000ab000},
2100 false,
2101 al,
2102 "al r5 r9 0x000ab000",
2103 "al_r5_r9_0x000ab000"},
2104 {{al, r4, r4, 0x000000ab},
2105 false,
2106 al,
2107 "al r4 r4 0x000000ab",
2108 "al_r4_r4_0x000000ab"},
2109 {{al, r13, r5, 0xab00ab00},
2110 false,
2111 al,
2112 "al r13 r5 0xab00ab00",
2113 "al_r13_r5_0xab00ab00"},
2114 {{al, r12, r3, 0x00005580},
2115 false,
2116 al,
2117 "al r12 r3 0x00005580",
2118 "al_r12_r3_0x00005580"},
2119 {{al, r0, r10, 0x55800000},
2120 false,
2121 al,
2122 "al r0 r10 0x55800000",
2123 "al_r0_r10_0x55800000"},
2124 {{al, r2, r8, 0x00ab00ab},
2125 false,
2126 al,
2127 "al r2 r8 0x00ab00ab",
2128 "al_r2_r8_0x00ab00ab"},
2129 {{al, r11, r5, 0x0003fc00},
2130 false,
2131 al,
2132 "al r11 r5 0x0003fc00",
2133 "al_r11_r5_0x0003fc00"},
2134 {{al, r11, r0, 0x00ab0000},
2135 false,
2136 al,
2137 "al r11 r0 0x00ab0000",
2138 "al_r11_r0_0x00ab0000"},
2139 {{al, r10, r2, 0x000002ac},
2140 false,
2141 al,
2142 "al r10 r2 0x000002ac",
2143 "al_r10_r2_0x000002ac"},
2144 {{al, r11, r12, 0x00055800},
2145 false,
2146 al,
2147 "al r11 r12 0x00055800",
2148 "al_r11_r12_0x00055800"},
2149 {{al, r5, r13, 0x00000ff0},
2150 false,
2151 al,
2152 "al r5 r13 0x00000ff0",
2153 "al_r5_r13_0x00000ff0"},
2154 {{al, r4, r14, 0x15600000},
2155 false,
2156 al,
2157 "al r4 r14 0x15600000",
2158 "al_r4_r14_0x15600000"},
2159 {{al, r10, r1, 0x00003fc0},
2160 false,
2161 al,
2162 "al r10 r1 0x00003fc0",
2163 "al_r10_r1_0x00003fc0"},
2164 {{al, r14, r8, 0xff000000},
2165 false,
2166 al,
2167 "al r14 r8 0xff000000",
2168 "al_r14_r8_0xff000000"},
2169 {{al, r12, r0, 0x00ff0000},
2170 false,
2171 al,
2172 "al r12 r0 0x00ff0000",
2173 "al_r12_r0_0x00ff0000"},
2174 {{al, r4, r5, 0x3fc00000},
2175 false,
2176 al,
2177 "al r4 r5 0x3fc00000",
2178 "al_r4_r5_0x3fc00000"},
2179 {{al, r14, r10, 0x3fc00000},
2180 false,
2181 al,
2182 "al r14 r10 0x3fc00000",
2183 "al_r14_r10_0x3fc00000"},
2184 {{al, r10, r1, 0x00015600},
2185 false,
2186 al,
2187 "al r10 r1 0x00015600",
2188 "al_r10_r1_0x00015600"},
2189 {{al, r4, r3, 0xff000000},
2190 false,
2191 al,
2192 "al r4 r3 0xff000000",
2193 "al_r4_r3_0xff000000"},
2194 {{al, r10, r10, 0x02ac0000},
2195 false,
2196 al,
2197 "al r10 r10 0x02ac0000",
2198 "al_r10_r10_0x02ac0000"},
2199 {{al, r9, r9, 0x000ff000},
2200 false,
2201 al,
2202 "al r9 r9 0x000ff000",
2203 "al_r9_r9_0x000ff000"},
2204 {{al, r13, r7, 0x0002ac00},
2205 false,
2206 al,
2207 "al r13 r7 0x0002ac00",
2208 "al_r13_r7_0x0002ac00"},
2209 {{al, r7, r8, 0x00001fe0},
2210 false,
2211 al,
2212 "al r7 r8 0x00001fe0",
2213 "al_r7_r8_0x00001fe0"},
2214 {{al, r2, r4, 0x00001560},
2215 false,
2216 al,
2217 "al r2 r4 0x00001560",
2218 "al_r2_r4_0x00001560"},
2219 {{al, r13, r7, 0x00156000},
2220 false,
2221 al,
2222 "al r13 r7 0x00156000",
2223 "al_r13_r7_0x00156000"},
2224 {{al, r9, r9, 0x000003fc},
2225 false,
2226 al,
2227 "al r9 r9 0x000003fc",
2228 "al_r9_r9_0x000003fc"},
2229 {{al, r0, r3, 0x000ab000},
2230 false,
2231 al,
2232 "al r0 r3 0x000ab000",
2233 "al_r0_r3_0x000ab000"},
2234 {{al, r10, r12, 0x0000ab00},
2235 false,
2236 al,
2237 "al r10 r12 0x0000ab00",
2238 "al_r10_r12_0x0000ab00"},
2239 {{al, r1, r13, 0x00002ac0},
2240 false,
2241 al,
2242 "al r1 r13 0x00002ac0",
2243 "al_r1_r13_0x00002ac0"},
2244 {{al, r3, r10, 0x001fe000},
2245 false,
2246 al,
2247 "al r3 r10 0x001fe000",
2248 "al_r3_r10_0x001fe000"},
2249 {{al, r4, r12, 0x00ff00ff},
2250 false,
2251 al,
2252 "al r4 r12 0x00ff00ff",
2253 "al_r4_r12_0x00ff00ff"},
2254 {{al, r12, r5, 0x003fc000},
2255 false,
2256 al,
2257 "al r12 r5 0x003fc000",
2258 "al_r12_r5_0x003fc000"},
2259 {{al, r11, r2, 0x0001fe00},
2260 false,
2261 al,
2262 "al r11 r2 0x0001fe00",
2263 "al_r11_r2_0x0001fe00"},
2264 {{al, r8, r6, 0x0007f800},
2265 false,
2266 al,
2267 "al r8 r6 0x0007f800",
2268 "al_r8_r6_0x0007f800"},
2269 {{al, r11, r1, 0x000000ff},
2270 false,
2271 al,
2272 "al r11 r1 0x000000ff",
2273 "al_r11_r1_0x000000ff"},
2274 {{al, r5, r2, 0x007f8000},
2275 false,
2276 al,
2277 "al r5 r2 0x007f8000",
2278 "al_r5_r2_0x007f8000"},
2279 {{al, r8, r10, 0xab000000},
2280 false,
2281 al,
2282 "al r8 r10 0xab000000",
2283 "al_r8_r10_0xab000000"},
2284 {{al, r10, r3, 0x000ff000},
2285 false,
2286 al,
2287 "al r10 r3 0x000ff000",
2288 "al_r10_r3_0x000ff000"},
2289 {{al, r6, r0, 0x00ff0000},
2290 false,
2291 al,
2292 "al r6 r0 0x00ff0000",
2293 "al_r6_r0_0x00ff0000"},
2294 {{al, r7, r14, 0x0ff00000},
2295 false,
2296 al,
2297 "al r7 r14 0x0ff00000",
2298 "al_r7_r14_0x0ff00000"},
2299 {{al, r8, r3, 0x00001560},
2300 false,
2301 al,
2302 "al r8 r3 0x00001560",
2303 "al_r8_r3_0x00001560"},
2304 {{al, r13, r9, 0x00000558},
2305 false,
2306 al,
2307 "al r13 r9 0x00000558",
2308 "al_r13_r9_0x00000558"},
2309 {{al, r8, r7, 0x00001fe0},
2310 false,
2311 al,
2312 "al r8 r7 0x00001fe0",
2313 "al_r8_r7_0x00001fe0"},
2314 {{al, r13, r3, 0x0003fc00},
2315 false,
2316 al,
2317 "al r13 r3 0x0003fc00",
2318 "al_r13_r3_0x0003fc00"},
2319 {{al, r4, r14, 0x000000ab},
2320 false,
2321 al,
2322 "al r4 r14 0x000000ab",
2323 "al_r4_r14_0x000000ab"},
2324 {{al, r14, r7, 0x000000ab},
2325 false,
2326 al,
2327 "al r14 r7 0x000000ab",
2328 "al_r14_r7_0x000000ab"},
2329 {{al, r11, r9, 0x00558000},
2330 false,
2331 al,
2332 "al r11 r9 0x00558000",
2333 "al_r11_r9_0x00558000"},
2334 {{al, r3, r10, 0x0000ff00},
2335 false,
2336 al,
2337 "al r3 r10 0x0000ff00",
2338 "al_r3_r10_0x0000ff00"},
2339 {{al, r4, r12, 0x003fc000},
2340 false,
2341 al,
2342 "al r4 r12 0x003fc000",
2343 "al_r4_r12_0x003fc000"},
2344 {{al, r11, r1, 0x002ac000},
2345 false,
2346 al,
2347 "al r11 r1 0x002ac000",
2348 "al_r11_r1_0x002ac000"},
2349 {{al, r12, r0, 0x7f800000},
2350 false,
2351 al,
2352 "al r12 r0 0x7f800000",
2353 "al_r12_r0_0x7f800000"},
2354 {{al, r3, r9, 0x00003fc0},
2355 false,
2356 al,
2357 "al r3 r9 0x00003fc0",
2358 "al_r3_r9_0x00003fc0"},
2359 {{al, r6, r6, 0x0ff00000},
2360 false,
2361 al,
2362 "al r6 r6 0x0ff00000",
2363 "al_r6_r6_0x0ff00000"},
2364 {{al, r1, r11, 0xff000000},
2365 false,
2366 al,
2367 "al r1 r11 0xff000000",
2368 "al_r1_r11_0xff000000"},
2369 {{al, r2, r10, 0x0007f800},
2370 false,
2371 al,
2372 "al r2 r10 0x0007f800",
2373 "al_r2_r10_0x0007f800"},
2374 {{al, r12, r10, 0x000002ac},
2375 false,
2376 al,
2377 "al r12 r10 0x000002ac",
2378 "al_r12_r10_0x000002ac"},
2379 {{al, r10, r8, 0x000003fc},
2380 false,
2381 al,
2382 "al r10 r8 0x000003fc",
2383 "al_r10_r8_0x000003fc"},
2384 {{al, r9, r0, 0x55800000},
2385 false,
2386 al,
2387 "al r9 r0 0x55800000",
2388 "al_r9_r0_0x55800000"},
2389 {{al, r8, r7, 0x1fe00000},
2390 false,
2391 al,
2392 "al r8 r7 0x1fe00000",
2393 "al_r8_r7_0x1fe00000"},
2394 {{al, r4, r0, 0x15600000},
2395 false,
2396 al,
2397 "al r4 r0 0x15600000",
2398 "al_r4_r0_0x15600000"},
2399 {{al, r4, r0, 0xff00ff00},
2400 false,
2401 al,
2402 "al r4 r0 0xff00ff00",
2403 "al_r4_r0_0xff00ff00"},
2404 {{al, r1, r14, 0x00007f80},
2405 false,
2406 al,
2407 "al r1 r14 0x00007f80",
2408 "al_r1_r14_0x00007f80"},
2409 {{al, r7, r3, 0x00ff00ff},
2410 false,
2411 al,
2412 "al r7 r3 0x00ff00ff",
2413 "al_r7_r3_0x00ff00ff"},
2414 {{al, r10, r2, 0x00001560},
2415 false,
2416 al,
2417 "al r10 r2 0x00001560",
2418 "al_r10_r2_0x00001560"},
2419 {{al, r0, r14, 0xabababab},
2420 false,
2421 al,
2422 "al r0 r14 0xabababab",
2423 "al_r0_r14_0xabababab"},
2424 {{al, r3, r4, 0x007f8000},
2425 false,
2426 al,
2427 "al r3 r4 0x007f8000",
2428 "al_r3_r4_0x007f8000"},
2429 {{al, r0, r2, 0x003fc000},
2430 false,
2431 al,
2432 "al r0 r2 0x003fc000",
2433 "al_r0_r2_0x003fc000"},
2434 {{al, r13, r6, 0x0002ac00},
2435 false,
2436 al,
2437 "al r13 r6 0x0002ac00",
2438 "al_r13_r6_0x0002ac00"},
2439 {{al, r11, r5, 0x00001fe0},
2440 false,
2441 al,
2442 "al r11 r5 0x00001fe0",
2443 "al_r11_r5_0x00001fe0"},
2444 {{al, r1, r13, 0x00005580},
2445 false,
2446 al,
2447 "al r1 r13 0x00005580",
2448 "al_r1_r13_0x00005580"},
2449 {{al, r13, r8, 0x000007f8},
2450 false,
2451 al,
2452 "al r13 r8 0x000007f8",
2453 "al_r13_r8_0x000007f8"},
2454 {{al, r6, r4, 0x0ab00000},
2455 false,
2456 al,
2457 "al r6 r4 0x0ab00000",
2458 "al_r6_r4_0x0ab00000"},
2459 {{al, r14, r10, 0x1fe00000},
2460 false,
2461 al,
2462 "al r14 r10 0x1fe00000",
2463 "al_r14_r10_0x1fe00000"},
2464 {{al, r7, r6, 0xff00ff00},
2465 false,
2466 al,
2467 "al r7 r6 0xff00ff00",
2468 "al_r7_r6_0xff00ff00"},
2469 {{al, r11, r5, 0xffffffff},
2470 false,
2471 al,
2472 "al r11 r5 0xffffffff",
2473 "al_r11_r5_0xffffffff"},
2474 {{al, r0, r12, 0xffffffff},
2475 false,
2476 al,
2477 "al r0 r12 0xffffffff",
2478 "al_r0_r12_0xffffffff"},
2479 {{al, r12, r2, 0x15600000},
2480 false,
2481 al,
2482 "al r12 r2 0x15600000",
2483 "al_r12_r2_0x15600000"},
2484 {{al, r3, r12, 0x000ff000},
2485 false,
2486 al,
2487 "al r3 r12 0x000ff000",
2488 "al_r3_r12_0x000ff000"},
2489 {{al, r6, r8, 0x00055800},
2490 false,
2491 al,
2492 "al r6 r8 0x00055800",
2493 "al_r6_r8_0x00055800"},
2494 {{al, r12, r7, 0x05580000},
2495 false,
2496 al,
2497 "al r12 r7 0x05580000",
2498 "al_r12_r7_0x05580000"},
2499 {{al, r8, r5, 0x007f8000},
2500 false,
2501 al,
2502 "al r8 r5 0x007f8000",
2503 "al_r8_r5_0x007f8000"},
2504 {{al, r4, r1, 0x000ab000},
2505 false,
2506 al,
2507 "al r4 r1 0x000ab000",
2508 "al_r4_r1_0x000ab000"},
2509 {{al, r13, r12, 0x02ac0000},
2510 false,
2511 al,
2512 "al r13 r12 0x02ac0000",
2513 "al_r13_r12_0x02ac0000"},
2514 {{al, r9, r8, 0x000000ff},
2515 false,
2516 al,
2517 "al r9 r8 0x000000ff",
2518 "al_r9_r8_0x000000ff"},
2519 {{al, r1, r11, 0x00005580},
2520 false,
2521 al,
2522 "al r1 r11 0x00005580",
2523 "al_r1_r11_0x00005580"},
2524 {{al, r10, r12, 0x02ac0000},
2525 false,
2526 al,
2527 "al r10 r12 0x02ac0000",
2528 "al_r10_r12_0x02ac0000"},
2529 {{al, r7, r9, 0x00ab00ab},
2530 false,
2531 al,
2532 "al r7 r9 0x00ab00ab",
2533 "al_r7_r9_0x00ab00ab"},
2534 {{al, r0, r5, 0x0000ab00},
2535 false,
2536 al,
2537 "al r0 r5 0x0000ab00",
2538 "al_r0_r5_0x0000ab00"},
2539 {{al, r13, r9, 0x00558000},
2540 false,
2541 al,
2542 "al r13 r9 0x00558000",
2543 "al_r13_r9_0x00558000"},
2544 {{al, r0, r1, 0x002ac000},
2545 false,
2546 al,
2547 "al r0 r1 0x002ac000",
2548 "al_r0_r1_0x002ac000"},
2549 {{al, r14, r1, 0x00000ab0},
2550 false,
2551 al,
2552 "al r14 r1 0x00000ab0",
2553 "al_r14_r1_0x00000ab0"},
2554 {{al, r2, r2, 0x00000558},
2555 false,
2556 al,
2557 "al r2 r2 0x00000558",
2558 "al_r2_r2_0x00000558"},
2559 {{al, r10, r13, 0x00ab00ab},
2560 false,
2561 al,
2562 "al r10 r13 0x00ab00ab",
2563 "al_r10_r13_0x00ab00ab"},
2564 {{al, r4, r6, 0x00001560},
2565 false,
2566 al,
2567 "al r4 r6 0x00001560",
2568 "al_r4_r6_0x00001560"},
2569 {{al, r10, r0, 0x00156000},
2570 false,
2571 al,
2572 "al r10 r0 0x00156000",
2573 "al_r10_r0_0x00156000"},
2574 {{al, r10, r13, 0x00156000},
2575 false,
2576 al,
2577 "al r10 r13 0x00156000",
2578 "al_r10_r13_0x00156000"},
2579 {{al, r11, r2, 0x001fe000},
2580 false,
2581 al,
2582 "al r11 r2 0x001fe000",
2583 "al_r11_r2_0x001fe000"},
2584 {{al, r4, r5, 0x2ac00000},
2585 false,
2586 al,
2587 "al r4 r5 0x2ac00000",
2588 "al_r4_r5_0x2ac00000"},
2589 {{al, r8, r8, 0x02ac0000},
2590 false,
2591 al,
2592 "al r8 r8 0x02ac0000",
2593 "al_r8_r8_0x02ac0000"},
2594 {{al, r9, r1, 0x7f800000},
2595 false,
2596 al,
2597 "al r9 r1 0x7f800000",
2598 "al_r9_r1_0x7f800000"},
2599 {{al, r8, r9, 0xff00ff00},
2600 false,
2601 al,
2602 "al r8 r9 0xff00ff00",
2603 "al_r8_r9_0xff00ff00"},
2604 {{al, r12, r7, 0x00ff00ff},
2605 false,
2606 al,
2607 "al r12 r7 0x00ff00ff",
2608 "al_r12_r7_0x00ff00ff"},
2609 {{al, r9, r10, 0x00156000},
2610 false,
2611 al,
2612 "al r9 r10 0x00156000",
2613 "al_r9_r10_0x00156000"}};
2614
2615 // These headers each contain an array of `TestResult` with the reference output
2616 // values. The reference arrays are names `kReference{mnemonic}`.
2617 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-adc-t32.h"
2618 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-adcs-t32.h"
2619 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-add-t32.h"
2620 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-adds-t32.h"
2621 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-and-t32.h"
2622 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-ands-t32.h"
2623 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-bic-t32.h"
2624 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-bics-t32.h"
2625 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-eor-t32.h"
2626 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-eors-t32.h"
2627 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-orn-t32.h"
2628 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-orns-t32.h"
2629 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-orr-t32.h"
2630 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-orrs-t32.h"
2631 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-rsb-t32.h"
2632 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-rsbs-t32.h"
2633 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-sbc-t32.h"
2634 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-sbcs-t32.h"
2635 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-sub-t32.h"
2636 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-subs-t32.h"
2637
2638
2639 // The maximum number of errors to report in detail for each test.
2640 const unsigned kErrorReportLimit = 8;
2641
2642 typedef void (MacroAssembler::*Fn)(Condition cond,
2643 Register rd,
2644 Register rn,
2645 const Operand& op);
2646
TestHelper(Fn instruction,const char * mnemonic,const TestResult reference[])2647 void TestHelper(Fn instruction,
2648 const char* mnemonic,
2649 const TestResult reference[]) {
2650 unsigned total_error_count = 0;
2651 MacroAssembler masm(BUF_SIZE);
2652
2653 masm.UseT32();
2654
2655 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
2656 // Values to pass to the macro-assembler.
2657 Condition cond = kTests[i].operands.cond;
2658 Register rd = kTests[i].operands.rd;
2659 Register rn = kTests[i].operands.rn;
2660 uint32_t immediate = kTests[i].operands.immediate;
2661 Operand op(immediate);
2662
2663 int32_t start = masm.GetCursorOffset();
2664 {
2665 // We never generate more that 4 bytes, as IT instructions are only
2666 // allowed for narrow encodings.
2667 ExactAssemblyScope scope(&masm, 4, ExactAssemblyScope::kMaximumSize);
2668 if (kTests[i].in_it_block) {
2669 masm.it(kTests[i].it_condition);
2670 }
2671 (masm.*instruction)(cond, rd, rn, op);
2672 }
2673 int32_t end = masm.GetCursorOffset();
2674
2675 const byte* result_ptr =
2676 masm.GetBuffer()->GetOffsetAddress<const byte*>(start);
2677 VIXL_ASSERT(start < end);
2678 uint32_t result_size = end - start;
2679
2680 if (Test::generate_test_trace()) {
2681 // Print the result bytes.
2682 printf("const byte kInstruction_%s_%s[] = {\n",
2683 mnemonic,
2684 kTests[i].identifier);
2685 for (uint32_t j = 0; j < result_size; j++) {
2686 if (j == 0) {
2687 printf(" 0x%02" PRIx8, result_ptr[j]);
2688 } else {
2689 printf(", 0x%02" PRIx8, result_ptr[j]);
2690 }
2691 }
2692 // This comment is meant to be used by external tools to validate
2693 // the encoding. We can parse the comment to figure out what
2694 // instruction this corresponds to.
2695 if (kTests[i].in_it_block) {
2696 printf(" // It %s; %s %s\n};\n",
2697 kTests[i].it_condition.GetName(),
2698 mnemonic,
2699 kTests[i].operands_description);
2700 } else {
2701 printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description);
2702 }
2703 } else {
2704 // Check we've emitted the exact same encoding as present in the
2705 // trace file. Only print up to `kErrorReportLimit` errors.
2706 if (((result_size != reference[i].size) ||
2707 (memcmp(result_ptr, reference[i].encoding, reference[i].size) !=
2708 0)) &&
2709 (++total_error_count <= kErrorReportLimit)) {
2710 printf("Error when testing \"%s\" with operands \"%s\":\n",
2711 mnemonic,
2712 kTests[i].operands_description);
2713 printf(" Expected: ");
2714 for (uint32_t j = 0; j < reference[i].size; j++) {
2715 if (j == 0) {
2716 printf("0x%02" PRIx8, reference[i].encoding[j]);
2717 } else {
2718 printf(", 0x%02" PRIx8, reference[i].encoding[j]);
2719 }
2720 }
2721 printf("\n");
2722 printf(" Found: ");
2723 for (uint32_t j = 0; j < result_size; j++) {
2724 if (j == 0) {
2725 printf("0x%02" PRIx8, result_ptr[j]);
2726 } else {
2727 printf(", 0x%02" PRIx8, result_ptr[j]);
2728 }
2729 }
2730 printf("\n");
2731 }
2732 }
2733 }
2734
2735 masm.FinalizeCode();
2736
2737 if (Test::generate_test_trace()) {
2738 // Finalize the trace file by writing the final `TestResult` array
2739 // which links all generated instruction encodings.
2740 printf("const TestResult kReference%s[] = {\n", mnemonic);
2741 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
2742 printf(" {\n");
2743 printf(" ARRAY_SIZE(kInstruction_%s_%s),\n",
2744 mnemonic,
2745 kTests[i].identifier);
2746 printf(" kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier);
2747 printf(" },\n");
2748 }
2749 printf("};\n");
2750 } else {
2751 if (total_error_count > kErrorReportLimit) {
2752 printf("%u other errors follow.\n",
2753 total_error_count - kErrorReportLimit);
2754 }
2755 // Crash if the test failed.
2756 VIXL_CHECK(total_error_count == 0);
2757 }
2758 }
2759
2760 // Instantiate tests for each instruction in the list.
2761 #define TEST(mnemonic) \
2762 void Test_##mnemonic() { \
2763 TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic); \
2764 } \
2765 Test test_##mnemonic("AARCH32_ASSEMBLER_COND_RD_RN_OPERAND_CONST_" #mnemonic \
2766 "_T32", \
2767 &Test_##mnemonic);
2768 FOREACH_INSTRUCTION(TEST)
2769 #undef TEST
2770
2771 } // namespace
2772 #endif
2773
2774 } // namespace aarch32
2775 } // namespace vixl
2776