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(cmn)                       \
53   M(cmp)                       \
54   M(mov)                       \
55   M(movs)                      \
56   M(mvn)                       \
57   M(mvns)                      \
58   M(teq)                       \
59   M(tst)
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_T32
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   uint32_t immediate;
76 };
77 
78 // This structure contains all data needed to test one specific
79 // instruction.
80 struct TestData {
81   // The `operands` field represents what to pass to the assembler to
82   // produce the instruction.
83   Operands operands;
84   // True if we need to generate an IT instruction for this test to be valid.
85   bool in_it_block;
86   // The condition to give the IT instruction, this will be set to "al" by
87   // default.
88   Condition it_condition;
89   // Description of the operands, used for error reporting.
90   const char* operands_description;
91   // Unique identifier, used for generating traces.
92   const char* identifier;
93 };
94 
95 struct TestResult {
96   size_t size;
97   const byte* encoding;
98 };
99 
100 // Each element of this array produce one instruction encoding.
101 const TestData kTests[] =
102     {{{al, r0, 0x000001fe}, false, al, "al r0 0x000001fe", "al_r0_0x000001fe"},
103      {{al, r0, 0x000003fc}, false, al, "al r0 0x000003fc", "al_r0_0x000003fc"},
104      {{al, r0, 0x000007f8}, false, al, "al r0 0x000007f8", "al_r0_0x000007f8"},
105      {{al, r0, 0x00000ff0}, false, al, "al r0 0x00000ff0", "al_r0_0x00000ff0"},
106      {{al, r0, 0x00001fe0}, false, al, "al r0 0x00001fe0", "al_r0_0x00001fe0"},
107      {{al, r0, 0x00003fc0}, false, al, "al r0 0x00003fc0", "al_r0_0x00003fc0"},
108      {{al, r0, 0x00007f80}, false, al, "al r0 0x00007f80", "al_r0_0x00007f80"},
109      {{al, r0, 0x0000ff00}, false, al, "al r0 0x0000ff00", "al_r0_0x0000ff00"},
110      {{al, r0, 0x0001fe00}, false, al, "al r0 0x0001fe00", "al_r0_0x0001fe00"},
111      {{al, r0, 0x0003fc00}, false, al, "al r0 0x0003fc00", "al_r0_0x0003fc00"},
112      {{al, r0, 0x0007f800}, false, al, "al r0 0x0007f800", "al_r0_0x0007f800"},
113      {{al, r0, 0x000ff000}, false, al, "al r0 0x000ff000", "al_r0_0x000ff000"},
114      {{al, r0, 0x001fe000}, false, al, "al r0 0x001fe000", "al_r0_0x001fe000"},
115      {{al, r0, 0x003fc000}, false, al, "al r0 0x003fc000", "al_r0_0x003fc000"},
116      {{al, r0, 0x007f8000}, false, al, "al r0 0x007f8000", "al_r0_0x007f8000"},
117      {{al, r0, 0x00ff0000}, false, al, "al r0 0x00ff0000", "al_r0_0x00ff0000"},
118      {{al, r0, 0x01fe0000}, false, al, "al r0 0x01fe0000", "al_r0_0x01fe0000"},
119      {{al, r0, 0x03fc0000}, false, al, "al r0 0x03fc0000", "al_r0_0x03fc0000"},
120      {{al, r0, 0x07f80000}, false, al, "al r0 0x07f80000", "al_r0_0x07f80000"},
121      {{al, r0, 0x0ff00000}, false, al, "al r0 0x0ff00000", "al_r0_0x0ff00000"},
122      {{al, r0, 0x1fe00000}, false, al, "al r0 0x1fe00000", "al_r0_0x1fe00000"},
123      {{al, r0, 0x3fc00000}, false, al, "al r0 0x3fc00000", "al_r0_0x3fc00000"},
124      {{al, r0, 0x7f800000}, false, al, "al r0 0x7f800000", "al_r0_0x7f800000"},
125      {{al, r0, 0xff000000}, false, al, "al r0 0xff000000", "al_r0_0xff000000"},
126      {{al, r0, 0x000000ff}, false, al, "al r0 0x000000ff", "al_r0_0x000000ff"},
127      {{al, r0, 0x00ff00ff}, false, al, "al r0 0x00ff00ff", "al_r0_0x00ff00ff"},
128      {{al, r0, 0xff00ff00}, false, al, "al r0 0xff00ff00", "al_r0_0xff00ff00"},
129      {{al, r0, 0xffffffff}, false, al, "al r0 0xffffffff", "al_r0_0xffffffff"},
130      {{al, r0, 0x00000156}, false, al, "al r0 0x00000156", "al_r0_0x00000156"},
131      {{al, r0, 0x000002ac}, false, al, "al r0 0x000002ac", "al_r0_0x000002ac"},
132      {{al, r0, 0x00000558}, false, al, "al r0 0x00000558", "al_r0_0x00000558"},
133      {{al, r0, 0x00000ab0}, false, al, "al r0 0x00000ab0", "al_r0_0x00000ab0"},
134      {{al, r0, 0x00001560}, false, al, "al r0 0x00001560", "al_r0_0x00001560"},
135      {{al, r0, 0x00002ac0}, false, al, "al r0 0x00002ac0", "al_r0_0x00002ac0"},
136      {{al, r0, 0x00005580}, false, al, "al r0 0x00005580", "al_r0_0x00005580"},
137      {{al, r0, 0x0000ab00}, false, al, "al r0 0x0000ab00", "al_r0_0x0000ab00"},
138      {{al, r0, 0x00015600}, false, al, "al r0 0x00015600", "al_r0_0x00015600"},
139      {{al, r0, 0x0002ac00}, false, al, "al r0 0x0002ac00", "al_r0_0x0002ac00"},
140      {{al, r0, 0x00055800}, false, al, "al r0 0x00055800", "al_r0_0x00055800"},
141      {{al, r0, 0x000ab000}, false, al, "al r0 0x000ab000", "al_r0_0x000ab000"},
142      {{al, r0, 0x00156000}, false, al, "al r0 0x00156000", "al_r0_0x00156000"},
143      {{al, r0, 0x002ac000}, false, al, "al r0 0x002ac000", "al_r0_0x002ac000"},
144      {{al, r0, 0x00558000}, false, al, "al r0 0x00558000", "al_r0_0x00558000"},
145      {{al, r0, 0x00ab0000}, false, al, "al r0 0x00ab0000", "al_r0_0x00ab0000"},
146      {{al, r0, 0x01560000}, false, al, "al r0 0x01560000", "al_r0_0x01560000"},
147      {{al, r0, 0x02ac0000}, false, al, "al r0 0x02ac0000", "al_r0_0x02ac0000"},
148      {{al, r0, 0x05580000}, false, al, "al r0 0x05580000", "al_r0_0x05580000"},
149      {{al, r0, 0x0ab00000}, false, al, "al r0 0x0ab00000", "al_r0_0x0ab00000"},
150      {{al, r0, 0x15600000}, false, al, "al r0 0x15600000", "al_r0_0x15600000"},
151      {{al, r0, 0x2ac00000}, false, al, "al r0 0x2ac00000", "al_r0_0x2ac00000"},
152      {{al, r0, 0x55800000}, false, al, "al r0 0x55800000", "al_r0_0x55800000"},
153      {{al, r0, 0xab000000}, false, al, "al r0 0xab000000", "al_r0_0xab000000"},
154      {{al, r0, 0x000000ab}, false, al, "al r0 0x000000ab", "al_r0_0x000000ab"},
155      {{al, r0, 0x00ab00ab}, false, al, "al r0 0x00ab00ab", "al_r0_0x00ab00ab"},
156      {{al, r0, 0xab00ab00}, false, al, "al r0 0xab00ab00", "al_r0_0xab00ab00"},
157      {{al, r0, 0xabababab}, false, al, "al r0 0xabababab", "al_r0_0xabababab"},
158      {{al, r1, 0x000001fe}, false, al, "al r1 0x000001fe", "al_r1_0x000001fe"},
159      {{al, r1, 0x000003fc}, false, al, "al r1 0x000003fc", "al_r1_0x000003fc"},
160      {{al, r1, 0x000007f8}, false, al, "al r1 0x000007f8", "al_r1_0x000007f8"},
161      {{al, r1, 0x00000ff0}, false, al, "al r1 0x00000ff0", "al_r1_0x00000ff0"},
162      {{al, r1, 0x00001fe0}, false, al, "al r1 0x00001fe0", "al_r1_0x00001fe0"},
163      {{al, r1, 0x00003fc0}, false, al, "al r1 0x00003fc0", "al_r1_0x00003fc0"},
164      {{al, r1, 0x00007f80}, false, al, "al r1 0x00007f80", "al_r1_0x00007f80"},
165      {{al, r1, 0x0000ff00}, false, al, "al r1 0x0000ff00", "al_r1_0x0000ff00"},
166      {{al, r1, 0x0001fe00}, false, al, "al r1 0x0001fe00", "al_r1_0x0001fe00"},
167      {{al, r1, 0x0003fc00}, false, al, "al r1 0x0003fc00", "al_r1_0x0003fc00"},
168      {{al, r1, 0x0007f800}, false, al, "al r1 0x0007f800", "al_r1_0x0007f800"},
169      {{al, r1, 0x000ff000}, false, al, "al r1 0x000ff000", "al_r1_0x000ff000"},
170      {{al, r1, 0x001fe000}, false, al, "al r1 0x001fe000", "al_r1_0x001fe000"},
171      {{al, r1, 0x003fc000}, false, al, "al r1 0x003fc000", "al_r1_0x003fc000"},
172      {{al, r1, 0x007f8000}, false, al, "al r1 0x007f8000", "al_r1_0x007f8000"},
173      {{al, r1, 0x00ff0000}, false, al, "al r1 0x00ff0000", "al_r1_0x00ff0000"},
174      {{al, r1, 0x01fe0000}, false, al, "al r1 0x01fe0000", "al_r1_0x01fe0000"},
175      {{al, r1, 0x03fc0000}, false, al, "al r1 0x03fc0000", "al_r1_0x03fc0000"},
176      {{al, r1, 0x07f80000}, false, al, "al r1 0x07f80000", "al_r1_0x07f80000"},
177      {{al, r1, 0x0ff00000}, false, al, "al r1 0x0ff00000", "al_r1_0x0ff00000"},
178      {{al, r1, 0x1fe00000}, false, al, "al r1 0x1fe00000", "al_r1_0x1fe00000"},
179      {{al, r1, 0x3fc00000}, false, al, "al r1 0x3fc00000", "al_r1_0x3fc00000"},
180      {{al, r1, 0x7f800000}, false, al, "al r1 0x7f800000", "al_r1_0x7f800000"},
181      {{al, r1, 0xff000000}, false, al, "al r1 0xff000000", "al_r1_0xff000000"},
182      {{al, r1, 0x000000ff}, false, al, "al r1 0x000000ff", "al_r1_0x000000ff"},
183      {{al, r1, 0x00ff00ff}, false, al, "al r1 0x00ff00ff", "al_r1_0x00ff00ff"},
184      {{al, r1, 0xff00ff00}, false, al, "al r1 0xff00ff00", "al_r1_0xff00ff00"},
185      {{al, r1, 0xffffffff}, false, al, "al r1 0xffffffff", "al_r1_0xffffffff"},
186      {{al, r1, 0x00000156}, false, al, "al r1 0x00000156", "al_r1_0x00000156"},
187      {{al, r1, 0x000002ac}, false, al, "al r1 0x000002ac", "al_r1_0x000002ac"},
188      {{al, r1, 0x00000558}, false, al, "al r1 0x00000558", "al_r1_0x00000558"},
189      {{al, r1, 0x00000ab0}, false, al, "al r1 0x00000ab0", "al_r1_0x00000ab0"},
190      {{al, r1, 0x00001560}, false, al, "al r1 0x00001560", "al_r1_0x00001560"},
191      {{al, r1, 0x00002ac0}, false, al, "al r1 0x00002ac0", "al_r1_0x00002ac0"},
192      {{al, r1, 0x00005580}, false, al, "al r1 0x00005580", "al_r1_0x00005580"},
193      {{al, r1, 0x0000ab00}, false, al, "al r1 0x0000ab00", "al_r1_0x0000ab00"},
194      {{al, r1, 0x00015600}, false, al, "al r1 0x00015600", "al_r1_0x00015600"},
195      {{al, r1, 0x0002ac00}, false, al, "al r1 0x0002ac00", "al_r1_0x0002ac00"},
196      {{al, r1, 0x00055800}, false, al, "al r1 0x00055800", "al_r1_0x00055800"},
197      {{al, r1, 0x000ab000}, false, al, "al r1 0x000ab000", "al_r1_0x000ab000"},
198      {{al, r1, 0x00156000}, false, al, "al r1 0x00156000", "al_r1_0x00156000"},
199      {{al, r1, 0x002ac000}, false, al, "al r1 0x002ac000", "al_r1_0x002ac000"},
200      {{al, r1, 0x00558000}, false, al, "al r1 0x00558000", "al_r1_0x00558000"},
201      {{al, r1, 0x00ab0000}, false, al, "al r1 0x00ab0000", "al_r1_0x00ab0000"},
202      {{al, r1, 0x01560000}, false, al, "al r1 0x01560000", "al_r1_0x01560000"},
203      {{al, r1, 0x02ac0000}, false, al, "al r1 0x02ac0000", "al_r1_0x02ac0000"},
204      {{al, r1, 0x05580000}, false, al, "al r1 0x05580000", "al_r1_0x05580000"},
205      {{al, r1, 0x0ab00000}, false, al, "al r1 0x0ab00000", "al_r1_0x0ab00000"},
206      {{al, r1, 0x15600000}, false, al, "al r1 0x15600000", "al_r1_0x15600000"},
207      {{al, r1, 0x2ac00000}, false, al, "al r1 0x2ac00000", "al_r1_0x2ac00000"},
208      {{al, r1, 0x55800000}, false, al, "al r1 0x55800000", "al_r1_0x55800000"},
209      {{al, r1, 0xab000000}, false, al, "al r1 0xab000000", "al_r1_0xab000000"},
210      {{al, r1, 0x000000ab}, false, al, "al r1 0x000000ab", "al_r1_0x000000ab"},
211      {{al, r1, 0x00ab00ab}, false, al, "al r1 0x00ab00ab", "al_r1_0x00ab00ab"},
212      {{al, r1, 0xab00ab00}, false, al, "al r1 0xab00ab00", "al_r1_0xab00ab00"},
213      {{al, r1, 0xabababab}, false, al, "al r1 0xabababab", "al_r1_0xabababab"},
214      {{al, r2, 0x000001fe}, false, al, "al r2 0x000001fe", "al_r2_0x000001fe"},
215      {{al, r2, 0x000003fc}, false, al, "al r2 0x000003fc", "al_r2_0x000003fc"},
216      {{al, r2, 0x000007f8}, false, al, "al r2 0x000007f8", "al_r2_0x000007f8"},
217      {{al, r2, 0x00000ff0}, false, al, "al r2 0x00000ff0", "al_r2_0x00000ff0"},
218      {{al, r2, 0x00001fe0}, false, al, "al r2 0x00001fe0", "al_r2_0x00001fe0"},
219      {{al, r2, 0x00003fc0}, false, al, "al r2 0x00003fc0", "al_r2_0x00003fc0"},
220      {{al, r2, 0x00007f80}, false, al, "al r2 0x00007f80", "al_r2_0x00007f80"},
221      {{al, r2, 0x0000ff00}, false, al, "al r2 0x0000ff00", "al_r2_0x0000ff00"},
222      {{al, r2, 0x0001fe00}, false, al, "al r2 0x0001fe00", "al_r2_0x0001fe00"},
223      {{al, r2, 0x0003fc00}, false, al, "al r2 0x0003fc00", "al_r2_0x0003fc00"},
224      {{al, r2, 0x0007f800}, false, al, "al r2 0x0007f800", "al_r2_0x0007f800"},
225      {{al, r2, 0x000ff000}, false, al, "al r2 0x000ff000", "al_r2_0x000ff000"},
226      {{al, r2, 0x001fe000}, false, al, "al r2 0x001fe000", "al_r2_0x001fe000"},
227      {{al, r2, 0x003fc000}, false, al, "al r2 0x003fc000", "al_r2_0x003fc000"},
228      {{al, r2, 0x007f8000}, false, al, "al r2 0x007f8000", "al_r2_0x007f8000"},
229      {{al, r2, 0x00ff0000}, false, al, "al r2 0x00ff0000", "al_r2_0x00ff0000"},
230      {{al, r2, 0x01fe0000}, false, al, "al r2 0x01fe0000", "al_r2_0x01fe0000"},
231      {{al, r2, 0x03fc0000}, false, al, "al r2 0x03fc0000", "al_r2_0x03fc0000"},
232      {{al, r2, 0x07f80000}, false, al, "al r2 0x07f80000", "al_r2_0x07f80000"},
233      {{al, r2, 0x0ff00000}, false, al, "al r2 0x0ff00000", "al_r2_0x0ff00000"},
234      {{al, r2, 0x1fe00000}, false, al, "al r2 0x1fe00000", "al_r2_0x1fe00000"},
235      {{al, r2, 0x3fc00000}, false, al, "al r2 0x3fc00000", "al_r2_0x3fc00000"},
236      {{al, r2, 0x7f800000}, false, al, "al r2 0x7f800000", "al_r2_0x7f800000"},
237      {{al, r2, 0xff000000}, false, al, "al r2 0xff000000", "al_r2_0xff000000"},
238      {{al, r2, 0x000000ff}, false, al, "al r2 0x000000ff", "al_r2_0x000000ff"},
239      {{al, r2, 0x00ff00ff}, false, al, "al r2 0x00ff00ff", "al_r2_0x00ff00ff"},
240      {{al, r2, 0xff00ff00}, false, al, "al r2 0xff00ff00", "al_r2_0xff00ff00"},
241      {{al, r2, 0xffffffff}, false, al, "al r2 0xffffffff", "al_r2_0xffffffff"},
242      {{al, r2, 0x00000156}, false, al, "al r2 0x00000156", "al_r2_0x00000156"},
243      {{al, r2, 0x000002ac}, false, al, "al r2 0x000002ac", "al_r2_0x000002ac"},
244      {{al, r2, 0x00000558}, false, al, "al r2 0x00000558", "al_r2_0x00000558"},
245      {{al, r2, 0x00000ab0}, false, al, "al r2 0x00000ab0", "al_r2_0x00000ab0"},
246      {{al, r2, 0x00001560}, false, al, "al r2 0x00001560", "al_r2_0x00001560"},
247      {{al, r2, 0x00002ac0}, false, al, "al r2 0x00002ac0", "al_r2_0x00002ac0"},
248      {{al, r2, 0x00005580}, false, al, "al r2 0x00005580", "al_r2_0x00005580"},
249      {{al, r2, 0x0000ab00}, false, al, "al r2 0x0000ab00", "al_r2_0x0000ab00"},
250      {{al, r2, 0x00015600}, false, al, "al r2 0x00015600", "al_r2_0x00015600"},
251      {{al, r2, 0x0002ac00}, false, al, "al r2 0x0002ac00", "al_r2_0x0002ac00"},
252      {{al, r2, 0x00055800}, false, al, "al r2 0x00055800", "al_r2_0x00055800"},
253      {{al, r2, 0x000ab000}, false, al, "al r2 0x000ab000", "al_r2_0x000ab000"},
254      {{al, r2, 0x00156000}, false, al, "al r2 0x00156000", "al_r2_0x00156000"},
255      {{al, r2, 0x002ac000}, false, al, "al r2 0x002ac000", "al_r2_0x002ac000"},
256      {{al, r2, 0x00558000}, false, al, "al r2 0x00558000", "al_r2_0x00558000"},
257      {{al, r2, 0x00ab0000}, false, al, "al r2 0x00ab0000", "al_r2_0x00ab0000"},
258      {{al, r2, 0x01560000}, false, al, "al r2 0x01560000", "al_r2_0x01560000"},
259      {{al, r2, 0x02ac0000}, false, al, "al r2 0x02ac0000", "al_r2_0x02ac0000"},
260      {{al, r2, 0x05580000}, false, al, "al r2 0x05580000", "al_r2_0x05580000"},
261      {{al, r2, 0x0ab00000}, false, al, "al r2 0x0ab00000", "al_r2_0x0ab00000"},
262      {{al, r2, 0x15600000}, false, al, "al r2 0x15600000", "al_r2_0x15600000"},
263      {{al, r2, 0x2ac00000}, false, al, "al r2 0x2ac00000", "al_r2_0x2ac00000"},
264      {{al, r2, 0x55800000}, false, al, "al r2 0x55800000", "al_r2_0x55800000"},
265      {{al, r2, 0xab000000}, false, al, "al r2 0xab000000", "al_r2_0xab000000"},
266      {{al, r2, 0x000000ab}, false, al, "al r2 0x000000ab", "al_r2_0x000000ab"},
267      {{al, r2, 0x00ab00ab}, false, al, "al r2 0x00ab00ab", "al_r2_0x00ab00ab"},
268      {{al, r2, 0xab00ab00}, false, al, "al r2 0xab00ab00", "al_r2_0xab00ab00"},
269      {{al, r2, 0xabababab}, false, al, "al r2 0xabababab", "al_r2_0xabababab"},
270      {{al, r3, 0x000001fe}, false, al, "al r3 0x000001fe", "al_r3_0x000001fe"},
271      {{al, r3, 0x000003fc}, false, al, "al r3 0x000003fc", "al_r3_0x000003fc"},
272      {{al, r3, 0x000007f8}, false, al, "al r3 0x000007f8", "al_r3_0x000007f8"},
273      {{al, r3, 0x00000ff0}, false, al, "al r3 0x00000ff0", "al_r3_0x00000ff0"},
274      {{al, r3, 0x00001fe0}, false, al, "al r3 0x00001fe0", "al_r3_0x00001fe0"},
275      {{al, r3, 0x00003fc0}, false, al, "al r3 0x00003fc0", "al_r3_0x00003fc0"},
276      {{al, r3, 0x00007f80}, false, al, "al r3 0x00007f80", "al_r3_0x00007f80"},
277      {{al, r3, 0x0000ff00}, false, al, "al r3 0x0000ff00", "al_r3_0x0000ff00"},
278      {{al, r3, 0x0001fe00}, false, al, "al r3 0x0001fe00", "al_r3_0x0001fe00"},
279      {{al, r3, 0x0003fc00}, false, al, "al r3 0x0003fc00", "al_r3_0x0003fc00"},
280      {{al, r3, 0x0007f800}, false, al, "al r3 0x0007f800", "al_r3_0x0007f800"},
281      {{al, r3, 0x000ff000}, false, al, "al r3 0x000ff000", "al_r3_0x000ff000"},
282      {{al, r3, 0x001fe000}, false, al, "al r3 0x001fe000", "al_r3_0x001fe000"},
283      {{al, r3, 0x003fc000}, false, al, "al r3 0x003fc000", "al_r3_0x003fc000"},
284      {{al, r3, 0x007f8000}, false, al, "al r3 0x007f8000", "al_r3_0x007f8000"},
285      {{al, r3, 0x00ff0000}, false, al, "al r3 0x00ff0000", "al_r3_0x00ff0000"},
286      {{al, r3, 0x01fe0000}, false, al, "al r3 0x01fe0000", "al_r3_0x01fe0000"},
287      {{al, r3, 0x03fc0000}, false, al, "al r3 0x03fc0000", "al_r3_0x03fc0000"},
288      {{al, r3, 0x07f80000}, false, al, "al r3 0x07f80000", "al_r3_0x07f80000"},
289      {{al, r3, 0x0ff00000}, false, al, "al r3 0x0ff00000", "al_r3_0x0ff00000"},
290      {{al, r3, 0x1fe00000}, false, al, "al r3 0x1fe00000", "al_r3_0x1fe00000"},
291      {{al, r3, 0x3fc00000}, false, al, "al r3 0x3fc00000", "al_r3_0x3fc00000"},
292      {{al, r3, 0x7f800000}, false, al, "al r3 0x7f800000", "al_r3_0x7f800000"},
293      {{al, r3, 0xff000000}, false, al, "al r3 0xff000000", "al_r3_0xff000000"},
294      {{al, r3, 0x000000ff}, false, al, "al r3 0x000000ff", "al_r3_0x000000ff"},
295      {{al, r3, 0x00ff00ff}, false, al, "al r3 0x00ff00ff", "al_r3_0x00ff00ff"},
296      {{al, r3, 0xff00ff00}, false, al, "al r3 0xff00ff00", "al_r3_0xff00ff00"},
297      {{al, r3, 0xffffffff}, false, al, "al r3 0xffffffff", "al_r3_0xffffffff"},
298      {{al, r3, 0x00000156}, false, al, "al r3 0x00000156", "al_r3_0x00000156"},
299      {{al, r3, 0x000002ac}, false, al, "al r3 0x000002ac", "al_r3_0x000002ac"},
300      {{al, r3, 0x00000558}, false, al, "al r3 0x00000558", "al_r3_0x00000558"},
301      {{al, r3, 0x00000ab0}, false, al, "al r3 0x00000ab0", "al_r3_0x00000ab0"},
302      {{al, r3, 0x00001560}, false, al, "al r3 0x00001560", "al_r3_0x00001560"},
303      {{al, r3, 0x00002ac0}, false, al, "al r3 0x00002ac0", "al_r3_0x00002ac0"},
304      {{al, r3, 0x00005580}, false, al, "al r3 0x00005580", "al_r3_0x00005580"},
305      {{al, r3, 0x0000ab00}, false, al, "al r3 0x0000ab00", "al_r3_0x0000ab00"},
306      {{al, r3, 0x00015600}, false, al, "al r3 0x00015600", "al_r3_0x00015600"},
307      {{al, r3, 0x0002ac00}, false, al, "al r3 0x0002ac00", "al_r3_0x0002ac00"},
308      {{al, r3, 0x00055800}, false, al, "al r3 0x00055800", "al_r3_0x00055800"},
309      {{al, r3, 0x000ab000}, false, al, "al r3 0x000ab000", "al_r3_0x000ab000"},
310      {{al, r3, 0x00156000}, false, al, "al r3 0x00156000", "al_r3_0x00156000"},
311      {{al, r3, 0x002ac000}, false, al, "al r3 0x002ac000", "al_r3_0x002ac000"},
312      {{al, r3, 0x00558000}, false, al, "al r3 0x00558000", "al_r3_0x00558000"},
313      {{al, r3, 0x00ab0000}, false, al, "al r3 0x00ab0000", "al_r3_0x00ab0000"},
314      {{al, r3, 0x01560000}, false, al, "al r3 0x01560000", "al_r3_0x01560000"},
315      {{al, r3, 0x02ac0000}, false, al, "al r3 0x02ac0000", "al_r3_0x02ac0000"},
316      {{al, r3, 0x05580000}, false, al, "al r3 0x05580000", "al_r3_0x05580000"},
317      {{al, r3, 0x0ab00000}, false, al, "al r3 0x0ab00000", "al_r3_0x0ab00000"},
318      {{al, r3, 0x15600000}, false, al, "al r3 0x15600000", "al_r3_0x15600000"},
319      {{al, r3, 0x2ac00000}, false, al, "al r3 0x2ac00000", "al_r3_0x2ac00000"},
320      {{al, r3, 0x55800000}, false, al, "al r3 0x55800000", "al_r3_0x55800000"},
321      {{al, r3, 0xab000000}, false, al, "al r3 0xab000000", "al_r3_0xab000000"},
322      {{al, r3, 0x000000ab}, false, al, "al r3 0x000000ab", "al_r3_0x000000ab"},
323      {{al, r3, 0x00ab00ab}, false, al, "al r3 0x00ab00ab", "al_r3_0x00ab00ab"},
324      {{al, r3, 0xab00ab00}, false, al, "al r3 0xab00ab00", "al_r3_0xab00ab00"},
325      {{al, r3, 0xabababab}, false, al, "al r3 0xabababab", "al_r3_0xabababab"},
326      {{al, r4, 0x000001fe}, false, al, "al r4 0x000001fe", "al_r4_0x000001fe"},
327      {{al, r4, 0x000003fc}, false, al, "al r4 0x000003fc", "al_r4_0x000003fc"},
328      {{al, r4, 0x000007f8}, false, al, "al r4 0x000007f8", "al_r4_0x000007f8"},
329      {{al, r4, 0x00000ff0}, false, al, "al r4 0x00000ff0", "al_r4_0x00000ff0"},
330      {{al, r4, 0x00001fe0}, false, al, "al r4 0x00001fe0", "al_r4_0x00001fe0"},
331      {{al, r4, 0x00003fc0}, false, al, "al r4 0x00003fc0", "al_r4_0x00003fc0"},
332      {{al, r4, 0x00007f80}, false, al, "al r4 0x00007f80", "al_r4_0x00007f80"},
333      {{al, r4, 0x0000ff00}, false, al, "al r4 0x0000ff00", "al_r4_0x0000ff00"},
334      {{al, r4, 0x0001fe00}, false, al, "al r4 0x0001fe00", "al_r4_0x0001fe00"},
335      {{al, r4, 0x0003fc00}, false, al, "al r4 0x0003fc00", "al_r4_0x0003fc00"},
336      {{al, r4, 0x0007f800}, false, al, "al r4 0x0007f800", "al_r4_0x0007f800"},
337      {{al, r4, 0x000ff000}, false, al, "al r4 0x000ff000", "al_r4_0x000ff000"},
338      {{al, r4, 0x001fe000}, false, al, "al r4 0x001fe000", "al_r4_0x001fe000"},
339      {{al, r4, 0x003fc000}, false, al, "al r4 0x003fc000", "al_r4_0x003fc000"},
340      {{al, r4, 0x007f8000}, false, al, "al r4 0x007f8000", "al_r4_0x007f8000"},
341      {{al, r4, 0x00ff0000}, false, al, "al r4 0x00ff0000", "al_r4_0x00ff0000"},
342      {{al, r4, 0x01fe0000}, false, al, "al r4 0x01fe0000", "al_r4_0x01fe0000"},
343      {{al, r4, 0x03fc0000}, false, al, "al r4 0x03fc0000", "al_r4_0x03fc0000"},
344      {{al, r4, 0x07f80000}, false, al, "al r4 0x07f80000", "al_r4_0x07f80000"},
345      {{al, r4, 0x0ff00000}, false, al, "al r4 0x0ff00000", "al_r4_0x0ff00000"},
346      {{al, r4, 0x1fe00000}, false, al, "al r4 0x1fe00000", "al_r4_0x1fe00000"},
347      {{al, r4, 0x3fc00000}, false, al, "al r4 0x3fc00000", "al_r4_0x3fc00000"},
348      {{al, r4, 0x7f800000}, false, al, "al r4 0x7f800000", "al_r4_0x7f800000"},
349      {{al, r4, 0xff000000}, false, al, "al r4 0xff000000", "al_r4_0xff000000"},
350      {{al, r4, 0x000000ff}, false, al, "al r4 0x000000ff", "al_r4_0x000000ff"},
351      {{al, r4, 0x00ff00ff}, false, al, "al r4 0x00ff00ff", "al_r4_0x00ff00ff"},
352      {{al, r4, 0xff00ff00}, false, al, "al r4 0xff00ff00", "al_r4_0xff00ff00"},
353      {{al, r4, 0xffffffff}, false, al, "al r4 0xffffffff", "al_r4_0xffffffff"},
354      {{al, r4, 0x00000156}, false, al, "al r4 0x00000156", "al_r4_0x00000156"},
355      {{al, r4, 0x000002ac}, false, al, "al r4 0x000002ac", "al_r4_0x000002ac"},
356      {{al, r4, 0x00000558}, false, al, "al r4 0x00000558", "al_r4_0x00000558"},
357      {{al, r4, 0x00000ab0}, false, al, "al r4 0x00000ab0", "al_r4_0x00000ab0"},
358      {{al, r4, 0x00001560}, false, al, "al r4 0x00001560", "al_r4_0x00001560"},
359      {{al, r4, 0x00002ac0}, false, al, "al r4 0x00002ac0", "al_r4_0x00002ac0"},
360      {{al, r4, 0x00005580}, false, al, "al r4 0x00005580", "al_r4_0x00005580"},
361      {{al, r4, 0x0000ab00}, false, al, "al r4 0x0000ab00", "al_r4_0x0000ab00"},
362      {{al, r4, 0x00015600}, false, al, "al r4 0x00015600", "al_r4_0x00015600"},
363      {{al, r4, 0x0002ac00}, false, al, "al r4 0x0002ac00", "al_r4_0x0002ac00"},
364      {{al, r4, 0x00055800}, false, al, "al r4 0x00055800", "al_r4_0x00055800"},
365      {{al, r4, 0x000ab000}, false, al, "al r4 0x000ab000", "al_r4_0x000ab000"},
366      {{al, r4, 0x00156000}, false, al, "al r4 0x00156000", "al_r4_0x00156000"},
367      {{al, r4, 0x002ac000}, false, al, "al r4 0x002ac000", "al_r4_0x002ac000"},
368      {{al, r4, 0x00558000}, false, al, "al r4 0x00558000", "al_r4_0x00558000"},
369      {{al, r4, 0x00ab0000}, false, al, "al r4 0x00ab0000", "al_r4_0x00ab0000"},
370      {{al, r4, 0x01560000}, false, al, "al r4 0x01560000", "al_r4_0x01560000"},
371      {{al, r4, 0x02ac0000}, false, al, "al r4 0x02ac0000", "al_r4_0x02ac0000"},
372      {{al, r4, 0x05580000}, false, al, "al r4 0x05580000", "al_r4_0x05580000"},
373      {{al, r4, 0x0ab00000}, false, al, "al r4 0x0ab00000", "al_r4_0x0ab00000"},
374      {{al, r4, 0x15600000}, false, al, "al r4 0x15600000", "al_r4_0x15600000"},
375      {{al, r4, 0x2ac00000}, false, al, "al r4 0x2ac00000", "al_r4_0x2ac00000"},
376      {{al, r4, 0x55800000}, false, al, "al r4 0x55800000", "al_r4_0x55800000"},
377      {{al, r4, 0xab000000}, false, al, "al r4 0xab000000", "al_r4_0xab000000"},
378      {{al, r4, 0x000000ab}, false, al, "al r4 0x000000ab", "al_r4_0x000000ab"},
379      {{al, r4, 0x00ab00ab}, false, al, "al r4 0x00ab00ab", "al_r4_0x00ab00ab"},
380      {{al, r4, 0xab00ab00}, false, al, "al r4 0xab00ab00", "al_r4_0xab00ab00"},
381      {{al, r4, 0xabababab}, false, al, "al r4 0xabababab", "al_r4_0xabababab"},
382      {{al, r5, 0x000001fe}, false, al, "al r5 0x000001fe", "al_r5_0x000001fe"},
383      {{al, r5, 0x000003fc}, false, al, "al r5 0x000003fc", "al_r5_0x000003fc"},
384      {{al, r5, 0x000007f8}, false, al, "al r5 0x000007f8", "al_r5_0x000007f8"},
385      {{al, r5, 0x00000ff0}, false, al, "al r5 0x00000ff0", "al_r5_0x00000ff0"},
386      {{al, r5, 0x00001fe0}, false, al, "al r5 0x00001fe0", "al_r5_0x00001fe0"},
387      {{al, r5, 0x00003fc0}, false, al, "al r5 0x00003fc0", "al_r5_0x00003fc0"},
388      {{al, r5, 0x00007f80}, false, al, "al r5 0x00007f80", "al_r5_0x00007f80"},
389      {{al, r5, 0x0000ff00}, false, al, "al r5 0x0000ff00", "al_r5_0x0000ff00"},
390      {{al, r5, 0x0001fe00}, false, al, "al r5 0x0001fe00", "al_r5_0x0001fe00"},
391      {{al, r5, 0x0003fc00}, false, al, "al r5 0x0003fc00", "al_r5_0x0003fc00"},
392      {{al, r5, 0x0007f800}, false, al, "al r5 0x0007f800", "al_r5_0x0007f800"},
393      {{al, r5, 0x000ff000}, false, al, "al r5 0x000ff000", "al_r5_0x000ff000"},
394      {{al, r5, 0x001fe000}, false, al, "al r5 0x001fe000", "al_r5_0x001fe000"},
395      {{al, r5, 0x003fc000}, false, al, "al r5 0x003fc000", "al_r5_0x003fc000"},
396      {{al, r5, 0x007f8000}, false, al, "al r5 0x007f8000", "al_r5_0x007f8000"},
397      {{al, r5, 0x00ff0000}, false, al, "al r5 0x00ff0000", "al_r5_0x00ff0000"},
398      {{al, r5, 0x01fe0000}, false, al, "al r5 0x01fe0000", "al_r5_0x01fe0000"},
399      {{al, r5, 0x03fc0000}, false, al, "al r5 0x03fc0000", "al_r5_0x03fc0000"},
400      {{al, r5, 0x07f80000}, false, al, "al r5 0x07f80000", "al_r5_0x07f80000"},
401      {{al, r5, 0x0ff00000}, false, al, "al r5 0x0ff00000", "al_r5_0x0ff00000"},
402      {{al, r5, 0x1fe00000}, false, al, "al r5 0x1fe00000", "al_r5_0x1fe00000"},
403      {{al, r5, 0x3fc00000}, false, al, "al r5 0x3fc00000", "al_r5_0x3fc00000"},
404      {{al, r5, 0x7f800000}, false, al, "al r5 0x7f800000", "al_r5_0x7f800000"},
405      {{al, r5, 0xff000000}, false, al, "al r5 0xff000000", "al_r5_0xff000000"},
406      {{al, r5, 0x000000ff}, false, al, "al r5 0x000000ff", "al_r5_0x000000ff"},
407      {{al, r5, 0x00ff00ff}, false, al, "al r5 0x00ff00ff", "al_r5_0x00ff00ff"},
408      {{al, r5, 0xff00ff00}, false, al, "al r5 0xff00ff00", "al_r5_0xff00ff00"},
409      {{al, r5, 0xffffffff}, false, al, "al r5 0xffffffff", "al_r5_0xffffffff"},
410      {{al, r5, 0x00000156}, false, al, "al r5 0x00000156", "al_r5_0x00000156"},
411      {{al, r5, 0x000002ac}, false, al, "al r5 0x000002ac", "al_r5_0x000002ac"},
412      {{al, r5, 0x00000558}, false, al, "al r5 0x00000558", "al_r5_0x00000558"},
413      {{al, r5, 0x00000ab0}, false, al, "al r5 0x00000ab0", "al_r5_0x00000ab0"},
414      {{al, r5, 0x00001560}, false, al, "al r5 0x00001560", "al_r5_0x00001560"},
415      {{al, r5, 0x00002ac0}, false, al, "al r5 0x00002ac0", "al_r5_0x00002ac0"},
416      {{al, r5, 0x00005580}, false, al, "al r5 0x00005580", "al_r5_0x00005580"},
417      {{al, r5, 0x0000ab00}, false, al, "al r5 0x0000ab00", "al_r5_0x0000ab00"},
418      {{al, r5, 0x00015600}, false, al, "al r5 0x00015600", "al_r5_0x00015600"},
419      {{al, r5, 0x0002ac00}, false, al, "al r5 0x0002ac00", "al_r5_0x0002ac00"},
420      {{al, r5, 0x00055800}, false, al, "al r5 0x00055800", "al_r5_0x00055800"},
421      {{al, r5, 0x000ab000}, false, al, "al r5 0x000ab000", "al_r5_0x000ab000"},
422      {{al, r5, 0x00156000}, false, al, "al r5 0x00156000", "al_r5_0x00156000"},
423      {{al, r5, 0x002ac000}, false, al, "al r5 0x002ac000", "al_r5_0x002ac000"},
424      {{al, r5, 0x00558000}, false, al, "al r5 0x00558000", "al_r5_0x00558000"},
425      {{al, r5, 0x00ab0000}, false, al, "al r5 0x00ab0000", "al_r5_0x00ab0000"},
426      {{al, r5, 0x01560000}, false, al, "al r5 0x01560000", "al_r5_0x01560000"},
427      {{al, r5, 0x02ac0000}, false, al, "al r5 0x02ac0000", "al_r5_0x02ac0000"},
428      {{al, r5, 0x05580000}, false, al, "al r5 0x05580000", "al_r5_0x05580000"},
429      {{al, r5, 0x0ab00000}, false, al, "al r5 0x0ab00000", "al_r5_0x0ab00000"},
430      {{al, r5, 0x15600000}, false, al, "al r5 0x15600000", "al_r5_0x15600000"},
431      {{al, r5, 0x2ac00000}, false, al, "al r5 0x2ac00000", "al_r5_0x2ac00000"},
432      {{al, r5, 0x55800000}, false, al, "al r5 0x55800000", "al_r5_0x55800000"},
433      {{al, r5, 0xab000000}, false, al, "al r5 0xab000000", "al_r5_0xab000000"},
434      {{al, r5, 0x000000ab}, false, al, "al r5 0x000000ab", "al_r5_0x000000ab"},
435      {{al, r5, 0x00ab00ab}, false, al, "al r5 0x00ab00ab", "al_r5_0x00ab00ab"},
436      {{al, r5, 0xab00ab00}, false, al, "al r5 0xab00ab00", "al_r5_0xab00ab00"},
437      {{al, r5, 0xabababab}, false, al, "al r5 0xabababab", "al_r5_0xabababab"},
438      {{al, r6, 0x000001fe}, false, al, "al r6 0x000001fe", "al_r6_0x000001fe"},
439      {{al, r6, 0x000003fc}, false, al, "al r6 0x000003fc", "al_r6_0x000003fc"},
440      {{al, r6, 0x000007f8}, false, al, "al r6 0x000007f8", "al_r6_0x000007f8"},
441      {{al, r6, 0x00000ff0}, false, al, "al r6 0x00000ff0", "al_r6_0x00000ff0"},
442      {{al, r6, 0x00001fe0}, false, al, "al r6 0x00001fe0", "al_r6_0x00001fe0"},
443      {{al, r6, 0x00003fc0}, false, al, "al r6 0x00003fc0", "al_r6_0x00003fc0"},
444      {{al, r6, 0x00007f80}, false, al, "al r6 0x00007f80", "al_r6_0x00007f80"},
445      {{al, r6, 0x0000ff00}, false, al, "al r6 0x0000ff00", "al_r6_0x0000ff00"},
446      {{al, r6, 0x0001fe00}, false, al, "al r6 0x0001fe00", "al_r6_0x0001fe00"},
447      {{al, r6, 0x0003fc00}, false, al, "al r6 0x0003fc00", "al_r6_0x0003fc00"},
448      {{al, r6, 0x0007f800}, false, al, "al r6 0x0007f800", "al_r6_0x0007f800"},
449      {{al, r6, 0x000ff000}, false, al, "al r6 0x000ff000", "al_r6_0x000ff000"},
450      {{al, r6, 0x001fe000}, false, al, "al r6 0x001fe000", "al_r6_0x001fe000"},
451      {{al, r6, 0x003fc000}, false, al, "al r6 0x003fc000", "al_r6_0x003fc000"},
452      {{al, r6, 0x007f8000}, false, al, "al r6 0x007f8000", "al_r6_0x007f8000"},
453      {{al, r6, 0x00ff0000}, false, al, "al r6 0x00ff0000", "al_r6_0x00ff0000"},
454      {{al, r6, 0x01fe0000}, false, al, "al r6 0x01fe0000", "al_r6_0x01fe0000"},
455      {{al, r6, 0x03fc0000}, false, al, "al r6 0x03fc0000", "al_r6_0x03fc0000"},
456      {{al, r6, 0x07f80000}, false, al, "al r6 0x07f80000", "al_r6_0x07f80000"},
457      {{al, r6, 0x0ff00000}, false, al, "al r6 0x0ff00000", "al_r6_0x0ff00000"},
458      {{al, r6, 0x1fe00000}, false, al, "al r6 0x1fe00000", "al_r6_0x1fe00000"},
459      {{al, r6, 0x3fc00000}, false, al, "al r6 0x3fc00000", "al_r6_0x3fc00000"},
460      {{al, r6, 0x7f800000}, false, al, "al r6 0x7f800000", "al_r6_0x7f800000"},
461      {{al, r6, 0xff000000}, false, al, "al r6 0xff000000", "al_r6_0xff000000"},
462      {{al, r6, 0x000000ff}, false, al, "al r6 0x000000ff", "al_r6_0x000000ff"},
463      {{al, r6, 0x00ff00ff}, false, al, "al r6 0x00ff00ff", "al_r6_0x00ff00ff"},
464      {{al, r6, 0xff00ff00}, false, al, "al r6 0xff00ff00", "al_r6_0xff00ff00"},
465      {{al, r6, 0xffffffff}, false, al, "al r6 0xffffffff", "al_r6_0xffffffff"},
466      {{al, r6, 0x00000156}, false, al, "al r6 0x00000156", "al_r6_0x00000156"},
467      {{al, r6, 0x000002ac}, false, al, "al r6 0x000002ac", "al_r6_0x000002ac"},
468      {{al, r6, 0x00000558}, false, al, "al r6 0x00000558", "al_r6_0x00000558"},
469      {{al, r6, 0x00000ab0}, false, al, "al r6 0x00000ab0", "al_r6_0x00000ab0"},
470      {{al, r6, 0x00001560}, false, al, "al r6 0x00001560", "al_r6_0x00001560"},
471      {{al, r6, 0x00002ac0}, false, al, "al r6 0x00002ac0", "al_r6_0x00002ac0"},
472      {{al, r6, 0x00005580}, false, al, "al r6 0x00005580", "al_r6_0x00005580"},
473      {{al, r6, 0x0000ab00}, false, al, "al r6 0x0000ab00", "al_r6_0x0000ab00"},
474      {{al, r6, 0x00015600}, false, al, "al r6 0x00015600", "al_r6_0x00015600"},
475      {{al, r6, 0x0002ac00}, false, al, "al r6 0x0002ac00", "al_r6_0x0002ac00"},
476      {{al, r6, 0x00055800}, false, al, "al r6 0x00055800", "al_r6_0x00055800"},
477      {{al, r6, 0x000ab000}, false, al, "al r6 0x000ab000", "al_r6_0x000ab000"},
478      {{al, r6, 0x00156000}, false, al, "al r6 0x00156000", "al_r6_0x00156000"},
479      {{al, r6, 0x002ac000}, false, al, "al r6 0x002ac000", "al_r6_0x002ac000"},
480      {{al, r6, 0x00558000}, false, al, "al r6 0x00558000", "al_r6_0x00558000"},
481      {{al, r6, 0x00ab0000}, false, al, "al r6 0x00ab0000", "al_r6_0x00ab0000"},
482      {{al, r6, 0x01560000}, false, al, "al r6 0x01560000", "al_r6_0x01560000"},
483      {{al, r6, 0x02ac0000}, false, al, "al r6 0x02ac0000", "al_r6_0x02ac0000"},
484      {{al, r6, 0x05580000}, false, al, "al r6 0x05580000", "al_r6_0x05580000"},
485      {{al, r6, 0x0ab00000}, false, al, "al r6 0x0ab00000", "al_r6_0x0ab00000"},
486      {{al, r6, 0x15600000}, false, al, "al r6 0x15600000", "al_r6_0x15600000"},
487      {{al, r6, 0x2ac00000}, false, al, "al r6 0x2ac00000", "al_r6_0x2ac00000"},
488      {{al, r6, 0x55800000}, false, al, "al r6 0x55800000", "al_r6_0x55800000"},
489      {{al, r6, 0xab000000}, false, al, "al r6 0xab000000", "al_r6_0xab000000"},
490      {{al, r6, 0x000000ab}, false, al, "al r6 0x000000ab", "al_r6_0x000000ab"},
491      {{al, r6, 0x00ab00ab}, false, al, "al r6 0x00ab00ab", "al_r6_0x00ab00ab"},
492      {{al, r6, 0xab00ab00}, false, al, "al r6 0xab00ab00", "al_r6_0xab00ab00"},
493      {{al, r6, 0xabababab}, false, al, "al r6 0xabababab", "al_r6_0xabababab"},
494      {{al, r7, 0x000001fe}, false, al, "al r7 0x000001fe", "al_r7_0x000001fe"},
495      {{al, r7, 0x000003fc}, false, al, "al r7 0x000003fc", "al_r7_0x000003fc"},
496      {{al, r7, 0x000007f8}, false, al, "al r7 0x000007f8", "al_r7_0x000007f8"},
497      {{al, r7, 0x00000ff0}, false, al, "al r7 0x00000ff0", "al_r7_0x00000ff0"},
498      {{al, r7, 0x00001fe0}, false, al, "al r7 0x00001fe0", "al_r7_0x00001fe0"},
499      {{al, r7, 0x00003fc0}, false, al, "al r7 0x00003fc0", "al_r7_0x00003fc0"},
500      {{al, r7, 0x00007f80}, false, al, "al r7 0x00007f80", "al_r7_0x00007f80"},
501      {{al, r7, 0x0000ff00}, false, al, "al r7 0x0000ff00", "al_r7_0x0000ff00"},
502      {{al, r7, 0x0001fe00}, false, al, "al r7 0x0001fe00", "al_r7_0x0001fe00"},
503      {{al, r7, 0x0003fc00}, false, al, "al r7 0x0003fc00", "al_r7_0x0003fc00"},
504      {{al, r7, 0x0007f800}, false, al, "al r7 0x0007f800", "al_r7_0x0007f800"},
505      {{al, r7, 0x000ff000}, false, al, "al r7 0x000ff000", "al_r7_0x000ff000"},
506      {{al, r7, 0x001fe000}, false, al, "al r7 0x001fe000", "al_r7_0x001fe000"},
507      {{al, r7, 0x003fc000}, false, al, "al r7 0x003fc000", "al_r7_0x003fc000"},
508      {{al, r7, 0x007f8000}, false, al, "al r7 0x007f8000", "al_r7_0x007f8000"},
509      {{al, r7, 0x00ff0000}, false, al, "al r7 0x00ff0000", "al_r7_0x00ff0000"},
510      {{al, r7, 0x01fe0000}, false, al, "al r7 0x01fe0000", "al_r7_0x01fe0000"},
511      {{al, r7, 0x03fc0000}, false, al, "al r7 0x03fc0000", "al_r7_0x03fc0000"},
512      {{al, r7, 0x07f80000}, false, al, "al r7 0x07f80000", "al_r7_0x07f80000"},
513      {{al, r7, 0x0ff00000}, false, al, "al r7 0x0ff00000", "al_r7_0x0ff00000"},
514      {{al, r7, 0x1fe00000}, false, al, "al r7 0x1fe00000", "al_r7_0x1fe00000"},
515      {{al, r7, 0x3fc00000}, false, al, "al r7 0x3fc00000", "al_r7_0x3fc00000"},
516      {{al, r7, 0x7f800000}, false, al, "al r7 0x7f800000", "al_r7_0x7f800000"},
517      {{al, r7, 0xff000000}, false, al, "al r7 0xff000000", "al_r7_0xff000000"},
518      {{al, r7, 0x000000ff}, false, al, "al r7 0x000000ff", "al_r7_0x000000ff"},
519      {{al, r7, 0x00ff00ff}, false, al, "al r7 0x00ff00ff", "al_r7_0x00ff00ff"},
520      {{al, r7, 0xff00ff00}, false, al, "al r7 0xff00ff00", "al_r7_0xff00ff00"},
521      {{al, r7, 0xffffffff}, false, al, "al r7 0xffffffff", "al_r7_0xffffffff"},
522      {{al, r7, 0x00000156}, false, al, "al r7 0x00000156", "al_r7_0x00000156"},
523      {{al, r7, 0x000002ac}, false, al, "al r7 0x000002ac", "al_r7_0x000002ac"},
524      {{al, r7, 0x00000558}, false, al, "al r7 0x00000558", "al_r7_0x00000558"},
525      {{al, r7, 0x00000ab0}, false, al, "al r7 0x00000ab0", "al_r7_0x00000ab0"},
526      {{al, r7, 0x00001560}, false, al, "al r7 0x00001560", "al_r7_0x00001560"},
527      {{al, r7, 0x00002ac0}, false, al, "al r7 0x00002ac0", "al_r7_0x00002ac0"},
528      {{al, r7, 0x00005580}, false, al, "al r7 0x00005580", "al_r7_0x00005580"},
529      {{al, r7, 0x0000ab00}, false, al, "al r7 0x0000ab00", "al_r7_0x0000ab00"},
530      {{al, r7, 0x00015600}, false, al, "al r7 0x00015600", "al_r7_0x00015600"},
531      {{al, r7, 0x0002ac00}, false, al, "al r7 0x0002ac00", "al_r7_0x0002ac00"},
532      {{al, r7, 0x00055800}, false, al, "al r7 0x00055800", "al_r7_0x00055800"},
533      {{al, r7, 0x000ab000}, false, al, "al r7 0x000ab000", "al_r7_0x000ab000"},
534      {{al, r7, 0x00156000}, false, al, "al r7 0x00156000", "al_r7_0x00156000"},
535      {{al, r7, 0x002ac000}, false, al, "al r7 0x002ac000", "al_r7_0x002ac000"},
536      {{al, r7, 0x00558000}, false, al, "al r7 0x00558000", "al_r7_0x00558000"},
537      {{al, r7, 0x00ab0000}, false, al, "al r7 0x00ab0000", "al_r7_0x00ab0000"},
538      {{al, r7, 0x01560000}, false, al, "al r7 0x01560000", "al_r7_0x01560000"},
539      {{al, r7, 0x02ac0000}, false, al, "al r7 0x02ac0000", "al_r7_0x02ac0000"},
540      {{al, r7, 0x05580000}, false, al, "al r7 0x05580000", "al_r7_0x05580000"},
541      {{al, r7, 0x0ab00000}, false, al, "al r7 0x0ab00000", "al_r7_0x0ab00000"},
542      {{al, r7, 0x15600000}, false, al, "al r7 0x15600000", "al_r7_0x15600000"},
543      {{al, r7, 0x2ac00000}, false, al, "al r7 0x2ac00000", "al_r7_0x2ac00000"},
544      {{al, r7, 0x55800000}, false, al, "al r7 0x55800000", "al_r7_0x55800000"},
545      {{al, r7, 0xab000000}, false, al, "al r7 0xab000000", "al_r7_0xab000000"},
546      {{al, r7, 0x000000ab}, false, al, "al r7 0x000000ab", "al_r7_0x000000ab"},
547      {{al, r7, 0x00ab00ab}, false, al, "al r7 0x00ab00ab", "al_r7_0x00ab00ab"},
548      {{al, r7, 0xab00ab00}, false, al, "al r7 0xab00ab00", "al_r7_0xab00ab00"},
549      {{al, r7, 0xabababab}, false, al, "al r7 0xabababab", "al_r7_0xabababab"},
550      {{al, r8, 0x000001fe}, false, al, "al r8 0x000001fe", "al_r8_0x000001fe"},
551      {{al, r8, 0x000003fc}, false, al, "al r8 0x000003fc", "al_r8_0x000003fc"},
552      {{al, r8, 0x000007f8}, false, al, "al r8 0x000007f8", "al_r8_0x000007f8"},
553      {{al, r8, 0x00000ff0}, false, al, "al r8 0x00000ff0", "al_r8_0x00000ff0"},
554      {{al, r8, 0x00001fe0}, false, al, "al r8 0x00001fe0", "al_r8_0x00001fe0"},
555      {{al, r8, 0x00003fc0}, false, al, "al r8 0x00003fc0", "al_r8_0x00003fc0"},
556      {{al, r8, 0x00007f80}, false, al, "al r8 0x00007f80", "al_r8_0x00007f80"},
557      {{al, r8, 0x0000ff00}, false, al, "al r8 0x0000ff00", "al_r8_0x0000ff00"},
558      {{al, r8, 0x0001fe00}, false, al, "al r8 0x0001fe00", "al_r8_0x0001fe00"},
559      {{al, r8, 0x0003fc00}, false, al, "al r8 0x0003fc00", "al_r8_0x0003fc00"},
560      {{al, r8, 0x0007f800}, false, al, "al r8 0x0007f800", "al_r8_0x0007f800"},
561      {{al, r8, 0x000ff000}, false, al, "al r8 0x000ff000", "al_r8_0x000ff000"},
562      {{al, r8, 0x001fe000}, false, al, "al r8 0x001fe000", "al_r8_0x001fe000"},
563      {{al, r8, 0x003fc000}, false, al, "al r8 0x003fc000", "al_r8_0x003fc000"},
564      {{al, r8, 0x007f8000}, false, al, "al r8 0x007f8000", "al_r8_0x007f8000"},
565      {{al, r8, 0x00ff0000}, false, al, "al r8 0x00ff0000", "al_r8_0x00ff0000"},
566      {{al, r8, 0x01fe0000}, false, al, "al r8 0x01fe0000", "al_r8_0x01fe0000"},
567      {{al, r8, 0x03fc0000}, false, al, "al r8 0x03fc0000", "al_r8_0x03fc0000"},
568      {{al, r8, 0x07f80000}, false, al, "al r8 0x07f80000", "al_r8_0x07f80000"},
569      {{al, r8, 0x0ff00000}, false, al, "al r8 0x0ff00000", "al_r8_0x0ff00000"},
570      {{al, r8, 0x1fe00000}, false, al, "al r8 0x1fe00000", "al_r8_0x1fe00000"},
571      {{al, r8, 0x3fc00000}, false, al, "al r8 0x3fc00000", "al_r8_0x3fc00000"},
572      {{al, r8, 0x7f800000}, false, al, "al r8 0x7f800000", "al_r8_0x7f800000"},
573      {{al, r8, 0xff000000}, false, al, "al r8 0xff000000", "al_r8_0xff000000"},
574      {{al, r8, 0x000000ff}, false, al, "al r8 0x000000ff", "al_r8_0x000000ff"},
575      {{al, r8, 0x00ff00ff}, false, al, "al r8 0x00ff00ff", "al_r8_0x00ff00ff"},
576      {{al, r8, 0xff00ff00}, false, al, "al r8 0xff00ff00", "al_r8_0xff00ff00"},
577      {{al, r8, 0xffffffff}, false, al, "al r8 0xffffffff", "al_r8_0xffffffff"},
578      {{al, r8, 0x00000156}, false, al, "al r8 0x00000156", "al_r8_0x00000156"},
579      {{al, r8, 0x000002ac}, false, al, "al r8 0x000002ac", "al_r8_0x000002ac"},
580      {{al, r8, 0x00000558}, false, al, "al r8 0x00000558", "al_r8_0x00000558"},
581      {{al, r8, 0x00000ab0}, false, al, "al r8 0x00000ab0", "al_r8_0x00000ab0"},
582      {{al, r8, 0x00001560}, false, al, "al r8 0x00001560", "al_r8_0x00001560"},
583      {{al, r8, 0x00002ac0}, false, al, "al r8 0x00002ac0", "al_r8_0x00002ac0"},
584      {{al, r8, 0x00005580}, false, al, "al r8 0x00005580", "al_r8_0x00005580"},
585      {{al, r8, 0x0000ab00}, false, al, "al r8 0x0000ab00", "al_r8_0x0000ab00"},
586      {{al, r8, 0x00015600}, false, al, "al r8 0x00015600", "al_r8_0x00015600"},
587      {{al, r8, 0x0002ac00}, false, al, "al r8 0x0002ac00", "al_r8_0x0002ac00"},
588      {{al, r8, 0x00055800}, false, al, "al r8 0x00055800", "al_r8_0x00055800"},
589      {{al, r8, 0x000ab000}, false, al, "al r8 0x000ab000", "al_r8_0x000ab000"},
590      {{al, r8, 0x00156000}, false, al, "al r8 0x00156000", "al_r8_0x00156000"},
591      {{al, r8, 0x002ac000}, false, al, "al r8 0x002ac000", "al_r8_0x002ac000"},
592      {{al, r8, 0x00558000}, false, al, "al r8 0x00558000", "al_r8_0x00558000"},
593      {{al, r8, 0x00ab0000}, false, al, "al r8 0x00ab0000", "al_r8_0x00ab0000"},
594      {{al, r8, 0x01560000}, false, al, "al r8 0x01560000", "al_r8_0x01560000"},
595      {{al, r8, 0x02ac0000}, false, al, "al r8 0x02ac0000", "al_r8_0x02ac0000"},
596      {{al, r8, 0x05580000}, false, al, "al r8 0x05580000", "al_r8_0x05580000"},
597      {{al, r8, 0x0ab00000}, false, al, "al r8 0x0ab00000", "al_r8_0x0ab00000"},
598      {{al, r8, 0x15600000}, false, al, "al r8 0x15600000", "al_r8_0x15600000"},
599      {{al, r8, 0x2ac00000}, false, al, "al r8 0x2ac00000", "al_r8_0x2ac00000"},
600      {{al, r8, 0x55800000}, false, al, "al r8 0x55800000", "al_r8_0x55800000"},
601      {{al, r8, 0xab000000}, false, al, "al r8 0xab000000", "al_r8_0xab000000"},
602      {{al, r8, 0x000000ab}, false, al, "al r8 0x000000ab", "al_r8_0x000000ab"},
603      {{al, r8, 0x00ab00ab}, false, al, "al r8 0x00ab00ab", "al_r8_0x00ab00ab"},
604      {{al, r8, 0xab00ab00}, false, al, "al r8 0xab00ab00", "al_r8_0xab00ab00"},
605      {{al, r8, 0xabababab}, false, al, "al r8 0xabababab", "al_r8_0xabababab"},
606      {{al, r9, 0x000001fe}, false, al, "al r9 0x000001fe", "al_r9_0x000001fe"},
607      {{al, r9, 0x000003fc}, false, al, "al r9 0x000003fc", "al_r9_0x000003fc"},
608      {{al, r9, 0x000007f8}, false, al, "al r9 0x000007f8", "al_r9_0x000007f8"},
609      {{al, r9, 0x00000ff0}, false, al, "al r9 0x00000ff0", "al_r9_0x00000ff0"},
610      {{al, r9, 0x00001fe0}, false, al, "al r9 0x00001fe0", "al_r9_0x00001fe0"},
611      {{al, r9, 0x00003fc0}, false, al, "al r9 0x00003fc0", "al_r9_0x00003fc0"},
612      {{al, r9, 0x00007f80}, false, al, "al r9 0x00007f80", "al_r9_0x00007f80"},
613      {{al, r9, 0x0000ff00}, false, al, "al r9 0x0000ff00", "al_r9_0x0000ff00"},
614      {{al, r9, 0x0001fe00}, false, al, "al r9 0x0001fe00", "al_r9_0x0001fe00"},
615      {{al, r9, 0x0003fc00}, false, al, "al r9 0x0003fc00", "al_r9_0x0003fc00"},
616      {{al, r9, 0x0007f800}, false, al, "al r9 0x0007f800", "al_r9_0x0007f800"},
617      {{al, r9, 0x000ff000}, false, al, "al r9 0x000ff000", "al_r9_0x000ff000"},
618      {{al, r9, 0x001fe000}, false, al, "al r9 0x001fe000", "al_r9_0x001fe000"},
619      {{al, r9, 0x003fc000}, false, al, "al r9 0x003fc000", "al_r9_0x003fc000"},
620      {{al, r9, 0x007f8000}, false, al, "al r9 0x007f8000", "al_r9_0x007f8000"},
621      {{al, r9, 0x00ff0000}, false, al, "al r9 0x00ff0000", "al_r9_0x00ff0000"},
622      {{al, r9, 0x01fe0000}, false, al, "al r9 0x01fe0000", "al_r9_0x01fe0000"},
623      {{al, r9, 0x03fc0000}, false, al, "al r9 0x03fc0000", "al_r9_0x03fc0000"},
624      {{al, r9, 0x07f80000}, false, al, "al r9 0x07f80000", "al_r9_0x07f80000"},
625      {{al, r9, 0x0ff00000}, false, al, "al r9 0x0ff00000", "al_r9_0x0ff00000"},
626      {{al, r9, 0x1fe00000}, false, al, "al r9 0x1fe00000", "al_r9_0x1fe00000"},
627      {{al, r9, 0x3fc00000}, false, al, "al r9 0x3fc00000", "al_r9_0x3fc00000"},
628      {{al, r9, 0x7f800000}, false, al, "al r9 0x7f800000", "al_r9_0x7f800000"},
629      {{al, r9, 0xff000000}, false, al, "al r9 0xff000000", "al_r9_0xff000000"},
630      {{al, r9, 0x000000ff}, false, al, "al r9 0x000000ff", "al_r9_0x000000ff"},
631      {{al, r9, 0x00ff00ff}, false, al, "al r9 0x00ff00ff", "al_r9_0x00ff00ff"},
632      {{al, r9, 0xff00ff00}, false, al, "al r9 0xff00ff00", "al_r9_0xff00ff00"},
633      {{al, r9, 0xffffffff}, false, al, "al r9 0xffffffff", "al_r9_0xffffffff"},
634      {{al, r9, 0x00000156}, false, al, "al r9 0x00000156", "al_r9_0x00000156"},
635      {{al, r9, 0x000002ac}, false, al, "al r9 0x000002ac", "al_r9_0x000002ac"},
636      {{al, r9, 0x00000558}, false, al, "al r9 0x00000558", "al_r9_0x00000558"},
637      {{al, r9, 0x00000ab0}, false, al, "al r9 0x00000ab0", "al_r9_0x00000ab0"},
638      {{al, r9, 0x00001560}, false, al, "al r9 0x00001560", "al_r9_0x00001560"},
639      {{al, r9, 0x00002ac0}, false, al, "al r9 0x00002ac0", "al_r9_0x00002ac0"},
640      {{al, r9, 0x00005580}, false, al, "al r9 0x00005580", "al_r9_0x00005580"},
641      {{al, r9, 0x0000ab00}, false, al, "al r9 0x0000ab00", "al_r9_0x0000ab00"},
642      {{al, r9, 0x00015600}, false, al, "al r9 0x00015600", "al_r9_0x00015600"},
643      {{al, r9, 0x0002ac00}, false, al, "al r9 0x0002ac00", "al_r9_0x0002ac00"},
644      {{al, r9, 0x00055800}, false, al, "al r9 0x00055800", "al_r9_0x00055800"},
645      {{al, r9, 0x000ab000}, false, al, "al r9 0x000ab000", "al_r9_0x000ab000"},
646      {{al, r9, 0x00156000}, false, al, "al r9 0x00156000", "al_r9_0x00156000"},
647      {{al, r9, 0x002ac000}, false, al, "al r9 0x002ac000", "al_r9_0x002ac000"},
648      {{al, r9, 0x00558000}, false, al, "al r9 0x00558000", "al_r9_0x00558000"},
649      {{al, r9, 0x00ab0000}, false, al, "al r9 0x00ab0000", "al_r9_0x00ab0000"},
650      {{al, r9, 0x01560000}, false, al, "al r9 0x01560000", "al_r9_0x01560000"},
651      {{al, r9, 0x02ac0000}, false, al, "al r9 0x02ac0000", "al_r9_0x02ac0000"},
652      {{al, r9, 0x05580000}, false, al, "al r9 0x05580000", "al_r9_0x05580000"},
653      {{al, r9, 0x0ab00000}, false, al, "al r9 0x0ab00000", "al_r9_0x0ab00000"},
654      {{al, r9, 0x15600000}, false, al, "al r9 0x15600000", "al_r9_0x15600000"},
655      {{al, r9, 0x2ac00000}, false, al, "al r9 0x2ac00000", "al_r9_0x2ac00000"},
656      {{al, r9, 0x55800000}, false, al, "al r9 0x55800000", "al_r9_0x55800000"},
657      {{al, r9, 0xab000000}, false, al, "al r9 0xab000000", "al_r9_0xab000000"},
658      {{al, r9, 0x000000ab}, false, al, "al r9 0x000000ab", "al_r9_0x000000ab"},
659      {{al, r9, 0x00ab00ab}, false, al, "al r9 0x00ab00ab", "al_r9_0x00ab00ab"},
660      {{al, r9, 0xab00ab00}, false, al, "al r9 0xab00ab00", "al_r9_0xab00ab00"},
661      {{al, r9, 0xabababab}, false, al, "al r9 0xabababab", "al_r9_0xabababab"},
662      {{al, r10, 0x000001fe},
663       false,
664       al,
665       "al r10 0x000001fe",
666       "al_r10_"
667       "0x000001fe"},
668      {{al, r10, 0x000003fc},
669       false,
670       al,
671       "al r10 0x000003fc",
672       "al_r10_"
673       "0x000003fc"},
674      {{al, r10, 0x000007f8},
675       false,
676       al,
677       "al r10 0x000007f8",
678       "al_r10_"
679       "0x000007f8"},
680      {{al, r10, 0x00000ff0},
681       false,
682       al,
683       "al r10 0x00000ff0",
684       "al_r10_"
685       "0x00000ff0"},
686      {{al, r10, 0x00001fe0},
687       false,
688       al,
689       "al r10 0x00001fe0",
690       "al_r10_"
691       "0x00001fe0"},
692      {{al, r10, 0x00003fc0},
693       false,
694       al,
695       "al r10 0x00003fc0",
696       "al_r10_"
697       "0x00003fc0"},
698      {{al, r10, 0x00007f80},
699       false,
700       al,
701       "al r10 0x00007f80",
702       "al_r10_"
703       "0x00007f80"},
704      {{al, r10, 0x0000ff00},
705       false,
706       al,
707       "al r10 0x0000ff00",
708       "al_r10_"
709       "0x0000ff00"},
710      {{al, r10, 0x0001fe00},
711       false,
712       al,
713       "al r10 0x0001fe00",
714       "al_r10_"
715       "0x0001fe00"},
716      {{al, r10, 0x0003fc00},
717       false,
718       al,
719       "al r10 0x0003fc00",
720       "al_r10_"
721       "0x0003fc00"},
722      {{al, r10, 0x0007f800},
723       false,
724       al,
725       "al r10 0x0007f800",
726       "al_r10_"
727       "0x0007f800"},
728      {{al, r10, 0x000ff000},
729       false,
730       al,
731       "al r10 0x000ff000",
732       "al_r10_"
733       "0x000ff000"},
734      {{al, r10, 0x001fe000},
735       false,
736       al,
737       "al r10 0x001fe000",
738       "al_r10_"
739       "0x001fe000"},
740      {{al, r10, 0x003fc000},
741       false,
742       al,
743       "al r10 0x003fc000",
744       "al_r10_"
745       "0x003fc000"},
746      {{al, r10, 0x007f8000},
747       false,
748       al,
749       "al r10 0x007f8000",
750       "al_r10_"
751       "0x007f8000"},
752      {{al, r10, 0x00ff0000},
753       false,
754       al,
755       "al r10 0x00ff0000",
756       "al_r10_"
757       "0x00ff0000"},
758      {{al, r10, 0x01fe0000},
759       false,
760       al,
761       "al r10 0x01fe0000",
762       "al_r10_"
763       "0x01fe0000"},
764      {{al, r10, 0x03fc0000},
765       false,
766       al,
767       "al r10 0x03fc0000",
768       "al_r10_"
769       "0x03fc0000"},
770      {{al, r10, 0x07f80000},
771       false,
772       al,
773       "al r10 0x07f80000",
774       "al_r10_"
775       "0x07f80000"},
776      {{al, r10, 0x0ff00000},
777       false,
778       al,
779       "al r10 0x0ff00000",
780       "al_r10_"
781       "0x0ff00000"},
782      {{al, r10, 0x1fe00000},
783       false,
784       al,
785       "al r10 0x1fe00000",
786       "al_r10_"
787       "0x1fe00000"},
788      {{al, r10, 0x3fc00000},
789       false,
790       al,
791       "al r10 0x3fc00000",
792       "al_r10_"
793       "0x3fc00000"},
794      {{al, r10, 0x7f800000},
795       false,
796       al,
797       "al r10 0x7f800000",
798       "al_r10_"
799       "0x7f800000"},
800      {{al, r10, 0xff000000},
801       false,
802       al,
803       "al r10 0xff000000",
804       "al_r10_"
805       "0xff000000"},
806      {{al, r10, 0x000000ff},
807       false,
808       al,
809       "al r10 0x000000ff",
810       "al_r10_"
811       "0x000000ff"},
812      {{al, r10, 0x00ff00ff},
813       false,
814       al,
815       "al r10 0x00ff00ff",
816       "al_r10_"
817       "0x00ff00ff"},
818      {{al, r10, 0xff00ff00},
819       false,
820       al,
821       "al r10 0xff00ff00",
822       "al_r10_"
823       "0xff00ff00"},
824      {{al, r10, 0xffffffff},
825       false,
826       al,
827       "al r10 0xffffffff",
828       "al_r10_"
829       "0xffffffff"},
830      {{al, r10, 0x00000156},
831       false,
832       al,
833       "al r10 0x00000156",
834       "al_r10_"
835       "0x00000156"},
836      {{al, r10, 0x000002ac},
837       false,
838       al,
839       "al r10 0x000002ac",
840       "al_r10_"
841       "0x000002ac"},
842      {{al, r10, 0x00000558},
843       false,
844       al,
845       "al r10 0x00000558",
846       "al_r10_"
847       "0x00000558"},
848      {{al, r10, 0x00000ab0},
849       false,
850       al,
851       "al r10 0x00000ab0",
852       "al_r10_"
853       "0x00000ab0"},
854      {{al, r10, 0x00001560},
855       false,
856       al,
857       "al r10 0x00001560",
858       "al_r10_"
859       "0x00001560"},
860      {{al, r10, 0x00002ac0},
861       false,
862       al,
863       "al r10 0x00002ac0",
864       "al_r10_"
865       "0x00002ac0"},
866      {{al, r10, 0x00005580},
867       false,
868       al,
869       "al r10 0x00005580",
870       "al_r10_"
871       "0x00005580"},
872      {{al, r10, 0x0000ab00},
873       false,
874       al,
875       "al r10 0x0000ab00",
876       "al_r10_"
877       "0x0000ab00"},
878      {{al, r10, 0x00015600},
879       false,
880       al,
881       "al r10 0x00015600",
882       "al_r10_"
883       "0x00015600"},
884      {{al, r10, 0x0002ac00},
885       false,
886       al,
887       "al r10 0x0002ac00",
888       "al_r10_"
889       "0x0002ac00"},
890      {{al, r10, 0x00055800},
891       false,
892       al,
893       "al r10 0x00055800",
894       "al_r10_"
895       "0x00055800"},
896      {{al, r10, 0x000ab000},
897       false,
898       al,
899       "al r10 0x000ab000",
900       "al_r10_"
901       "0x000ab000"},
902      {{al, r10, 0x00156000},
903       false,
904       al,
905       "al r10 0x00156000",
906       "al_r10_"
907       "0x00156000"},
908      {{al, r10, 0x002ac000},
909       false,
910       al,
911       "al r10 0x002ac000",
912       "al_r10_"
913       "0x002ac000"},
914      {{al, r10, 0x00558000},
915       false,
916       al,
917       "al r10 0x00558000",
918       "al_r10_"
919       "0x00558000"},
920      {{al, r10, 0x00ab0000},
921       false,
922       al,
923       "al r10 0x00ab0000",
924       "al_r10_"
925       "0x00ab0000"},
926      {{al, r10, 0x01560000},
927       false,
928       al,
929       "al r10 0x01560000",
930       "al_r10_"
931       "0x01560000"},
932      {{al, r10, 0x02ac0000},
933       false,
934       al,
935       "al r10 0x02ac0000",
936       "al_r10_"
937       "0x02ac0000"},
938      {{al, r10, 0x05580000},
939       false,
940       al,
941       "al r10 0x05580000",
942       "al_r10_"
943       "0x05580000"},
944      {{al, r10, 0x0ab00000},
945       false,
946       al,
947       "al r10 0x0ab00000",
948       "al_r10_"
949       "0x0ab00000"},
950      {{al, r10, 0x15600000},
951       false,
952       al,
953       "al r10 0x15600000",
954       "al_r10_"
955       "0x15600000"},
956      {{al, r10, 0x2ac00000},
957       false,
958       al,
959       "al r10 0x2ac00000",
960       "al_r10_"
961       "0x2ac00000"},
962      {{al, r10, 0x55800000},
963       false,
964       al,
965       "al r10 0x55800000",
966       "al_r10_"
967       "0x55800000"},
968      {{al, r10, 0xab000000},
969       false,
970       al,
971       "al r10 0xab000000",
972       "al_r10_"
973       "0xab000000"},
974      {{al, r10, 0x000000ab},
975       false,
976       al,
977       "al r10 0x000000ab",
978       "al_r10_"
979       "0x000000ab"},
980      {{al, r10, 0x00ab00ab},
981       false,
982       al,
983       "al r10 0x00ab00ab",
984       "al_r10_"
985       "0x00ab00ab"},
986      {{al, r10, 0xab00ab00},
987       false,
988       al,
989       "al r10 0xab00ab00",
990       "al_r10_"
991       "0xab00ab00"},
992      {{al, r10, 0xabababab},
993       false,
994       al,
995       "al r10 0xabababab",
996       "al_r10_"
997       "0xabababab"},
998      {{al, r11, 0x000001fe},
999       false,
1000       al,
1001       "al r11 0x000001fe",
1002       "al_r11_"
1003       "0x000001fe"},
1004      {{al, r11, 0x000003fc},
1005       false,
1006       al,
1007       "al r11 0x000003fc",
1008       "al_r11_"
1009       "0x000003fc"},
1010      {{al, r11, 0x000007f8},
1011       false,
1012       al,
1013       "al r11 0x000007f8",
1014       "al_r11_"
1015       "0x000007f8"},
1016      {{al, r11, 0x00000ff0},
1017       false,
1018       al,
1019       "al r11 0x00000ff0",
1020       "al_r11_"
1021       "0x00000ff0"},
1022      {{al, r11, 0x00001fe0},
1023       false,
1024       al,
1025       "al r11 0x00001fe0",
1026       "al_r11_"
1027       "0x00001fe0"},
1028      {{al, r11, 0x00003fc0},
1029       false,
1030       al,
1031       "al r11 0x00003fc0",
1032       "al_r11_"
1033       "0x00003fc0"},
1034      {{al, r11, 0x00007f80},
1035       false,
1036       al,
1037       "al r11 0x00007f80",
1038       "al_r11_"
1039       "0x00007f80"},
1040      {{al, r11, 0x0000ff00},
1041       false,
1042       al,
1043       "al r11 0x0000ff00",
1044       "al_r11_"
1045       "0x0000ff00"},
1046      {{al, r11, 0x0001fe00},
1047       false,
1048       al,
1049       "al r11 0x0001fe00",
1050       "al_r11_"
1051       "0x0001fe00"},
1052      {{al, r11, 0x0003fc00},
1053       false,
1054       al,
1055       "al r11 0x0003fc00",
1056       "al_r11_"
1057       "0x0003fc00"},
1058      {{al, r11, 0x0007f800},
1059       false,
1060       al,
1061       "al r11 0x0007f800",
1062       "al_r11_"
1063       "0x0007f800"},
1064      {{al, r11, 0x000ff000},
1065       false,
1066       al,
1067       "al r11 0x000ff000",
1068       "al_r11_"
1069       "0x000ff000"},
1070      {{al, r11, 0x001fe000},
1071       false,
1072       al,
1073       "al r11 0x001fe000",
1074       "al_r11_"
1075       "0x001fe000"},
1076      {{al, r11, 0x003fc000},
1077       false,
1078       al,
1079       "al r11 0x003fc000",
1080       "al_r11_"
1081       "0x003fc000"},
1082      {{al, r11, 0x007f8000},
1083       false,
1084       al,
1085       "al r11 0x007f8000",
1086       "al_r11_"
1087       "0x007f8000"},
1088      {{al, r11, 0x00ff0000},
1089       false,
1090       al,
1091       "al r11 0x00ff0000",
1092       "al_r11_"
1093       "0x00ff0000"},
1094      {{al, r11, 0x01fe0000},
1095       false,
1096       al,
1097       "al r11 0x01fe0000",
1098       "al_r11_"
1099       "0x01fe0000"},
1100      {{al, r11, 0x03fc0000},
1101       false,
1102       al,
1103       "al r11 0x03fc0000",
1104       "al_r11_"
1105       "0x03fc0000"},
1106      {{al, r11, 0x07f80000},
1107       false,
1108       al,
1109       "al r11 0x07f80000",
1110       "al_r11_"
1111       "0x07f80000"},
1112      {{al, r11, 0x0ff00000},
1113       false,
1114       al,
1115       "al r11 0x0ff00000",
1116       "al_r11_"
1117       "0x0ff00000"},
1118      {{al, r11, 0x1fe00000},
1119       false,
1120       al,
1121       "al r11 0x1fe00000",
1122       "al_r11_"
1123       "0x1fe00000"},
1124      {{al, r11, 0x3fc00000},
1125       false,
1126       al,
1127       "al r11 0x3fc00000",
1128       "al_r11_"
1129       "0x3fc00000"},
1130      {{al, r11, 0x7f800000},
1131       false,
1132       al,
1133       "al r11 0x7f800000",
1134       "al_r11_"
1135       "0x7f800000"},
1136      {{al, r11, 0xff000000},
1137       false,
1138       al,
1139       "al r11 0xff000000",
1140       "al_r11_"
1141       "0xff000000"},
1142      {{al, r11, 0x000000ff},
1143       false,
1144       al,
1145       "al r11 0x000000ff",
1146       "al_r11_"
1147       "0x000000ff"},
1148      {{al, r11, 0x00ff00ff},
1149       false,
1150       al,
1151       "al r11 0x00ff00ff",
1152       "al_r11_"
1153       "0x00ff00ff"},
1154      {{al, r11, 0xff00ff00},
1155       false,
1156       al,
1157       "al r11 0xff00ff00",
1158       "al_r11_"
1159       "0xff00ff00"},
1160      {{al, r11, 0xffffffff},
1161       false,
1162       al,
1163       "al r11 0xffffffff",
1164       "al_r11_"
1165       "0xffffffff"},
1166      {{al, r11, 0x00000156},
1167       false,
1168       al,
1169       "al r11 0x00000156",
1170       "al_r11_"
1171       "0x00000156"},
1172      {{al, r11, 0x000002ac},
1173       false,
1174       al,
1175       "al r11 0x000002ac",
1176       "al_r11_"
1177       "0x000002ac"},
1178      {{al, r11, 0x00000558},
1179       false,
1180       al,
1181       "al r11 0x00000558",
1182       "al_r11_"
1183       "0x00000558"},
1184      {{al, r11, 0x00000ab0},
1185       false,
1186       al,
1187       "al r11 0x00000ab0",
1188       "al_r11_"
1189       "0x00000ab0"},
1190      {{al, r11, 0x00001560},
1191       false,
1192       al,
1193       "al r11 0x00001560",
1194       "al_r11_"
1195       "0x00001560"},
1196      {{al, r11, 0x00002ac0},
1197       false,
1198       al,
1199       "al r11 0x00002ac0",
1200       "al_r11_"
1201       "0x00002ac0"},
1202      {{al, r11, 0x00005580},
1203       false,
1204       al,
1205       "al r11 0x00005580",
1206       "al_r11_"
1207       "0x00005580"},
1208      {{al, r11, 0x0000ab00},
1209       false,
1210       al,
1211       "al r11 0x0000ab00",
1212       "al_r11_"
1213       "0x0000ab00"},
1214      {{al, r11, 0x00015600},
1215       false,
1216       al,
1217       "al r11 0x00015600",
1218       "al_r11_"
1219       "0x00015600"},
1220      {{al, r11, 0x0002ac00},
1221       false,
1222       al,
1223       "al r11 0x0002ac00",
1224       "al_r11_"
1225       "0x0002ac00"},
1226      {{al, r11, 0x00055800},
1227       false,
1228       al,
1229       "al r11 0x00055800",
1230       "al_r11_"
1231       "0x00055800"},
1232      {{al, r11, 0x000ab000},
1233       false,
1234       al,
1235       "al r11 0x000ab000",
1236       "al_r11_"
1237       "0x000ab000"},
1238      {{al, r11, 0x00156000},
1239       false,
1240       al,
1241       "al r11 0x00156000",
1242       "al_r11_"
1243       "0x00156000"},
1244      {{al, r11, 0x002ac000},
1245       false,
1246       al,
1247       "al r11 0x002ac000",
1248       "al_r11_"
1249       "0x002ac000"},
1250      {{al, r11, 0x00558000},
1251       false,
1252       al,
1253       "al r11 0x00558000",
1254       "al_r11_"
1255       "0x00558000"},
1256      {{al, r11, 0x00ab0000},
1257       false,
1258       al,
1259       "al r11 0x00ab0000",
1260       "al_r11_"
1261       "0x00ab0000"},
1262      {{al, r11, 0x01560000},
1263       false,
1264       al,
1265       "al r11 0x01560000",
1266       "al_r11_"
1267       "0x01560000"},
1268      {{al, r11, 0x02ac0000},
1269       false,
1270       al,
1271       "al r11 0x02ac0000",
1272       "al_r11_"
1273       "0x02ac0000"},
1274      {{al, r11, 0x05580000},
1275       false,
1276       al,
1277       "al r11 0x05580000",
1278       "al_r11_"
1279       "0x05580000"},
1280      {{al, r11, 0x0ab00000},
1281       false,
1282       al,
1283       "al r11 0x0ab00000",
1284       "al_r11_"
1285       "0x0ab00000"},
1286      {{al, r11, 0x15600000},
1287       false,
1288       al,
1289       "al r11 0x15600000",
1290       "al_r11_"
1291       "0x15600000"},
1292      {{al, r11, 0x2ac00000},
1293       false,
1294       al,
1295       "al r11 0x2ac00000",
1296       "al_r11_"
1297       "0x2ac00000"},
1298      {{al, r11, 0x55800000},
1299       false,
1300       al,
1301       "al r11 0x55800000",
1302       "al_r11_"
1303       "0x55800000"},
1304      {{al, r11, 0xab000000},
1305       false,
1306       al,
1307       "al r11 0xab000000",
1308       "al_r11_"
1309       "0xab000000"},
1310      {{al, r11, 0x000000ab},
1311       false,
1312       al,
1313       "al r11 0x000000ab",
1314       "al_r11_"
1315       "0x000000ab"},
1316      {{al, r11, 0x00ab00ab},
1317       false,
1318       al,
1319       "al r11 0x00ab00ab",
1320       "al_r11_"
1321       "0x00ab00ab"},
1322      {{al, r11, 0xab00ab00},
1323       false,
1324       al,
1325       "al r11 0xab00ab00",
1326       "al_r11_"
1327       "0xab00ab00"},
1328      {{al, r11, 0xabababab},
1329       false,
1330       al,
1331       "al r11 0xabababab",
1332       "al_r11_"
1333       "0xabababab"},
1334      {{al, r12, 0x000001fe},
1335       false,
1336       al,
1337       "al r12 0x000001fe",
1338       "al_r12_"
1339       "0x000001fe"},
1340      {{al, r12, 0x000003fc},
1341       false,
1342       al,
1343       "al r12 0x000003fc",
1344       "al_r12_"
1345       "0x000003fc"},
1346      {{al, r12, 0x000007f8},
1347       false,
1348       al,
1349       "al r12 0x000007f8",
1350       "al_r12_"
1351       "0x000007f8"},
1352      {{al, r12, 0x00000ff0},
1353       false,
1354       al,
1355       "al r12 0x00000ff0",
1356       "al_r12_"
1357       "0x00000ff0"},
1358      {{al, r12, 0x00001fe0},
1359       false,
1360       al,
1361       "al r12 0x00001fe0",
1362       "al_r12_"
1363       "0x00001fe0"},
1364      {{al, r12, 0x00003fc0},
1365       false,
1366       al,
1367       "al r12 0x00003fc0",
1368       "al_r12_"
1369       "0x00003fc0"},
1370      {{al, r12, 0x00007f80},
1371       false,
1372       al,
1373       "al r12 0x00007f80",
1374       "al_r12_"
1375       "0x00007f80"},
1376      {{al, r12, 0x0000ff00},
1377       false,
1378       al,
1379       "al r12 0x0000ff00",
1380       "al_r12_"
1381       "0x0000ff00"},
1382      {{al, r12, 0x0001fe00},
1383       false,
1384       al,
1385       "al r12 0x0001fe00",
1386       "al_r12_"
1387       "0x0001fe00"},
1388      {{al, r12, 0x0003fc00},
1389       false,
1390       al,
1391       "al r12 0x0003fc00",
1392       "al_r12_"
1393       "0x0003fc00"},
1394      {{al, r12, 0x0007f800},
1395       false,
1396       al,
1397       "al r12 0x0007f800",
1398       "al_r12_"
1399       "0x0007f800"},
1400      {{al, r12, 0x000ff000},
1401       false,
1402       al,
1403       "al r12 0x000ff000",
1404       "al_r12_"
1405       "0x000ff000"},
1406      {{al, r12, 0x001fe000},
1407       false,
1408       al,
1409       "al r12 0x001fe000",
1410       "al_r12_"
1411       "0x001fe000"},
1412      {{al, r12, 0x003fc000},
1413       false,
1414       al,
1415       "al r12 0x003fc000",
1416       "al_r12_"
1417       "0x003fc000"},
1418      {{al, r12, 0x007f8000},
1419       false,
1420       al,
1421       "al r12 0x007f8000",
1422       "al_r12_"
1423       "0x007f8000"},
1424      {{al, r12, 0x00ff0000},
1425       false,
1426       al,
1427       "al r12 0x00ff0000",
1428       "al_r12_"
1429       "0x00ff0000"},
1430      {{al, r12, 0x01fe0000},
1431       false,
1432       al,
1433       "al r12 0x01fe0000",
1434       "al_r12_"
1435       "0x01fe0000"},
1436      {{al, r12, 0x03fc0000},
1437       false,
1438       al,
1439       "al r12 0x03fc0000",
1440       "al_r12_"
1441       "0x03fc0000"},
1442      {{al, r12, 0x07f80000},
1443       false,
1444       al,
1445       "al r12 0x07f80000",
1446       "al_r12_"
1447       "0x07f80000"},
1448      {{al, r12, 0x0ff00000},
1449       false,
1450       al,
1451       "al r12 0x0ff00000",
1452       "al_r12_"
1453       "0x0ff00000"},
1454      {{al, r12, 0x1fe00000},
1455       false,
1456       al,
1457       "al r12 0x1fe00000",
1458       "al_r12_"
1459       "0x1fe00000"},
1460      {{al, r12, 0x3fc00000},
1461       false,
1462       al,
1463       "al r12 0x3fc00000",
1464       "al_r12_"
1465       "0x3fc00000"},
1466      {{al, r12, 0x7f800000},
1467       false,
1468       al,
1469       "al r12 0x7f800000",
1470       "al_r12_"
1471       "0x7f800000"},
1472      {{al, r12, 0xff000000},
1473       false,
1474       al,
1475       "al r12 0xff000000",
1476       "al_r12_"
1477       "0xff000000"},
1478      {{al, r12, 0x000000ff},
1479       false,
1480       al,
1481       "al r12 0x000000ff",
1482       "al_r12_"
1483       "0x000000ff"},
1484      {{al, r12, 0x00ff00ff},
1485       false,
1486       al,
1487       "al r12 0x00ff00ff",
1488       "al_r12_"
1489       "0x00ff00ff"},
1490      {{al, r12, 0xff00ff00},
1491       false,
1492       al,
1493       "al r12 0xff00ff00",
1494       "al_r12_"
1495       "0xff00ff00"},
1496      {{al, r12, 0xffffffff},
1497       false,
1498       al,
1499       "al r12 0xffffffff",
1500       "al_r12_"
1501       "0xffffffff"},
1502      {{al, r12, 0x00000156},
1503       false,
1504       al,
1505       "al r12 0x00000156",
1506       "al_r12_"
1507       "0x00000156"},
1508      {{al, r12, 0x000002ac},
1509       false,
1510       al,
1511       "al r12 0x000002ac",
1512       "al_r12_"
1513       "0x000002ac"},
1514      {{al, r12, 0x00000558},
1515       false,
1516       al,
1517       "al r12 0x00000558",
1518       "al_r12_"
1519       "0x00000558"},
1520      {{al, r12, 0x00000ab0},
1521       false,
1522       al,
1523       "al r12 0x00000ab0",
1524       "al_r12_"
1525       "0x00000ab0"},
1526      {{al, r12, 0x00001560},
1527       false,
1528       al,
1529       "al r12 0x00001560",
1530       "al_r12_"
1531       "0x00001560"},
1532      {{al, r12, 0x00002ac0},
1533       false,
1534       al,
1535       "al r12 0x00002ac0",
1536       "al_r12_"
1537       "0x00002ac0"},
1538      {{al, r12, 0x00005580},
1539       false,
1540       al,
1541       "al r12 0x00005580",
1542       "al_r12_"
1543       "0x00005580"},
1544      {{al, r12, 0x0000ab00},
1545       false,
1546       al,
1547       "al r12 0x0000ab00",
1548       "al_r12_"
1549       "0x0000ab00"},
1550      {{al, r12, 0x00015600},
1551       false,
1552       al,
1553       "al r12 0x00015600",
1554       "al_r12_"
1555       "0x00015600"},
1556      {{al, r12, 0x0002ac00},
1557       false,
1558       al,
1559       "al r12 0x0002ac00",
1560       "al_r12_"
1561       "0x0002ac00"},
1562      {{al, r12, 0x00055800},
1563       false,
1564       al,
1565       "al r12 0x00055800",
1566       "al_r12_"
1567       "0x00055800"},
1568      {{al, r12, 0x000ab000},
1569       false,
1570       al,
1571       "al r12 0x000ab000",
1572       "al_r12_"
1573       "0x000ab000"},
1574      {{al, r12, 0x00156000},
1575       false,
1576       al,
1577       "al r12 0x00156000",
1578       "al_r12_"
1579       "0x00156000"},
1580      {{al, r12, 0x002ac000},
1581       false,
1582       al,
1583       "al r12 0x002ac000",
1584       "al_r12_"
1585       "0x002ac000"},
1586      {{al, r12, 0x00558000},
1587       false,
1588       al,
1589       "al r12 0x00558000",
1590       "al_r12_"
1591       "0x00558000"},
1592      {{al, r12, 0x00ab0000},
1593       false,
1594       al,
1595       "al r12 0x00ab0000",
1596       "al_r12_"
1597       "0x00ab0000"},
1598      {{al, r12, 0x01560000},
1599       false,
1600       al,
1601       "al r12 0x01560000",
1602       "al_r12_"
1603       "0x01560000"},
1604      {{al, r12, 0x02ac0000},
1605       false,
1606       al,
1607       "al r12 0x02ac0000",
1608       "al_r12_"
1609       "0x02ac0000"},
1610      {{al, r12, 0x05580000},
1611       false,
1612       al,
1613       "al r12 0x05580000",
1614       "al_r12_"
1615       "0x05580000"},
1616      {{al, r12, 0x0ab00000},
1617       false,
1618       al,
1619       "al r12 0x0ab00000",
1620       "al_r12_"
1621       "0x0ab00000"},
1622      {{al, r12, 0x15600000},
1623       false,
1624       al,
1625       "al r12 0x15600000",
1626       "al_r12_"
1627       "0x15600000"},
1628      {{al, r12, 0x2ac00000},
1629       false,
1630       al,
1631       "al r12 0x2ac00000",
1632       "al_r12_"
1633       "0x2ac00000"},
1634      {{al, r12, 0x55800000},
1635       false,
1636       al,
1637       "al r12 0x55800000",
1638       "al_r12_"
1639       "0x55800000"},
1640      {{al, r12, 0xab000000},
1641       false,
1642       al,
1643       "al r12 0xab000000",
1644       "al_r12_"
1645       "0xab000000"},
1646      {{al, r12, 0x000000ab},
1647       false,
1648       al,
1649       "al r12 0x000000ab",
1650       "al_r12_"
1651       "0x000000ab"},
1652      {{al, r12, 0x00ab00ab},
1653       false,
1654       al,
1655       "al r12 0x00ab00ab",
1656       "al_r12_"
1657       "0x00ab00ab"},
1658      {{al, r12, 0xab00ab00},
1659       false,
1660       al,
1661       "al r12 0xab00ab00",
1662       "al_r12_"
1663       "0xab00ab00"},
1664      {{al, r12, 0xabababab},
1665       false,
1666       al,
1667       "al r12 0xabababab",
1668       "al_r12_"
1669       "0xabababab"},
1670      {{al, r13, 0x000001fe},
1671       false,
1672       al,
1673       "al r13 0x000001fe",
1674       "al_r13_"
1675       "0x000001fe"},
1676      {{al, r13, 0x000003fc},
1677       false,
1678       al,
1679       "al r13 0x000003fc",
1680       "al_r13_"
1681       "0x000003fc"},
1682      {{al, r13, 0x000007f8},
1683       false,
1684       al,
1685       "al r13 0x000007f8",
1686       "al_r13_"
1687       "0x000007f8"},
1688      {{al, r13, 0x00000ff0},
1689       false,
1690       al,
1691       "al r13 0x00000ff0",
1692       "al_r13_"
1693       "0x00000ff0"},
1694      {{al, r13, 0x00001fe0},
1695       false,
1696       al,
1697       "al r13 0x00001fe0",
1698       "al_r13_"
1699       "0x00001fe0"},
1700      {{al, r13, 0x00003fc0},
1701       false,
1702       al,
1703       "al r13 0x00003fc0",
1704       "al_r13_"
1705       "0x00003fc0"},
1706      {{al, r13, 0x00007f80},
1707       false,
1708       al,
1709       "al r13 0x00007f80",
1710       "al_r13_"
1711       "0x00007f80"},
1712      {{al, r13, 0x0000ff00},
1713       false,
1714       al,
1715       "al r13 0x0000ff00",
1716       "al_r13_"
1717       "0x0000ff00"},
1718      {{al, r13, 0x0001fe00},
1719       false,
1720       al,
1721       "al r13 0x0001fe00",
1722       "al_r13_"
1723       "0x0001fe00"},
1724      {{al, r13, 0x0003fc00},
1725       false,
1726       al,
1727       "al r13 0x0003fc00",
1728       "al_r13_"
1729       "0x0003fc00"},
1730      {{al, r13, 0x0007f800},
1731       false,
1732       al,
1733       "al r13 0x0007f800",
1734       "al_r13_"
1735       "0x0007f800"},
1736      {{al, r13, 0x000ff000},
1737       false,
1738       al,
1739       "al r13 0x000ff000",
1740       "al_r13_"
1741       "0x000ff000"},
1742      {{al, r13, 0x001fe000},
1743       false,
1744       al,
1745       "al r13 0x001fe000",
1746       "al_r13_"
1747       "0x001fe000"},
1748      {{al, r13, 0x003fc000},
1749       false,
1750       al,
1751       "al r13 0x003fc000",
1752       "al_r13_"
1753       "0x003fc000"},
1754      {{al, r13, 0x007f8000},
1755       false,
1756       al,
1757       "al r13 0x007f8000",
1758       "al_r13_"
1759       "0x007f8000"},
1760      {{al, r13, 0x00ff0000},
1761       false,
1762       al,
1763       "al r13 0x00ff0000",
1764       "al_r13_"
1765       "0x00ff0000"},
1766      {{al, r13, 0x01fe0000},
1767       false,
1768       al,
1769       "al r13 0x01fe0000",
1770       "al_r13_"
1771       "0x01fe0000"},
1772      {{al, r13, 0x03fc0000},
1773       false,
1774       al,
1775       "al r13 0x03fc0000",
1776       "al_r13_"
1777       "0x03fc0000"},
1778      {{al, r13, 0x07f80000},
1779       false,
1780       al,
1781       "al r13 0x07f80000",
1782       "al_r13_"
1783       "0x07f80000"},
1784      {{al, r13, 0x0ff00000},
1785       false,
1786       al,
1787       "al r13 0x0ff00000",
1788       "al_r13_"
1789       "0x0ff00000"},
1790      {{al, r13, 0x1fe00000},
1791       false,
1792       al,
1793       "al r13 0x1fe00000",
1794       "al_r13_"
1795       "0x1fe00000"},
1796      {{al, r13, 0x3fc00000},
1797       false,
1798       al,
1799       "al r13 0x3fc00000",
1800       "al_r13_"
1801       "0x3fc00000"},
1802      {{al, r13, 0x7f800000},
1803       false,
1804       al,
1805       "al r13 0x7f800000",
1806       "al_r13_"
1807       "0x7f800000"},
1808      {{al, r13, 0xff000000},
1809       false,
1810       al,
1811       "al r13 0xff000000",
1812       "al_r13_"
1813       "0xff000000"},
1814      {{al, r13, 0x000000ff},
1815       false,
1816       al,
1817       "al r13 0x000000ff",
1818       "al_r13_"
1819       "0x000000ff"},
1820      {{al, r13, 0x00ff00ff},
1821       false,
1822       al,
1823       "al r13 0x00ff00ff",
1824       "al_r13_"
1825       "0x00ff00ff"},
1826      {{al, r13, 0xff00ff00},
1827       false,
1828       al,
1829       "al r13 0xff00ff00",
1830       "al_r13_"
1831       "0xff00ff00"},
1832      {{al, r13, 0xffffffff},
1833       false,
1834       al,
1835       "al r13 0xffffffff",
1836       "al_r13_"
1837       "0xffffffff"},
1838      {{al, r13, 0x00000156},
1839       false,
1840       al,
1841       "al r13 0x00000156",
1842       "al_r13_"
1843       "0x00000156"},
1844      {{al, r13, 0x000002ac},
1845       false,
1846       al,
1847       "al r13 0x000002ac",
1848       "al_r13_"
1849       "0x000002ac"},
1850      {{al, r13, 0x00000558},
1851       false,
1852       al,
1853       "al r13 0x00000558",
1854       "al_r13_"
1855       "0x00000558"},
1856      {{al, r13, 0x00000ab0},
1857       false,
1858       al,
1859       "al r13 0x00000ab0",
1860       "al_r13_"
1861       "0x00000ab0"},
1862      {{al, r13, 0x00001560},
1863       false,
1864       al,
1865       "al r13 0x00001560",
1866       "al_r13_"
1867       "0x00001560"},
1868      {{al, r13, 0x00002ac0},
1869       false,
1870       al,
1871       "al r13 0x00002ac0",
1872       "al_r13_"
1873       "0x00002ac0"},
1874      {{al, r13, 0x00005580},
1875       false,
1876       al,
1877       "al r13 0x00005580",
1878       "al_r13_"
1879       "0x00005580"},
1880      {{al, r13, 0x0000ab00},
1881       false,
1882       al,
1883       "al r13 0x0000ab00",
1884       "al_r13_"
1885       "0x0000ab00"},
1886      {{al, r13, 0x00015600},
1887       false,
1888       al,
1889       "al r13 0x00015600",
1890       "al_r13_"
1891       "0x00015600"},
1892      {{al, r13, 0x0002ac00},
1893       false,
1894       al,
1895       "al r13 0x0002ac00",
1896       "al_r13_"
1897       "0x0002ac00"},
1898      {{al, r13, 0x00055800},
1899       false,
1900       al,
1901       "al r13 0x00055800",
1902       "al_r13_"
1903       "0x00055800"},
1904      {{al, r13, 0x000ab000},
1905       false,
1906       al,
1907       "al r13 0x000ab000",
1908       "al_r13_"
1909       "0x000ab000"},
1910      {{al, r13, 0x00156000},
1911       false,
1912       al,
1913       "al r13 0x00156000",
1914       "al_r13_"
1915       "0x00156000"},
1916      {{al, r13, 0x002ac000},
1917       false,
1918       al,
1919       "al r13 0x002ac000",
1920       "al_r13_"
1921       "0x002ac000"},
1922      {{al, r13, 0x00558000},
1923       false,
1924       al,
1925       "al r13 0x00558000",
1926       "al_r13_"
1927       "0x00558000"},
1928      {{al, r13, 0x00ab0000},
1929       false,
1930       al,
1931       "al r13 0x00ab0000",
1932       "al_r13_"
1933       "0x00ab0000"},
1934      {{al, r13, 0x01560000},
1935       false,
1936       al,
1937       "al r13 0x01560000",
1938       "al_r13_"
1939       "0x01560000"},
1940      {{al, r13, 0x02ac0000},
1941       false,
1942       al,
1943       "al r13 0x02ac0000",
1944       "al_r13_"
1945       "0x02ac0000"},
1946      {{al, r13, 0x05580000},
1947       false,
1948       al,
1949       "al r13 0x05580000",
1950       "al_r13_"
1951       "0x05580000"},
1952      {{al, r13, 0x0ab00000},
1953       false,
1954       al,
1955       "al r13 0x0ab00000",
1956       "al_r13_"
1957       "0x0ab00000"},
1958      {{al, r13, 0x15600000},
1959       false,
1960       al,
1961       "al r13 0x15600000",
1962       "al_r13_"
1963       "0x15600000"},
1964      {{al, r13, 0x2ac00000},
1965       false,
1966       al,
1967       "al r13 0x2ac00000",
1968       "al_r13_"
1969       "0x2ac00000"},
1970      {{al, r13, 0x55800000},
1971       false,
1972       al,
1973       "al r13 0x55800000",
1974       "al_r13_"
1975       "0x55800000"},
1976      {{al, r13, 0xab000000},
1977       false,
1978       al,
1979       "al r13 0xab000000",
1980       "al_r13_"
1981       "0xab000000"},
1982      {{al, r13, 0x000000ab},
1983       false,
1984       al,
1985       "al r13 0x000000ab",
1986       "al_r13_"
1987       "0x000000ab"},
1988      {{al, r13, 0x00ab00ab},
1989       false,
1990       al,
1991       "al r13 0x00ab00ab",
1992       "al_r13_"
1993       "0x00ab00ab"},
1994      {{al, r13, 0xab00ab00},
1995       false,
1996       al,
1997       "al r13 0xab00ab00",
1998       "al_r13_"
1999       "0xab00ab00"},
2000      {{al, r13, 0xabababab},
2001       false,
2002       al,
2003       "al r13 0xabababab",
2004       "al_r13_"
2005       "0xabababab"},
2006      {{al, r14, 0x000001fe},
2007       false,
2008       al,
2009       "al r14 0x000001fe",
2010       "al_r14_"
2011       "0x000001fe"},
2012      {{al, r14, 0x000003fc},
2013       false,
2014       al,
2015       "al r14 0x000003fc",
2016       "al_r14_"
2017       "0x000003fc"},
2018      {{al, r14, 0x000007f8},
2019       false,
2020       al,
2021       "al r14 0x000007f8",
2022       "al_r14_"
2023       "0x000007f8"},
2024      {{al, r14, 0x00000ff0},
2025       false,
2026       al,
2027       "al r14 0x00000ff0",
2028       "al_r14_"
2029       "0x00000ff0"},
2030      {{al, r14, 0x00001fe0},
2031       false,
2032       al,
2033       "al r14 0x00001fe0",
2034       "al_r14_"
2035       "0x00001fe0"},
2036      {{al, r14, 0x00003fc0},
2037       false,
2038       al,
2039       "al r14 0x00003fc0",
2040       "al_r14_"
2041       "0x00003fc0"},
2042      {{al, r14, 0x00007f80},
2043       false,
2044       al,
2045       "al r14 0x00007f80",
2046       "al_r14_"
2047       "0x00007f80"},
2048      {{al, r14, 0x0000ff00},
2049       false,
2050       al,
2051       "al r14 0x0000ff00",
2052       "al_r14_"
2053       "0x0000ff00"},
2054      {{al, r14, 0x0001fe00},
2055       false,
2056       al,
2057       "al r14 0x0001fe00",
2058       "al_r14_"
2059       "0x0001fe00"},
2060      {{al, r14, 0x0003fc00},
2061       false,
2062       al,
2063       "al r14 0x0003fc00",
2064       "al_r14_"
2065       "0x0003fc00"},
2066      {{al, r14, 0x0007f800},
2067       false,
2068       al,
2069       "al r14 0x0007f800",
2070       "al_r14_"
2071       "0x0007f800"},
2072      {{al, r14, 0x000ff000},
2073       false,
2074       al,
2075       "al r14 0x000ff000",
2076       "al_r14_"
2077       "0x000ff000"},
2078      {{al, r14, 0x001fe000},
2079       false,
2080       al,
2081       "al r14 0x001fe000",
2082       "al_r14_"
2083       "0x001fe000"},
2084      {{al, r14, 0x003fc000},
2085       false,
2086       al,
2087       "al r14 0x003fc000",
2088       "al_r14_"
2089       "0x003fc000"},
2090      {{al, r14, 0x007f8000},
2091       false,
2092       al,
2093       "al r14 0x007f8000",
2094       "al_r14_"
2095       "0x007f8000"},
2096      {{al, r14, 0x00ff0000},
2097       false,
2098       al,
2099       "al r14 0x00ff0000",
2100       "al_r14_"
2101       "0x00ff0000"},
2102      {{al, r14, 0x01fe0000},
2103       false,
2104       al,
2105       "al r14 0x01fe0000",
2106       "al_r14_"
2107       "0x01fe0000"},
2108      {{al, r14, 0x03fc0000},
2109       false,
2110       al,
2111       "al r14 0x03fc0000",
2112       "al_r14_"
2113       "0x03fc0000"},
2114      {{al, r14, 0x07f80000},
2115       false,
2116       al,
2117       "al r14 0x07f80000",
2118       "al_r14_"
2119       "0x07f80000"},
2120      {{al, r14, 0x0ff00000},
2121       false,
2122       al,
2123       "al r14 0x0ff00000",
2124       "al_r14_"
2125       "0x0ff00000"},
2126      {{al, r14, 0x1fe00000},
2127       false,
2128       al,
2129       "al r14 0x1fe00000",
2130       "al_r14_"
2131       "0x1fe00000"},
2132      {{al, r14, 0x3fc00000},
2133       false,
2134       al,
2135       "al r14 0x3fc00000",
2136       "al_r14_"
2137       "0x3fc00000"},
2138      {{al, r14, 0x7f800000},
2139       false,
2140       al,
2141       "al r14 0x7f800000",
2142       "al_r14_"
2143       "0x7f800000"},
2144      {{al, r14, 0xff000000},
2145       false,
2146       al,
2147       "al r14 0xff000000",
2148       "al_r14_"
2149       "0xff000000"},
2150      {{al, r14, 0x000000ff},
2151       false,
2152       al,
2153       "al r14 0x000000ff",
2154       "al_r14_"
2155       "0x000000ff"},
2156      {{al, r14, 0x00ff00ff},
2157       false,
2158       al,
2159       "al r14 0x00ff00ff",
2160       "al_r14_"
2161       "0x00ff00ff"},
2162      {{al, r14, 0xff00ff00},
2163       false,
2164       al,
2165       "al r14 0xff00ff00",
2166       "al_r14_"
2167       "0xff00ff00"},
2168      {{al, r14, 0xffffffff},
2169       false,
2170       al,
2171       "al r14 0xffffffff",
2172       "al_r14_"
2173       "0xffffffff"},
2174      {{al, r14, 0x00000156},
2175       false,
2176       al,
2177       "al r14 0x00000156",
2178       "al_r14_"
2179       "0x00000156"},
2180      {{al, r14, 0x000002ac},
2181       false,
2182       al,
2183       "al r14 0x000002ac",
2184       "al_r14_"
2185       "0x000002ac"},
2186      {{al, r14, 0x00000558},
2187       false,
2188       al,
2189       "al r14 0x00000558",
2190       "al_r14_"
2191       "0x00000558"},
2192      {{al, r14, 0x00000ab0},
2193       false,
2194       al,
2195       "al r14 0x00000ab0",
2196       "al_r14_"
2197       "0x00000ab0"},
2198      {{al, r14, 0x00001560},
2199       false,
2200       al,
2201       "al r14 0x00001560",
2202       "al_r14_"
2203       "0x00001560"},
2204      {{al, r14, 0x00002ac0},
2205       false,
2206       al,
2207       "al r14 0x00002ac0",
2208       "al_r14_"
2209       "0x00002ac0"},
2210      {{al, r14, 0x00005580},
2211       false,
2212       al,
2213       "al r14 0x00005580",
2214       "al_r14_"
2215       "0x00005580"},
2216      {{al, r14, 0x0000ab00},
2217       false,
2218       al,
2219       "al r14 0x0000ab00",
2220       "al_r14_"
2221       "0x0000ab00"},
2222      {{al, r14, 0x00015600},
2223       false,
2224       al,
2225       "al r14 0x00015600",
2226       "al_r14_"
2227       "0x00015600"},
2228      {{al, r14, 0x0002ac00},
2229       false,
2230       al,
2231       "al r14 0x0002ac00",
2232       "al_r14_"
2233       "0x0002ac00"},
2234      {{al, r14, 0x00055800},
2235       false,
2236       al,
2237       "al r14 0x00055800",
2238       "al_r14_"
2239       "0x00055800"},
2240      {{al, r14, 0x000ab000},
2241       false,
2242       al,
2243       "al r14 0x000ab000",
2244       "al_r14_"
2245       "0x000ab000"},
2246      {{al, r14, 0x00156000},
2247       false,
2248       al,
2249       "al r14 0x00156000",
2250       "al_r14_"
2251       "0x00156000"},
2252      {{al, r14, 0x002ac000},
2253       false,
2254       al,
2255       "al r14 0x002ac000",
2256       "al_r14_"
2257       "0x002ac000"},
2258      {{al, r14, 0x00558000},
2259       false,
2260       al,
2261       "al r14 0x00558000",
2262       "al_r14_"
2263       "0x00558000"},
2264      {{al, r14, 0x00ab0000},
2265       false,
2266       al,
2267       "al r14 0x00ab0000",
2268       "al_r14_"
2269       "0x00ab0000"},
2270      {{al, r14, 0x01560000},
2271       false,
2272       al,
2273       "al r14 0x01560000",
2274       "al_r14_"
2275       "0x01560000"},
2276      {{al, r14, 0x02ac0000},
2277       false,
2278       al,
2279       "al r14 0x02ac0000",
2280       "al_r14_"
2281       "0x02ac0000"},
2282      {{al, r14, 0x05580000},
2283       false,
2284       al,
2285       "al r14 0x05580000",
2286       "al_r14_"
2287       "0x05580000"},
2288      {{al, r14, 0x0ab00000},
2289       false,
2290       al,
2291       "al r14 0x0ab00000",
2292       "al_r14_"
2293       "0x0ab00000"},
2294      {{al, r14, 0x15600000},
2295       false,
2296       al,
2297       "al r14 0x15600000",
2298       "al_r14_"
2299       "0x15600000"},
2300      {{al, r14, 0x2ac00000},
2301       false,
2302       al,
2303       "al r14 0x2ac00000",
2304       "al_r14_"
2305       "0x2ac00000"},
2306      {{al, r14, 0x55800000},
2307       false,
2308       al,
2309       "al r14 0x55800000",
2310       "al_r14_"
2311       "0x55800000"},
2312      {{al, r14, 0xab000000},
2313       false,
2314       al,
2315       "al r14 0xab000000",
2316       "al_r14_"
2317       "0xab000000"},
2318      {{al, r14, 0x000000ab},
2319       false,
2320       al,
2321       "al r14 0x000000ab",
2322       "al_r14_"
2323       "0x000000ab"},
2324      {{al, r14, 0x00ab00ab},
2325       false,
2326       al,
2327       "al r14 0x00ab00ab",
2328       "al_r14_"
2329       "0x00ab00ab"},
2330      {{al, r14, 0xab00ab00},
2331       false,
2332       al,
2333       "al r14 0xab00ab00",
2334       "al_r14_"
2335       "0xab00ab00"},
2336      {{al, r14, 0xabababab},
2337       false,
2338       al,
2339       "al r14 0xabababab",
2340       "al_r14_0xabababab"}};
2341 
2342 // These headers each contain an array of `TestResult` with the reference output
2343 // values. The reference arrays are names `kReference{mnemonic}`.
2344 #include "aarch32/traces/assembler-cond-rd-operand-const-t32-cmn.h"
2345 #include "aarch32/traces/assembler-cond-rd-operand-const-t32-cmp.h"
2346 #include "aarch32/traces/assembler-cond-rd-operand-const-t32-mov.h"
2347 #include "aarch32/traces/assembler-cond-rd-operand-const-t32-movs.h"
2348 #include "aarch32/traces/assembler-cond-rd-operand-const-t32-mvn.h"
2349 #include "aarch32/traces/assembler-cond-rd-operand-const-t32-mvns.h"
2350 #include "aarch32/traces/assembler-cond-rd-operand-const-t32-teq.h"
2351 #include "aarch32/traces/assembler-cond-rd-operand-const-t32-tst.h"
2352 
2353 
2354 // The maximum number of errors to report in detail for each test.
2355 const unsigned kErrorReportLimit = 8;
2356 
2357 typedef void (MacroAssembler::*Fn)(Condition cond,
2358                                    Register rd,
2359                                    const Operand& op);
2360 
TestHelper(Fn instruction,const char * mnemonic,const TestResult reference[])2361 void TestHelper(Fn instruction,
2362                 const char* mnemonic,
2363                 const TestResult reference[]) {
2364   unsigned total_error_count = 0;
2365   MacroAssembler masm(BUF_SIZE);
2366 
2367   masm.UseT32();
2368 
2369   for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
2370     // Values to pass to the macro-assembler.
2371     Condition cond = kTests[i].operands.cond;
2372     Register rd = kTests[i].operands.rd;
2373     uint32_t immediate = kTests[i].operands.immediate;
2374     Operand op(immediate);
2375 
2376     int32_t start = masm.GetCursorOffset();
2377     {
2378       // We never generate more that 4 bytes, as IT instructions are only
2379       // allowed for narrow encodings.
2380       ExactAssemblyScope scope(&masm, 4, ExactAssemblyScope::kMaximumSize);
2381       if (kTests[i].in_it_block) {
2382         masm.it(kTests[i].it_condition);
2383       }
2384       (masm.*instruction)(cond, rd, op);
2385     }
2386     int32_t end = masm.GetCursorOffset();
2387 
2388     const byte* result_ptr =
2389         masm.GetBuffer()->GetOffsetAddress<const byte*>(start);
2390     VIXL_ASSERT(start < end);
2391     uint32_t result_size = end - start;
2392 
2393     if (Test::generate_test_trace()) {
2394       // Print the result bytes.
2395       printf("const byte kInstruction_%s_%s[] = {\n",
2396              mnemonic,
2397              kTests[i].identifier);
2398       for (uint32_t j = 0; j < result_size; j++) {
2399         if (j == 0) {
2400           printf("  0x%02" PRIx8, result_ptr[j]);
2401         } else {
2402           printf(", 0x%02" PRIx8, result_ptr[j]);
2403         }
2404       }
2405       // This comment is meant to be used by external tools to validate
2406       // the encoding. We can parse the comment to figure out what
2407       // instruction this corresponds to.
2408       if (kTests[i].in_it_block) {
2409         printf(" // It %s; %s %s\n};\n",
2410                kTests[i].it_condition.GetName(),
2411                mnemonic,
2412                kTests[i].operands_description);
2413       } else {
2414         printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description);
2415       }
2416     } else {
2417       // Check we've emitted the exact same encoding as present in the
2418       // trace file. Only print up to `kErrorReportLimit` errors.
2419       if (((result_size != reference[i].size) ||
2420            (memcmp(result_ptr, reference[i].encoding, reference[i].size) !=
2421             0)) &&
2422           (++total_error_count <= kErrorReportLimit)) {
2423         printf("Error when testing \"%s\" with operands \"%s\":\n",
2424                mnemonic,
2425                kTests[i].operands_description);
2426         printf("  Expected: ");
2427         for (uint32_t j = 0; j < reference[i].size; j++) {
2428           if (j == 0) {
2429             printf("0x%02" PRIx8, reference[i].encoding[j]);
2430           } else {
2431             printf(", 0x%02" PRIx8, reference[i].encoding[j]);
2432           }
2433         }
2434         printf("\n");
2435         printf("  Found:    ");
2436         for (uint32_t j = 0; j < result_size; j++) {
2437           if (j == 0) {
2438             printf("0x%02" PRIx8, result_ptr[j]);
2439           } else {
2440             printf(", 0x%02" PRIx8, result_ptr[j]);
2441           }
2442         }
2443         printf("\n");
2444       }
2445     }
2446   }
2447 
2448   masm.FinalizeCode();
2449 
2450   if (Test::generate_test_trace()) {
2451     // Finalize the trace file by writing the final `TestResult` array
2452     // which links all generated instruction encodings.
2453     printf("const TestResult kReference%s[] = {\n", mnemonic);
2454     for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
2455       printf("  {\n");
2456       printf("    ARRAY_SIZE(kInstruction_%s_%s),\n",
2457              mnemonic,
2458              kTests[i].identifier);
2459       printf("    kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier);
2460       printf("  },\n");
2461     }
2462     printf("};\n");
2463   } else {
2464     if (total_error_count > kErrorReportLimit) {
2465       printf("%u other errors follow.\n",
2466              total_error_count - kErrorReportLimit);
2467     }
2468     // Crash if the test failed.
2469     VIXL_CHECK(total_error_count == 0);
2470   }
2471 }
2472 
2473 // Instantiate tests for each instruction in the list.
2474 #define TEST(mnemonic)                                                      \
2475   void Test_##mnemonic() {                                                  \
2476     TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic); \
2477   }                                                                         \
2478   Test test_##mnemonic(                                                     \
2479       "AARCH32_ASSEMBLER_COND_RD_OPERAND_CONST_T32_" #mnemonic,             \
2480       &Test_##mnemonic);
2481 FOREACH_INSTRUCTION(TEST)
2482 #undef TEST
2483 
2484 }  // namespace
2485 #endif
2486 
2487 }  // namespace aarch32
2488 }  // namespace vixl
2489