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
47namespace vixl {
48namespace 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
69namespace {
70
71// Values to be passed to the assembler to produce the instruction under test.
72struct 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.
80struct 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
95struct TestResult {
96  size_t size;
97  const byte* encoding;
98};
99
100// Each element of this array produce one instruction encoding.
101const 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-cmn-t32.h"
2345#include "aarch32/traces/assembler-cond-rd-operand-const-cmp-t32.h"
2346#include "aarch32/traces/assembler-cond-rd-operand-const-mov-t32.h"
2347#include "aarch32/traces/assembler-cond-rd-operand-const-movs-t32.h"
2348#include "aarch32/traces/assembler-cond-rd-operand-const-mvn-t32.h"
2349#include "aarch32/traces/assembler-cond-rd-operand-const-mvns-t32.h"
2350#include "aarch32/traces/assembler-cond-rd-operand-const-teq-t32.h"
2351#include "aarch32/traces/assembler-cond-rd-operand-const-tst-t32.h"
2352
2353
2354// The maximum number of errors to report in detail for each test.
2355const unsigned kErrorReportLimit = 8;
2356
2357typedef void (MacroAssembler::*Fn)(Condition cond,
2358                                   Register rd,
2359                                   const Operand& op);
2360
2361void 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("AARCH32_ASSEMBLER_COND_RD_OPERAND_CONST_" #mnemonic \
2479                       "_T32",                                              \
2480                       &Test_##mnemonic);
2481FOREACH_INSTRUCTION(TEST)
2482#undef TEST
2483
2484}  // namespace
2485#endif
2486
2487}  // namespace aarch32
2488}  // namespace vixl
2489