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(ldr) \
53 M(ldrb) \
54 M(ldrh) \
55 M(ldrsb) \
56 M(ldrsh) \
57 M(str) \
58 M(strb) \
59 M(strh)
60
61
62 // The following definitions are defined again in each generated test, therefore
63 // we need to place them in an anomymous namespace. It expresses that they are
64 // local to this file only, and the compiler is not allowed to share these types
65 // across test files during template instantiation. Specifically, `Operands` has
66 // various layouts across generated tests so it absolutely cannot be shared.
67
68 #ifdef VIXL_INCLUDE_TARGET_A32
69 namespace {
70
71 // Values to be passed to the assembler to produce the instruction under test.
72 struct Operands {
73 Condition cond;
74 Register rd;
75 Register rn;
76 Sign sign;
77 Register rm;
78 AddrMode addr_mode;
79 };
80
81 // This structure contains all data needed to test one specific
82 // instruction.
83 struct TestData {
84 // The `operands` field represents what to pass to the assembler to
85 // produce the instruction.
86 Operands operands;
87 // True if we need to generate an IT instruction for this test to be valid.
88 bool in_it_block;
89 // The condition to give the IT instruction, this will be set to "al" by
90 // default.
91 Condition it_condition;
92 // Description of the operands, used for error reporting.
93 const char* operands_description;
94 // Unique identifier, used for generating traces.
95 const char* identifier;
96 };
97
98 struct TestResult {
99 size_t size;
100 const byte* encoding;
101 };
102
103 // Each element of this array produce one instruction encoding.
104 const TestData kTests[] = {{{pl, r8, r11, plus, r6, Offset},
105 false,
106 al,
107 "pl r8 r11 plus r6 Offset",
108 "pl_r8_r11_plus_r6_Offset"},
109 {{le, r4, r8, plus, r5, Offset},
110 false,
111 al,
112 "le r4 r8 plus r5 Offset",
113 "le_r4_r8_plus_r5_Offset"},
114 {{vs, r2, r6, plus, r14, Offset},
115 false,
116 al,
117 "vs r2 r6 plus r14 Offset",
118 "vs_r2_r6_plus_r14_Offset"},
119 {{ls, r1, r7, plus, r8, Offset},
120 false,
121 al,
122 "ls r1 r7 plus r8 Offset",
123 "ls_r1_r7_plus_r8_Offset"},
124 {{ge, r14, r6, plus, r14, Offset},
125 false,
126 al,
127 "ge r14 r6 plus r14 Offset",
128 "ge_r14_r6_plus_r14_Offset"},
129 {{cs, r7, r0, plus, r7, Offset},
130 false,
131 al,
132 "cs r7 r0 plus r7 Offset",
133 "cs_r7_r0_plus_r7_Offset"},
134 {{ge, r11, r0, plus, r9, Offset},
135 false,
136 al,
137 "ge r11 r0 plus r9 Offset",
138 "ge_r11_r0_plus_r9_Offset"},
139 {{eq, r7, r10, plus, r4, Offset},
140 false,
141 al,
142 "eq r7 r10 plus r4 Offset",
143 "eq_r7_r10_plus_r4_Offset"},
144 {{al, r9, r2, plus, r3, Offset},
145 false,
146 al,
147 "al r9 r2 plus r3 Offset",
148 "al_r9_r2_plus_r3_Offset"},
149 {{cc, r11, r10, plus, r6, Offset},
150 false,
151 al,
152 "cc r11 r10 plus r6 Offset",
153 "cc_r11_r10_plus_r6_Offset"},
154 {{lt, r9, r6, plus, r1, Offset},
155 false,
156 al,
157 "lt r9 r6 plus r1 Offset",
158 "lt_r9_r6_plus_r1_Offset"},
159 {{ge, r4, r0, plus, r4, Offset},
160 false,
161 al,
162 "ge r4 r0 plus r4 Offset",
163 "ge_r4_r0_plus_r4_Offset"},
164 {{al, r9, r13, plus, r14, Offset},
165 false,
166 al,
167 "al r9 r13 plus r14 Offset",
168 "al_r9_r13_plus_r14_Offset"},
169 {{cc, r9, r0, plus, r7, Offset},
170 false,
171 al,
172 "cc r9 r0 plus r7 Offset",
173 "cc_r9_r0_plus_r7_Offset"},
174 {{cs, r11, r7, plus, r8, Offset},
175 false,
176 al,
177 "cs r11 r7 plus r8 Offset",
178 "cs_r11_r7_plus_r8_Offset"},
179 {{eq, r8, r0, plus, r8, Offset},
180 false,
181 al,
182 "eq r8 r0 plus r8 Offset",
183 "eq_r8_r0_plus_r8_Offset"},
184 {{hi, r9, r10, plus, r8, Offset},
185 false,
186 al,
187 "hi r9 r10 plus r8 Offset",
188 "hi_r9_r10_plus_r8_Offset"},
189 {{le, r8, r0, plus, r0, Offset},
190 false,
191 al,
192 "le r8 r0 plus r0 Offset",
193 "le_r8_r0_plus_r0_Offset"},
194 {{cs, r4, r5, plus, r2, Offset},
195 false,
196 al,
197 "cs r4 r5 plus r2 Offset",
198 "cs_r4_r5_plus_r2_Offset"},
199 {{eq, r14, r11, plus, r8, Offset},
200 false,
201 al,
202 "eq r14 r11 plus r8 Offset",
203 "eq_r14_r11_plus_r8_Offset"},
204 {{cs, r7, r6, plus, r14, Offset},
205 false,
206 al,
207 "cs r7 r6 plus r14 Offset",
208 "cs_r7_r6_plus_r14_Offset"},
209 {{ne, r0, r9, plus, r7, Offset},
210 false,
211 al,
212 "ne r0 r9 plus r7 Offset",
213 "ne_r0_r9_plus_r7_Offset"},
214 {{le, r7, r3, plus, r11, Offset},
215 false,
216 al,
217 "le r7 r3 plus r11 Offset",
218 "le_r7_r3_plus_r11_Offset"},
219 {{gt, r7, r9, plus, r9, Offset},
220 false,
221 al,
222 "gt r7 r9 plus r9 Offset",
223 "gt_r7_r9_plus_r9_Offset"},
224 {{le, r9, r12, plus, r9, Offset},
225 false,
226 al,
227 "le r9 r12 plus r9 Offset",
228 "le_r9_r12_plus_r9_Offset"},
229 {{pl, r2, r11, plus, r14, Offset},
230 false,
231 al,
232 "pl r2 r11 plus r14 Offset",
233 "pl_r2_r11_plus_r14_Offset"},
234 {{cs, r1, r7, plus, r2, Offset},
235 false,
236 al,
237 "cs r1 r7 plus r2 Offset",
238 "cs_r1_r7_plus_r2_Offset"},
239 {{al, r5, r1, plus, r12, Offset},
240 false,
241 al,
242 "al r5 r1 plus r12 Offset",
243 "al_r5_r1_plus_r12_Offset"},
244 {{eq, r10, r13, plus, r12, Offset},
245 false,
246 al,
247 "eq r10 r13 plus r12 Offset",
248 "eq_r10_r13_plus_r12_Offset"},
249 {{eq, r10, r11, plus, r3, Offset},
250 false,
251 al,
252 "eq r10 r11 plus r3 Offset",
253 "eq_r10_r11_plus_r3_Offset"},
254 {{al, r9, r12, plus, r0, Offset},
255 false,
256 al,
257 "al r9 r12 plus r0 Offset",
258 "al_r9_r12_plus_r0_Offset"},
259 {{ls, r3, r14, plus, r1, Offset},
260 false,
261 al,
262 "ls r3 r14 plus r1 Offset",
263 "ls_r3_r14_plus_r1_Offset"},
264 {{le, r13, r4, plus, r9, Offset},
265 false,
266 al,
267 "le r13 r4 plus r9 Offset",
268 "le_r13_r4_plus_r9_Offset"},
269 {{ls, r3, r14, plus, r3, Offset},
270 false,
271 al,
272 "ls r3 r14 plus r3 Offset",
273 "ls_r3_r14_plus_r3_Offset"},
274 {{cc, r7, r4, plus, r4, Offset},
275 false,
276 al,
277 "cc r7 r4 plus r4 Offset",
278 "cc_r7_r4_plus_r4_Offset"},
279 {{ls, r5, r9, plus, r5, Offset},
280 false,
281 al,
282 "ls r5 r9 plus r5 Offset",
283 "ls_r5_r9_plus_r5_Offset"},
284 {{ge, r6, r4, plus, r13, Offset},
285 false,
286 al,
287 "ge r6 r4 plus r13 Offset",
288 "ge_r6_r4_plus_r13_Offset"},
289 {{al, r1, r11, plus, r12, Offset},
290 false,
291 al,
292 "al r1 r11 plus r12 Offset",
293 "al_r1_r11_plus_r12_Offset"},
294 {{le, r6, r11, plus, r3, Offset},
295 false,
296 al,
297 "le r6 r11 plus r3 Offset",
298 "le_r6_r11_plus_r3_Offset"},
299 {{al, r6, r6, plus, r13, Offset},
300 false,
301 al,
302 "al r6 r6 plus r13 Offset",
303 "al_r6_r6_plus_r13_Offset"},
304 {{gt, r14, r11, plus, r2, Offset},
305 false,
306 al,
307 "gt r14 r11 plus r2 Offset",
308 "gt_r14_r11_plus_r2_Offset"},
309 {{vs, r5, r8, plus, r12, Offset},
310 false,
311 al,
312 "vs r5 r8 plus r12 Offset",
313 "vs_r5_r8_plus_r12_Offset"},
314 {{ls, r8, r12, plus, r6, Offset},
315 false,
316 al,
317 "ls r8 r12 plus r6 Offset",
318 "ls_r8_r12_plus_r6_Offset"},
319 {{vs, r6, r12, plus, r14, Offset},
320 false,
321 al,
322 "vs r6 r12 plus r14 Offset",
323 "vs_r6_r12_plus_r14_Offset"},
324 {{pl, r7, r2, plus, r7, Offset},
325 false,
326 al,
327 "pl r7 r2 plus r7 Offset",
328 "pl_r7_r2_plus_r7_Offset"},
329 {{gt, r5, r4, plus, r13, Offset},
330 false,
331 al,
332 "gt r5 r4 plus r13 Offset",
333 "gt_r5_r4_plus_r13_Offset"},
334 {{hi, r2, r7, plus, r12, Offset},
335 false,
336 al,
337 "hi r2 r7 plus r12 Offset",
338 "hi_r2_r7_plus_r12_Offset"},
339 {{ne, r2, r3, plus, r10, Offset},
340 false,
341 al,
342 "ne r2 r3 plus r10 Offset",
343 "ne_r2_r3_plus_r10_Offset"},
344 {{lt, r13, r2, plus, r6, Offset},
345 false,
346 al,
347 "lt r13 r2 plus r6 Offset",
348 "lt_r13_r2_plus_r6_Offset"},
349 {{hi, r14, r10, plus, r11, Offset},
350 false,
351 al,
352 "hi r14 r10 plus r11 Offset",
353 "hi_r14_r10_plus_r11_Offset"},
354 {{hi, r7, r10, plus, r12, Offset},
355 false,
356 al,
357 "hi r7 r10 plus r12 Offset",
358 "hi_r7_r10_plus_r12_Offset"},
359 {{cs, r3, r12, plus, r2, Offset},
360 false,
361 al,
362 "cs r3 r12 plus r2 Offset",
363 "cs_r3_r12_plus_r2_Offset"},
364 {{ls, r11, r5, plus, r1, Offset},
365 false,
366 al,
367 "ls r11 r5 plus r1 Offset",
368 "ls_r11_r5_plus_r1_Offset"},
369 {{hi, r5, r2, plus, r11, Offset},
370 false,
371 al,
372 "hi r5 r2 plus r11 Offset",
373 "hi_r5_r2_plus_r11_Offset"},
374 {{cc, r11, r8, plus, r6, Offset},
375 false,
376 al,
377 "cc r11 r8 plus r6 Offset",
378 "cc_r11_r8_plus_r6_Offset"},
379 {{lt, r11, r3, plus, r9, Offset},
380 false,
381 al,
382 "lt r11 r3 plus r9 Offset",
383 "lt_r11_r3_plus_r9_Offset"},
384 {{ne, r11, r9, plus, r8, Offset},
385 false,
386 al,
387 "ne r11 r9 plus r8 Offset",
388 "ne_r11_r9_plus_r8_Offset"},
389 {{lt, r7, r0, plus, r14, Offset},
390 false,
391 al,
392 "lt r7 r0 plus r14 Offset",
393 "lt_r7_r0_plus_r14_Offset"},
394 {{ge, r12, r3, plus, r1, Offset},
395 false,
396 al,
397 "ge r12 r3 plus r1 Offset",
398 "ge_r12_r3_plus_r1_Offset"},
399 {{le, r0, r8, plus, r13, Offset},
400 false,
401 al,
402 "le r0 r8 plus r13 Offset",
403 "le_r0_r8_plus_r13_Offset"},
404 {{vc, r5, r13, plus, r7, Offset},
405 false,
406 al,
407 "vc r5 r13 plus r7 Offset",
408 "vc_r5_r13_plus_r7_Offset"},
409 {{ge, r7, r5, plus, r11, Offset},
410 false,
411 al,
412 "ge r7 r5 plus r11 Offset",
413 "ge_r7_r5_plus_r11_Offset"},
414 {{ge, r10, r9, plus, r3, Offset},
415 false,
416 al,
417 "ge r10 r9 plus r3 Offset",
418 "ge_r10_r9_plus_r3_Offset"},
419 {{vs, r9, r5, plus, r2, Offset},
420 false,
421 al,
422 "vs r9 r5 plus r2 Offset",
423 "vs_r9_r5_plus_r2_Offset"},
424 {{hi, r2, r10, plus, r4, Offset},
425 false,
426 al,
427 "hi r2 r10 plus r4 Offset",
428 "hi_r2_r10_plus_r4_Offset"},
429 {{ge, r1, r11, plus, r1, Offset},
430 false,
431 al,
432 "ge r1 r11 plus r1 Offset",
433 "ge_r1_r11_plus_r1_Offset"},
434 {{ls, r9, r14, plus, r12, Offset},
435 false,
436 al,
437 "ls r9 r14 plus r12 Offset",
438 "ls_r9_r14_plus_r12_Offset"},
439 {{mi, r1, r9, plus, r4, Offset},
440 false,
441 al,
442 "mi r1 r9 plus r4 Offset",
443 "mi_r1_r9_plus_r4_Offset"},
444 {{mi, r7, r10, plus, r4, Offset},
445 false,
446 al,
447 "mi r7 r10 plus r4 Offset",
448 "mi_r7_r10_plus_r4_Offset"},
449 {{gt, r6, r2, plus, r5, Offset},
450 false,
451 al,
452 "gt r6 r2 plus r5 Offset",
453 "gt_r6_r2_plus_r5_Offset"},
454 {{eq, r10, r8, plus, r11, Offset},
455 false,
456 al,
457 "eq r10 r8 plus r11 Offset",
458 "eq_r10_r8_plus_r11_Offset"},
459 {{le, r10, r1, plus, r7, Offset},
460 false,
461 al,
462 "le r10 r1 plus r7 Offset",
463 "le_r10_r1_plus_r7_Offset"},
464 {{pl, r8, r14, plus, r8, Offset},
465 false,
466 al,
467 "pl r8 r14 plus r8 Offset",
468 "pl_r8_r14_plus_r8_Offset"},
469 {{gt, r5, r1, plus, r3, Offset},
470 false,
471 al,
472 "gt r5 r1 plus r3 Offset",
473 "gt_r5_r1_plus_r3_Offset"},
474 {{cs, r10, r4, plus, r13, Offset},
475 false,
476 al,
477 "cs r10 r4 plus r13 Offset",
478 "cs_r10_r4_plus_r13_Offset"},
479 {{mi, r10, r5, plus, r2, Offset},
480 false,
481 al,
482 "mi r10 r5 plus r2 Offset",
483 "mi_r10_r5_plus_r2_Offset"},
484 {{cc, r6, r0, plus, r11, Offset},
485 false,
486 al,
487 "cc r6 r0 plus r11 Offset",
488 "cc_r6_r0_plus_r11_Offset"},
489 {{eq, r3, r9, plus, r2, Offset},
490 false,
491 al,
492 "eq r3 r9 plus r2 Offset",
493 "eq_r3_r9_plus_r2_Offset"},
494 {{al, r1, r0, plus, r3, Offset},
495 false,
496 al,
497 "al r1 r0 plus r3 Offset",
498 "al_r1_r0_plus_r3_Offset"},
499 {{mi, r1, r0, plus, r13, Offset},
500 false,
501 al,
502 "mi r1 r0 plus r13 Offset",
503 "mi_r1_r0_plus_r13_Offset"},
504 {{cc, r4, r4, plus, r5, Offset},
505 false,
506 al,
507 "cc r4 r4 plus r5 Offset",
508 "cc_r4_r4_plus_r5_Offset"},
509 {{al, r2, r6, plus, r11, Offset},
510 false,
511 al,
512 "al r2 r6 plus r11 Offset",
513 "al_r2_r6_plus_r11_Offset"},
514 {{ls, r1, r5, plus, r4, Offset},
515 false,
516 al,
517 "ls r1 r5 plus r4 Offset",
518 "ls_r1_r5_plus_r4_Offset"},
519 {{eq, r0, r3, plus, r4, Offset},
520 false,
521 al,
522 "eq r0 r3 plus r4 Offset",
523 "eq_r0_r3_plus_r4_Offset"},
524 {{lt, r7, r11, plus, r10, Offset},
525 false,
526 al,
527 "lt r7 r11 plus r10 Offset",
528 "lt_r7_r11_plus_r10_Offset"},
529 {{vc, r3, r0, plus, r13, Offset},
530 false,
531 al,
532 "vc r3 r0 plus r13 Offset",
533 "vc_r3_r0_plus_r13_Offset"},
534 {{ls, r3, r3, plus, r7, Offset},
535 false,
536 al,
537 "ls r3 r3 plus r7 Offset",
538 "ls_r3_r3_plus_r7_Offset"},
539 {{al, r5, r14, plus, r3, Offset},
540 false,
541 al,
542 "al r5 r14 plus r3 Offset",
543 "al_r5_r14_plus_r3_Offset"},
544 {{ne, r2, r13, plus, r9, Offset},
545 false,
546 al,
547 "ne r2 r13 plus r9 Offset",
548 "ne_r2_r13_plus_r9_Offset"},
549 {{lt, r6, r2, plus, r11, Offset},
550 false,
551 al,
552 "lt r6 r2 plus r11 Offset",
553 "lt_r6_r2_plus_r11_Offset"},
554 {{vc, r9, r2, plus, r13, Offset},
555 false,
556 al,
557 "vc r9 r2 plus r13 Offset",
558 "vc_r9_r2_plus_r13_Offset"},
559 {{ne, r5, r9, plus, r6, Offset},
560 false,
561 al,
562 "ne r5 r9 plus r6 Offset",
563 "ne_r5_r9_plus_r6_Offset"},
564 {{vc, r4, r9, plus, r8, Offset},
565 false,
566 al,
567 "vc r4 r9 plus r8 Offset",
568 "vc_r4_r9_plus_r8_Offset"},
569 {{cc, r6, r9, plus, r2, Offset},
570 false,
571 al,
572 "cc r6 r9 plus r2 Offset",
573 "cc_r6_r9_plus_r2_Offset"},
574 {{vs, r8, r7, plus, r13, Offset},
575 false,
576 al,
577 "vs r8 r7 plus r13 Offset",
578 "vs_r8_r7_plus_r13_Offset"},
579 {{pl, r14, r14, plus, r7, Offset},
580 false,
581 al,
582 "pl r14 r14 plus r7 Offset",
583 "pl_r14_r14_plus_r7_Offset"},
584 {{eq, r8, r2, plus, r6, Offset},
585 false,
586 al,
587 "eq r8 r2 plus r6 Offset",
588 "eq_r8_r2_plus_r6_Offset"},
589 {{al, r13, r13, plus, r13, Offset},
590 false,
591 al,
592 "al r13 r13 plus r13 Offset",
593 "al_r13_r13_plus_r13_Offset"},
594 {{gt, r12, r14, plus, r5, Offset},
595 false,
596 al,
597 "gt r12 r14 plus r5 Offset",
598 "gt_r12_r14_plus_r5_Offset"},
599 {{lt, r14, r7, plus, r1, Offset},
600 false,
601 al,
602 "lt r14 r7 plus r1 Offset",
603 "lt_r14_r7_plus_r1_Offset"},
604 {{al, r0, r0, minus, r2, Offset},
605 false,
606 al,
607 "al r0 r0 minus r2 Offset",
608 "al_r0_r0_minus_r2_Offset"},
609 {{al, r0, r0, minus, r8, Offset},
610 false,
611 al,
612 "al r0 r0 minus r8 Offset",
613 "al_r0_r0_minus_r8_Offset"},
614 {{al, r0, r9, plus, r14, Offset},
615 false,
616 al,
617 "al r0 r9 plus r14 Offset",
618 "al_r0_r9_plus_r14_Offset"},
619 {{al, r0, r10, minus, r6, Offset},
620 false,
621 al,
622 "al r0 r10 minus r6 Offset",
623 "al_r0_r10_minus_r6_Offset"},
624 {{al, r0, r5, minus, r8, Offset},
625 false,
626 al,
627 "al r0 r5 minus r8 Offset",
628 "al_r0_r5_minus_r8_Offset"},
629 {{al, r0, r14, minus, r10, Offset},
630 false,
631 al,
632 "al r0 r14 minus r10 Offset",
633 "al_r0_r14_minus_r10_Offset"},
634 {{al, r0, r0, minus, r1, Offset},
635 false,
636 al,
637 "al r0 r0 minus r1 Offset",
638 "al_r0_r0_minus_r1_Offset"},
639 {{al, r0, r2, minus, r7, Offset},
640 false,
641 al,
642 "al r0 r2 minus r7 Offset",
643 "al_r0_r2_minus_r7_Offset"},
644 {{al, r0, r12, minus, r7, Offset},
645 false,
646 al,
647 "al r0 r12 minus r7 Offset",
648 "al_r0_r12_minus_r7_Offset"},
649 {{al, r0, r6, minus, r3, Offset},
650 false,
651 al,
652 "al r0 r6 minus r3 Offset",
653 "al_r0_r6_minus_r3_Offset"},
654 {{al, r0, r4, minus, r11, Offset},
655 false,
656 al,
657 "al r0 r4 minus r11 Offset",
658 "al_r0_r4_minus_r11_Offset"},
659 {{al, r0, r12, plus, r9, Offset},
660 false,
661 al,
662 "al r0 r12 plus r9 Offset",
663 "al_r0_r12_plus_r9_Offset"},
664 {{al, r0, r12, minus, r14, Offset},
665 false,
666 al,
667 "al r0 r12 minus r14 Offset",
668 "al_r0_r12_minus_r14_Offset"},
669 {{al, r0, r4, minus, r1, Offset},
670 false,
671 al,
672 "al r0 r4 minus r1 Offset",
673 "al_r0_r4_minus_r1_Offset"},
674 {{al, r0, r12, plus, r4, Offset},
675 false,
676 al,
677 "al r0 r12 plus r4 Offset",
678 "al_r0_r12_plus_r4_Offset"},
679 {{al, r0, r13, plus, r5, Offset},
680 false,
681 al,
682 "al r0 r13 plus r5 Offset",
683 "al_r0_r13_plus_r5_Offset"},
684 {{al, r0, r9, plus, r9, Offset},
685 false,
686 al,
687 "al r0 r9 plus r9 Offset",
688 "al_r0_r9_plus_r9_Offset"},
689 {{al, r0, r9, plus, r5, Offset},
690 false,
691 al,
692 "al r0 r9 plus r5 Offset",
693 "al_r0_r9_plus_r5_Offset"},
694 {{al, r0, r2, plus, r11, Offset},
695 false,
696 al,
697 "al r0 r2 plus r11 Offset",
698 "al_r0_r2_plus_r11_Offset"},
699 {{al, r0, r13, minus, r0, Offset},
700 false,
701 al,
702 "al r0 r13 minus r0 Offset",
703 "al_r0_r13_minus_r0_Offset"},
704 {{al, r0, r12, minus, r2, Offset},
705 false,
706 al,
707 "al r0 r12 minus r2 Offset",
708 "al_r0_r12_minus_r2_Offset"},
709 {{al, r0, r1, plus, r14, Offset},
710 false,
711 al,
712 "al r0 r1 plus r14 Offset",
713 "al_r0_r1_plus_r14_Offset"},
714 {{al, r0, r2, plus, r12, Offset},
715 false,
716 al,
717 "al r0 r2 plus r12 Offset",
718 "al_r0_r2_plus_r12_Offset"},
719 {{al, r0, r8, minus, r11, Offset},
720 false,
721 al,
722 "al r0 r8 minus r11 Offset",
723 "al_r0_r8_minus_r11_Offset"},
724 {{al, r0, r2, plus, r0, Offset},
725 false,
726 al,
727 "al r0 r2 plus r0 Offset",
728 "al_r0_r2_plus_r0_Offset"},
729 {{al, r0, r13, minus, r13, Offset},
730 false,
731 al,
732 "al r0 r13 minus r13 Offset",
733 "al_r0_r13_minus_r13_Offset"},
734 {{al, r0, r13, minus, r4, Offset},
735 false,
736 al,
737 "al r0 r13 minus r4 Offset",
738 "al_r0_r13_minus_r4_Offset"},
739 {{al, r0, r13, plus, r4, Offset},
740 false,
741 al,
742 "al r0 r13 plus r4 Offset",
743 "al_r0_r13_plus_r4_Offset"},
744 {{al, r0, r4, minus, r14, Offset},
745 false,
746 al,
747 "al r0 r4 minus r14 Offset",
748 "al_r0_r4_minus_r14_Offset"},
749 {{al, r0, r11, plus, r9, Offset},
750 false,
751 al,
752 "al r0 r11 plus r9 Offset",
753 "al_r0_r11_plus_r9_Offset"},
754 {{al, r0, r3, plus, r10, Offset},
755 false,
756 al,
757 "al r0 r3 plus r10 Offset",
758 "al_r0_r3_plus_r10_Offset"},
759 {{al, r0, r4, minus, r3, Offset},
760 false,
761 al,
762 "al r0 r4 minus r3 Offset",
763 "al_r0_r4_minus_r3_Offset"},
764 {{al, r0, r12, minus, r9, Offset},
765 false,
766 al,
767 "al r0 r12 minus r9 Offset",
768 "al_r0_r12_minus_r9_Offset"},
769 {{al, r0, r3, plus, r1, Offset},
770 false,
771 al,
772 "al r0 r3 plus r1 Offset",
773 "al_r0_r3_plus_r1_Offset"},
774 {{al, r0, r10, minus, r7, Offset},
775 false,
776 al,
777 "al r0 r10 minus r7 Offset",
778 "al_r0_r10_minus_r7_Offset"},
779 {{al, r0, r6, plus, r9, Offset},
780 false,
781 al,
782 "al r0 r6 plus r9 Offset",
783 "al_r0_r6_plus_r9_Offset"},
784 {{al, r0, r9, minus, r7, Offset},
785 false,
786 al,
787 "al r0 r9 minus r7 Offset",
788 "al_r0_r9_minus_r7_Offset"},
789 {{al, r0, r14, minus, r0, Offset},
790 false,
791 al,
792 "al r0 r14 minus r0 Offset",
793 "al_r0_r14_minus_r0_Offset"},
794 {{al, r0, r4, plus, r3, Offset},
795 false,
796 al,
797 "al r0 r4 plus r3 Offset",
798 "al_r0_r4_plus_r3_Offset"},
799 {{al, r0, r12, minus, r4, Offset},
800 false,
801 al,
802 "al r0 r12 minus r4 Offset",
803 "al_r0_r12_minus_r4_Offset"},
804 {{al, r0, r13, plus, r7, Offset},
805 false,
806 al,
807 "al r0 r13 plus r7 Offset",
808 "al_r0_r13_plus_r7_Offset"},
809 {{al, r0, r7, minus, r0, Offset},
810 false,
811 al,
812 "al r0 r7 minus r0 Offset",
813 "al_r0_r7_minus_r0_Offset"},
814 {{al, r0, r12, minus, r11, Offset},
815 false,
816 al,
817 "al r0 r12 minus r11 Offset",
818 "al_r0_r12_minus_r11_Offset"},
819 {{al, r0, r0, plus, r4, Offset},
820 false,
821 al,
822 "al r0 r0 plus r4 Offset",
823 "al_r0_r0_plus_r4_Offset"},
824 {{al, r0, r1, plus, r10, Offset},
825 false,
826 al,
827 "al r0 r1 plus r10 Offset",
828 "al_r0_r1_plus_r10_Offset"},
829 {{al, r0, r5, minus, r6, Offset},
830 false,
831 al,
832 "al r0 r5 minus r6 Offset",
833 "al_r0_r5_minus_r6_Offset"},
834 {{al, r0, r2, minus, r8, Offset},
835 false,
836 al,
837 "al r0 r2 minus r8 Offset",
838 "al_r0_r2_minus_r8_Offset"},
839 {{al, r0, r4, minus, r4, Offset},
840 false,
841 al,
842 "al r0 r4 minus r4 Offset",
843 "al_r0_r4_minus_r4_Offset"},
844 {{al, r0, r7, minus, r1, Offset},
845 false,
846 al,
847 "al r0 r7 minus r1 Offset",
848 "al_r0_r7_minus_r1_Offset"},
849 {{al, r0, r8, minus, r13, Offset},
850 false,
851 al,
852 "al r0 r8 minus r13 Offset",
853 "al_r0_r8_minus_r13_Offset"},
854 {{al, r0, r6, plus, r12, Offset},
855 false,
856 al,
857 "al r0 r6 plus r12 Offset",
858 "al_r0_r6_plus_r12_Offset"},
859 {{al, r0, r9, plus, r3, Offset},
860 false,
861 al,
862 "al r0 r9 plus r3 Offset",
863 "al_r0_r9_plus_r3_Offset"},
864 {{al, r0, r14, plus, r11, Offset},
865 false,
866 al,
867 "al r0 r14 plus r11 Offset",
868 "al_r0_r14_plus_r11_Offset"},
869 {{al, r0, r10, minus, r1, Offset},
870 false,
871 al,
872 "al r0 r10 minus r1 Offset",
873 "al_r0_r10_minus_r1_Offset"},
874 {{al, r0, r13, plus, r11, Offset},
875 false,
876 al,
877 "al r0 r13 plus r11 Offset",
878 "al_r0_r13_plus_r11_Offset"},
879 {{al, r0, r8, plus, r13, Offset},
880 false,
881 al,
882 "al r0 r8 plus r13 Offset",
883 "al_r0_r8_plus_r13_Offset"},
884 {{al, r0, r1, minus, r4, Offset},
885 false,
886 al,
887 "al r0 r1 minus r4 Offset",
888 "al_r0_r1_minus_r4_Offset"},
889 {{al, r0, r13, plus, r10, Offset},
890 false,
891 al,
892 "al r0 r13 plus r10 Offset",
893 "al_r0_r13_plus_r10_Offset"},
894 {{al, r0, r4, plus, r4, Offset},
895 false,
896 al,
897 "al r0 r4 plus r4 Offset",
898 "al_r0_r4_plus_r4_Offset"},
899 {{al, r0, r7, minus, r7, Offset},
900 false,
901 al,
902 "al r0 r7 minus r7 Offset",
903 "al_r0_r7_minus_r7_Offset"},
904 {{al, r0, r3, minus, r12, Offset},
905 false,
906 al,
907 "al r0 r3 minus r12 Offset",
908 "al_r0_r3_minus_r12_Offset"},
909 {{al, r0, r10, minus, r10, Offset},
910 false,
911 al,
912 "al r0 r10 minus r10 Offset",
913 "al_r0_r10_minus_r10_Offset"},
914 {{al, r0, r8, minus, r4, Offset},
915 false,
916 al,
917 "al r0 r8 minus r4 Offset",
918 "al_r0_r8_minus_r4_Offset"},
919 {{al, r0, r1, plus, r3, Offset},
920 false,
921 al,
922 "al r0 r1 plus r3 Offset",
923 "al_r0_r1_plus_r3_Offset"},
924 {{al, r0, r5, minus, r10, Offset},
925 false,
926 al,
927 "al r0 r5 minus r10 Offset",
928 "al_r0_r5_minus_r10_Offset"},
929 {{al, r0, r1, minus, r0, Offset},
930 false,
931 al,
932 "al r0 r1 minus r0 Offset",
933 "al_r0_r1_minus_r0_Offset"},
934 {{al, r0, r6, minus, r13, Offset},
935 false,
936 al,
937 "al r0 r6 minus r13 Offset",
938 "al_r0_r6_minus_r13_Offset"},
939 {{al, r0, r1, minus, r7, Offset},
940 false,
941 al,
942 "al r0 r1 minus r7 Offset",
943 "al_r0_r1_minus_r7_Offset"},
944 {{al, r0, r12, plus, r8, Offset},
945 false,
946 al,
947 "al r0 r12 plus r8 Offset",
948 "al_r0_r12_plus_r8_Offset"},
949 {{al, r0, r5, minus, r5, Offset},
950 false,
951 al,
952 "al r0 r5 minus r5 Offset",
953 "al_r0_r5_minus_r5_Offset"},
954 {{al, r0, r0, plus, r6, Offset},
955 false,
956 al,
957 "al r0 r0 plus r6 Offset",
958 "al_r0_r0_plus_r6_Offset"},
959 {{al, r0, r11, minus, r0, Offset},
960 false,
961 al,
962 "al r0 r11 minus r0 Offset",
963 "al_r0_r11_minus_r0_Offset"},
964 {{al, r0, r11, plus, r13, Offset},
965 false,
966 al,
967 "al r0 r11 plus r13 Offset",
968 "al_r0_r11_plus_r13_Offset"},
969 {{al, r0, r6, minus, r2, Offset},
970 false,
971 al,
972 "al r0 r6 minus r2 Offset",
973 "al_r0_r6_minus_r2_Offset"},
974 {{al, r0, r2, minus, r6, Offset},
975 false,
976 al,
977 "al r0 r2 minus r6 Offset",
978 "al_r0_r2_minus_r6_Offset"},
979 {{al, r0, r11, plus, r10, Offset},
980 false,
981 al,
982 "al r0 r11 plus r10 Offset",
983 "al_r0_r11_plus_r10_Offset"},
984 {{al, r0, r0, minus, r0, Offset},
985 false,
986 al,
987 "al r0 r0 minus r0 Offset",
988 "al_r0_r0_minus_r0_Offset"},
989 {{al, r0, r9, minus, r13, Offset},
990 false,
991 al,
992 "al r0 r9 minus r13 Offset",
993 "al_r0_r9_minus_r13_Offset"},
994 {{al, r0, r5, minus, r0, Offset},
995 false,
996 al,
997 "al r0 r5 minus r0 Offset",
998 "al_r0_r5_minus_r0_Offset"},
999 {{al, r0, r5, plus, r2, Offset},
1000 false,
1001 al,
1002 "al r0 r5 plus r2 Offset",
1003 "al_r0_r5_plus_r2_Offset"},
1004 {{al, r0, r11, minus, r10, Offset},
1005 false,
1006 al,
1007 "al r0 r11 minus r10 Offset",
1008 "al_r0_r11_minus_r10_Offset"},
1009 {{al, r0, r8, plus, r12, Offset},
1010 false,
1011 al,
1012 "al r0 r8 plus r12 Offset",
1013 "al_r0_r8_plus_r12_Offset"},
1014 {{al, r0, r8, minus, r6, Offset},
1015 false,
1016 al,
1017 "al r0 r8 minus r6 Offset",
1018 "al_r0_r8_minus_r6_Offset"},
1019 {{al, r0, r0, minus, r4, Offset},
1020 false,
1021 al,
1022 "al r0 r0 minus r4 Offset",
1023 "al_r0_r0_minus_r4_Offset"},
1024 {{al, r0, r4, plus, r9, Offset},
1025 false,
1026 al,
1027 "al r0 r4 plus r9 Offset",
1028 "al_r0_r4_plus_r9_Offset"},
1029 {{al, r0, r12, plus, r11, Offset},
1030 false,
1031 al,
1032 "al r0 r12 plus r11 Offset",
1033 "al_r0_r12_plus_r11_Offset"},
1034 {{al, r0, r1, minus, r1, Offset},
1035 false,
1036 al,
1037 "al r0 r1 minus r1 Offset",
1038 "al_r0_r1_minus_r1_Offset"},
1039 {{al, r0, r13, minus, r14, Offset},
1040 false,
1041 al,
1042 "al r0 r13 minus r14 Offset",
1043 "al_r0_r13_minus_r14_Offset"},
1044 {{al, r0, r13, plus, r0, Offset},
1045 false,
1046 al,
1047 "al r0 r13 plus r0 Offset",
1048 "al_r0_r13_plus_r0_Offset"},
1049 {{al, r0, r7, minus, r14, Offset},
1050 false,
1051 al,
1052 "al r0 r7 minus r14 Offset",
1053 "al_r0_r7_minus_r14_Offset"},
1054 {{al, r0, r6, minus, r8, Offset},
1055 false,
1056 al,
1057 "al r0 r6 minus r8 Offset",
1058 "al_r0_r6_minus_r8_Offset"},
1059 {{al, r0, r7, plus, r0, Offset},
1060 false,
1061 al,
1062 "al r0 r7 plus r0 Offset",
1063 "al_r0_r7_plus_r0_Offset"},
1064 {{al, r0, r10, plus, r7, Offset},
1065 false,
1066 al,
1067 "al r0 r10 plus r7 Offset",
1068 "al_r0_r10_plus_r7_Offset"},
1069 {{al, r0, r6, minus, r0, Offset},
1070 false,
1071 al,
1072 "al r0 r6 minus r0 Offset",
1073 "al_r0_r6_minus_r0_Offset"},
1074 {{al, r0, r2, plus, r4, Offset},
1075 false,
1076 al,
1077 "al r0 r2 plus r4 Offset",
1078 "al_r0_r2_plus_r4_Offset"},
1079 {{al, r0, r6, minus, r5, Offset},
1080 false,
1081 al,
1082 "al r0 r6 minus r5 Offset",
1083 "al_r0_r6_minus_r5_Offset"},
1084 {{al, r0, r3, minus, r7, Offset},
1085 false,
1086 al,
1087 "al r0 r3 minus r7 Offset",
1088 "al_r0_r3_minus_r7_Offset"},
1089 {{al, r0, r7, minus, r2, Offset},
1090 false,
1091 al,
1092 "al r0 r7 minus r2 Offset",
1093 "al_r0_r7_minus_r2_Offset"},
1094 {{al, r0, r4, minus, r8, Offset},
1095 false,
1096 al,
1097 "al r0 r4 minus r8 Offset",
1098 "al_r0_r4_minus_r8_Offset"},
1099 {{al, r0, r4, plus, r14, Offset},
1100 false,
1101 al,
1102 "al r0 r4 plus r14 Offset",
1103 "al_r0_r4_plus_r14_Offset"},
1104 {{al, r0, r10, minus, r2, Offset},
1105 false,
1106 al,
1107 "al r0 r10 minus r2 Offset",
1108 "al_r0_r10_minus_r2_Offset"},
1109 {{al, r0, r14, minus, r6, Offset},
1110 false,
1111 al,
1112 "al r0 r14 minus r6 Offset",
1113 "al_r0_r14_minus_r6_Offset"},
1114 {{al, r0, r2, minus, r4, Offset},
1115 false,
1116 al,
1117 "al r0 r2 minus r4 Offset",
1118 "al_r0_r2_minus_r4_Offset"},
1119 {{al, r0, r12, plus, r0, Offset},
1120 false,
1121 al,
1122 "al r0 r12 plus r0 Offset",
1123 "al_r0_r12_plus_r0_Offset"},
1124 {{al, r0, r14, plus, r6, Offset},
1125 false,
1126 al,
1127 "al r0 r14 plus r6 Offset",
1128 "al_r0_r14_plus_r6_Offset"},
1129 {{al, r0, r1, plus, r0, Offset},
1130 false,
1131 al,
1132 "al r0 r1 plus r0 Offset",
1133 "al_r0_r1_plus_r0_Offset"},
1134 {{al, r0, r9, minus, r3, Offset},
1135 false,
1136 al,
1137 "al r0 r9 minus r3 Offset",
1138 "al_r0_r9_minus_r3_Offset"},
1139 {{al, r0, r5, plus, r4, Offset},
1140 false,
1141 al,
1142 "al r0 r5 plus r4 Offset",
1143 "al_r0_r5_plus_r4_Offset"},
1144 {{al, r0, r2, plus, r7, Offset},
1145 false,
1146 al,
1147 "al r0 r2 plus r7 Offset",
1148 "al_r0_r2_plus_r7_Offset"},
1149 {{al, r0, r5, minus, r9, Offset},
1150 false,
1151 al,
1152 "al r0 r5 minus r9 Offset",
1153 "al_r0_r5_minus_r9_Offset"},
1154 {{al, r0, r4, plus, r1, Offset},
1155 false,
1156 al,
1157 "al r0 r4 plus r1 Offset",
1158 "al_r0_r4_plus_r1_Offset"},
1159 {{al, r0, r1, minus, r10, Offset},
1160 false,
1161 al,
1162 "al r0 r1 minus r10 Offset",
1163 "al_r0_r1_minus_r10_Offset"},
1164 {{al, r0, r5, minus, r4, Offset},
1165 false,
1166 al,
1167 "al r0 r5 minus r4 Offset",
1168 "al_r0_r5_minus_r4_Offset"},
1169 {{al, r0, r0, minus, r12, Offset},
1170 false,
1171 al,
1172 "al r0 r0 minus r12 Offset",
1173 "al_r0_r0_minus_r12_Offset"},
1174 {{al, r0, r13, minus, r5, Offset},
1175 false,
1176 al,
1177 "al r0 r13 minus r5 Offset",
1178 "al_r0_r13_minus_r5_Offset"},
1179 {{al, r0, r4, plus, r5, Offset},
1180 false,
1181 al,
1182 "al r0 r4 plus r5 Offset",
1183 "al_r0_r4_plus_r5_Offset"},
1184 {{al, r0, r11, plus, r14, Offset},
1185 false,
1186 al,
1187 "al r0 r11 plus r14 Offset",
1188 "al_r0_r11_plus_r14_Offset"},
1189 {{al, r0, r1, minus, r14, Offset},
1190 false,
1191 al,
1192 "al r0 r1 minus r14 Offset",
1193 "al_r0_r1_minus_r14_Offset"},
1194 {{al, r0, r14, minus, r13, Offset},
1195 false,
1196 al,
1197 "al r0 r14 minus r13 Offset",
1198 "al_r0_r14_minus_r13_Offset"},
1199 {{al, r0, r10, plus, r5, Offset},
1200 false,
1201 al,
1202 "al r0 r10 plus r5 Offset",
1203 "al_r0_r10_plus_r5_Offset"},
1204 {{al, r0, r6, minus, r4, Offset},
1205 false,
1206 al,
1207 "al r0 r6 minus r4 Offset",
1208 "al_r0_r6_minus_r4_Offset"},
1209 {{al, r0, r9, minus, r10, Offset},
1210 false,
1211 al,
1212 "al r0 r9 minus r10 Offset",
1213 "al_r0_r9_minus_r10_Offset"},
1214 {{al, r0, r7, plus, r5, Offset},
1215 false,
1216 al,
1217 "al r0 r7 plus r5 Offset",
1218 "al_r0_r7_plus_r5_Offset"},
1219 {{al, r0, r10, minus, r5, Offset},
1220 false,
1221 al,
1222 "al r0 r10 minus r5 Offset",
1223 "al_r0_r10_minus_r5_Offset"},
1224 {{al, r0, r12, plus, r12, Offset},
1225 false,
1226 al,
1227 "al r0 r12 plus r12 Offset",
1228 "al_r0_r12_plus_r12_Offset"},
1229 {{al, r0, r0, minus, r13, Offset},
1230 false,
1231 al,
1232 "al r0 r0 minus r13 Offset",
1233 "al_r0_r0_minus_r13_Offset"},
1234 {{al, r0, r3, minus, r13, Offset},
1235 false,
1236 al,
1237 "al r0 r3 minus r13 Offset",
1238 "al_r0_r3_minus_r13_Offset"},
1239 {{al, r0, r2, plus, r8, Offset},
1240 false,
1241 al,
1242 "al r0 r2 plus r8 Offset",
1243 "al_r0_r2_plus_r8_Offset"},
1244 {{al, r0, r0, plus, r2, Offset},
1245 false,
1246 al,
1247 "al r0 r0 plus r2 Offset",
1248 "al_r0_r0_plus_r2_Offset"},
1249 {{al, r0, r8, plus, r1, Offset},
1250 false,
1251 al,
1252 "al r0 r8 plus r1 Offset",
1253 "al_r0_r8_plus_r1_Offset"},
1254 {{al, r0, r9, minus, r2, Offset},
1255 false,
1256 al,
1257 "al r0 r9 minus r2 Offset",
1258 "al_r0_r9_minus_r2_Offset"},
1259 {{al, r0, r10, minus, r14, Offset},
1260 false,
1261 al,
1262 "al r0 r10 minus r14 Offset",
1263 "al_r0_r10_minus_r14_Offset"},
1264 {{al, r0, r3, plus, r14, Offset},
1265 false,
1266 al,
1267 "al r0 r3 plus r14 Offset",
1268 "al_r0_r3_plus_r14_Offset"},
1269 {{al, r0, r12, minus, r3, Offset},
1270 false,
1271 al,
1272 "al r0 r12 minus r3 Offset",
1273 "al_r0_r12_minus_r3_Offset"},
1274 {{al, r0, r8, minus, r9, Offset},
1275 false,
1276 al,
1277 "al r0 r8 minus r9 Offset",
1278 "al_r0_r8_minus_r9_Offset"},
1279 {{al, r0, r14, minus, r5, Offset},
1280 false,
1281 al,
1282 "al r0 r14 minus r5 Offset",
1283 "al_r0_r14_minus_r5_Offset"},
1284 {{al, r0, r10, plus, r14, Offset},
1285 false,
1286 al,
1287 "al r0 r10 plus r14 Offset",
1288 "al_r0_r10_plus_r14_Offset"},
1289 {{al, r0, r1, plus, r12, Offset},
1290 false,
1291 al,
1292 "al r0 r1 plus r12 Offset",
1293 "al_r0_r1_plus_r12_Offset"},
1294 {{al, r0, r14, minus, r1, Offset},
1295 false,
1296 al,
1297 "al r0 r14 minus r1 Offset",
1298 "al_r0_r14_minus_r1_Offset"},
1299 {{al, r0, r8, minus, r12, Offset},
1300 false,
1301 al,
1302 "al r0 r8 minus r12 Offset",
1303 "al_r0_r8_minus_r12_Offset"},
1304 {{al, r0, r11, plus, r2, Offset},
1305 false,
1306 al,
1307 "al r0 r11 plus r2 Offset",
1308 "al_r0_r11_plus_r2_Offset"},
1309 {{al, r0, r11, minus, r8, Offset},
1310 false,
1311 al,
1312 "al r0 r11 minus r8 Offset",
1313 "al_r0_r11_minus_r8_Offset"},
1314 {{al, r0, r11, plus, r3, Offset},
1315 false,
1316 al,
1317 "al r0 r11 plus r3 Offset",
1318 "al_r0_r11_plus_r3_Offset"},
1319 {{al, r0, r7, minus, r9, Offset},
1320 false,
1321 al,
1322 "al r0 r7 minus r9 Offset",
1323 "al_r0_r7_minus_r9_Offset"},
1324 {{al, r0, r11, minus, r7, Offset},
1325 false,
1326 al,
1327 "al r0 r11 minus r7 Offset",
1328 "al_r0_r11_minus_r7_Offset"},
1329 {{al, r0, r12, plus, r1, Offset},
1330 false,
1331 al,
1332 "al r0 r12 plus r1 Offset",
1333 "al_r0_r12_plus_r1_Offset"},
1334 {{al, r0, r6, plus, r1, Offset},
1335 false,
1336 al,
1337 "al r0 r6 plus r1 Offset",
1338 "al_r0_r6_plus_r1_Offset"},
1339 {{al, r0, r7, plus, r9, Offset},
1340 false,
1341 al,
1342 "al r0 r7 plus r9 Offset",
1343 "al_r0_r7_plus_r9_Offset"},
1344 {{al, r0, r9, plus, r4, Offset},
1345 false,
1346 al,
1347 "al r0 r9 plus r4 Offset",
1348 "al_r0_r9_plus_r4_Offset"},
1349 {{al, r0, r12, plus, r5, Offset},
1350 false,
1351 al,
1352 "al r0 r12 plus r5 Offset",
1353 "al_r0_r12_plus_r5_Offset"},
1354 {{al, r0, r12, plus, r3, Offset},
1355 false,
1356 al,
1357 "al r0 r12 plus r3 Offset",
1358 "al_r0_r12_plus_r3_Offset"},
1359 {{al, r0, r3, plus, r5, Offset},
1360 false,
1361 al,
1362 "al r0 r3 plus r5 Offset",
1363 "al_r0_r3_plus_r5_Offset"},
1364 {{al, r0, r10, minus, r4, Offset},
1365 false,
1366 al,
1367 "al r0 r10 minus r4 Offset",
1368 "al_r0_r10_minus_r4_Offset"},
1369 {{al, r0, r12, minus, r8, Offset},
1370 false,
1371 al,
1372 "al r0 r12 minus r8 Offset",
1373 "al_r0_r12_minus_r8_Offset"},
1374 {{al, r0, r12, minus, r5, Offset},
1375 false,
1376 al,
1377 "al r0 r12 minus r5 Offset",
1378 "al_r0_r12_minus_r5_Offset"},
1379 {{al, r0, r13, minus, r6, Offset},
1380 false,
1381 al,
1382 "al r0 r13 minus r6 Offset",
1383 "al_r0_r13_minus_r6_Offset"},
1384 {{al, r0, r8, plus, r10, Offset},
1385 false,
1386 al,
1387 "al r0 r8 plus r10 Offset",
1388 "al_r0_r8_plus_r10_Offset"},
1389 {{al, r0, r0, plus, r7, Offset},
1390 false,
1391 al,
1392 "al r0 r0 plus r7 Offset",
1393 "al_r0_r0_plus_r7_Offset"},
1394 {{al, r0, r11, minus, r2, Offset},
1395 false,
1396 al,
1397 "al r0 r11 minus r2 Offset",
1398 "al_r0_r11_minus_r2_Offset"},
1399 {{al, r0, r7, plus, r11, Offset},
1400 false,
1401 al,
1402 "al r0 r7 plus r11 Offset",
1403 "al_r0_r7_plus_r11_Offset"},
1404 {{al, r0, r13, plus, r3, Offset},
1405 false,
1406 al,
1407 "al r0 r13 plus r3 Offset",
1408 "al_r0_r13_plus_r3_Offset"},
1409 {{al, r0, r10, plus, r9, Offset},
1410 false,
1411 al,
1412 "al r0 r10 plus r9 Offset",
1413 "al_r0_r10_plus_r9_Offset"},
1414 {{al, r0, r5, minus, r2, Offset},
1415 false,
1416 al,
1417 "al r0 r5 minus r2 Offset",
1418 "al_r0_r5_minus_r2_Offset"},
1419 {{al, r0, r12, plus, r7, Offset},
1420 false,
1421 al,
1422 "al r0 r12 plus r7 Offset",
1423 "al_r0_r12_plus_r7_Offset"},
1424 {{al, r0, r5, minus, r14, Offset},
1425 false,
1426 al,
1427 "al r0 r5 minus r14 Offset",
1428 "al_r0_r5_minus_r14_Offset"},
1429 {{al, r0, r6, minus, r14, Offset},
1430 false,
1431 al,
1432 "al r0 r6 minus r14 Offset",
1433 "al_r0_r6_minus_r14_Offset"},
1434 {{al, r0, r2, plus, r3, Offset},
1435 false,
1436 al,
1437 "al r0 r2 plus r3 Offset",
1438 "al_r0_r2_plus_r3_Offset"},
1439 {{al, r0, r4, plus, r6, Offset},
1440 false,
1441 al,
1442 "al r0 r4 plus r6 Offset",
1443 "al_r0_r4_plus_r6_Offset"},
1444 {{al, r0, r10, plus, r2, Offset},
1445 false,
1446 al,
1447 "al r0 r10 plus r2 Offset",
1448 "al_r0_r10_plus_r2_Offset"},
1449 {{al, r0, r5, plus, r9, Offset},
1450 false,
1451 al,
1452 "al r0 r5 plus r9 Offset",
1453 "al_r0_r5_plus_r9_Offset"},
1454 {{al, r0, r13, plus, r6, Offset},
1455 false,
1456 al,
1457 "al r0 r13 plus r6 Offset",
1458 "al_r0_r13_plus_r6_Offset"},
1459 {{al, r0, r8, minus, r0, Offset},
1460 false,
1461 al,
1462 "al r0 r8 minus r0 Offset",
1463 "al_r0_r8_minus_r0_Offset"},
1464 {{al, r0, r9, minus, r14, Offset},
1465 false,
1466 al,
1467 "al r0 r9 minus r14 Offset",
1468 "al_r0_r9_minus_r14_Offset"},
1469 {{al, r0, r6, plus, r13, Offset},
1470 false,
1471 al,
1472 "al r0 r6 plus r13 Offset",
1473 "al_r0_r6_plus_r13_Offset"},
1474 {{al, r0, r3, minus, r11, Offset},
1475 false,
1476 al,
1477 "al r0 r3 minus r11 Offset",
1478 "al_r0_r3_minus_r11_Offset"},
1479 {{al, r0, r11, plus, r4, Offset},
1480 false,
1481 al,
1482 "al r0 r11 plus r4 Offset",
1483 "al_r0_r11_plus_r4_Offset"},
1484 {{al, r0, r2, minus, r3, Offset},
1485 false,
1486 al,
1487 "al r0 r2 minus r3 Offset",
1488 "al_r0_r2_minus_r3_Offset"},
1489 {{al, r0, r7, minus, r13, Offset},
1490 false,
1491 al,
1492 "al r0 r7 minus r13 Offset",
1493 "al_r0_r7_minus_r13_Offset"},
1494 {{al, r0, r2, plus, r5, Offset},
1495 false,
1496 al,
1497 "al r0 r2 plus r5 Offset",
1498 "al_r0_r2_plus_r5_Offset"},
1499 {{al, r0, r0, minus, r10, Offset},
1500 false,
1501 al,
1502 "al r0 r0 minus r10 Offset",
1503 "al_r0_r0_minus_r10_Offset"},
1504 {{al, r0, r9, plus, r0, Offset},
1505 false,
1506 al,
1507 "al r0 r9 plus r0 Offset",
1508 "al_r0_r9_plus_r0_Offset"},
1509 {{al, r0, r0, minus, r6, Offset},
1510 false,
1511 al,
1512 "al r0 r0 minus r6 Offset",
1513 "al_r0_r0_minus_r6_Offset"},
1514 {{al, r0, r1, plus, r7, Offset},
1515 false,
1516 al,
1517 "al r0 r1 plus r7 Offset",
1518 "al_r0_r1_plus_r7_Offset"},
1519 {{al, r0, r13, minus, r11, Offset},
1520 false,
1521 al,
1522 "al r0 r13 minus r11 Offset",
1523 "al_r0_r13_minus_r11_Offset"},
1524 {{al, r0, r7, minus, r11, Offset},
1525 false,
1526 al,
1527 "al r0 r7 minus r11 Offset",
1528 "al_r0_r7_minus_r11_Offset"},
1529 {{al, r0, r1, minus, r13, Offset},
1530 false,
1531 al,
1532 "al r0 r1 minus r13 Offset",
1533 "al_r0_r1_minus_r13_Offset"},
1534 {{al, r0, r9, plus, r1, Offset},
1535 false,
1536 al,
1537 "al r0 r9 plus r1 Offset",
1538 "al_r0_r9_plus_r1_Offset"},
1539 {{al, r0, r10, plus, r12, Offset},
1540 false,
1541 al,
1542 "al r0 r10 plus r12 Offset",
1543 "al_r0_r10_plus_r12_Offset"},
1544 {{al, r0, r14, minus, r11, Offset},
1545 false,
1546 al,
1547 "al r0 r14 minus r11 Offset",
1548 "al_r0_r14_minus_r11_Offset"},
1549 {{al, r0, r11, minus, r11, Offset},
1550 false,
1551 al,
1552 "al r0 r11 minus r11 Offset",
1553 "al_r0_r11_minus_r11_Offset"},
1554 {{al, r0, r8, plus, r9, Offset},
1555 false,
1556 al,
1557 "al r0 r8 plus r9 Offset",
1558 "al_r0_r8_plus_r9_Offset"},
1559 {{al, r0, r8, plus, r5, Offset},
1560 false,
1561 al,
1562 "al r0 r8 plus r5 Offset",
1563 "al_r0_r8_plus_r5_Offset"},
1564 {{al, r0, r0, plus, r11, Offset},
1565 false,
1566 al,
1567 "al r0 r0 plus r11 Offset",
1568 "al_r0_r0_plus_r11_Offset"},
1569 {{al, r0, r7, plus, r3, Offset},
1570 false,
1571 al,
1572 "al r0 r7 plus r3 Offset",
1573 "al_r0_r7_plus_r3_Offset"},
1574 {{al, r0, r3, minus, r1, Offset},
1575 false,
1576 al,
1577 "al r0 r3 minus r1 Offset",
1578 "al_r0_r3_minus_r1_Offset"},
1579 {{al, r0, r10, minus, r11, Offset},
1580 false,
1581 al,
1582 "al r0 r10 minus r11 Offset",
1583 "al_r0_r10_minus_r11_Offset"},
1584 {{al, r0, r4, plus, r2, Offset},
1585 false,
1586 al,
1587 "al r0 r4 plus r2 Offset",
1588 "al_r0_r4_plus_r2_Offset"},
1589 {{al, r0, r9, plus, r7, Offset},
1590 false,
1591 al,
1592 "al r0 r9 plus r7 Offset",
1593 "al_r0_r9_plus_r7_Offset"},
1594 {{al, r0, r9, minus, r9, Offset},
1595 false,
1596 al,
1597 "al r0 r9 minus r9 Offset",
1598 "al_r0_r9_minus_r9_Offset"},
1599 {{al, r0, r1, minus, r9, Offset},
1600 false,
1601 al,
1602 "al r0 r1 minus r9 Offset",
1603 "al_r0_r1_minus_r9_Offset"},
1604 {{al, r2, r5, plus, r9, PreIndex},
1605 false,
1606 al,
1607 "al r2 r5 plus r9 PreIndex",
1608 "al_r2_r5_plus_r9_PreIndex"},
1609 {{al, r8, r14, plus, r9, PreIndex},
1610 false,
1611 al,
1612 "al r8 r14 plus r9 PreIndex",
1613 "al_r8_r14_plus_r9_PreIndex"},
1614 {{al, r2, r10, minus, r3, PreIndex},
1615 false,
1616 al,
1617 "al r2 r10 minus r3 PreIndex",
1618 "al_r2_r10_minus_r3_PreIndex"},
1619 {{al, r9, r4, plus, r7, PostIndex},
1620 false,
1621 al,
1622 "al r9 r4 plus r7 PostIndex",
1623 "al_r9_r4_plus_r7_PostIndex"},
1624 {{al, r1, r2, plus, r4, PreIndex},
1625 false,
1626 al,
1627 "al r1 r2 plus r4 PreIndex",
1628 "al_r1_r2_plus_r4_PreIndex"},
1629 {{al, r5, r9, minus, r14, PostIndex},
1630 false,
1631 al,
1632 "al r5 r9 minus r14 PostIndex",
1633 "al_r5_r9_minus_r14_PostIndex"},
1634 {{al, r1, r8, plus, r6, PreIndex},
1635 false,
1636 al,
1637 "al r1 r8 plus r6 PreIndex",
1638 "al_r1_r8_plus_r6_PreIndex"},
1639 {{al, r13, r1, minus, r7, PreIndex},
1640 false,
1641 al,
1642 "al r13 r1 minus r7 PreIndex",
1643 "al_r13_r1_minus_r7_PreIndex"},
1644 {{al, r14, r7, minus, r5, PostIndex},
1645 false,
1646 al,
1647 "al r14 r7 minus r5 PostIndex",
1648 "al_r14_r7_minus_r5_PostIndex"},
1649 {{al, r1, r11, plus, r14, PostIndex},
1650 false,
1651 al,
1652 "al r1 r11 plus r14 PostIndex",
1653 "al_r1_r11_plus_r14_PostIndex"},
1654 {{al, r10, r14, minus, r6, PreIndex},
1655 false,
1656 al,
1657 "al r10 r14 minus r6 PreIndex",
1658 "al_r10_r14_minus_r6_PreIndex"},
1659 {{al, r1, r13, plus, r11, PostIndex},
1660 false,
1661 al,
1662 "al r1 r13 plus r11 PostIndex",
1663 "al_r1_r13_plus_r11_PostIndex"},
1664 {{al, r6, r12, minus, r7, PostIndex},
1665 false,
1666 al,
1667 "al r6 r12 minus r7 PostIndex",
1668 "al_r6_r12_minus_r7_PostIndex"},
1669 {{al, r8, r9, minus, r1, PreIndex},
1670 false,
1671 al,
1672 "al r8 r9 minus r1 PreIndex",
1673 "al_r8_r9_minus_r1_PreIndex"},
1674 {{al, r2, r11, plus, r4, PostIndex},
1675 false,
1676 al,
1677 "al r2 r11 plus r4 PostIndex",
1678 "al_r2_r11_plus_r4_PostIndex"},
1679 {{al, r7, r8, minus, r8, PreIndex},
1680 false,
1681 al,
1682 "al r7 r8 minus r8 PreIndex",
1683 "al_r7_r8_minus_r8_PreIndex"},
1684 {{al, r5, r9, plus, r13, PreIndex},
1685 false,
1686 al,
1687 "al r5 r9 plus r13 PreIndex",
1688 "al_r5_r9_plus_r13_PreIndex"},
1689 {{al, r1, r6, minus, r6, PostIndex},
1690 false,
1691 al,
1692 "al r1 r6 minus r6 PostIndex",
1693 "al_r1_r6_minus_r6_PostIndex"},
1694 {{al, r11, r0, plus, r11, PreIndex},
1695 false,
1696 al,
1697 "al r11 r0 plus r11 PreIndex",
1698 "al_r11_r0_plus_r11_PreIndex"},
1699 {{al, r1, r4, minus, r10, PreIndex},
1700 false,
1701 al,
1702 "al r1 r4 minus r10 PreIndex",
1703 "al_r1_r4_minus_r10_PreIndex"},
1704 {{al, r10, r3, minus, r1, PreIndex},
1705 false,
1706 al,
1707 "al r10 r3 minus r1 PreIndex",
1708 "al_r10_r3_minus_r1_PreIndex"},
1709 {{al, r11, r14, minus, r10, PreIndex},
1710 false,
1711 al,
1712 "al r11 r14 minus r10 PreIndex",
1713 "al_r11_r14_minus_r10_PreIndex"},
1714 {{al, r11, r4, plus, r4, PreIndex},
1715 false,
1716 al,
1717 "al r11 r4 plus r4 PreIndex",
1718 "al_r11_r4_plus_r4_PreIndex"},
1719 {{al, r8, r4, minus, r7, PreIndex},
1720 false,
1721 al,
1722 "al r8 r4 minus r7 PreIndex",
1723 "al_r8_r4_minus_r7_PreIndex"},
1724 {{al, r2, r11, plus, r8, PreIndex},
1725 false,
1726 al,
1727 "al r2 r11 plus r8 PreIndex",
1728 "al_r2_r11_plus_r8_PreIndex"},
1729 {{al, r12, r10, minus, r7, PreIndex},
1730 false,
1731 al,
1732 "al r12 r10 minus r7 PreIndex",
1733 "al_r12_r10_minus_r7_PreIndex"},
1734 {{al, r14, r2, minus, r7, PreIndex},
1735 false,
1736 al,
1737 "al r14 r2 minus r7 PreIndex",
1738 "al_r14_r2_minus_r7_PreIndex"},
1739 {{al, r2, r4, minus, r8, PreIndex},
1740 false,
1741 al,
1742 "al r2 r4 minus r8 PreIndex",
1743 "al_r2_r4_minus_r8_PreIndex"},
1744 {{al, r8, r6, plus, r13, PreIndex},
1745 false,
1746 al,
1747 "al r8 r6 plus r13 PreIndex",
1748 "al_r8_r6_plus_r13_PreIndex"},
1749 {{al, r9, r13, plus, r3, PostIndex},
1750 false,
1751 al,
1752 "al r9 r13 plus r3 PostIndex",
1753 "al_r9_r13_plus_r3_PostIndex"},
1754 {{al, r7, r11, plus, r13, PostIndex},
1755 false,
1756 al,
1757 "al r7 r11 plus r13 PostIndex",
1758 "al_r7_r11_plus_r13_PostIndex"},
1759 {{al, r1, r9, minus, r9, PostIndex},
1760 false,
1761 al,
1762 "al r1 r9 minus r9 PostIndex",
1763 "al_r1_r9_minus_r9_PostIndex"},
1764 {{al, r5, r8, minus, r11, PostIndex},
1765 false,
1766 al,
1767 "al r5 r8 minus r11 PostIndex",
1768 "al_r5_r8_minus_r11_PostIndex"},
1769 {{al, r0, r10, minus, r6, PreIndex},
1770 false,
1771 al,
1772 "al r0 r10 minus r6 PreIndex",
1773 "al_r0_r10_minus_r6_PreIndex"},
1774 {{al, r11, r14, minus, r6, PostIndex},
1775 false,
1776 al,
1777 "al r11 r14 minus r6 PostIndex",
1778 "al_r11_r14_minus_r6_PostIndex"},
1779 {{al, r5, r8, minus, r10, PreIndex},
1780 false,
1781 al,
1782 "al r5 r8 minus r10 PreIndex",
1783 "al_r5_r8_minus_r10_PreIndex"},
1784 {{al, r9, r10, minus, r10, PreIndex},
1785 false,
1786 al,
1787 "al r9 r10 minus r10 PreIndex",
1788 "al_r9_r10_minus_r10_PreIndex"},
1789 {{al, r1, r4, plus, r6, PreIndex},
1790 false,
1791 al,
1792 "al r1 r4 plus r6 PreIndex",
1793 "al_r1_r4_plus_r6_PreIndex"},
1794 {{al, r11, r10, minus, r2, PreIndex},
1795 false,
1796 al,
1797 "al r11 r10 minus r2 PreIndex",
1798 "al_r11_r10_minus_r2_PreIndex"},
1799 {{al, r3, r2, minus, r6, PostIndex},
1800 false,
1801 al,
1802 "al r3 r2 minus r6 PostIndex",
1803 "al_r3_r2_minus_r6_PostIndex"},
1804 {{al, r4, r1, plus, r13, PreIndex},
1805 false,
1806 al,
1807 "al r4 r1 plus r13 PreIndex",
1808 "al_r4_r1_plus_r13_PreIndex"},
1809 {{al, r2, r7, plus, r3, PostIndex},
1810 false,
1811 al,
1812 "al r2 r7 plus r3 PostIndex",
1813 "al_r2_r7_plus_r3_PostIndex"},
1814 {{al, r4, r9, minus, r8, PostIndex},
1815 false,
1816 al,
1817 "al r4 r9 minus r8 PostIndex",
1818 "al_r4_r9_minus_r8_PostIndex"},
1819 {{al, r1, r8, plus, r11, PostIndex},
1820 false,
1821 al,
1822 "al r1 r8 plus r11 PostIndex",
1823 "al_r1_r8_plus_r11_PostIndex"},
1824 {{al, r0, r2, minus, r7, PostIndex},
1825 false,
1826 al,
1827 "al r0 r2 minus r7 PostIndex",
1828 "al_r0_r2_minus_r7_PostIndex"},
1829 {{al, r6, r5, plus, r12, PreIndex},
1830 false,
1831 al,
1832 "al r6 r5 plus r12 PreIndex",
1833 "al_r6_r5_plus_r12_PreIndex"},
1834 {{al, r0, r3, plus, r0, PreIndex},
1835 false,
1836 al,
1837 "al r0 r3 plus r0 PreIndex",
1838 "al_r0_r3_plus_r0_PreIndex"},
1839 {{al, r5, r4, plus, r8, PostIndex},
1840 false,
1841 al,
1842 "al r5 r4 plus r8 PostIndex",
1843 "al_r5_r4_plus_r8_PostIndex"},
1844 {{al, r6, r0, plus, r6, PostIndex},
1845 false,
1846 al,
1847 "al r6 r0 plus r6 PostIndex",
1848 "al_r6_r0_plus_r6_PostIndex"},
1849 {{al, r1, r12, plus, r9, PreIndex},
1850 false,
1851 al,
1852 "al r1 r12 plus r9 PreIndex",
1853 "al_r1_r12_plus_r9_PreIndex"},
1854 {{al, r1, r6, plus, r11, PreIndex},
1855 false,
1856 al,
1857 "al r1 r6 plus r11 PreIndex",
1858 "al_r1_r6_plus_r11_PreIndex"},
1859 {{al, r6, r8, minus, r6, PostIndex},
1860 false,
1861 al,
1862 "al r6 r8 minus r6 PostIndex",
1863 "al_r6_r8_minus_r6_PostIndex"},
1864 {{al, r3, r2, plus, r14, PreIndex},
1865 false,
1866 al,
1867 "al r3 r2 plus r14 PreIndex",
1868 "al_r3_r2_plus_r14_PreIndex"},
1869 {{al, r9, r0, minus, r6, PreIndex},
1870 false,
1871 al,
1872 "al r9 r0 minus r6 PreIndex",
1873 "al_r9_r0_minus_r6_PreIndex"},
1874 {{al, r7, r2, minus, r2, PreIndex},
1875 false,
1876 al,
1877 "al r7 r2 minus r2 PreIndex",
1878 "al_r7_r2_minus_r2_PreIndex"},
1879 {{al, r13, r0, plus, r12, PreIndex},
1880 false,
1881 al,
1882 "al r13 r0 plus r12 PreIndex",
1883 "al_r13_r0_plus_r12_PreIndex"},
1884 {{al, r7, r14, minus, r3, PreIndex},
1885 false,
1886 al,
1887 "al r7 r14 minus r3 PreIndex",
1888 "al_r7_r14_minus_r3_PreIndex"},
1889 {{al, r1, r3, plus, r13, PreIndex},
1890 false,
1891 al,
1892 "al r1 r3 plus r13 PreIndex",
1893 "al_r1_r3_plus_r13_PreIndex"},
1894 {{al, r0, r4, plus, r8, PostIndex},
1895 false,
1896 al,
1897 "al r0 r4 plus r8 PostIndex",
1898 "al_r0_r4_plus_r8_PostIndex"},
1899 {{al, r0, r11, minus, r2, PostIndex},
1900 false,
1901 al,
1902 "al r0 r11 minus r2 PostIndex",
1903 "al_r0_r11_minus_r2_PostIndex"},
1904 {{al, r9, r6, minus, r12, PreIndex},
1905 false,
1906 al,
1907 "al r9 r6 minus r12 PreIndex",
1908 "al_r9_r6_minus_r12_PreIndex"},
1909 {{al, r8, r12, minus, r9, PreIndex},
1910 false,
1911 al,
1912 "al r8 r12 minus r9 PreIndex",
1913 "al_r8_r12_minus_r9_PreIndex"},
1914 {{al, r12, r10, minus, r11, PreIndex},
1915 false,
1916 al,
1917 "al r12 r10 minus r11 PreIndex",
1918 "al_r12_r10_minus_r11_PreIndex"},
1919 {{al, r10, r7, plus, r1, PostIndex},
1920 false,
1921 al,
1922 "al r10 r7 plus r1 PostIndex",
1923 "al_r10_r7_plus_r1_PostIndex"},
1924 {{al, r8, r14, minus, r6, PreIndex},
1925 false,
1926 al,
1927 "al r8 r14 minus r6 PreIndex",
1928 "al_r8_r14_minus_r6_PreIndex"},
1929 {{al, r6, r8, minus, r2, PostIndex},
1930 false,
1931 al,
1932 "al r6 r8 minus r2 PostIndex",
1933 "al_r6_r8_minus_r2_PostIndex"},
1934 {{al, r10, r9, plus, r5, PostIndex},
1935 false,
1936 al,
1937 "al r10 r9 plus r5 PostIndex",
1938 "al_r10_r9_plus_r5_PostIndex"},
1939 {{al, r5, r12, minus, r4, PreIndex},
1940 false,
1941 al,
1942 "al r5 r12 minus r4 PreIndex",
1943 "al_r5_r12_minus_r4_PreIndex"},
1944 {{al, r5, r4, plus, r4, PreIndex},
1945 false,
1946 al,
1947 "al r5 r4 plus r4 PreIndex",
1948 "al_r5_r4_plus_r4_PreIndex"},
1949 {{al, r8, r9, minus, r3, PreIndex},
1950 false,
1951 al,
1952 "al r8 r9 minus r3 PreIndex",
1953 "al_r8_r9_minus_r3_PreIndex"},
1954 {{al, r7, r11, minus, r5, PreIndex},
1955 false,
1956 al,
1957 "al r7 r11 minus r5 PreIndex",
1958 "al_r7_r11_minus_r5_PreIndex"},
1959 {{al, r9, r6, minus, r6, PostIndex},
1960 false,
1961 al,
1962 "al r9 r6 minus r6 PostIndex",
1963 "al_r9_r6_minus_r6_PostIndex"},
1964 {{al, r11, r5, plus, r3, PreIndex},
1965 false,
1966 al,
1967 "al r11 r5 plus r3 PreIndex",
1968 "al_r11_r5_plus_r3_PreIndex"},
1969 {{al, r9, r0, minus, r4, PreIndex},
1970 false,
1971 al,
1972 "al r9 r0 minus r4 PreIndex",
1973 "al_r9_r0_minus_r4_PreIndex"},
1974 {{al, r0, r12, plus, r1, PostIndex},
1975 false,
1976 al,
1977 "al r0 r12 plus r1 PostIndex",
1978 "al_r0_r12_plus_r1_PostIndex"},
1979 {{al, r1, r0, minus, r6, PreIndex},
1980 false,
1981 al,
1982 "al r1 r0 minus r6 PreIndex",
1983 "al_r1_r0_minus_r6_PreIndex"},
1984 {{al, r10, r0, minus, r5, PreIndex},
1985 false,
1986 al,
1987 "al r10 r0 minus r5 PreIndex",
1988 "al_r10_r0_minus_r5_PreIndex"},
1989 {{al, r8, r4, plus, r3, PreIndex},
1990 false,
1991 al,
1992 "al r8 r4 plus r3 PreIndex",
1993 "al_r8_r4_plus_r3_PreIndex"},
1994 {{al, r14, r12, minus, r5, PreIndex},
1995 false,
1996 al,
1997 "al r14 r12 minus r5 PreIndex",
1998 "al_r14_r12_minus_r5_PreIndex"},
1999 {{al, r4, r13, minus, r9, PreIndex},
2000 false,
2001 al,
2002 "al r4 r13 minus r9 PreIndex",
2003 "al_r4_r13_minus_r9_PreIndex"},
2004 {{al, r8, r13, minus, r4, PreIndex},
2005 false,
2006 al,
2007 "al r8 r13 minus r4 PreIndex",
2008 "al_r8_r13_minus_r4_PreIndex"},
2009 {{al, r11, r6, minus, r8, PostIndex},
2010 false,
2011 al,
2012 "al r11 r6 minus r8 PostIndex",
2013 "al_r11_r6_minus_r8_PostIndex"},
2014 {{al, r9, r5, plus, r9, PostIndex},
2015 false,
2016 al,
2017 "al r9 r5 plus r9 PostIndex",
2018 "al_r9_r5_plus_r9_PostIndex"},
2019 {{al, r9, r4, minus, r6, PreIndex},
2020 false,
2021 al,
2022 "al r9 r4 minus r6 PreIndex",
2023 "al_r9_r4_minus_r6_PreIndex"},
2024 {{al, r4, r9, minus, r13, PreIndex},
2025 false,
2026 al,
2027 "al r4 r9 minus r13 PreIndex",
2028 "al_r4_r9_minus_r13_PreIndex"},
2029 {{al, r2, r10, plus, r10, PreIndex},
2030 false,
2031 al,
2032 "al r2 r10 plus r10 PreIndex",
2033 "al_r2_r10_plus_r10_PreIndex"},
2034 {{al, r11, r8, plus, r4, PreIndex},
2035 false,
2036 al,
2037 "al r11 r8 plus r4 PreIndex",
2038 "al_r11_r8_plus_r4_PreIndex"},
2039 {{al, r7, r1, minus, r0, PreIndex},
2040 false,
2041 al,
2042 "al r7 r1 minus r0 PreIndex",
2043 "al_r7_r1_minus_r0_PreIndex"},
2044 {{al, r5, r10, plus, r12, PreIndex},
2045 false,
2046 al,
2047 "al r5 r10 plus r12 PreIndex",
2048 "al_r5_r10_plus_r12_PreIndex"},
2049 {{al, r0, r5, minus, r9, PostIndex},
2050 false,
2051 al,
2052 "al r0 r5 minus r9 PostIndex",
2053 "al_r0_r5_minus_r9_PostIndex"},
2054 {{al, r14, r7, minus, r7, PostIndex},
2055 false,
2056 al,
2057 "al r14 r7 minus r7 PostIndex",
2058 "al_r14_r7_minus_r7_PostIndex"},
2059 {{al, r12, r0, minus, r12, PostIndex},
2060 false,
2061 al,
2062 "al r12 r0 minus r12 PostIndex",
2063 "al_r12_r0_minus_r12_PostIndex"},
2064 {{al, r0, r13, minus, r13, PreIndex},
2065 false,
2066 al,
2067 "al r0 r13 minus r13 PreIndex",
2068 "al_r0_r13_minus_r13_PreIndex"},
2069 {{al, r9, r7, minus, r4, PostIndex},
2070 false,
2071 al,
2072 "al r9 r7 minus r4 PostIndex",
2073 "al_r9_r7_minus_r4_PostIndex"},
2074 {{al, r7, r10, minus, r0, PostIndex},
2075 false,
2076 al,
2077 "al r7 r10 minus r0 PostIndex",
2078 "al_r7_r10_minus_r0_PostIndex"},
2079 {{al, r7, r0, plus, r11, PostIndex},
2080 false,
2081 al,
2082 "al r7 r0 plus r11 PostIndex",
2083 "al_r7_r0_plus_r11_PostIndex"},
2084 {{al, r2, r8, plus, r9, PreIndex},
2085 false,
2086 al,
2087 "al r2 r8 plus r9 PreIndex",
2088 "al_r2_r8_plus_r9_PreIndex"},
2089 {{al, r12, r14, plus, r2, PreIndex},
2090 false,
2091 al,
2092 "al r12 r14 plus r2 PreIndex",
2093 "al_r12_r14_plus_r2_PreIndex"},
2094 {{al, r3, r6, minus, r8, PostIndex},
2095 false,
2096 al,
2097 "al r3 r6 minus r8 PostIndex",
2098 "al_r3_r6_minus_r8_PostIndex"},
2099 {{al, r10, r11, plus, r8, PreIndex},
2100 false,
2101 al,
2102 "al r10 r11 plus r8 PreIndex",
2103 "al_r10_r11_plus_r8_PreIndex"},
2104 {{al, r0, r7, minus, r8, PostIndex},
2105 false,
2106 al,
2107 "al r0 r7 minus r8 PostIndex",
2108 "al_r0_r7_minus_r8_PostIndex"},
2109 {{al, r14, r9, plus, r1, PostIndex},
2110 false,
2111 al,
2112 "al r14 r9 plus r1 PostIndex",
2113 "al_r14_r9_plus_r1_PostIndex"},
2114 {{al, r0, r9, plus, r9, PostIndex},
2115 false,
2116 al,
2117 "al r0 r9 plus r9 PostIndex",
2118 "al_r0_r9_plus_r9_PostIndex"},
2119 {{al, r3, r2, plus, r14, PostIndex},
2120 false,
2121 al,
2122 "al r3 r2 plus r14 PostIndex",
2123 "al_r3_r2_plus_r14_PostIndex"},
2124 {{al, r3, r5, plus, r12, PostIndex},
2125 false,
2126 al,
2127 "al r3 r5 plus r12 PostIndex",
2128 "al_r3_r5_plus_r12_PostIndex"},
2129 {{al, r9, r5, plus, r4, PreIndex},
2130 false,
2131 al,
2132 "al r9 r5 plus r4 PreIndex",
2133 "al_r9_r5_plus_r4_PreIndex"},
2134 {{al, r7, r11, minus, r5, PostIndex},
2135 false,
2136 al,
2137 "al r7 r11 minus r5 PostIndex",
2138 "al_r7_r11_minus_r5_PostIndex"},
2139 {{al, r0, r4, plus, r13, PreIndex},
2140 false,
2141 al,
2142 "al r0 r4 plus r13 PreIndex",
2143 "al_r0_r4_plus_r13_PreIndex"},
2144 {{al, r2, r4, plus, r10, PreIndex},
2145 false,
2146 al,
2147 "al r2 r4 plus r10 PreIndex",
2148 "al_r2_r4_plus_r10_PreIndex"},
2149 {{al, r14, r9, plus, r2, PostIndex},
2150 false,
2151 al,
2152 "al r14 r9 plus r2 PostIndex",
2153 "al_r14_r9_plus_r2_PostIndex"},
2154 {{al, r10, r9, plus, r1, PostIndex},
2155 false,
2156 al,
2157 "al r10 r9 plus r1 PostIndex",
2158 "al_r10_r9_plus_r1_PostIndex"},
2159 {{al, r0, r13, minus, r6, PreIndex},
2160 false,
2161 al,
2162 "al r0 r13 minus r6 PreIndex",
2163 "al_r0_r13_minus_r6_PreIndex"},
2164 {{al, r2, r0, minus, r10, PostIndex},
2165 false,
2166 al,
2167 "al r2 r0 minus r10 PostIndex",
2168 "al_r2_r0_minus_r10_PostIndex"},
2169 {{al, r0, r10, minus, r3, PreIndex},
2170 false,
2171 al,
2172 "al r0 r10 minus r3 PreIndex",
2173 "al_r0_r10_minus_r3_PreIndex"},
2174 {{al, r1, r7, minus, r9, PreIndex},
2175 false,
2176 al,
2177 "al r1 r7 minus r9 PreIndex",
2178 "al_r1_r7_minus_r9_PreIndex"},
2179 {{al, r13, r6, minus, r11, PostIndex},
2180 false,
2181 al,
2182 "al r13 r6 minus r11 PostIndex",
2183 "al_r13_r6_minus_r11_PostIndex"},
2184 {{al, r4, r6, plus, r12, PreIndex},
2185 false,
2186 al,
2187 "al r4 r6 plus r12 PreIndex",
2188 "al_r4_r6_plus_r12_PreIndex"},
2189 {{al, r12, r7, minus, r2, PostIndex},
2190 false,
2191 al,
2192 "al r12 r7 minus r2 PostIndex",
2193 "al_r12_r7_minus_r2_PostIndex"},
2194 {{al, r11, r9, minus, r6, PreIndex},
2195 false,
2196 al,
2197 "al r11 r9 minus r6 PreIndex",
2198 "al_r11_r9_minus_r6_PreIndex"},
2199 {{al, r13, r11, minus, r8, PostIndex},
2200 false,
2201 al,
2202 "al r13 r11 minus r8 PostIndex",
2203 "al_r13_r11_minus_r8_PostIndex"},
2204 {{al, r13, r3, minus, r13, PreIndex},
2205 false,
2206 al,
2207 "al r13 r3 minus r13 PreIndex",
2208 "al_r13_r3_minus_r13_PreIndex"},
2209 {{al, r2, r9, plus, r1, PostIndex},
2210 false,
2211 al,
2212 "al r2 r9 plus r1 PostIndex",
2213 "al_r2_r9_plus_r1_PostIndex"},
2214 {{al, r9, r2, minus, r12, PostIndex},
2215 false,
2216 al,
2217 "al r9 r2 minus r12 PostIndex",
2218 "al_r9_r2_minus_r12_PostIndex"},
2219 {{al, r10, r0, minus, r9, PreIndex},
2220 false,
2221 al,
2222 "al r10 r0 minus r9 PreIndex",
2223 "al_r10_r0_minus_r9_PreIndex"},
2224 {{al, r4, r11, minus, r3, PreIndex},
2225 false,
2226 al,
2227 "al r4 r11 minus r3 PreIndex",
2228 "al_r4_r11_minus_r3_PreIndex"},
2229 {{al, r2, r7, plus, r12, PreIndex},
2230 false,
2231 al,
2232 "al r2 r7 plus r12 PreIndex",
2233 "al_r2_r7_plus_r12_PreIndex"},
2234 {{al, r14, r2, plus, r0, PreIndex},
2235 false,
2236 al,
2237 "al r14 r2 plus r0 PreIndex",
2238 "al_r14_r2_plus_r0_PreIndex"},
2239 {{al, r13, r4, minus, r2, PreIndex},
2240 false,
2241 al,
2242 "al r13 r4 minus r2 PreIndex",
2243 "al_r13_r4_minus_r2_PreIndex"},
2244 {{al, r13, r6, plus, r13, PreIndex},
2245 false,
2246 al,
2247 "al r13 r6 plus r13 PreIndex",
2248 "al_r13_r6_plus_r13_PreIndex"},
2249 {{al, r2, r1, minus, r4, PostIndex},
2250 false,
2251 al,
2252 "al r2 r1 minus r4 PostIndex",
2253 "al_r2_r1_minus_r4_PostIndex"},
2254 {{al, r4, r2, minus, r8, PreIndex},
2255 false,
2256 al,
2257 "al r4 r2 minus r8 PreIndex",
2258 "al_r4_r2_minus_r8_PreIndex"},
2259 {{al, r0, r8, plus, r6, PostIndex},
2260 false,
2261 al,
2262 "al r0 r8 plus r6 PostIndex",
2263 "al_r0_r8_plus_r6_PostIndex"},
2264 {{al, r11, r10, minus, r13, PreIndex},
2265 false,
2266 al,
2267 "al r11 r10 minus r13 PreIndex",
2268 "al_r11_r10_minus_r13_PreIndex"},
2269 {{al, r10, r0, plus, r3, PreIndex},
2270 false,
2271 al,
2272 "al r10 r0 plus r3 PreIndex",
2273 "al_r10_r0_plus_r3_PreIndex"},
2274 {{al, r1, r6, minus, r10, PreIndex},
2275 false,
2276 al,
2277 "al r1 r6 minus r10 PreIndex",
2278 "al_r1_r6_minus_r10_PreIndex"},
2279 {{al, r12, r2, plus, r13, PostIndex},
2280 false,
2281 al,
2282 "al r12 r2 plus r13 PostIndex",
2283 "al_r12_r2_plus_r13_PostIndex"},
2284 {{al, r14, r2, minus, r0, PostIndex},
2285 false,
2286 al,
2287 "al r14 r2 minus r0 PostIndex",
2288 "al_r14_r2_minus_r0_PostIndex"},
2289 {{al, r4, r9, minus, r10, PreIndex},
2290 false,
2291 al,
2292 "al r4 r9 minus r10 PreIndex",
2293 "al_r4_r9_minus_r10_PreIndex"},
2294 {{al, r8, r1, plus, r14, PostIndex},
2295 false,
2296 al,
2297 "al r8 r1 plus r14 PostIndex",
2298 "al_r8_r1_plus_r14_PostIndex"},
2299 {{al, r14, r2, minus, r13, PostIndex},
2300 false,
2301 al,
2302 "al r14 r2 minus r13 PostIndex",
2303 "al_r14_r2_minus_r13_PostIndex"},
2304 {{al, r4, r5, plus, r6, PostIndex},
2305 false,
2306 al,
2307 "al r4 r5 plus r6 PostIndex",
2308 "al_r4_r5_plus_r6_PostIndex"},
2309 {{al, r13, r2, minus, r0, PostIndex},
2310 false,
2311 al,
2312 "al r13 r2 minus r0 PostIndex",
2313 "al_r13_r2_minus_r0_PostIndex"},
2314 {{al, r12, r0, plus, r14, PostIndex},
2315 false,
2316 al,
2317 "al r12 r0 plus r14 PostIndex",
2318 "al_r12_r0_plus_r14_PostIndex"},
2319 {{al, r3, r2, plus, r8, PostIndex},
2320 false,
2321 al,
2322 "al r3 r2 plus r8 PostIndex",
2323 "al_r3_r2_plus_r8_PostIndex"},
2324 {{al, r12, r2, minus, r0, PreIndex},
2325 false,
2326 al,
2327 "al r12 r2 minus r0 PreIndex",
2328 "al_r12_r2_minus_r0_PreIndex"},
2329 {{al, r14, r7, minus, r13, PostIndex},
2330 false,
2331 al,
2332 "al r14 r7 minus r13 PostIndex",
2333 "al_r14_r7_minus_r13_PostIndex"},
2334 {{al, r2, r12, minus, r7, PreIndex},
2335 false,
2336 al,
2337 "al r2 r12 minus r7 PreIndex",
2338 "al_r2_r12_minus_r7_PreIndex"},
2339 {{al, r12, r10, plus, r12, PreIndex},
2340 false,
2341 al,
2342 "al r12 r10 plus r12 PreIndex",
2343 "al_r12_r10_plus_r12_PreIndex"},
2344 {{al, r11, r1, plus, r4, PostIndex},
2345 false,
2346 al,
2347 "al r11 r1 plus r4 PostIndex",
2348 "al_r11_r1_plus_r4_PostIndex"},
2349 {{al, r0, r8, plus, r12, PostIndex},
2350 false,
2351 al,
2352 "al r0 r8 plus r12 PostIndex",
2353 "al_r0_r8_plus_r12_PostIndex"},
2354 {{al, r8, r13, minus, r3, PreIndex},
2355 false,
2356 al,
2357 "al r8 r13 minus r3 PreIndex",
2358 "al_r8_r13_minus_r3_PreIndex"},
2359 {{al, r8, r4, minus, r6, PostIndex},
2360 false,
2361 al,
2362 "al r8 r4 minus r6 PostIndex",
2363 "al_r8_r4_minus_r6_PostIndex"},
2364 {{al, r0, r7, minus, r6, PreIndex},
2365 false,
2366 al,
2367 "al r0 r7 minus r6 PreIndex",
2368 "al_r0_r7_minus_r6_PreIndex"},
2369 {{al, r5, r6, plus, r2, PreIndex},
2370 false,
2371 al,
2372 "al r5 r6 plus r2 PreIndex",
2373 "al_r5_r6_plus_r2_PreIndex"},
2374 {{al, r8, r1, minus, r4, PreIndex},
2375 false,
2376 al,
2377 "al r8 r1 minus r4 PreIndex",
2378 "al_r8_r1_minus_r4_PreIndex"},
2379 {{al, r8, r6, minus, r11, PreIndex},
2380 false,
2381 al,
2382 "al r8 r6 minus r11 PreIndex",
2383 "al_r8_r6_minus_r11_PreIndex"},
2384 {{al, r10, r5, plus, r12, PreIndex},
2385 false,
2386 al,
2387 "al r10 r5 plus r12 PreIndex",
2388 "al_r10_r5_plus_r12_PreIndex"},
2389 {{al, r5, r9, plus, r6, PreIndex},
2390 false,
2391 al,
2392 "al r5 r9 plus r6 PreIndex",
2393 "al_r5_r9_plus_r6_PreIndex"},
2394 {{al, r0, r5, plus, r7, PostIndex},
2395 false,
2396 al,
2397 "al r0 r5 plus r7 PostIndex",
2398 "al_r0_r5_plus_r7_PostIndex"},
2399 {{al, r3, r13, plus, r5, PostIndex},
2400 false,
2401 al,
2402 "al r3 r13 plus r5 PostIndex",
2403 "al_r3_r13_plus_r5_PostIndex"},
2404 {{al, r3, r14, minus, r1, PostIndex},
2405 false,
2406 al,
2407 "al r3 r14 minus r1 PostIndex",
2408 "al_r3_r14_minus_r1_PostIndex"},
2409 {{al, r0, r13, minus, r11, PostIndex},
2410 false,
2411 al,
2412 "al r0 r13 minus r11 PostIndex",
2413 "al_r0_r13_minus_r11_PostIndex"},
2414 {{al, r3, r7, plus, r14, PreIndex},
2415 false,
2416 al,
2417 "al r3 r7 plus r14 PreIndex",
2418 "al_r3_r7_plus_r14_PreIndex"},
2419 {{al, r1, r8, minus, r7, PostIndex},
2420 false,
2421 al,
2422 "al r1 r8 minus r7 PostIndex",
2423 "al_r1_r8_minus_r7_PostIndex"},
2424 {{al, r6, r3, minus, r1, PostIndex},
2425 false,
2426 al,
2427 "al r6 r3 minus r1 PostIndex",
2428 "al_r6_r3_minus_r1_PostIndex"},
2429 {{al, r5, r8, plus, r7, PostIndex},
2430 false,
2431 al,
2432 "al r5 r8 plus r7 PostIndex",
2433 "al_r5_r8_plus_r7_PostIndex"},
2434 {{al, r3, r1, plus, r6, PostIndex},
2435 false,
2436 al,
2437 "al r3 r1 plus r6 PostIndex",
2438 "al_r3_r1_plus_r6_PostIndex"},
2439 {{al, r4, r0, minus, r9, PostIndex},
2440 false,
2441 al,
2442 "al r4 r0 minus r9 PostIndex",
2443 "al_r4_r0_minus_r9_PostIndex"},
2444 {{al, r14, r7, minus, r6, PostIndex},
2445 false,
2446 al,
2447 "al r14 r7 minus r6 PostIndex",
2448 "al_r14_r7_minus_r6_PostIndex"},
2449 {{al, r3, r5, minus, r4, PreIndex},
2450 false,
2451 al,
2452 "al r3 r5 minus r4 PreIndex",
2453 "al_r3_r5_minus_r4_PreIndex"},
2454 {{al, r11, r14, plus, r14, PreIndex},
2455 false,
2456 al,
2457 "al r11 r14 plus r14 PreIndex",
2458 "al_r11_r14_plus_r14_PreIndex"},
2459 {{al, r3, r14, plus, r5, PreIndex},
2460 false,
2461 al,
2462 "al r3 r14 plus r5 PreIndex",
2463 "al_r3_r14_plus_r5_PreIndex"},
2464 {{al, r1, r11, minus, r11, PreIndex},
2465 false,
2466 al,
2467 "al r1 r11 minus r11 PreIndex",
2468 "al_r1_r11_minus_r11_PreIndex"},
2469 {{al, r11, r7, plus, r14, PostIndex},
2470 false,
2471 al,
2472 "al r11 r7 plus r14 PostIndex",
2473 "al_r11_r7_plus_r14_PostIndex"},
2474 {{al, r7, r9, plus, r13, PostIndex},
2475 false,
2476 al,
2477 "al r7 r9 plus r13 PostIndex",
2478 "al_r7_r9_plus_r13_PostIndex"},
2479 {{al, r3, r11, plus, r14, PostIndex},
2480 false,
2481 al,
2482 "al r3 r11 plus r14 PostIndex",
2483 "al_r3_r11_plus_r14_PostIndex"},
2484 {{al, r3, r6, minus, r6, PreIndex},
2485 false,
2486 al,
2487 "al r3 r6 minus r6 PreIndex",
2488 "al_r3_r6_minus_r6_PreIndex"},
2489 {{al, r2, r3, minus, r6, PreIndex},
2490 false,
2491 al,
2492 "al r2 r3 minus r6 PreIndex",
2493 "al_r2_r3_minus_r6_PreIndex"},
2494 {{al, r2, r11, plus, r1, PostIndex},
2495 false,
2496 al,
2497 "al r2 r11 plus r1 PostIndex",
2498 "al_r2_r11_plus_r1_PostIndex"},
2499 {{al, r13, r12, plus, r10, PostIndex},
2500 false,
2501 al,
2502 "al r13 r12 plus r10 PostIndex",
2503 "al_r13_r12_plus_r10_PostIndex"},
2504 {{al, r1, r2, plus, r11, PreIndex},
2505 false,
2506 al,
2507 "al r1 r2 plus r11 PreIndex",
2508 "al_r1_r2_plus_r11_PreIndex"},
2509 {{al, r3, r12, plus, r14, PreIndex},
2510 false,
2511 al,
2512 "al r3 r12 plus r14 PreIndex",
2513 "al_r3_r12_plus_r14_PreIndex"},
2514 {{al, r0, r6, plus, r11, PostIndex},
2515 false,
2516 al,
2517 "al r0 r6 plus r11 PostIndex",
2518 "al_r0_r6_plus_r11_PostIndex"},
2519 {{al, r4, r6, minus, r13, PostIndex},
2520 false,
2521 al,
2522 "al r4 r6 minus r13 PostIndex",
2523 "al_r4_r6_minus_r13_PostIndex"},
2524 {{al, r11, r8, minus, r13, PreIndex},
2525 false,
2526 al,
2527 "al r11 r8 minus r13 PreIndex",
2528 "al_r11_r8_minus_r13_PreIndex"},
2529 {{al, r5, r3, minus, r6, PostIndex},
2530 false,
2531 al,
2532 "al r5 r3 minus r6 PostIndex",
2533 "al_r5_r3_minus_r6_PostIndex"},
2534 {{al, r8, r1, plus, r2, PostIndex},
2535 false,
2536 al,
2537 "al r8 r1 plus r2 PostIndex",
2538 "al_r8_r1_plus_r2_PostIndex"},
2539 {{al, r11, r5, minus, r13, PreIndex},
2540 false,
2541 al,
2542 "al r11 r5 minus r13 PreIndex",
2543 "al_r11_r5_minus_r13_PreIndex"},
2544 {{al, r7, r9, plus, r2, PostIndex},
2545 false,
2546 al,
2547 "al r7 r9 plus r2 PostIndex",
2548 "al_r7_r9_plus_r2_PostIndex"},
2549 {{al, r3, r10, plus, r11, PostIndex},
2550 false,
2551 al,
2552 "al r3 r10 plus r11 PostIndex",
2553 "al_r3_r10_plus_r11_PostIndex"},
2554 {{al, r0, r12, plus, r11, PreIndex},
2555 false,
2556 al,
2557 "al r0 r12 plus r11 PreIndex",
2558 "al_r0_r12_plus_r11_PreIndex"},
2559 {{al, r7, r4, plus, r14, PostIndex},
2560 false,
2561 al,
2562 "al r7 r4 plus r14 PostIndex",
2563 "al_r7_r4_plus_r14_PostIndex"},
2564 {{al, r11, r5, plus, r1, PreIndex},
2565 false,
2566 al,
2567 "al r11 r5 plus r1 PreIndex",
2568 "al_r11_r5_plus_r1_PreIndex"},
2569 {{al, r3, r2, plus, r3, PostIndex},
2570 false,
2571 al,
2572 "al r3 r2 plus r3 PostIndex",
2573 "al_r3_r2_plus_r3_PostIndex"},
2574 {{al, r11, r8, minus, r4, PostIndex},
2575 false,
2576 al,
2577 "al r11 r8 minus r4 PostIndex",
2578 "al_r11_r8_minus_r4_PostIndex"},
2579 {{al, r14, r5, plus, r10, PostIndex},
2580 false,
2581 al,
2582 "al r14 r5 plus r10 PostIndex",
2583 "al_r14_r5_plus_r10_PostIndex"},
2584 {{al, r13, r3, minus, r3, PreIndex},
2585 false,
2586 al,
2587 "al r13 r3 minus r3 PreIndex",
2588 "al_r13_r3_minus_r3_PreIndex"},
2589 {{al, r2, r3, minus, r8, PostIndex},
2590 false,
2591 al,
2592 "al r2 r3 minus r8 PostIndex",
2593 "al_r2_r3_minus_r8_PostIndex"},
2594 {{al, r2, r13, minus, r1, PreIndex},
2595 false,
2596 al,
2597 "al r2 r13 minus r1 PreIndex",
2598 "al_r2_r13_minus_r1_PreIndex"},
2599 {{al, r0, r13, plus, r1, PostIndex},
2600 false,
2601 al,
2602 "al r0 r13 plus r1 PostIndex",
2603 "al_r0_r13_plus_r1_PostIndex"},
2604 {{al, r6, r5, plus, r3, PreIndex},
2605 false,
2606 al,
2607 "al r6 r5 plus r3 PreIndex",
2608 "al_r6_r5_plus_r3_PreIndex"},
2609 {{al, r0, r3, plus, r12, PreIndex},
2610 false,
2611 al,
2612 "al r0 r3 plus r12 PreIndex",
2613 "al_r0_r3_plus_r12_PreIndex"},
2614 {{al, r4, r7, plus, r3, PreIndex},
2615 false,
2616 al,
2617 "al r4 r7 plus r3 PreIndex",
2618 "al_r4_r7_plus_r3_PreIndex"},
2619 {{al, r11, r14, plus, r11, PostIndex},
2620 false,
2621 al,
2622 "al r11 r14 plus r11 PostIndex",
2623 "al_r11_r14_plus_r11_PostIndex"},
2624 {{al, r0, r11, minus, r14, PreIndex},
2625 false,
2626 al,
2627 "al r0 r11 minus r14 PreIndex",
2628 "al_r0_r11_minus_r14_PreIndex"},
2629 {{al, r11, r9, plus, r2, PostIndex},
2630 false,
2631 al,
2632 "al r11 r9 plus r2 PostIndex",
2633 "al_r11_r9_plus_r2_PostIndex"},
2634 {{al, r14, r1, minus, r12, PreIndex},
2635 false,
2636 al,
2637 "al r14 r1 minus r12 PreIndex",
2638 "al_r14_r1_minus_r12_PreIndex"},
2639 {{al, r5, r6, plus, r1, PreIndex},
2640 false,
2641 al,
2642 "al r5 r6 plus r1 PreIndex",
2643 "al_r5_r6_plus_r1_PreIndex"},
2644 {{al, r10, r5, minus, r3, PostIndex},
2645 false,
2646 al,
2647 "al r10 r5 minus r3 PostIndex",
2648 "al_r10_r5_minus_r3_PostIndex"},
2649 {{al, r1, r4, plus, r8, PreIndex},
2650 false,
2651 al,
2652 "al r1 r4 plus r8 PreIndex",
2653 "al_r1_r4_plus_r8_PreIndex"},
2654 {{al, r12, r14, plus, r0, PostIndex},
2655 false,
2656 al,
2657 "al r12 r14 plus r0 PostIndex",
2658 "al_r12_r14_plus_r0_PostIndex"},
2659 {{al, r1, r0, plus, r10, PreIndex},
2660 false,
2661 al,
2662 "al r1 r0 plus r10 PreIndex",
2663 "al_r1_r0_plus_r10_PreIndex"},
2664 {{al, r13, r11, plus, r14, PreIndex},
2665 false,
2666 al,
2667 "al r13 r11 plus r14 PreIndex",
2668 "al_r13_r11_plus_r14_PreIndex"},
2669 {{al, r7, r8, plus, r13, PostIndex},
2670 false,
2671 al,
2672 "al r7 r8 plus r13 PostIndex",
2673 "al_r7_r8_plus_r13_PostIndex"},
2674 {{al, r2, r3, minus, r11, PostIndex},
2675 false,
2676 al,
2677 "al r2 r3 minus r11 PostIndex",
2678 "al_r2_r3_minus_r11_PostIndex"},
2679 {{al, r8, r11, plus, r8, PreIndex},
2680 false,
2681 al,
2682 "al r8 r11 plus r8 PreIndex",
2683 "al_r8_r11_plus_r8_PreIndex"},
2684 {{al, r7, r13, plus, r12, PreIndex},
2685 false,
2686 al,
2687 "al r7 r13 plus r12 PreIndex",
2688 "al_r7_r13_plus_r12_PreIndex"},
2689 {{al, r2, r10, plus, r7, PostIndex},
2690 false,
2691 al,
2692 "al r2 r10 plus r7 PostIndex",
2693 "al_r2_r10_plus_r7_PostIndex"},
2694 {{al, r5, r4, minus, r6, PreIndex},
2695 false,
2696 al,
2697 "al r5 r4 minus r6 PreIndex",
2698 "al_r5_r4_minus_r6_PreIndex"},
2699 {{al, r10, r2, plus, r4, PostIndex},
2700 false,
2701 al,
2702 "al r10 r2 plus r4 PostIndex",
2703 "al_r10_r2_plus_r4_PostIndex"},
2704 {{al, r4, r9, minus, r14, PreIndex},
2705 false,
2706 al,
2707 "al r4 r9 minus r14 PreIndex",
2708 "al_r4_r9_minus_r14_PreIndex"},
2709 {{al, r3, r11, plus, r8, PostIndex},
2710 false,
2711 al,
2712 "al r3 r11 plus r8 PostIndex",
2713 "al_r3_r11_plus_r8_PostIndex"},
2714 {{al, r14, r13, minus, r8, PreIndex},
2715 false,
2716 al,
2717 "al r14 r13 minus r8 PreIndex",
2718 "al_r14_r13_minus_r8_PreIndex"},
2719 {{al, r5, r13, minus, r7, PreIndex},
2720 false,
2721 al,
2722 "al r5 r13 minus r7 PreIndex",
2723 "al_r5_r13_minus_r7_PreIndex"},
2724 {{al, r5, r2, minus, r2, PreIndex},
2725 false,
2726 al,
2727 "al r5 r2 minus r2 PreIndex",
2728 "al_r5_r2_minus_r2_PreIndex"},
2729 {{al, r9, r2, minus, r9, PreIndex},
2730 false,
2731 al,
2732 "al r9 r2 minus r9 PreIndex",
2733 "al_r9_r2_minus_r9_PreIndex"},
2734 {{al, r2, r7, plus, r11, PreIndex},
2735 false,
2736 al,
2737 "al r2 r7 plus r11 PreIndex",
2738 "al_r2_r7_plus_r11_PreIndex"},
2739 {{al, r2, r6, minus, r14, PreIndex},
2740 false,
2741 al,
2742 "al r2 r6 minus r14 PreIndex",
2743 "al_r2_r6_minus_r14_PreIndex"},
2744 {{al, r7, r6, minus, r6, PreIndex},
2745 false,
2746 al,
2747 "al r7 r6 minus r6 PreIndex",
2748 "al_r7_r6_minus_r6_PreIndex"},
2749 {{al, r10, r1, minus, r13, PreIndex},
2750 false,
2751 al,
2752 "al r10 r1 minus r13 PreIndex",
2753 "al_r10_r1_minus_r13_PreIndex"},
2754 {{al, r7, r3, minus, r13, PostIndex},
2755 false,
2756 al,
2757 "al r7 r3 minus r13 PostIndex",
2758 "al_r7_r3_minus_r13_PostIndex"},
2759 {{al, r3, r1, minus, r8, PreIndex},
2760 false,
2761 al,
2762 "al r3 r1 minus r8 PreIndex",
2763 "al_r3_r1_minus_r8_PreIndex"},
2764 {{al, r13, r1, plus, r12, PostIndex},
2765 false,
2766 al,
2767 "al r13 r1 plus r12 PostIndex",
2768 "al_r13_r1_plus_r12_PostIndex"},
2769 {{al, r13, r14, plus, r3, PostIndex},
2770 false,
2771 al,
2772 "al r13 r14 plus r3 PostIndex",
2773 "al_r13_r14_plus_r3_PostIndex"},
2774 {{al, r9, r5, plus, r7, PostIndex},
2775 false,
2776 al,
2777 "al r9 r5 plus r7 PostIndex",
2778 "al_r9_r5_plus_r7_PostIndex"},
2779 {{al, r3, r2, plus, r8, PreIndex},
2780 false,
2781 al,
2782 "al r3 r2 plus r8 PreIndex",
2783 "al_r3_r2_plus_r8_PreIndex"},
2784 {{al, r1, r8, minus, r9, PostIndex},
2785 false,
2786 al,
2787 "al r1 r8 minus r9 PostIndex",
2788 "al_r1_r8_minus_r9_PostIndex"},
2789 {{al, r11, r14, minus, r8, PostIndex},
2790 false,
2791 al,
2792 "al r11 r14 minus r8 PostIndex",
2793 "al_r11_r14_minus_r8_PostIndex"},
2794 {{al, r2, r12, minus, r6, PostIndex},
2795 false,
2796 al,
2797 "al r2 r12 minus r6 PostIndex",
2798 "al_r2_r12_minus_r6_PostIndex"},
2799 {{al, r4, r1, minus, r12, PostIndex},
2800 false,
2801 al,
2802 "al r4 r1 minus r12 PostIndex",
2803 "al_r4_r1_minus_r12_PostIndex"},
2804 {{al, r13, r6, minus, r13, PreIndex},
2805 false,
2806 al,
2807 "al r13 r6 minus r13 PreIndex",
2808 "al_r13_r6_minus_r13_PreIndex"},
2809 {{al, r5, r9, minus, r13, PostIndex},
2810 false,
2811 al,
2812 "al r5 r9 minus r13 PostIndex",
2813 "al_r5_r9_minus_r13_PostIndex"},
2814 {{al, r4, r8, minus, r12, PostIndex},
2815 false,
2816 al,
2817 "al r4 r8 minus r12 PostIndex",
2818 "al_r4_r8_minus_r12_PostIndex"},
2819 {{al, r5, r9, plus, r12, PreIndex},
2820 false,
2821 al,
2822 "al r5 r9 plus r12 PreIndex",
2823 "al_r5_r9_plus_r12_PreIndex"},
2824 {{al, r11, r13, minus, r3, PreIndex},
2825 false,
2826 al,
2827 "al r11 r13 minus r3 PreIndex",
2828 "al_r11_r13_minus_r3_PreIndex"},
2829 {{al, r4, r13, minus, r13, PreIndex},
2830 false,
2831 al,
2832 "al r4 r13 minus r13 PreIndex",
2833 "al_r4_r13_minus_r13_PreIndex"},
2834 {{al, r3, r7, plus, r0, PostIndex},
2835 false,
2836 al,
2837 "al r3 r7 plus r0 PostIndex",
2838 "al_r3_r7_plus_r0_PostIndex"},
2839 {{al, r5, r11, minus, r8, PostIndex},
2840 false,
2841 al,
2842 "al r5 r11 minus r8 PostIndex",
2843 "al_r5_r11_minus_r8_PostIndex"},
2844 {{al, r5, r0, minus, r0, PreIndex},
2845 false,
2846 al,
2847 "al r5 r0 minus r0 PreIndex",
2848 "al_r5_r0_minus_r0_PreIndex"},
2849 {{al, r0, r1, minus, r1, PostIndex},
2850 false,
2851 al,
2852 "al r0 r1 minus r1 PostIndex",
2853 "al_r0_r1_minus_r1_PostIndex"},
2854 {{al, r5, r12, minus, r0, PreIndex},
2855 false,
2856 al,
2857 "al r5 r12 minus r0 PreIndex",
2858 "al_r5_r12_minus_r0_PreIndex"},
2859 {{al, r6, r1, plus, r7, PreIndex},
2860 false,
2861 al,
2862 "al r6 r1 plus r7 PreIndex",
2863 "al_r6_r1_plus_r7_PreIndex"},
2864 {{al, r5, r13, minus, r8, PreIndex},
2865 false,
2866 al,
2867 "al r5 r13 minus r8 PreIndex",
2868 "al_r5_r13_minus_r8_PreIndex"},
2869 {{al, r3, r8, plus, r11, PostIndex},
2870 false,
2871 al,
2872 "al r3 r8 plus r11 PostIndex",
2873 "al_r3_r8_plus_r11_PostIndex"},
2874 {{al, r8, r0, plus, r2, PreIndex},
2875 false,
2876 al,
2877 "al r8 r0 plus r2 PreIndex",
2878 "al_r8_r0_plus_r2_PreIndex"},
2879 {{al, r10, r14, plus, r6, PreIndex},
2880 false,
2881 al,
2882 "al r10 r14 plus r6 PreIndex",
2883 "al_r10_r14_plus_r6_PreIndex"},
2884 {{al, r12, r2, minus, r0, PostIndex},
2885 false,
2886 al,
2887 "al r12 r2 minus r0 PostIndex",
2888 "al_r12_r2_minus_r0_PostIndex"},
2889 {{al, r13, r0, minus, r1, PreIndex},
2890 false,
2891 al,
2892 "al r13 r0 minus r1 PreIndex",
2893 "al_r13_r0_minus_r1_PreIndex"},
2894 {{al, r12, r6, minus, r10, PreIndex},
2895 false,
2896 al,
2897 "al r12 r6 minus r10 PreIndex",
2898 "al_r12_r6_minus_r10_PreIndex"},
2899 {{al, r0, r7, minus, r0, PostIndex},
2900 false,
2901 al,
2902 "al r0 r7 minus r0 PostIndex",
2903 "al_r0_r7_minus_r0_PostIndex"},
2904 {{al, r1, r7, minus, r3, PreIndex},
2905 false,
2906 al,
2907 "al r1 r7 minus r3 PreIndex",
2908 "al_r1_r7_minus_r3_PreIndex"},
2909 {{al, r9, r2, plus, r13, PostIndex},
2910 false,
2911 al,
2912 "al r9 r2 plus r13 PostIndex",
2913 "al_r9_r2_plus_r13_PostIndex"},
2914 {{al, r0, r11, minus, r3, PostIndex},
2915 false,
2916 al,
2917 "al r0 r11 minus r3 PostIndex",
2918 "al_r0_r11_minus_r3_PostIndex"},
2919 {{al, r2, r1, plus, r1, PreIndex},
2920 false,
2921 al,
2922 "al r2 r1 plus r1 PreIndex",
2923 "al_r2_r1_plus_r1_PreIndex"},
2924 {{al, r5, r4, plus, r5, PostIndex},
2925 false,
2926 al,
2927 "al r5 r4 plus r5 PostIndex",
2928 "al_r5_r4_plus_r5_PostIndex"},
2929 {{al, r7, r13, plus, r4, PostIndex},
2930 false,
2931 al,
2932 "al r7 r13 plus r4 PostIndex",
2933 "al_r7_r13_plus_r4_PostIndex"},
2934 {{al, r0, r14, plus, r6, PreIndex},
2935 false,
2936 al,
2937 "al r0 r14 plus r6 PreIndex",
2938 "al_r0_r14_plus_r6_PreIndex"},
2939 {{al, r10, r1, plus, r7, PostIndex},
2940 false,
2941 al,
2942 "al r10 r1 plus r7 PostIndex",
2943 "al_r10_r1_plus_r7_PostIndex"},
2944 {{al, r12, r5, plus, r12, PostIndex},
2945 false,
2946 al,
2947 "al r12 r5 plus r12 PostIndex",
2948 "al_r12_r5_plus_r12_PostIndex"},
2949 {{al, r0, r10, plus, r2, PreIndex},
2950 false,
2951 al,
2952 "al r0 r10 plus r2 PreIndex",
2953 "al_r0_r10_plus_r2_PreIndex"},
2954 {{al, r7, r13, plus, r8, PreIndex},
2955 false,
2956 al,
2957 "al r7 r13 plus r8 PreIndex",
2958 "al_r7_r13_plus_r8_PreIndex"},
2959 {{al, r14, r10, plus, r9, PreIndex},
2960 false,
2961 al,
2962 "al r14 r10 plus r9 PreIndex",
2963 "al_r14_r10_plus_r9_PreIndex"},
2964 {{al, r1, r2, plus, r1, PreIndex},
2965 false,
2966 al,
2967 "al r1 r2 plus r1 PreIndex",
2968 "al_r1_r2_plus_r1_PreIndex"},
2969 {{al, r6, r7, plus, r12, PreIndex},
2970 false,
2971 al,
2972 "al r6 r7 plus r12 PreIndex",
2973 "al_r6_r7_plus_r12_PreIndex"},
2974 {{al, r10, r1, plus, r3, PreIndex},
2975 false,
2976 al,
2977 "al r10 r1 plus r3 PreIndex",
2978 "al_r10_r1_plus_r3_PreIndex"},
2979 {{al, r6, r4, plus, r11, PostIndex},
2980 false,
2981 al,
2982 "al r6 r4 plus r11 PostIndex",
2983 "al_r6_r4_plus_r11_PostIndex"},
2984 {{al, r14, r0, plus, r12, PostIndex},
2985 false,
2986 al,
2987 "al r14 r0 plus r12 PostIndex",
2988 "al_r14_r0_plus_r12_PostIndex"},
2989 {{al, r4, r7, minus, r12, PostIndex},
2990 false,
2991 al,
2992 "al r4 r7 minus r12 PostIndex",
2993 "al_r4_r7_minus_r12_PostIndex"},
2994 {{al, r13, r10, plus, r10, PostIndex},
2995 false,
2996 al,
2997 "al r13 r10 plus r10 PostIndex",
2998 "al_r13_r10_plus_r10_PostIndex"},
2999 {{al, r9, r4, minus, r1, PreIndex},
3000 false,
3001 al,
3002 "al r9 r4 minus r1 PreIndex",
3003 "al_r9_r4_minus_r1_PreIndex"},
3004 {{al, r2, r7, minus, r2, PreIndex},
3005 false,
3006 al,
3007 "al r2 r7 minus r2 PreIndex",
3008 "al_r2_r7_minus_r2_PreIndex"},
3009 {{al, r10, r6, plus, r2, PreIndex},
3010 false,
3011 al,
3012 "al r10 r6 plus r2 PreIndex",
3013 "al_r10_r6_plus_r2_PreIndex"},
3014 {{al, r8, r14, minus, r2, PostIndex},
3015 false,
3016 al,
3017 "al r8 r14 minus r2 PostIndex",
3018 "al_r8_r14_minus_r2_PostIndex"},
3019 {{al, r4, r9, minus, r14, PostIndex},
3020 false,
3021 al,
3022 "al r4 r9 minus r14 PostIndex",
3023 "al_r4_r9_minus_r14_PostIndex"},
3024 {{al, r3, r8, plus, r12, PostIndex},
3025 false,
3026 al,
3027 "al r3 r8 plus r12 PostIndex",
3028 "al_r3_r8_plus_r12_PostIndex"},
3029 {{al, r3, r12, plus, r8, PostIndex},
3030 false,
3031 al,
3032 "al r3 r12 plus r8 PostIndex",
3033 "al_r3_r12_plus_r8_PostIndex"},
3034 {{al, r4, r6, minus, r10, PreIndex},
3035 false,
3036 al,
3037 "al r4 r6 minus r10 PreIndex",
3038 "al_r4_r6_minus_r10_PreIndex"},
3039 {{al, r3, r14, plus, r6, PreIndex},
3040 false,
3041 al,
3042 "al r3 r14 plus r6 PreIndex",
3043 "al_r3_r14_plus_r6_PreIndex"},
3044 {{al, r2, r1, plus, r7, PreIndex},
3045 false,
3046 al,
3047 "al r2 r1 plus r7 PreIndex",
3048 "al_r2_r1_plus_r7_PreIndex"},
3049 {{al, r7, r9, plus, r2, PreIndex},
3050 false,
3051 al,
3052 "al r7 r9 plus r2 PreIndex",
3053 "al_r7_r9_plus_r2_PreIndex"},
3054 {{al, r11, r6, plus, r10, PostIndex},
3055 false,
3056 al,
3057 "al r11 r6 plus r10 PostIndex",
3058 "al_r11_r6_plus_r10_PostIndex"},
3059 {{al, r5, r2, plus, r11, PostIndex},
3060 false,
3061 al,
3062 "al r5 r2 plus r11 PostIndex",
3063 "al_r5_r2_plus_r11_PostIndex"},
3064 {{al, r8, r10, plus, r10, PreIndex},
3065 false,
3066 al,
3067 "al r8 r10 plus r10 PreIndex",
3068 "al_r8_r10_plus_r10_PreIndex"},
3069 {{al, r8, r0, minus, r10, PreIndex},
3070 false,
3071 al,
3072 "al r8 r0 minus r10 PreIndex",
3073 "al_r8_r0_minus_r10_PreIndex"},
3074 {{al, r0, r4, plus, r2, PreIndex},
3075 false,
3076 al,
3077 "al r0 r4 plus r2 PreIndex",
3078 "al_r0_r4_plus_r2_PreIndex"},
3079 {{al, r3, r4, minus, r8, PreIndex},
3080 false,
3081 al,
3082 "al r3 r4 minus r8 PreIndex",
3083 "al_r3_r4_minus_r8_PreIndex"},
3084 {{al, r1, r0, minus, r11, PreIndex},
3085 false,
3086 al,
3087 "al r1 r0 minus r11 PreIndex",
3088 "al_r1_r0_minus_r11_PreIndex"},
3089 {{al, r0, r2, minus, r9, PreIndex},
3090 false,
3091 al,
3092 "al r0 r2 minus r9 PreIndex",
3093 "al_r0_r2_minus_r9_PreIndex"},
3094 {{al, r14, r12, plus, r13, PostIndex},
3095 false,
3096 al,
3097 "al r14 r12 plus r13 PostIndex",
3098 "al_r14_r12_plus_r13_PostIndex"},
3099 {{al, r13, r10, minus, r5, PreIndex},
3100 false,
3101 al,
3102 "al r13 r10 minus r5 PreIndex",
3103 "al_r13_r10_minus_r5_PreIndex"},
3104 {{al, r9, r0, plus, r11, PostIndex},
3105 false,
3106 al,
3107 "al r9 r0 plus r11 PostIndex",
3108 "al_r9_r0_plus_r11_PostIndex"},
3109 {{al, r2, r11, plus, r7, PostIndex},
3110 false,
3111 al,
3112 "al r2 r11 plus r7 PostIndex",
3113 "al_r2_r11_plus_r7_PostIndex"},
3114 {{al, r7, r5, plus, r10, PreIndex},
3115 false,
3116 al,
3117 "al r7 r5 plus r10 PreIndex",
3118 "al_r7_r5_plus_r10_PreIndex"},
3119 {{al, r4, r3, minus, r2, PostIndex},
3120 false,
3121 al,
3122 "al r4 r3 minus r2 PostIndex",
3123 "al_r4_r3_minus_r2_PostIndex"},
3124 {{al, r2, r6, minus, r6, PostIndex},
3125 false,
3126 al,
3127 "al r2 r6 minus r6 PostIndex",
3128 "al_r2_r6_minus_r6_PostIndex"},
3129 {{al, r11, r1, minus, r9, PreIndex},
3130 false,
3131 al,
3132 "al r11 r1 minus r9 PreIndex",
3133 "al_r11_r1_minus_r9_PreIndex"},
3134 {{al, r5, r13, plus, r5, PostIndex},
3135 false,
3136 al,
3137 "al r5 r13 plus r5 PostIndex",
3138 "al_r5_r13_plus_r5_PostIndex"},
3139 {{al, r1, r13, minus, r13, PostIndex},
3140 false,
3141 al,
3142 "al r1 r13 minus r13 PostIndex",
3143 "al_r1_r13_minus_r13_PostIndex"},
3144 {{al, r0, r10, plus, r10, PostIndex},
3145 false,
3146 al,
3147 "al r0 r10 plus r10 PostIndex",
3148 "al_r0_r10_plus_r10_PostIndex"},
3149 {{al, r5, r10, plus, r9, PreIndex},
3150 false,
3151 al,
3152 "al r5 r10 plus r9 PreIndex",
3153 "al_r5_r10_plus_r9_PreIndex"},
3154 {{al, r0, r13, minus, r2, PostIndex},
3155 false,
3156 al,
3157 "al r0 r13 minus r2 PostIndex",
3158 "al_r0_r13_minus_r2_PostIndex"},
3159 {{al, r7, r8, minus, r0, PostIndex},
3160 false,
3161 al,
3162 "al r7 r8 minus r0 PostIndex",
3163 "al_r7_r8_minus_r0_PostIndex"},
3164 {{al, r2, r9, minus, r12, PostIndex},
3165 false,
3166 al,
3167 "al r2 r9 minus r12 PostIndex",
3168 "al_r2_r9_minus_r12_PostIndex"},
3169 {{al, r9, r3, minus, r5, PostIndex},
3170 false,
3171 al,
3172 "al r9 r3 minus r5 PostIndex",
3173 "al_r9_r3_minus_r5_PostIndex"},
3174 {{al, r6, r5, minus, r12, PostIndex},
3175 false,
3176 al,
3177 "al r6 r5 minus r12 PostIndex",
3178 "al_r6_r5_minus_r12_PostIndex"},
3179 {{al, r11, r4, minus, r10, PreIndex},
3180 false,
3181 al,
3182 "al r11 r4 minus r10 PreIndex",
3183 "al_r11_r4_minus_r10_PreIndex"},
3184 {{al, r10, r14, plus, r1, PostIndex},
3185 false,
3186 al,
3187 "al r10 r14 plus r1 PostIndex",
3188 "al_r10_r14_plus_r1_PostIndex"},
3189 {{al, r8, r5, plus, r0, PreIndex},
3190 false,
3191 al,
3192 "al r8 r5 plus r0 PreIndex",
3193 "al_r8_r5_plus_r0_PreIndex"},
3194 {{al, r10, r13, plus, r13, PreIndex},
3195 false,
3196 al,
3197 "al r10 r13 plus r13 PreIndex",
3198 "al_r10_r13_plus_r13_PreIndex"},
3199 {{al, r0, r8, plus, r13, PreIndex},
3200 false,
3201 al,
3202 "al r0 r8 plus r13 PreIndex",
3203 "al_r0_r8_plus_r13_PreIndex"},
3204 {{al, r10, r13, plus, r8, PreIndex},
3205 false,
3206 al,
3207 "al r10 r13 plus r8 PreIndex",
3208 "al_r10_r13_plus_r8_PreIndex"},
3209 {{al, r11, r6, minus, r4, PreIndex},
3210 false,
3211 al,
3212 "al r11 r6 minus r4 PreIndex",
3213 "al_r11_r6_minus_r4_PreIndex"},
3214 {{al, r1, r9, plus, r10, PostIndex},
3215 false,
3216 al,
3217 "al r1 r9 plus r10 PostIndex",
3218 "al_r1_r9_plus_r10_PostIndex"},
3219 {{al, r3, r12, minus, r12, PostIndex},
3220 false,
3221 al,
3222 "al r3 r12 minus r12 PostIndex",
3223 "al_r3_r12_minus_r12_PostIndex"},
3224 {{al, r13, r6, minus, r6, PreIndex},
3225 false,
3226 al,
3227 "al r13 r6 minus r6 PreIndex",
3228 "al_r13_r6_minus_r6_PreIndex"},
3229 {{al, r9, r14, plus, r4, PostIndex},
3230 false,
3231 al,
3232 "al r9 r14 plus r4 PostIndex",
3233 "al_r9_r14_plus_r4_PostIndex"},
3234 {{al, r12, r10, minus, r13, PostIndex},
3235 false,
3236 al,
3237 "al r12 r10 minus r13 PostIndex",
3238 "al_r12_r10_minus_r13_PostIndex"},
3239 {{al, r7, r11, minus, r7, PreIndex},
3240 false,
3241 al,
3242 "al r7 r11 minus r7 PreIndex",
3243 "al_r7_r11_minus_r7_PreIndex"},
3244 {{al, r11, r4, minus, r12, PostIndex},
3245 false,
3246 al,
3247 "al r11 r4 minus r12 PostIndex",
3248 "al_r11_r4_minus_r12_PostIndex"},
3249 {{al, r8, r14, plus, r8, PreIndex},
3250 false,
3251 al,
3252 "al r8 r14 plus r8 PreIndex",
3253 "al_r8_r14_plus_r8_PreIndex"},
3254 {{al, r12, r1, plus, r14, PreIndex},
3255 false,
3256 al,
3257 "al r12 r1 plus r14 PreIndex",
3258 "al_r12_r1_plus_r14_PreIndex"},
3259 {{al, r3, r4, plus, r2, PostIndex},
3260 false,
3261 al,
3262 "al r3 r4 plus r2 PostIndex",
3263 "al_r3_r4_plus_r2_PostIndex"},
3264 {{al, r6, r8, minus, r5, PostIndex},
3265 false,
3266 al,
3267 "al r6 r8 minus r5 PostIndex",
3268 "al_r6_r8_minus_r5_PostIndex"},
3269 {{al, r12, r14, plus, r4, PostIndex},
3270 false,
3271 al,
3272 "al r12 r14 plus r4 PostIndex",
3273 "al_r12_r14_plus_r4_PostIndex"},
3274 {{al, r3, r10, minus, r8, PostIndex},
3275 false,
3276 al,
3277 "al r3 r10 minus r8 PostIndex",
3278 "al_r3_r10_minus_r8_PostIndex"},
3279 {{al, r12, r7, plus, r1, PreIndex},
3280 false,
3281 al,
3282 "al r12 r7 plus r1 PreIndex",
3283 "al_r12_r7_plus_r1_PreIndex"},
3284 {{al, r14, r9, minus, r7, PreIndex},
3285 false,
3286 al,
3287 "al r14 r9 minus r7 PreIndex",
3288 "al_r14_r9_minus_r7_PreIndex"},
3289 {{al, r7, r12, plus, r1, PreIndex},
3290 false,
3291 al,
3292 "al r7 r12 plus r1 PreIndex",
3293 "al_r7_r12_plus_r1_PreIndex"},
3294 {{al, r10, r11, minus, r4, PreIndex},
3295 false,
3296 al,
3297 "al r10 r11 minus r4 PreIndex",
3298 "al_r10_r11_minus_r4_PreIndex"},
3299 {{al, r4, r9, minus, r3, PreIndex},
3300 false,
3301 al,
3302 "al r4 r9 minus r3 PreIndex",
3303 "al_r4_r9_minus_r3_PreIndex"},
3304 {{al, r2, r13, plus, r14, PreIndex},
3305 false,
3306 al,
3307 "al r2 r13 plus r14 PreIndex",
3308 "al_r2_r13_plus_r14_PreIndex"},
3309 {{al, r1, r12, minus, r13, PreIndex},
3310 false,
3311 al,
3312 "al r1 r12 minus r13 PreIndex",
3313 "al_r1_r12_minus_r13_PreIndex"},
3314 {{al, r6, r10, plus, r6, PostIndex},
3315 false,
3316 al,
3317 "al r6 r10 plus r6 PostIndex",
3318 "al_r6_r10_plus_r6_PostIndex"},
3319 {{al, r0, r14, minus, r7, PreIndex},
3320 false,
3321 al,
3322 "al r0 r14 minus r7 PreIndex",
3323 "al_r0_r14_minus_r7_PreIndex"},
3324 {{al, r5, r13, minus, r13, PostIndex},
3325 false,
3326 al,
3327 "al r5 r13 minus r13 PostIndex",
3328 "al_r5_r13_minus_r13_PostIndex"},
3329 {{al, r2, r11, minus, r6, PostIndex},
3330 false,
3331 al,
3332 "al r2 r11 minus r6 PostIndex",
3333 "al_r2_r11_minus_r6_PostIndex"},
3334 {{al, r5, r9, plus, r14, PostIndex},
3335 false,
3336 al,
3337 "al r5 r9 plus r14 PostIndex",
3338 "al_r5_r9_plus_r14_PostIndex"},
3339 {{al, r7, r2, plus, r7, PostIndex},
3340 false,
3341 al,
3342 "al r7 r2 plus r7 PostIndex",
3343 "al_r7_r2_plus_r7_PostIndex"},
3344 {{al, r9, r2, plus, r2, PreIndex},
3345 false,
3346 al,
3347 "al r9 r2 plus r2 PreIndex",
3348 "al_r9_r2_plus_r2_PreIndex"},
3349 {{al, r0, r14, plus, r14, PreIndex},
3350 false,
3351 al,
3352 "al r0 r14 plus r14 PreIndex",
3353 "al_r0_r14_plus_r14_PreIndex"},
3354 {{al, r14, r13, minus, r0, PreIndex},
3355 false,
3356 al,
3357 "al r14 r13 minus r0 PreIndex",
3358 "al_r14_r13_minus_r0_PreIndex"},
3359 {{al, r7, r3, minus, r5, PreIndex},
3360 false,
3361 al,
3362 "al r7 r3 minus r5 PreIndex",
3363 "al_r7_r3_minus_r5_PreIndex"},
3364 {{al, r14, r0, minus, r10, PostIndex},
3365 false,
3366 al,
3367 "al r14 r0 minus r10 PostIndex",
3368 "al_r14_r0_minus_r10_PostIndex"},
3369 {{al, r1, r2, minus, r4, PreIndex},
3370 false,
3371 al,
3372 "al r1 r2 minus r4 PreIndex",
3373 "al_r1_r2_minus_r4_PreIndex"},
3374 {{al, r8, r3, minus, r5, PostIndex},
3375 false,
3376 al,
3377 "al r8 r3 minus r5 PostIndex",
3378 "al_r8_r3_minus_r5_PostIndex"},
3379 {{al, r3, r5, plus, r6, PreIndex},
3380 false,
3381 al,
3382 "al r3 r5 plus r6 PreIndex",
3383 "al_r3_r5_plus_r6_PreIndex"},
3384 {{al, r4, r12, plus, r9, PostIndex},
3385 false,
3386 al,
3387 "al r4 r12 plus r9 PostIndex",
3388 "al_r4_r12_plus_r9_PostIndex"},
3389 {{al, r4, r12, minus, r3, PreIndex},
3390 false,
3391 al,
3392 "al r4 r12 minus r3 PreIndex",
3393 "al_r4_r12_minus_r3_PreIndex"},
3394 {{al, r12, r0, minus, r5, PostIndex},
3395 false,
3396 al,
3397 "al r12 r0 minus r5 PostIndex",
3398 "al_r12_r0_minus_r5_PostIndex"},
3399 {{al, r12, r4, plus, r7, PostIndex},
3400 false,
3401 al,
3402 "al r12 r4 plus r7 PostIndex",
3403 "al_r12_r4_plus_r7_PostIndex"},
3404 {{al, r6, r5, minus, r7, PreIndex},
3405 false,
3406 al,
3407 "al r6 r5 minus r7 PreIndex",
3408 "al_r6_r5_minus_r7_PreIndex"},
3409 {{al, r10, r11, plus, r4, PostIndex},
3410 false,
3411 al,
3412 "al r10 r11 plus r4 PostIndex",
3413 "al_r10_r11_plus_r4_PostIndex"},
3414 {{al, r3, r12, plus, r7, PreIndex},
3415 false,
3416 al,
3417 "al r3 r12 plus r7 PreIndex",
3418 "al_r3_r12_plus_r7_PreIndex"},
3419 {{al, r3, r10, plus, r4, PreIndex},
3420 false,
3421 al,
3422 "al r3 r10 plus r4 PreIndex",
3423 "al_r3_r10_plus_r4_PreIndex"},
3424 {{al, r6, r8, plus, r6, PreIndex},
3425 false,
3426 al,
3427 "al r6 r8 plus r6 PreIndex",
3428 "al_r6_r8_plus_r6_PreIndex"},
3429 {{al, r4, r5, plus, r8, PostIndex},
3430 false,
3431 al,
3432 "al r4 r5 plus r8 PostIndex",
3433 "al_r4_r5_plus_r8_PostIndex"},
3434 {{al, r13, r0, minus, r3, PostIndex},
3435 false,
3436 al,
3437 "al r13 r0 minus r3 PostIndex",
3438 "al_r13_r0_minus_r3_PostIndex"},
3439 {{al, r7, r2, minus, r14, PreIndex},
3440 false,
3441 al,
3442 "al r7 r2 minus r14 PreIndex",
3443 "al_r7_r2_minus_r14_PreIndex"},
3444 {{al, r3, r10, plus, r3, PostIndex},
3445 false,
3446 al,
3447 "al r3 r10 plus r3 PostIndex",
3448 "al_r3_r10_plus_r3_PostIndex"},
3449 {{al, r10, r4, minus, r1, PostIndex},
3450 false,
3451 al,
3452 "al r10 r4 minus r1 PostIndex",
3453 "al_r10_r4_minus_r1_PostIndex"},
3454 {{al, r6, r5, minus, r1, PreIndex},
3455 false,
3456 al,
3457 "al r6 r5 minus r1 PreIndex",
3458 "al_r6_r5_minus_r1_PreIndex"},
3459 {{al, r7, r3, plus, r5, PostIndex},
3460 false,
3461 al,
3462 "al r7 r3 plus r5 PostIndex",
3463 "al_r7_r3_plus_r5_PostIndex"},
3464 {{al, r7, r8, plus, r13, PreIndex},
3465 false,
3466 al,
3467 "al r7 r8 plus r13 PreIndex",
3468 "al_r7_r8_plus_r13_PreIndex"},
3469 {{al, r10, r13, plus, r4, PreIndex},
3470 false,
3471 al,
3472 "al r10 r13 plus r4 PreIndex",
3473 "al_r10_r13_plus_r4_PreIndex"},
3474 {{al, r8, r3, plus, r1, PostIndex},
3475 false,
3476 al,
3477 "al r8 r3 plus r1 PostIndex",
3478 "al_r8_r3_plus_r1_PostIndex"},
3479 {{al, r14, r6, plus, r3, PreIndex},
3480 false,
3481 al,
3482 "al r14 r6 plus r3 PreIndex",
3483 "al_r14_r6_plus_r3_PreIndex"},
3484 {{al, r3, r5, minus, r4, PostIndex},
3485 false,
3486 al,
3487 "al r3 r5 minus r4 PostIndex",
3488 "al_r3_r5_minus_r4_PostIndex"},
3489 {{al, r5, r7, plus, r6, PreIndex},
3490 false,
3491 al,
3492 "al r5 r7 plus r6 PreIndex",
3493 "al_r5_r7_plus_r6_PreIndex"},
3494 {{al, r4, r12, minus, r9, PostIndex},
3495 false,
3496 al,
3497 "al r4 r12 minus r9 PostIndex",
3498 "al_r4_r12_minus_r9_PostIndex"},
3499 {{al, r7, r3, plus, r14, PreIndex},
3500 false,
3501 al,
3502 "al r7 r3 plus r14 PreIndex",
3503 "al_r7_r3_plus_r14_PreIndex"},
3504 {{al, r14, r8, minus, r7, PreIndex},
3505 false,
3506 al,
3507 "al r14 r8 minus r7 PreIndex",
3508 "al_r14_r8_minus_r7_PreIndex"},
3509 {{al, r2, r7, minus, r11, PreIndex},
3510 false,
3511 al,
3512 "al r2 r7 minus r11 PreIndex",
3513 "al_r2_r7_minus_r11_PreIndex"},
3514 {{al, r8, r6, plus, r7, PreIndex},
3515 false,
3516 al,
3517 "al r8 r6 plus r7 PreIndex",
3518 "al_r8_r6_plus_r7_PreIndex"},
3519 {{al, r9, r3, plus, r7, PostIndex},
3520 false,
3521 al,
3522 "al r9 r3 plus r7 PostIndex",
3523 "al_r9_r3_plus_r7_PostIndex"},
3524 {{al, r7, r0, minus, r8, PreIndex},
3525 false,
3526 al,
3527 "al r7 r0 minus r8 PreIndex",
3528 "al_r7_r0_minus_r8_PreIndex"},
3529 {{al, r6, r1, plus, r9, PreIndex},
3530 false,
3531 al,
3532 "al r6 r1 plus r9 PreIndex",
3533 "al_r6_r1_plus_r9_PreIndex"},
3534 {{al, r2, r13, plus, r6, PostIndex},
3535 false,
3536 al,
3537 "al r2 r13 plus r6 PostIndex",
3538 "al_r2_r13_plus_r6_PostIndex"},
3539 {{al, r11, r7, plus, r10, PostIndex},
3540 false,
3541 al,
3542 "al r11 r7 plus r10 PostIndex",
3543 "al_r11_r7_plus_r10_PostIndex"},
3544 {{al, r9, r8, plus, r0, PostIndex},
3545 false,
3546 al,
3547 "al r9 r8 plus r0 PostIndex",
3548 "al_r9_r8_plus_r0_PostIndex"},
3549 {{al, r3, r4, minus, r12, PostIndex},
3550 false,
3551 al,
3552 "al r3 r4 minus r12 PostIndex",
3553 "al_r3_r4_minus_r12_PostIndex"},
3554 {{al, r8, r5, minus, r7, PostIndex},
3555 false,
3556 al,
3557 "al r8 r5 minus r7 PostIndex",
3558 "al_r8_r5_minus_r7_PostIndex"},
3559 {{al, r8, r1, plus, r4, PreIndex},
3560 false,
3561 al,
3562 "al r8 r1 plus r4 PreIndex",
3563 "al_r8_r1_plus_r4_PreIndex"},
3564 {{al, r10, r12, plus, r1, PreIndex},
3565 false,
3566 al,
3567 "al r10 r12 plus r1 PreIndex",
3568 "al_r10_r12_plus_r1_PreIndex"},
3569 {{al, r9, r12, plus, r3, PostIndex},
3570 false,
3571 al,
3572 "al r9 r12 plus r3 PostIndex",
3573 "al_r9_r12_plus_r3_PostIndex"},
3574 {{al, r10, r3, minus, r13, PostIndex},
3575 false,
3576 al,
3577 "al r10 r3 minus r13 PostIndex",
3578 "al_r10_r3_minus_r13_PostIndex"},
3579 {{al, r5, r10, plus, r5, PostIndex},
3580 false,
3581 al,
3582 "al r5 r10 plus r5 PostIndex",
3583 "al_r5_r10_plus_r5_PostIndex"},
3584 {{al, r12, r4, plus, r2, PostIndex},
3585 false,
3586 al,
3587 "al r12 r4 plus r2 PostIndex",
3588 "al_r12_r4_plus_r2_PostIndex"},
3589 {{al, r3, r4, plus, r8, PreIndex},
3590 false,
3591 al,
3592 "al r3 r4 plus r8 PreIndex",
3593 "al_r3_r4_plus_r8_PreIndex"},
3594 {{al, r6, r9, minus, r12, PostIndex},
3595 false,
3596 al,
3597 "al r6 r9 minus r12 PostIndex",
3598 "al_r6_r9_minus_r12_PostIndex"},
3599 {{al, r11, r13, plus, r7, PostIndex},
3600 false,
3601 al,
3602 "al r11 r13 plus r7 PostIndex",
3603 "al_r11_r13_plus_r7_PostIndex"}};
3604
3605 // These headers each contain an array of `TestResult` with the reference output
3606 // values. The reference arrays are names `kReference{mnemonic}`.
3607 #include "aarch32/traces/assembler-cond-rd-memop-rs-ldr-a32.h"
3608 #include "aarch32/traces/assembler-cond-rd-memop-rs-ldrb-a32.h"
3609 #include "aarch32/traces/assembler-cond-rd-memop-rs-ldrh-a32.h"
3610 #include "aarch32/traces/assembler-cond-rd-memop-rs-ldrsb-a32.h"
3611 #include "aarch32/traces/assembler-cond-rd-memop-rs-ldrsh-a32.h"
3612 #include "aarch32/traces/assembler-cond-rd-memop-rs-str-a32.h"
3613 #include "aarch32/traces/assembler-cond-rd-memop-rs-strb-a32.h"
3614 #include "aarch32/traces/assembler-cond-rd-memop-rs-strh-a32.h"
3615
3616
3617 // The maximum number of errors to report in detail for each test.
3618 const unsigned kErrorReportLimit = 8;
3619
3620 typedef void (MacroAssembler::*Fn)(Condition cond,
3621 Register rd,
3622 const MemOperand& memop);
3623
TestHelper(Fn instruction,const char * mnemonic,const TestResult reference[])3624 void TestHelper(Fn instruction,
3625 const char* mnemonic,
3626 const TestResult reference[]) {
3627 unsigned total_error_count = 0;
3628 MacroAssembler masm(BUF_SIZE);
3629
3630 masm.UseA32();
3631
3632 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
3633 // Values to pass to the macro-assembler.
3634 Condition cond = kTests[i].operands.cond;
3635 Register rd = kTests[i].operands.rd;
3636 Register rn = kTests[i].operands.rn;
3637 Sign sign = kTests[i].operands.sign;
3638 Register rm = kTests[i].operands.rm;
3639 AddrMode addr_mode = kTests[i].operands.addr_mode;
3640 MemOperand memop(rn, sign, rm, addr_mode);
3641
3642 int32_t start = masm.GetCursorOffset();
3643 {
3644 // We never generate more that 4 bytes, as IT instructions are only
3645 // allowed for narrow encodings.
3646 ExactAssemblyScope scope(&masm, 4, ExactAssemblyScope::kMaximumSize);
3647 if (kTests[i].in_it_block) {
3648 masm.it(kTests[i].it_condition);
3649 }
3650 (masm.*instruction)(cond, rd, memop);
3651 }
3652 int32_t end = masm.GetCursorOffset();
3653
3654 const byte* result_ptr =
3655 masm.GetBuffer()->GetOffsetAddress<const byte*>(start);
3656 VIXL_ASSERT(start < end);
3657 uint32_t result_size = end - start;
3658
3659 if (Test::generate_test_trace()) {
3660 // Print the result bytes.
3661 printf("const byte kInstruction_%s_%s[] = {\n",
3662 mnemonic,
3663 kTests[i].identifier);
3664 for (uint32_t j = 0; j < result_size; j++) {
3665 if (j == 0) {
3666 printf(" 0x%02" PRIx8, result_ptr[j]);
3667 } else {
3668 printf(", 0x%02" PRIx8, result_ptr[j]);
3669 }
3670 }
3671 // This comment is meant to be used by external tools to validate
3672 // the encoding. We can parse the comment to figure out what
3673 // instruction this corresponds to.
3674 if (kTests[i].in_it_block) {
3675 printf(" // It %s; %s %s\n};\n",
3676 kTests[i].it_condition.GetName(),
3677 mnemonic,
3678 kTests[i].operands_description);
3679 } else {
3680 printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description);
3681 }
3682 } else {
3683 // Check we've emitted the exact same encoding as present in the
3684 // trace file. Only print up to `kErrorReportLimit` errors.
3685 if (((result_size != reference[i].size) ||
3686 (memcmp(result_ptr, reference[i].encoding, reference[i].size) !=
3687 0)) &&
3688 (++total_error_count <= kErrorReportLimit)) {
3689 printf("Error when testing \"%s\" with operands \"%s\":\n",
3690 mnemonic,
3691 kTests[i].operands_description);
3692 printf(" Expected: ");
3693 for (uint32_t j = 0; j < reference[i].size; j++) {
3694 if (j == 0) {
3695 printf("0x%02" PRIx8, reference[i].encoding[j]);
3696 } else {
3697 printf(", 0x%02" PRIx8, reference[i].encoding[j]);
3698 }
3699 }
3700 printf("\n");
3701 printf(" Found: ");
3702 for (uint32_t j = 0; j < result_size; j++) {
3703 if (j == 0) {
3704 printf("0x%02" PRIx8, result_ptr[j]);
3705 } else {
3706 printf(", 0x%02" PRIx8, result_ptr[j]);
3707 }
3708 }
3709 printf("\n");
3710 }
3711 }
3712 }
3713
3714 masm.FinalizeCode();
3715
3716 if (Test::generate_test_trace()) {
3717 // Finalize the trace file by writing the final `TestResult` array
3718 // which links all generated instruction encodings.
3719 printf("const TestResult kReference%s[] = {\n", mnemonic);
3720 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
3721 printf(" {\n");
3722 printf(" ARRAY_SIZE(kInstruction_%s_%s),\n",
3723 mnemonic,
3724 kTests[i].identifier);
3725 printf(" kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier);
3726 printf(" },\n");
3727 }
3728 printf("};\n");
3729 } else {
3730 if (total_error_count > kErrorReportLimit) {
3731 printf("%u other errors follow.\n",
3732 total_error_count - kErrorReportLimit);
3733 }
3734 // Crash if the test failed.
3735 VIXL_CHECK(total_error_count == 0);
3736 }
3737 }
3738
3739 // Instantiate tests for each instruction in the list.
3740 #define TEST(mnemonic) \
3741 void Test_##mnemonic() { \
3742 TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic); \
3743 } \
3744 Test test_##mnemonic("AARCH32_ASSEMBLER_COND_RD_MEMOP_RS_" #mnemonic "_A32", \
3745 &Test_##mnemonic);
3746 FOREACH_INSTRUCTION(TEST)
3747 #undef TEST
3748
3749 } // namespace
3750 #endif
3751
3752 } // namespace aarch32
3753 } // namespace vixl
3754