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) M(add)
52
53
54// The following definitions are defined again in each generated test, therefore
55// we need to place them in an anomymous namespace. It expresses that they are
56// local to this file only, and the compiler is not allowed to share these types
57// across test files during template instantiation. Specifically, `Operands` has
58// various layouts across generated tests so it absolutely cannot be shared.
59
60#ifdef VIXL_INCLUDE_TARGET_T32
61namespace {
62
63// Values to be passed to the assembler to produce the instruction under test.
64struct Operands {
65  Condition cond;
66  Register rd;
67  Register rn;
68  int32_t immediate;
69};
70
71// This structure contains all data needed to test one specific
72// instruction.
73struct TestData {
74  // The `operands` field represents what to pass to the assembler to
75  // produce the instruction.
76  Operands operands;
77  // True if we need to generate an IT instruction for this test to be valid.
78  bool in_it_block;
79  // The condition to give the IT instruction, this will be set to "al" by
80  // default.
81  Condition it_condition;
82  // Description of the operands, used for error reporting.
83  const char* operands_description;
84  // Unique identifier, used for generating traces.
85  const char* identifier;
86};
87
88struct TestResult {
89  size_t size;
90  const byte* encoding;
91};
92
93// Each element of this array produce one instruction encoding.
94const TestData kTests[] =
95    {{{al, r7, pc, 19}, false, al, "al r7 pc 19", "al_r7_pc_19"},
96     {{al, r6, pc, 78}, false, al, "al r6 pc 78", "al_r6_pc_78"},
97     {{al, r7, pc, 92}, false, al, "al r7 pc 92", "al_r7_pc_92"},
98     {{al, r7, pc, 195}, false, al, "al r7 pc 195", "al_r7_pc_195"},
99     {{al, r4, pc, 17}, false, al, "al r4 pc 17", "al_r4_pc_17"},
100     {{al, r6, pc, 150}, false, al, "al r6 pc 150", "al_r6_pc_150"},
101     {{al, r4, pc, 166}, false, al, "al r4 pc 166", "al_r4_pc_166"},
102     {{al, r1, pc, 63}, false, al, "al r1 pc 63", "al_r1_pc_63"},
103     {{al, r3, pc, 15}, false, al, "al r3 pc 15", "al_r3_pc_15"},
104     {{al, r6, pc, 49}, false, al, "al r6 pc 49", "al_r6_pc_49"},
105     {{al, r2, pc, 205}, false, al, "al r2 pc 205", "al_r2_pc_205"},
106     {{al, r6, pc, 107}, false, al, "al r6 pc 107", "al_r6_pc_107"},
107     {{al, r4, pc, 226}, false, al, "al r4 pc 226", "al_r4_pc_226"},
108     {{al, r5, pc, 128}, false, al, "al r5 pc 128", "al_r5_pc_128"},
109     {{al, r6, pc, 54}, false, al, "al r6 pc 54", "al_r6_pc_54"},
110     {{al, r3, pc, 63}, false, al, "al r3 pc 63", "al_r3_pc_63"},
111     {{al, r1, pc, 9}, false, al, "al r1 pc 9", "al_r1_pc_9"},
112     {{al, r1, pc, 214}, false, al, "al r1 pc 214", "al_r1_pc_214"},
113     {{al, r0, pc, 148}, false, al, "al r0 pc 148", "al_r0_pc_148"},
114     {{al, r1, pc, 70}, false, al, "al r1 pc 70", "al_r1_pc_70"},
115     {{al, r2, pc, 167}, false, al, "al r2 pc 167", "al_r2_pc_167"},
116     {{al, r0, pc, 1}, false, al, "al r0 pc 1", "al_r0_pc_1"},
117     {{al, r0, pc, 97}, false, al, "al r0 pc 97", "al_r0_pc_97"},
118     {{al, r7, pc, 66}, false, al, "al r7 pc 66", "al_r7_pc_66"},
119     {{al, r7, pc, 179}, false, al, "al r7 pc 179", "al_r7_pc_179"},
120     {{al, r4, pc, 183}, false, al, "al r4 pc 183", "al_r4_pc_183"},
121     {{al, r7, pc, 150}, false, al, "al r7 pc 150", "al_r7_pc_150"},
122     {{al, r5, pc, 241}, false, al, "al r5 pc 241", "al_r5_pc_241"},
123     {{al, r6, pc, 31}, false, al, "al r6 pc 31", "al_r6_pc_31"},
124     {{al, r7, pc, 224}, false, al, "al r7 pc 224", "al_r7_pc_224"},
125     {{al, r6, pc, 235}, false, al, "al r6 pc 235", "al_r6_pc_235"},
126     {{al, r3, pc, 220}, false, al, "al r3 pc 220", "al_r3_pc_220"},
127     {{al, r7, pc, 201}, false, al, "al r7 pc 201", "al_r7_pc_201"},
128     {{al, r2, pc, 70}, false, al, "al r2 pc 70", "al_r2_pc_70"},
129     {{al, r4, pc, 174}, false, al, "al r4 pc 174", "al_r4_pc_174"},
130     {{al, r4, pc, 142}, false, al, "al r4 pc 142", "al_r4_pc_142"},
131     {{al, r1, pc, 249}, false, al, "al r1 pc 249", "al_r1_pc_249"},
132     {{al, r5, pc, 244}, false, al, "al r5 pc 244", "al_r5_pc_244"},
133     {{al, r2, pc, 26}, false, al, "al r2 pc 26", "al_r2_pc_26"},
134     {{al, r4, pc, 177}, false, al, "al r4 pc 177", "al_r4_pc_177"},
135     {{al, r3, pc, 150}, false, al, "al r3 pc 150", "al_r3_pc_150"},
136     {{al, r2, pc, 85}, false, al, "al r2 pc 85", "al_r2_pc_85"},
137     {{al, r6, pc, 48}, false, al, "al r6 pc 48", "al_r6_pc_48"},
138     {{al, r5, pc, 25}, false, al, "al r5 pc 25", "al_r5_pc_25"},
139     {{al, r6, pc, 95}, false, al, "al r6 pc 95", "al_r6_pc_95"},
140     {{al, r7, pc, 228}, false, al, "al r7 pc 228", "al_r7_pc_228"},
141     {{al, r5, pc, 20}, false, al, "al r5 pc 20", "al_r5_pc_20"},
142     {{al, r1, pc, 8}, false, al, "al r1 pc 8", "al_r1_pc_8"},
143     {{al, r6, pc, 222}, false, al, "al r6 pc 222", "al_r6_pc_222"},
144     {{al, r5, pc, 221}, false, al, "al r5 pc 221", "al_r5_pc_221"},
145     {{al, r3, pc, 109}, false, al, "al r3 pc 109", "al_r3_pc_109"},
146     {{al, r6, pc, 165}, false, al, "al r6 pc 165", "al_r6_pc_165"},
147     {{al, r5, pc, 114}, false, al, "al r5 pc 114", "al_r5_pc_114"},
148     {{al, r6, pc, 207}, false, al, "al r6 pc 207", "al_r6_pc_207"},
149     {{al, r7, pc, 197}, false, al, "al r7 pc 197", "al_r7_pc_197"},
150     {{al, r4, pc, 121}, false, al, "al r4 pc 121", "al_r4_pc_121"},
151     {{al, r4, pc, 233}, false, al, "al r4 pc 233", "al_r4_pc_233"},
152     {{al, r6, pc, 141}, false, al, "al r6 pc 141", "al_r6_pc_141"},
153     {{al, r3, pc, 175}, false, al, "al r3 pc 175", "al_r3_pc_175"},
154     {{al, r3, pc, 182}, false, al, "al r3 pc 182", "al_r3_pc_182"},
155     {{al, r0, pc, 206}, false, al, "al r0 pc 206", "al_r0_pc_206"},
156     {{al, r2, pc, 123}, false, al, "al r2 pc 123", "al_r2_pc_123"},
157     {{al, r5, pc, 118}, false, al, "al r5 pc 118", "al_r5_pc_118"},
158     {{al, r1, pc, 127}, false, al, "al r1 pc 127", "al_r1_pc_127"},
159     {{al, r0, pc, 234}, false, al, "al r0 pc 234", "al_r0_pc_234"},
160     {{al, r0, pc, 132}, false, al, "al r0 pc 132", "al_r0_pc_132"},
161     {{al, r7, pc, 13}, false, al, "al r7 pc 13", "al_r7_pc_13"},
162     {{al, r0, pc, 157}, false, al, "al r0 pc 157", "al_r0_pc_157"},
163     {{al, r5, pc, 37}, false, al, "al r5 pc 37", "al_r5_pc_37"},
164     {{al, r7, pc, 227}, false, al, "al r7 pc 227", "al_r7_pc_227"},
165     {{al, r0, pc, 127}, false, al, "al r0 pc 127", "al_r0_pc_127"},
166     {{al, r4, pc, 154}, false, al, "al r4 pc 154", "al_r4_pc_154"},
167     {{al, r6, pc, 237}, false, al, "al r6 pc 237", "al_r6_pc_237"},
168     {{al, r1, pc, 104}, false, al, "al r1 pc 104", "al_r1_pc_104"},
169     {{al, r6, pc, 79}, false, al, "al r6 pc 79", "al_r6_pc_79"},
170     {{al, r6, pc, 174}, false, al, "al r6 pc 174", "al_r6_pc_174"},
171     {{al, r1, pc, 206}, false, al, "al r1 pc 206", "al_r1_pc_206"},
172     {{al, r1, pc, 244}, false, al, "al r1 pc 244", "al_r1_pc_244"},
173     {{al, r7, pc, 138}, false, al, "al r7 pc 138", "al_r7_pc_138"},
174     {{al, r6, pc, 17}, false, al, "al r6 pc 17", "al_r6_pc_17"},
175     {{al, r1, pc, 135}, false, al, "al r1 pc 135", "al_r1_pc_135"},
176     {{al, r0, pc, 147}, false, al, "al r0 pc 147", "al_r0_pc_147"},
177     {{al, r5, pc, 200}, false, al, "al r5 pc 200", "al_r5_pc_200"},
178     {{al, r2, pc, 62}, false, al, "al r2 pc 62", "al_r2_pc_62"},
179     {{al, r5, pc, 188}, false, al, "al r5 pc 188", "al_r5_pc_188"},
180     {{al, r6, pc, 180}, false, al, "al r6 pc 180", "al_r6_pc_180"},
181     {{al, r3, pc, 155}, false, al, "al r3 pc 155", "al_r3_pc_155"},
182     {{al, r3, pc, 185}, false, al, "al r3 pc 185", "al_r3_pc_185"},
183     {{al, r6, pc, 87}, false, al, "al r6 pc 87", "al_r6_pc_87"},
184     {{al, r0, pc, 243}, false, al, "al r0 pc 243", "al_r0_pc_243"},
185     {{al, r2, pc, 68}, false, al, "al r2 pc 68", "al_r2_pc_68"},
186     {{al, r3, pc, 99}, false, al, "al r3 pc 99", "al_r3_pc_99"},
187     {{al, r0, pc, 15}, false, al, "al r0 pc 15", "al_r0_pc_15"},
188     {{al, r7, pc, 91}, false, al, "al r7 pc 91", "al_r7_pc_91"},
189     {{al, r7, pc, 75}, false, al, "al r7 pc 75", "al_r7_pc_75"},
190     {{al, r0, pc, 14}, false, al, "al r0 pc 14", "al_r0_pc_14"},
191     {{al, r4, pc, 246}, false, al, "al r4 pc 246", "al_r4_pc_246"},
192     {{al, r5, pc, 92}, false, al, "al r5 pc 92", "al_r5_pc_92"},
193     {{al, r2, pc, 23}, false, al, "al r2 pc 23", "al_r2_pc_23"},
194     {{al, r0, pc, 150}, false, al, "al r0 pc 150", "al_r0_pc_150"},
195     {{al, r0, pc, 196}, false, al, "al r0 pc 196", "al_r0_pc_196"},
196     {{al, r1, pc, 126}, false, al, "al r1 pc 126", "al_r1_pc_126"},
197     {{al, r1, pc, 141}, false, al, "al r1 pc 141", "al_r1_pc_141"},
198     {{al, r3, pc, 191}, false, al, "al r3 pc 191", "al_r3_pc_191"},
199     {{al, r7, pc, 187}, false, al, "al r7 pc 187", "al_r7_pc_187"},
200     {{al, r4, pc, 238}, false, al, "al r4 pc 238", "al_r4_pc_238"},
201     {{al, r0, pc, 114}, false, al, "al r0 pc 114", "al_r0_pc_114"},
202     {{al, r3, pc, 34}, false, al, "al r3 pc 34", "al_r3_pc_34"},
203     {{al, r5, pc, 189}, false, al, "al r5 pc 189", "al_r5_pc_189"},
204     {{al, r7, pc, 252}, false, al, "al r7 pc 252", "al_r7_pc_252"},
205     {{al, r3, pc, 116}, false, al, "al r3 pc 116", "al_r3_pc_116"},
206     {{al, r0, pc, 154}, false, al, "al r0 pc 154", "al_r0_pc_154"},
207     {{al, r1, pc, 84}, false, al, "al r1 pc 84", "al_r1_pc_84"},
208     {{al, r0, pc, 214}, false, al, "al r0 pc 214", "al_r0_pc_214"},
209     {{al, r5, pc, 139}, false, al, "al r5 pc 139", "al_r5_pc_139"},
210     {{al, r6, pc, 138}, false, al, "al r6 pc 138", "al_r6_pc_138"},
211     {{al, r6, pc, 212}, false, al, "al r6 pc 212", "al_r6_pc_212"},
212     {{al, r3, pc, 112}, false, al, "al r3 pc 112", "al_r3_pc_112"},
213     {{al, r7, pc, 140}, false, al, "al r7 pc 140", "al_r7_pc_140"},
214     {{al, r6, pc, 33}, false, al, "al r6 pc 33", "al_r6_pc_33"},
215     {{al, r2, pc, 207}, false, al, "al r2 pc 207", "al_r2_pc_207"},
216     {{al, r4, pc, 208}, false, al, "al r4 pc 208", "al_r4_pc_208"},
217     {{al, r2, pc, 61}, false, al, "al r2 pc 61", "al_r2_pc_61"},
218     {{al, r3, pc, 43}, false, al, "al r3 pc 43", "al_r3_pc_43"},
219     {{al, r5, pc, 192}, false, al, "al r5 pc 192", "al_r5_pc_192"},
220     {{al, r5, pc, 67}, false, al, "al r5 pc 67", "al_r5_pc_67"},
221     {{al, r3, pc, 193}, false, al, "al r3 pc 193", "al_r3_pc_193"},
222     {{al, r2, pc, 255}, false, al, "al r2 pc 255", "al_r2_pc_255"},
223     {{al, r7, pc, 58}, false, al, "al r7 pc 58", "al_r7_pc_58"},
224     {{al, r0, pc, 198}, false, al, "al r0 pc 198", "al_r0_pc_198"},
225     {{al, r4, pc, 34}, false, al, "al r4 pc 34", "al_r4_pc_34"},
226     {{al, r7, pc, 73}, false, al, "al r7 pc 73", "al_r7_pc_73"},
227     {{al, r2, pc, 118}, false, al, "al r2 pc 118", "al_r2_pc_118"},
228     {{al, r0, pc, 123}, false, al, "al r0 pc 123", "al_r0_pc_123"},
229     {{al, r6, pc, 226}, false, al, "al r6 pc 226", "al_r6_pc_226"},
230     {{al, r7, pc, 109}, false, al, "al r7 pc 109", "al_r7_pc_109"},
231     {{al, r1, pc, 29}, false, al, "al r1 pc 29", "al_r1_pc_29"},
232     {{al, r0, pc, 140}, false, al, "al r0 pc 140", "al_r0_pc_140"},
233     {{al, r0, pc, 121}, false, al, "al r0 pc 121", "al_r0_pc_121"},
234     {{al, r6, pc, 178}, false, al, "al r6 pc 178", "al_r6_pc_178"},
235     {{al, r3, pc, 236}, false, al, "al r3 pc 236", "al_r3_pc_236"},
236     {{al, r6, pc, 195}, false, al, "al r6 pc 195", "al_r6_pc_195"},
237     {{al, r2, pc, 138}, false, al, "al r2 pc 138", "al_r2_pc_138"},
238     {{al, r5, pc, 199}, false, al, "al r5 pc 199", "al_r5_pc_199"},
239     {{al, r7, pc, 134}, false, al, "al r7 pc 134", "al_r7_pc_134"},
240     {{al, r5, pc, 206}, false, al, "al r5 pc 206", "al_r5_pc_206"},
241     {{al, r6, pc, 43}, false, al, "al r6 pc 43", "al_r6_pc_43"},
242     {{al, r2, pc, 120}, false, al, "al r2 pc 120", "al_r2_pc_120"},
243     {{al, r7, pc, 27}, false, al, "al r7 pc 27", "al_r7_pc_27"},
244     {{al, r5, pc, 108}, false, al, "al r5 pc 108", "al_r5_pc_108"},
245     {{al, r0, pc, 142}, false, al, "al r0 pc 142", "al_r0_pc_142"},
246     {{al, r0, pc, 95}, false, al, "al r0 pc 95", "al_r0_pc_95"},
247     {{al, r4, pc, 115}, false, al, "al r4 pc 115", "al_r4_pc_115"},
248     {{al, r2, pc, 212}, false, al, "al r2 pc 212", "al_r2_pc_212"},
249     {{al, r4, pc, 253}, false, al, "al r4 pc 253", "al_r4_pc_253"},
250     {{al, r2, pc, 77}, false, al, "al r2 pc 77", "al_r2_pc_77"},
251     {{al, r4, pc, 218}, false, al, "al r4 pc 218", "al_r4_pc_218"},
252     {{al, r4, pc, 72}, false, al, "al r4 pc 72", "al_r4_pc_72"},
253     {{al, r4, pc, 85}, false, al, "al r4 pc 85", "al_r4_pc_85"},
254     {{al, r7, pc, 137}, false, al, "al r7 pc 137", "al_r7_pc_137"},
255     {{al, r3, pc, 91}, false, al, "al r3 pc 91", "al_r3_pc_91"},
256     {{al, r3, pc, 90}, false, al, "al r3 pc 90", "al_r3_pc_90"},
257     {{al, r0, pc, 125}, false, al, "al r0 pc 125", "al_r0_pc_125"},
258     {{al, r1, pc, 0}, false, al, "al r1 pc 0", "al_r1_pc_0"},
259     {{al, r1, pc, 90}, false, al, "al r1 pc 90", "al_r1_pc_90"},
260     {{al, r1, pc, 245}, false, al, "al r1 pc 245", "al_r1_pc_245"},
261     {{al, r6, pc, 152}, false, al, "al r6 pc 152", "al_r6_pc_152"},
262     {{al, r4, pc, 130}, false, al, "al r4 pc 130", "al_r4_pc_130"},
263     {{al, r2, pc, 218}, false, al, "al r2 pc 218", "al_r2_pc_218"},
264     {{al, r4, pc, 156}, false, al, "al r4 pc 156", "al_r4_pc_156"},
265     {{al, r5, pc, 239}, false, al, "al r5 pc 239", "al_r5_pc_239"},
266     {{al, r2, pc, 140}, false, al, "al r2 pc 140", "al_r2_pc_140"},
267     {{al, r5, pc, 147}, false, al, "al r5 pc 147", "al_r5_pc_147"},
268     {{al, r5, pc, 226}, false, al, "al r5 pc 226", "al_r5_pc_226"},
269     {{al, r1, pc, 95}, false, al, "al r1 pc 95", "al_r1_pc_95"},
270     {{al, r2, pc, 58}, false, al, "al r2 pc 58", "al_r2_pc_58"},
271     {{al, r4, pc, 41}, false, al, "al r4 pc 41", "al_r4_pc_41"},
272     {{al, r3, pc, 76}, false, al, "al r3 pc 76", "al_r3_pc_76"},
273     {{al, r4, pc, 38}, false, al, "al r4 pc 38", "al_r4_pc_38"},
274     {{al, r5, pc, 155}, false, al, "al r5 pc 155", "al_r5_pc_155"},
275     {{al, r6, pc, 255}, false, al, "al r6 pc 255", "al_r6_pc_255"},
276     {{al, r4, pc, 144}, false, al, "al r4 pc 144", "al_r4_pc_144"},
277     {{al, r2, pc, 86}, false, al, "al r2 pc 86", "al_r2_pc_86"},
278     {{al, r1, pc, 60}, false, al, "al r1 pc 60", "al_r1_pc_60"},
279     {{al, r4, pc, 33}, false, al, "al r4 pc 33", "al_r4_pc_33"},
280     {{al, r4, pc, 170}, false, al, "al r4 pc 170", "al_r4_pc_170"},
281     {{al, r5, pc, 121}, false, al, "al r5 pc 121", "al_r5_pc_121"},
282     {{al, r7, pc, 170}, false, al, "al r7 pc 170", "al_r7_pc_170"},
283     {{al, r2, pc, 133}, false, al, "al r2 pc 133", "al_r2_pc_133"},
284     {{al, r7, pc, 14}, false, al, "al r7 pc 14", "al_r7_pc_14"},
285     {{al, r5, pc, 180}, false, al, "al r5 pc 180", "al_r5_pc_180"},
286     {{al, r2, pc, 116}, false, al, "al r2 pc 116", "al_r2_pc_116"},
287     {{al, r3, pc, 173}, false, al, "al r3 pc 173", "al_r3_pc_173"},
288     {{al, r2, pc, 48}, false, al, "al r2 pc 48", "al_r2_pc_48"},
289     {{al, r0, pc, 63}, false, al, "al r0 pc 63", "al_r0_pc_63"},
290     {{al, r1, pc, 43}, false, al, "al r1 pc 43", "al_r1_pc_43"},
291     {{al, r6, pc, 253}, false, al, "al r6 pc 253", "al_r6_pc_253"},
292     {{al, r7, pc, 247}, false, al, "al r7 pc 247", "al_r7_pc_247"},
293     {{al, r5, pc, 186}, false, al, "al r5 pc 186", "al_r5_pc_186"},
294     {{al, r0, pc, 90}, false, al, "al r0 pc 90", "al_r0_pc_90"},
295     {{al, r0, pc, 111}, false, al, "al r0 pc 111", "al_r0_pc_111"},
296     {{al, r5, pc, 124}, false, al, "al r5 pc 124", "al_r5_pc_124"},
297     {{al, r2, pc, 254}, false, al, "al r2 pc 254", "al_r2_pc_254"},
298     {{al, r2, pc, 150}, false, al, "al r2 pc 150", "al_r2_pc_150"},
299     {{al, r1, pc, 198}, false, al, "al r1 pc 198", "al_r1_pc_198"},
300     {{al, r5, pc, 156}, false, al, "al r5 pc 156", "al_r5_pc_156"},
301     {{al, r5, pc, 80}, false, al, "al r5 pc 80", "al_r5_pc_80"},
302     {{al, r2, pc, 73}, false, al, "al r2 pc 73", "al_r2_pc_73"},
303     {{al, r5, pc, 17}, false, al, "al r5 pc 17", "al_r5_pc_17"},
304     {{al, r3, pc, 136}, false, al, "al r3 pc 136", "al_r3_pc_136"},
305     {{al, r1, pc, 105}, false, al, "al r1 pc 105", "al_r1_pc_105"},
306     {{al, r0, pc, 122}, false, al, "al r0 pc 122", "al_r0_pc_122"},
307     {{al, r2, pc, 240}, false, al, "al r2 pc 240", "al_r2_pc_240"},
308     {{al, r6, pc, 242}, false, al, "al r6 pc 242", "al_r6_pc_242"},
309     {{al, r0, pc, 251}, false, al, "al r0 pc 251", "al_r0_pc_251"},
310     {{al, r7, pc, 98}, false, al, "al r7 pc 98", "al_r7_pc_98"},
311     {{al, r4, pc, 254}, false, al, "al r4 pc 254", "al_r4_pc_254"},
312     {{al, r1, pc, 251}, false, al, "al r1 pc 251", "al_r1_pc_251"},
313     {{al, r4, pc, 212}, false, al, "al r4 pc 212", "al_r4_pc_212"},
314     {{al, r6, pc, 173}, false, al, "al r6 pc 173", "al_r6_pc_173"},
315     {{al, r6, pc, 69}, false, al, "al r6 pc 69", "al_r6_pc_69"},
316     {{al, r3, pc, 145}, false, al, "al r3 pc 145", "al_r3_pc_145"},
317     {{al, r4, pc, 152}, false, al, "al r4 pc 152", "al_r4_pc_152"},
318     {{al, r7, pc, 164}, false, al, "al r7 pc 164", "al_r7_pc_164"},
319     {{al, r4, pc, 96}, false, al, "al r4 pc 96", "al_r4_pc_96"},
320     {{al, r7, pc, 37}, false, al, "al r7 pc 37", "al_r7_pc_37"},
321     {{al, r4, pc, 69}, false, al, "al r4 pc 69", "al_r4_pc_69"},
322     {{al, r2, pc, 7}, false, al, "al r2 pc 7", "al_r2_pc_7"},
323     {{al, r2, pc, 59}, false, al, "al r2 pc 59", "al_r2_pc_59"},
324     {{al, r7, pc, 44}, false, al, "al r7 pc 44", "al_r7_pc_44"},
325     {{al, r5, pc, 23}, false, al, "al r5 pc 23", "al_r5_pc_23"},
326     {{al, r3, pc, 231}, false, al, "al r3 pc 231", "al_r3_pc_231"},
327     {{al, r7, pc, 169}, false, al, "al r7 pc 169", "al_r7_pc_169"},
328     {{al, r5, pc, 127}, false, al, "al r5 pc 127", "al_r5_pc_127"},
329     {{al, r2, pc, 229}, false, al, "al r2 pc 229", "al_r2_pc_229"},
330     {{al, r7, pc, 163}, false, al, "al r7 pc 163", "al_r7_pc_163"},
331     {{al, r0, pc, 104}, false, al, "al r0 pc 104", "al_r0_pc_104"},
332     {{al, r1, pc, 227}, false, al, "al r1 pc 227", "al_r1_pc_227"},
333     {{al, r2, pc, 235}, false, al, "al r2 pc 235", "al_r2_pc_235"},
334     {{al, r7, pc, 182}, false, al, "al r7 pc 182", "al_r7_pc_182"},
335     {{al, r1, pc, 149}, false, al, "al r1 pc 149", "al_r1_pc_149"},
336     {{al, r4, pc, 35}, false, al, "al r4 pc 35", "al_r4_pc_35"},
337     {{al, r2, pc, 250}, false, al, "al r2 pc 250", "al_r2_pc_250"},
338     {{al, r2, pc, 109}, false, al, "al r2 pc 109", "al_r2_pc_109"},
339     {{al, r5, pc, 178}, false, al, "al r5 pc 178", "al_r5_pc_178"},
340     {{al, r1, pc, 78}, false, al, "al r1 pc 78", "al_r1_pc_78"},
341     {{al, r4, pc, 78}, false, al, "al r4 pc 78", "al_r4_pc_78"},
342     {{al, r6, pc, 121}, false, al, "al r6 pc 121", "al_r6_pc_121"},
343     {{al, r2, pc, 202}, false, al, "al r2 pc 202", "al_r2_pc_202"},
344     {{al, r0, pc, 228}, false, al, "al r0 pc 228", "al_r0_pc_228"},
345     {{al, r6, pc, 56}, false, al, "al r6 pc 56", "al_r6_pc_56"},
346     {{al, r7, pc, 191}, false, al, "al r7 pc 191", "al_r7_pc_191"},
347     {{al, r7, pc, 213}, false, al, "al r7 pc 213", "al_r7_pc_213"},
348     {{al, r4, pc, 20}, false, al, "al r4 pc 20", "al_r4_pc_20"},
349     {{al, r7, pc, 111}, false, al, "al r7 pc 111", "al_r7_pc_111"},
350     {{al, r6, pc, 130}, false, al, "al r6 pc 130", "al_r6_pc_130"},
351     {{al, r5, pc, 28}, false, al, "al r5 pc 28", "al_r5_pc_28"},
352     {{al, r7, pc, 96}, false, al, "al r7 pc 96", "al_r7_pc_96"},
353     {{al, r5, pc, 10}, false, al, "al r5 pc 10", "al_r5_pc_10"},
354     {{al, r7, pc, 88}, false, al, "al r7 pc 88", "al_r7_pc_88"},
355     {{al, r2, pc, 142}, false, al, "al r2 pc 142", "al_r2_pc_142"},
356     {{al, r2, pc, 49}, false, al, "al r2 pc 49", "al_r2_pc_49"},
357     {{al, r4, pc, 214}, false, al, "al r4 pc 214", "al_r4_pc_214"},
358     {{al, r7, pc, 1}, false, al, "al r7 pc 1", "al_r7_pc_1"},
359     {{al, r1, pc, 88}, false, al, "al r1 pc 88", "al_r1_pc_88"},
360     {{al, r5, pc, 160}, false, al, "al r5 pc 160", "al_r5_pc_160"},
361     {{al, r7, pc, 82}, false, al, "al r7 pc 82", "al_r7_pc_82"},
362     {{al, r1, pc, 220}, false, al, "al r1 pc 220", "al_r1_pc_220"},
363     {{al, r0, pc, 254}, false, al, "al r0 pc 254", "al_r0_pc_254"},
364     {{al, r6, pc, 119}, false, al, "al r6 pc 119", "al_r6_pc_119"},
365     {{al, r2, pc, 55}, false, al, "al r2 pc 55", "al_r2_pc_55"},
366     {{al, r7, pc, 71}, false, al, "al r7 pc 71", "al_r7_pc_71"},
367     {{al, r1, pc, 142}, false, al, "al r1 pc 142", "al_r1_pc_142"},
368     {{al, r1, pc, 109}, false, al, "al r1 pc 109", "al_r1_pc_109"},
369     {{al, r7, pc, 35}, false, al, "al r7 pc 35", "al_r7_pc_35"},
370     {{al, r4, pc, 249}, false, al, "al r4 pc 249", "al_r4_pc_249"},
371     {{al, r3, pc, 134}, false, al, "al r3 pc 134", "al_r3_pc_134"},
372     {{al, r6, pc, 81}, false, al, "al r6 pc 81", "al_r6_pc_81"},
373     {{al, r7, pc, 249}, false, al, "al r7 pc 249", "al_r7_pc_249"},
374     {{al, r0, pc, 81}, false, al, "al r0 pc 81", "al_r0_pc_81"},
375     {{al, r7, pc, 233}, false, al, "al r7 pc 233", "al_r7_pc_233"},
376     {{al, r6, pc, 162}, false, al, "al r6 pc 162", "al_r6_pc_162"},
377     {{al, r4, pc, 123}, false, al, "al r4 pc 123", "al_r4_pc_123"},
378     {{al, r1, pc, 229}, false, al, "al r1 pc 229", "al_r1_pc_229"},
379     {{al, r0, pc, 51}, false, al, "al r0 pc 51", "al_r0_pc_51"},
380     {{al, r6, pc, 44}, false, al, "al r6 pc 44", "al_r6_pc_44"},
381     {{al, r3, pc, 132}, false, al, "al r3 pc 132", "al_r3_pc_132"},
382     {{al, r5, pc, 246}, false, al, "al r5 pc 246", "al_r5_pc_246"},
383     {{al, r2, pc, 156}, false, al, "al r2 pc 156", "al_r2_pc_156"},
384     {{al, r3, pc, 74}, false, al, "al r3 pc 74", "al_r3_pc_74"},
385     {{al, r4, pc, 199}, false, al, "al r4 pc 199", "al_r4_pc_199"},
386     {{al, r5, pc, 181}, false, al, "al r5 pc 181", "al_r5_pc_181"},
387     {{al, r4, pc, 180}, false, al, "al r4 pc 180", "al_r4_pc_180"},
388     {{al, r4, pc, 93}, false, al, "al r4 pc 93", "al_r4_pc_93"},
389     {{al, r3, pc, 23}, false, al, "al r3 pc 23", "al_r3_pc_23"},
390     {{al, r2, pc, 204}, false, al, "al r2 pc 204", "al_r2_pc_204"},
391     {{al, r0, pc, 83}, false, al, "al r0 pc 83", "al_r0_pc_83"},
392     {{al, r0, pc, 39}, false, al, "al r0 pc 39", "al_r0_pc_39"},
393     {{al, r3, pc, 158}, false, al, "al r3 pc 158", "al_r3_pc_158"},
394     {{al, r5, pc, 137}, false, al, "al r5 pc 137", "al_r5_pc_137"},
395     {{al, r4, pc, 209}, false, al, "al r4 pc 209", "al_r4_pc_209"},
396     {{al, r0, pc, 43}, false, al, "al r0 pc 43", "al_r0_pc_43"},
397     {{al, r6, pc, 65}, false, al, "al r6 pc 65", "al_r6_pc_65"},
398     {{al, r7, pc, 128}, false, al, "al r7 pc 128", "al_r7_pc_128"},
399     {{al, r5, pc, 176}, false, al, "al r5 pc 176", "al_r5_pc_176"},
400     {{al, r5, pc, 143}, false, al, "al r5 pc 143", "al_r5_pc_143"},
401     {{al, r1, pc, 123}, false, al, "al r1 pc 123", "al_r1_pc_123"},
402     {{al, r2, pc, 181}, false, al, "al r2 pc 181", "al_r2_pc_181"},
403     {{al, r3, pc, 10}, false, al, "al r3 pc 10", "al_r3_pc_10"},
404     {{al, r7, pc, 40}, false, al, "al r7 pc 40", "al_r7_pc_40"},
405     {{al, r5, pc, 94}, false, al, "al r5 pc 94", "al_r5_pc_94"},
406     {{al, r3, pc, 117}, false, al, "al r3 pc 117", "al_r3_pc_117"},
407     {{al, r3, pc, 65}, false, al, "al r3 pc 65", "al_r3_pc_65"},
408     {{al, r7, pc, 209}, false, al, "al r7 pc 209", "al_r7_pc_209"},
409     {{al, r0, pc, 181}, false, al, "al r0 pc 181", "al_r0_pc_181"},
410     {{al, r7, pc, 151}, false, al, "al r7 pc 151", "al_r7_pc_151"},
411     {{al, r1, pc, 207}, false, al, "al r1 pc 207", "al_r1_pc_207"},
412     {{al, r3, pc, 58}, false, al, "al r3 pc 58", "al_r3_pc_58"},
413     {{al, r6, pc, 118}, false, al, "al r6 pc 118", "al_r6_pc_118"},
414     {{al, r5, pc, 58}, false, al, "al r5 pc 58", "al_r5_pc_58"},
415     {{al, r5, pc, 138}, false, al, "al r5 pc 138", "al_r5_pc_138"},
416     {{al, r0, pc, 204}, false, al, "al r0 pc 204", "al_r0_pc_204"},
417     {{al, r1, pc, 138}, false, al, "al r1 pc 138", "al_r1_pc_138"},
418     {{al, r6, pc, 221}, false, al, "al r6 pc 221", "al_r6_pc_221"},
419     {{al, r3, pc, 125}, false, al, "al r3 pc 125", "al_r3_pc_125"},
420     {{al, r4, pc, 2}, false, al, "al r4 pc 2", "al_r4_pc_2"},
421     {{al, r3, pc, 8}, false, al, "al r3 pc 8", "al_r3_pc_8"},
422     {{al, r7, pc, 188}, false, al, "al r7 pc 188", "al_r7_pc_188"},
423     {{al, r2, pc, 237}, false, al, "al r2 pc 237", "al_r2_pc_237"},
424     {{al, r2, pc, 22}, false, al, "al r2 pc 22", "al_r2_pc_22"},
425     {{al, r4, pc, 179}, false, al, "al r4 pc 179", "al_r4_pc_179"},
426     {{al, r2, pc, 65}, false, al, "al r2 pc 65", "al_r2_pc_65"},
427     {{al, r4, pc, 30}, false, al, "al r4 pc 30", "al_r4_pc_30"},
428     {{al, r1, pc, 239}, false, al, "al r1 pc 239", "al_r1_pc_239"},
429     {{al, r6, pc, 169}, false, al, "al r6 pc 169", "al_r6_pc_169"},
430     {{al, r7, pc, 30}, false, al, "al r7 pc 30", "al_r7_pc_30"},
431     {{al, r3, pc, 184}, false, al, "al r3 pc 184", "al_r3_pc_184"},
432     {{al, r0, pc, 112}, false, al, "al r0 pc 112", "al_r0_pc_112"},
433     {{al, r0, pc, 25}, false, al, "al r0 pc 25", "al_r0_pc_25"},
434     {{al, r4, pc, 77}, false, al, "al r4 pc 77", "al_r4_pc_77"},
435     {{al, r7, pc, 142}, false, al, "al r7 pc 142", "al_r7_pc_142"},
436     {{al, r1, pc, 33}, false, al, "al r1 pc 33", "al_r1_pc_33"},
437     {{al, r2, pc, 64}, false, al, "al r2 pc 64", "al_r2_pc_64"},
438     {{al, r4, pc, 230}, false, al, "al r4 pc 230", "al_r4_pc_230"},
439     {{al, r5, pc, 40}, false, al, "al r5 pc 40", "al_r5_pc_40"},
440     {{al, r3, pc, 209}, false, al, "al r3 pc 209", "al_r3_pc_209"},
441     {{al, r4, pc, 227}, false, al, "al r4 pc 227", "al_r4_pc_227"},
442     {{al, r7, pc, 219}, false, al, "al r7 pc 219", "al_r7_pc_219"},
443     {{al, r4, pc, 46}, false, al, "al r4 pc 46", "al_r4_pc_46"},
444     {{al, r2, pc, 245}, false, al, "al r2 pc 245", "al_r2_pc_245"},
445     {{al, r2, pc, 146}, false, al, "al r2 pc 146", "al_r2_pc_146"},
446     {{al, r6, pc, 191}, false, al, "al r6 pc 191", "al_r6_pc_191"},
447     {{al, r4, pc, 106}, false, al, "al r4 pc 106", "al_r4_pc_106"},
448     {{al, r3, pc, 92}, false, al, "al r3 pc 92", "al_r3_pc_92"},
449     {{al, r2, pc, 153}, false, al, "al r2 pc 153", "al_r2_pc_153"},
450     {{al, r4, pc, 155}, false, al, "al r4 pc 155", "al_r4_pc_155"},
451     {{al, r4, pc, 164}, false, al, "al r4 pc 164", "al_r4_pc_164"},
452     {{al, r4, pc, 252}, false, al, "al r4 pc 252", "al_r4_pc_252"},
453     {{al, r0, pc, 107}, false, al, "al r0 pc 107", "al_r0_pc_107"},
454     {{al, r2, pc, 198}, false, al, "al r2 pc 198", "al_r2_pc_198"},
455     {{al, r2, pc, 191}, false, al, "al r2 pc 191", "al_r2_pc_191"},
456     {{al, r3, pc, 59}, false, al, "al r3 pc 59", "al_r3_pc_59"},
457     {{al, r7, pc, 156}, false, al, "al r7 pc 156", "al_r7_pc_156"},
458     {{al, r2, pc, 244}, false, al, "al r2 pc 244", "al_r2_pc_244"},
459     {{al, r1, pc, 11}, false, al, "al r1 pc 11", "al_r1_pc_11"},
460     {{al, r6, pc, 82}, false, al, "al r6 pc 82", "al_r6_pc_82"},
461     {{al, r4, pc, 28}, false, al, "al r4 pc 28", "al_r4_pc_28"},
462     {{al, r3, pc, 211}, false, al, "al r3 pc 211", "al_r3_pc_211"},
463     {{al, r2, pc, 1}, false, al, "al r2 pc 1", "al_r2_pc_1"},
464     {{al, r2, pc, 195}, false, al, "al r2 pc 195", "al_r2_pc_195"},
465     {{al, r0, pc, 60}, false, al, "al r0 pc 60", "al_r0_pc_60"},
466     {{al, r4, pc, 193}, false, al, "al r4 pc 193", "al_r4_pc_193"},
467     {{al, r7, pc, 171}, false, al, "al r7 pc 171", "al_r7_pc_171"},
468     {{al, r6, pc, 45}, false, al, "al r6 pc 45", "al_r6_pc_45"},
469     {{al, r4, pc, 167}, false, al, "al r4 pc 167", "al_r4_pc_167"},
470     {{al, r6, pc, 185}, false, al, "al r6 pc 185", "al_r6_pc_185"},
471     {{al, r4, pc, 148}, false, al, "al r4 pc 148", "al_r4_pc_148"},
472     {{al, r0, pc, 88}, false, al, "al r0 pc 88", "al_r0_pc_88"},
473     {{al, r1, pc, 167}, false, al, "al r1 pc 167", "al_r1_pc_167"},
474     {{al, r3, pc, 80}, false, al, "al r3 pc 80", "al_r3_pc_80"},
475     {{al, r1, pc, 180}, false, al, "al r1 pc 180", "al_r1_pc_180"},
476     {{al, r4, pc, 150}, false, al, "al r4 pc 150", "al_r4_pc_150"},
477     {{al, r6, pc, 201}, false, al, "al r6 pc 201", "al_r6_pc_201"},
478     {{al, r0, pc, 24}, false, al, "al r0 pc 24", "al_r0_pc_24"},
479     {{al, r3, pc, 41}, false, al, "al r3 pc 41", "al_r3_pc_41"},
480     {{al, r0, pc, 41}, false, al, "al r0 pc 41", "al_r0_pc_41"},
481     {{al, r3, pc, 84}, false, al, "al r3 pc 84", "al_r3_pc_84"},
482     {{al, r1, pc, 164}, false, al, "al r1 pc 164", "al_r1_pc_164"},
483     {{al, r0, pc, 32}, false, al, "al r0 pc 32", "al_r0_pc_32"},
484     {{al, r7, pc, 240}, false, al, "al r7 pc 240", "al_r7_pc_240"},
485     {{al, r4, pc, 53}, false, al, "al r4 pc 53", "al_r4_pc_53"},
486     {{al, r4, pc, 117}, false, al, "al r4 pc 117", "al_r4_pc_117"},
487     {{al, r2, pc, 243}, false, al, "al r2 pc 243", "al_r2_pc_243"},
488     {{al, r7, pc, 43}, false, al, "al r7 pc 43", "al_r7_pc_43"},
489     {{al, r4, pc, 153}, false, al, "al r4 pc 153", "al_r4_pc_153"},
490     {{al, r3, pc, 159}, false, al, "al r3 pc 159", "al_r3_pc_159"},
491     {{al, r6, pc, 137}, false, al, "al r6 pc 137", "al_r6_pc_137"},
492     {{al, r1, pc, 205}, false, al, "al r1 pc 205", "al_r1_pc_205"},
493     {{al, r7, pc, 16}, false, al, "al r7 pc 16", "al_r7_pc_16"},
494     {{al, r1, pc, 174}, false, al, "al r1 pc 174", "al_r1_pc_174"},
495     {{al, r1, pc, 102}, false, al, "al r1 pc 102", "al_r1_pc_102"},
496     {{al, r3, pc, 148}, false, al, "al r3 pc 148", "al_r3_pc_148"},
497     {{al, r6, pc, 28}, false, al, "al r6 pc 28", "al_r6_pc_28"},
498     {{al, r4, pc, 127}, false, al, "al r4 pc 127", "al_r4_pc_127"},
499     {{al, r5, pc, 237}, false, al, "al r5 pc 237", "al_r5_pc_237"},
500     {{al, r4, pc, 215}, false, al, "al r4 pc 215", "al_r4_pc_215"},
501     {{al, r2, pc, 80}, false, al, "al r2 pc 80", "al_r2_pc_80"},
502     {{al, r4, pc, 160}, false, al, "al r4 pc 160", "al_r4_pc_160"},
503     {{al, r5, pc, 132}, false, al, "al r5 pc 132", "al_r5_pc_132"},
504     {{al, r6, pc, 158}, false, al, "al r6 pc 158", "al_r6_pc_158"},
505     {{al, r4, pc, 139}, false, al, "al r4 pc 139", "al_r4_pc_139"},
506     {{al, r7, pc, 218}, false, al, "al r7 pc 218", "al_r7_pc_218"},
507     {{al, r5, pc, 1}, false, al, "al r5 pc 1", "al_r5_pc_1"},
508     {{al, r1, pc, 106}, false, al, "al r1 pc 106", "al_r1_pc_106"},
509     {{al, r0, pc, 36}, false, al, "al r0 pc 36", "al_r0_pc_36"},
510     {{al, r2, pc, 186}, false, al, "al r2 pc 186", "al_r2_pc_186"},
511     {{al, r1, pc, 217}, false, al, "al r1 pc 217", "al_r1_pc_217"},
512     {{al, r2, pc, 110}, false, al, "al r2 pc 110", "al_r2_pc_110"},
513     {{al, r4, pc, 22}, false, al, "al r4 pc 22", "al_r4_pc_22"},
514     {{al, r1, pc, 44}, false, al, "al r1 pc 44", "al_r1_pc_44"},
515     {{al, r5, pc, 70}, false, al, "al r5 pc 70", "al_r5_pc_70"},
516     {{al, r3, pc, 222}, false, al, "al r3 pc 222", "al_r3_pc_222"},
517     {{al, r1, pc, 45}, false, al, "al r1 pc 45", "al_r1_pc_45"},
518     {{al, r2, pc, 152}, false, al, "al r2 pc 152", "al_r2_pc_152"},
519     {{al, r1, pc, 37}, false, al, "al r1 pc 37", "al_r1_pc_37"},
520     {{al, r7, pc, 174}, false, al, "al r7 pc 174", "al_r7_pc_174"},
521     {{al, r0, pc, 23}, false, al, "al r0 pc 23", "al_r0_pc_23"},
522     {{al, r7, pc, 83}, false, al, "al r7 pc 83", "al_r7_pc_83"},
523     {{al, r5, pc, 203}, false, al, "al r5 pc 203", "al_r5_pc_203"},
524     {{al, r0, pc, 241}, false, al, "al r0 pc 241", "al_r0_pc_241"},
525     {{al, r1, pc, 89}, false, al, "al r1 pc 89", "al_r1_pc_89"},
526     {{al, r6, pc, 145}, false, al, "al r6 pc 145", "al_r6_pc_145"},
527     {{al, r5, pc, 91}, false, al, "al r5 pc 91", "al_r5_pc_91"},
528     {{al, r2, pc, 15}, false, al, "al r2 pc 15", "al_r2_pc_15"},
529     {{al, r4, pc, 8}, false, al, "al r4 pc 8", "al_r4_pc_8"},
530     {{al, r5, pc, 53}, false, al, "al r5 pc 53", "al_r5_pc_53"},
531     {{al, r5, pc, 173}, false, al, "al r5 pc 173", "al_r5_pc_173"},
532     {{al, r2, pc, 10}, false, al, "al r2 pc 10", "al_r2_pc_10"},
533     {{al, r2, pc, 175}, false, al, "al r2 pc 175", "al_r2_pc_175"},
534     {{al, r7, pc, 186}, false, al, "al r7 pc 186", "al_r7_pc_186"},
535     {{al, r4, pc, 66}, false, al, "al r4 pc 66", "al_r4_pc_66"},
536     {{al, r3, pc, 27}, false, al, "al r3 pc 27", "al_r3_pc_27"},
537     {{al, r7, pc, 99}, false, al, "al r7 pc 99", "al_r7_pc_99"},
538     {{al, r0, pc, 126}, false, al, "al r0 pc 126", "al_r0_pc_126"},
539     {{al, r0, pc, 130}, false, al, "al r0 pc 130", "al_r0_pc_130"},
540     {{al, r7, pc, 60}, false, al, "al r7 pc 60", "al_r7_pc_60"},
541     {{al, r5, pc, 2}, false, al, "al r5 pc 2", "al_r5_pc_2"},
542     {{al, r3, pc, 107}, false, al, "al r3 pc 107", "al_r3_pc_107"},
543     {{al, r6, pc, 113}, false, al, "al r6 pc 113", "al_r6_pc_113"},
544     {{al, r2, pc, 18}, false, al, "al r2 pc 18", "al_r2_pc_18"},
545     {{al, r5, pc, 219}, false, al, "al r5 pc 219", "al_r5_pc_219"},
546     {{al, r6, pc, 115}, false, al, "al r6 pc 115", "al_r6_pc_115"},
547     {{al, r7, pc, 159}, false, al, "al r7 pc 159", "al_r7_pc_159"},
548     {{al, r7, pc, 206}, false, al, "al r7 pc 206", "al_r7_pc_206"},
549     {{al, r6, pc, 193}, false, al, "al r6 pc 193", "al_r6_pc_193"},
550     {{al, r4, pc, 119}, false, al, "al r4 pc 119", "al_r4_pc_119"},
551     {{al, r0, pc, 98}, false, al, "al r0 pc 98", "al_r0_pc_98"},
552     {{al, r5, pc, 201}, false, al, "al r5 pc 201", "al_r5_pc_201"},
553     {{al, r0, pc, 182}, false, al, "al r0 pc 182", "al_r0_pc_182"},
554     {{al, r4, pc, 118}, false, al, "al r4 pc 118", "al_r4_pc_118"},
555     {{al, r6, pc, 18}, false, al, "al r6 pc 18", "al_r6_pc_18"},
556     {{al, r0, pc, 185}, false, al, "al r0 pc 185", "al_r0_pc_185"},
557     {{al, r0, pc, 106}, false, al, "al r0 pc 106", "al_r0_pc_106"},
558     {{al, r0, pc, 92}, false, al, "al r0 pc 92", "al_r0_pc_92"},
559     {{al, r5, pc, 215}, false, al, "al r5 pc 215", "al_r5_pc_215"},
560     {{al, r0, pc, 153}, false, al, "al r0 pc 153", "al_r0_pc_153"},
561     {{al, r5, pc, 75}, false, al, "al r5 pc 75", "al_r5_pc_75"},
562     {{al, r6, pc, 211}, false, al, "al r6 pc 211", "al_r6_pc_211"},
563     {{al, r0, pc, 244}, false, al, "al r0 pc 244", "al_r0_pc_244"},
564     {{al, r0, pc, 255}, false, al, "al r0 pc 255", "al_r0_pc_255"},
565     {{al, r7, pc, 100}, false, al, "al r7 pc 100", "al_r7_pc_100"},
566     {{al, r7, pc, 105}, false, al, "al r7 pc 105", "al_r7_pc_105"},
567     {{al, r3, pc, 243}, false, al, "al r3 pc 243", "al_r3_pc_243"},
568     {{al, r3, pc, 120}, false, al, "al r3 pc 120", "al_r3_pc_120"},
569     {{al, r0, pc, 143}, false, al, "al r0 pc 143", "al_r0_pc_143"},
570     {{al, r5, pc, 45}, false, al, "al r5 pc 45", "al_r5_pc_45"},
571     {{al, r6, pc, 205}, false, al, "al r6 pc 205", "al_r6_pc_205"},
572     {{al, r3, pc, 200}, false, al, "al r3 pc 200", "al_r3_pc_200"},
573     {{al, r6, pc, 167}, false, al, "al r6 pc 167", "al_r6_pc_167"},
574     {{al, r6, pc, 220}, false, al, "al r6 pc 220", "al_r6_pc_220"},
575     {{al, r3, pc, 216}, false, al, "al r3 pc 216", "al_r3_pc_216"},
576     {{al, r2, pc, 217}, false, al, "al r2 pc 217", "al_r2_pc_217"},
577     {{al, r2, pc, 67}, false, al, "al r2 pc 67", "al_r2_pc_67"},
578     {{al, r0, pc, 119}, false, al, "al r0 pc 119", "al_r0_pc_119"},
579     {{al, r2, pc, 130}, false, al, "al r2 pc 130", "al_r2_pc_130"},
580     {{al, r6, pc, 97}, false, al, "al r6 pc 97", "al_r6_pc_97"},
581     {{al, r1, pc, 35}, false, al, "al r1 pc 35", "al_r1_pc_35"},
582     {{al, r5, pc, 243}, false, al, "al r5 pc 243", "al_r5_pc_243"},
583     {{al, r7, pc, 222}, false, al, "al r7 pc 222", "al_r7_pc_222"},
584     {{al, r7, pc, 56}, false, al, "al r7 pc 56", "al_r7_pc_56"},
585     {{al, r4, pc, 52}, false, al, "al r4 pc 52", "al_r4_pc_52"},
586     {{al, r3, pc, 4}, false, al, "al r3 pc 4", "al_r3_pc_4"},
587     {{al, r2, pc, 119}, false, al, "al r2 pc 119", "al_r2_pc_119"},
588     {{al, r7, pc, 212}, false, al, "al r7 pc 212", "al_r7_pc_212"},
589     {{al, r0, pc, 195}, false, al, "al r0 pc 195", "al_r0_pc_195"},
590     {{al, r3, pc, 232}, false, al, "al r3 pc 232", "al_r3_pc_232"},
591     {{al, r3, pc, 98}, false, al, "al r3 pc 98", "al_r3_pc_98"},
592     {{al, r4, pc, 149}, false, al, "al r4 pc 149", "al_r4_pc_149"},
593     {{al, r0, pc, 233}, false, al, "al r0 pc 233", "al_r0_pc_233"},
594     {{al, r6, pc, 247}, false, al, "al r6 pc 247", "al_r6_pc_247"},
595     {{al, r2, pc, 113}, false, al, "al r2 pc 113", "al_r2_pc_113"},
596     {{al, r4, pc, 104}, false, al, "al r4 pc 104", "al_r4_pc_104"},
597     {{al, r5, pc, 195}, false, al, "al r5 pc 195", "al_r5_pc_195"},
598     {{al, r0, pc, 9}, false, al, "al r0 pc 9", "al_r0_pc_9"},
599     {{al, r1, pc, 16}, false, al, "al r1 pc 16", "al_r1_pc_16"},
600     {{al, r2, pc, 126}, false, al, "al r2 pc 126", "al_r2_pc_126"},
601     {{al, r5, pc, 223}, false, al, "al r5 pc 223", "al_r5_pc_223"},
602     {{al, r2, pc, 94}, false, al, "al r2 pc 94", "al_r2_pc_94"},
603     {{al, r4, pc, 57}, false, al, "al r4 pc 57", "al_r4_pc_57"},
604     {{al, r0, pc, 68}, false, al, "al r0 pc 68", "al_r0_pc_68"},
605     {{al, r6, pc, 216}, false, al, "al r6 pc 216", "al_r6_pc_216"},
606     {{al, r6, pc, 88}, false, al, "al r6 pc 88", "al_r6_pc_88"},
607     {{al, r2, pc, 196}, false, al, "al r2 pc 196", "al_r2_pc_196"},
608     {{al, r4, pc, 132}, false, al, "al r4 pc 132", "al_r4_pc_132"},
609     {{al, r4, pc, 90}, false, al, "al r4 pc 90", "al_r4_pc_90"},
610     {{al, r0, pc, 66}, false, al, "al r0 pc 66", "al_r0_pc_66"},
611     {{al, r7, pc, 180}, false, al, "al r7 pc 180", "al_r7_pc_180"},
612     {{al, r3, pc, 53}, false, al, "al r3 pc 53", "al_r3_pc_53"},
613     {{al, r7, pc, 189}, false, al, "al r7 pc 189", "al_r7_pc_189"},
614     {{al, r1, pc, 145}, false, al, "al r1 pc 145", "al_r1_pc_145"},
615     {{al, r3, pc, 83}, false, al, "al r3 pc 83", "al_r3_pc_83"},
616     {{al, r4, pc, 206}, false, al, "al r4 pc 206", "al_r4_pc_206"},
617     {{al, r4, pc, 184}, false, al, "al r4 pc 184", "al_r4_pc_184"},
618     {{al, r4, pc, 173}, false, al, "al r4 pc 173", "al_r4_pc_173"},
619     {{al, r1, pc, 162}, false, al, "al r1 pc 162", "al_r1_pc_162"},
620     {{al, r3, pc, 35}, false, al, "al r3 pc 35", "al_r3_pc_35"},
621     {{al, r7, pc, 129}, false, al, "al r7 pc 129", "al_r7_pc_129"},
622     {{al, r7, pc, 4}, false, al, "al r7 pc 4", "al_r7_pc_4"},
623     {{al, r2, pc, 163}, false, al, "al r2 pc 163", "al_r2_pc_163"},
624     {{al, r6, pc, 29}, false, al, "al r6 pc 29", "al_r6_pc_29"},
625     {{al, r3, pc, 28}, false, al, "al r3 pc 28", "al_r3_pc_28"},
626     {{al, r7, pc, 176}, false, al, "al r7 pc 176", "al_r7_pc_176"},
627     {{al, r7, pc, 0}, false, al, "al r7 pc 0", "al_r7_pc_0"},
628     {{al, r2, pc, 84}, false, al, "al r2 pc 84", "al_r2_pc_84"},
629     {{al, r6, pc, 232}, false, al, "al r6 pc 232", "al_r6_pc_232"},
630     {{al, r0, pc, 77}, false, al, "al r0 pc 77", "al_r0_pc_77"},
631     {{al, r5, pc, 230}, false, al, "al r5 pc 230", "al_r5_pc_230"},
632     {{al, r5, pc, 102}, false, al, "al r5 pc 102", "al_r5_pc_102"},
633     {{al, r6, pc, 177}, false, al, "al r6 pc 177", "al_r6_pc_177"},
634     {{al, r3, pc, 111}, false, al, "al r3 pc 111", "al_r3_pc_111"},
635     {{al, r0, pc, 57}, false, al, "al r0 pc 57", "al_r0_pc_57"},
636     {{al, r3, pc, 85}, false, al, "al r3 pc 85", "al_r3_pc_85"},
637     {{al, r0, pc, 240}, false, al, "al r0 pc 240", "al_r0_pc_240"},
638     {{al, r6, pc, 125}, false, al, "al r6 pc 125", "al_r6_pc_125"},
639     {{al, r3, pc, 14}, false, al, "al r3 pc 14", "al_r3_pc_14"},
640     {{al, r5, pc, 14}, false, al, "al r5 pc 14", "al_r5_pc_14"},
641     {{al, r2, pc, 199}, false, al, "al r2 pc 199", "al_r2_pc_199"},
642     {{al, r1, pc, 155}, false, al, "al r1 pc 155", "al_r1_pc_155"},
643     {{al, r6, pc, 248}, false, al, "al r6 pc 248", "al_r6_pc_248"},
644     {{al, r7, pc, 54}, false, al, "al r7 pc 54", "al_r7_pc_54"},
645     {{al, r3, pc, 228}, false, al, "al r3 pc 228", "al_r3_pc_228"},
646     {{al, r2, pc, 221}, false, al, "al r2 pc 221", "al_r2_pc_221"},
647     {{al, r4, pc, 176}, false, al, "al r4 pc 176", "al_r4_pc_176"},
648     {{al, r7, pc, 194}, false, al, "al r7 pc 194", "al_r7_pc_194"},
649     {{al, r2, pc, 52}, false, al, "al r2 pc 52", "al_r2_pc_52"},
650     {{al, r3, pc, 46}, false, al, "al r3 pc 46", "al_r3_pc_46"},
651     {{al, r1, pc, 163}, false, al, "al r1 pc 163", "al_r1_pc_163"},
652     {{al, r0, pc, 247}, false, al, "al r0 pc 247", "al_r0_pc_247"},
653     {{al, r5, pc, 87}, false, al, "al r5 pc 87", "al_r5_pc_87"},
654     {{al, r6, pc, 6}, false, al, "al r6 pc 6", "al_r6_pc_6"},
655     {{al, r6, pc, 181}, false, al, "al r6 pc 181", "al_r6_pc_181"},
656     {{al, r6, pc, 37}, false, al, "al r6 pc 37", "al_r6_pc_37"},
657     {{al, r1, pc, 158}, false, al, "al r1 pc 158", "al_r1_pc_158"},
658     {{al, r6, pc, 187}, false, al, "al r6 pc 187", "al_r6_pc_187"},
659     {{al, r3, pc, 215}, false, al, "al r3 pc 215", "al_r3_pc_215"},
660     {{al, r4, pc, 45}, false, al, "al r4 pc 45", "al_r4_pc_45"},
661     {{al, r4, pc, 124}, false, al, "al r4 pc 124", "al_r4_pc_124"},
662     {{al, r7, pc, 127}, false, al, "al r7 pc 127", "al_r7_pc_127"},
663     {{al, r3, pc, 194}, false, al, "al r3 pc 194", "al_r3_pc_194"},
664     {{al, r0, pc, 159}, false, al, "al r0 pc 159", "al_r0_pc_159"},
665     {{al, r2, pc, 241}, false, al, "al r2 pc 241", "al_r2_pc_241"},
666     {{al, r5, pc, 84}, false, al, "al r5 pc 84", "al_r5_pc_84"},
667     {{al, r2, pc, 149}, false, al, "al r2 pc 149", "al_r2_pc_149"},
668     {{al, r3, pc, 171}, false, al, "al r3 pc 171", "al_r3_pc_171"},
669     {{al, r3, pc, 143}, false, al, "al r3 pc 143", "al_r3_pc_143"},
670     {{al, r0, pc, 85}, false, al, "al r0 pc 85", "al_r0_pc_85"},
671     {{al, r1, pc, 134}, false, al, "al r1 pc 134", "al_r1_pc_134"},
672     {{al, r1, pc, 39}, false, al, "al r1 pc 39", "al_r1_pc_39"},
673     {{al, r6, pc, 200}, false, al, "al r6 pc 200", "al_r6_pc_200"},
674     {{al, r5, pc, 110}, false, al, "al r5 pc 110", "al_r5_pc_110"},
675     {{al, r6, pc, 35}, false, al, "al r6 pc 35", "al_r6_pc_35"},
676     {{al, r7, pc, 237}, false, al, "al r7 pc 237", "al_r7_pc_237"},
677     {{al, r0, pc, 42}, false, al, "al r0 pc 42", "al_r0_pc_42"},
678     {{al, r2, pc, 36}, false, al, "al r2 pc 36", "al_r2_pc_36"},
679     {{al, r4, pc, 55}, false, al, "al r4 pc 55", "al_r4_pc_55"},
680     {{al, r2, pc, 5}, false, al, "al r2 pc 5", "al_r2_pc_5"},
681     {{al, r2, pc, 103}, false, al, "al r2 pc 103", "al_r2_pc_103"},
682     {{al, r7, pc, 104}, false, al, "al r7 pc 104", "al_r7_pc_104"},
683     {{al, r1, pc, 116}, false, al, "al r1 pc 116", "al_r1_pc_116"},
684     {{al, r1, pc, 156}, false, al, "al r1 pc 156", "al_r1_pc_156"},
685     {{al, r6, pc, 100}, false, al, "al r6 pc 100", "al_r6_pc_100"},
686     {{al, r6, pc, 108}, false, al, "al r6 pc 108", "al_r6_pc_108"},
687     {{al, r0, pc, 237}, false, al, "al r0 pc 237", "al_r0_pc_237"},
688     {{al, r5, pc, 182}, false, al, "al r5 pc 182", "al_r5_pc_182"},
689     {{al, r1, pc, 189}, false, al, "al r1 pc 189", "al_r1_pc_189"},
690     {{al, r6, pc, 16}, false, al, "al r6 pc 16", "al_r6_pc_16"},
691     {{al, r5, pc, 184}, false, al, "al r5 pc 184", "al_r5_pc_184"},
692     {{al, r3, pc, 67}, false, al, "al r3 pc 67", "al_r3_pc_67"},
693     {{al, r2, pc, 107}, false, al, "al r2 pc 107", "al_r2_pc_107"},
694     {{al, r1, pc, 182}, false, al, "al r1 pc 182", "al_r1_pc_182"},
695     {{al, r7, pc, 69}, false, al, "al r7 pc 69", "al_r7_pc_69"},
696     {{al, r3, pc, 164}, false, al, "al r3 pc 164", "al_r3_pc_164"},
697     {{al, r7, pc, 119}, false, al, "al r7 pc 119", "al_r7_pc_119"},
698     {{al, r4, pc, 239}, false, al, "al r4 pc 239", "al_r4_pc_239"},
699     {{al, r7, pc, 11}, false, al, "al r7 pc 11", "al_r7_pc_11"},
700     {{al, r0, pc, 138}, false, al, "al r0 pc 138", "al_r0_pc_138"},
701     {{al, r1, pc, 59}, false, al, "al r1 pc 59", "al_r1_pc_59"},
702     {{al, r4, pc, 157}, false, al, "al r4 pc 157", "al_r4_pc_157"},
703     {{al, r0, pc, 177}, false, al, "al r0 pc 177", "al_r0_pc_177"},
704     {{al, r7, pc, 214}, false, al, "al r7 pc 214", "al_r7_pc_214"},
705     {{al, r1, pc, 157}, false, al, "al r1 pc 157", "al_r1_pc_157"},
706     {{al, r6, pc, 227}, false, al, "al r6 pc 227", "al_r6_pc_227"},
707     {{al, r1, pc, 85}, false, al, "al r1 pc 85", "al_r1_pc_85"},
708     {{al, r5, pc, 85}, false, al, "al r5 pc 85", "al_r5_pc_85"},
709     {{al, r4, pc, 234}, false, al, "al r4 pc 234", "al_r4_pc_234"},
710     {{al, r0, pc, 7}, false, al, "al r0 pc 7", "al_r0_pc_7"},
711     {{al, r1, pc, 61}, false, al, "al r1 pc 61", "al_r1_pc_61"},
712     {{al, r6, pc, 154}, false, al, "al r6 pc 154", "al_r6_pc_154"},
713     {{al, r0, pc, 19}, false, al, "al r0 pc 19", "al_r0_pc_19"},
714     {{al, r7, pc, 200}, false, al, "al r7 pc 200", "al_r7_pc_200"},
715     {{al, r0, pc, 223}, false, al, "al r0 pc 223", "al_r0_pc_223"},
716     {{al, r0, pc, 187}, false, al, "al r0 pc 187", "al_r0_pc_187"},
717     {{al, r2, pc, 213}, false, al, "al r2 pc 213", "al_r2_pc_213"},
718     {{al, r4, pc, 42}, false, al, "al r4 pc 42", "al_r4_pc_42"},
719     {{al, r6, pc, 217}, false, al, "al r6 pc 217", "al_r6_pc_217"},
720     {{al, r7, pc, 45}, false, al, "al r7 pc 45", "al_r7_pc_45"},
721     {{al, r3, pc, 124}, false, al, "al r3 pc 124", "al_r3_pc_124"},
722     {{al, r0, pc, 102}, false, al, "al r0 pc 102", "al_r0_pc_102"},
723     {{al, r3, pc, 96}, false, al, "al r3 pc 96", "al_r3_pc_96"},
724     {{al, r7, pc, 114}, false, al, "al r7 pc 114", "al_r7_pc_114"},
725     {{al, r3, pc, 139}, false, al, "al r3 pc 139", "al_r3_pc_139"},
726     {{al, r6, pc, 241}, false, al, "al r6 pc 241", "al_r6_pc_241"},
727     {{al, r7, pc, 199}, false, al, "al r7 pc 199", "al_r7_pc_199"},
728     {{al, r0, pc, 13}, false, al, "al r0 pc 13", "al_r0_pc_13"},
729     {{al, r5, pc, 109}, false, al, "al r5 pc 109", "al_r5_pc_109"},
730     {{al, r1, pc, 50}, false, al, "al r1 pc 50", "al_r1_pc_50"},
731     {{al, r5, pc, 62}, false, al, "al r5 pc 62", "al_r5_pc_62"},
732     {{al, r5, pc, 136}, false, al, "al r5 pc 136", "al_r5_pc_136"},
733     {{al, r7, pc, 133}, false, al, "al r7 pc 133", "al_r7_pc_133"},
734     {{al, r1, pc, 150}, false, al, "al r1 pc 150", "al_r1_pc_150"},
735     {{al, r3, pc, 100}, false, al, "al r3 pc 100", "al_r3_pc_100"},
736     {{al, r3, pc, 129}, false, al, "al r3 pc 129", "al_r3_pc_129"},
737     {{al, r4, pc, 105}, false, al, "al r4 pc 105", "al_r4_pc_105"},
738     {{al, r3, pc, 133}, false, al, "al r3 pc 133", "al_r3_pc_133"},
739     {{al, r1, pc, 225}, false, al, "al r1 pc 225", "al_r1_pc_225"},
740     {{al, r3, pc, 130}, false, al, "al r3 pc 130", "al_r3_pc_130"},
741     {{al, r0, pc, 209}, false, al, "al r0 pc 209", "al_r0_pc_209"},
742     {{al, r2, pc, 14}, false, al, "al r2 pc 14", "al_r2_pc_14"},
743     {{al, r0, pc, 72}, false, al, "al r0 pc 72", "al_r0_pc_72"},
744     {{al, r7, pc, 221}, false, al, "al r7 pc 221", "al_r7_pc_221"},
745     {{al, r4, pc, 4}, false, al, "al r4 pc 4", "al_r4_pc_4"},
746     {{al, r7, pc, 112}, false, al, "al r7 pc 112", "al_r7_pc_112"},
747     {{al, r6, pc, 59}, false, al, "al r6 pc 59", "al_r6_pc_59"},
748     {{al, r3, pc, 140}, false, al, "al r3 pc 140", "al_r3_pc_140"},
749     {{al, r1, pc, 186}, false, al, "al r1 pc 186", "al_r1_pc_186"},
750     {{al, r3, pc, 61}, false, al, "al r3 pc 61", "al_r3_pc_61"},
751     {{al, r1, pc, 32}, false, al, "al r1 pc 32", "al_r1_pc_32"},
752     {{al, r3, pc, 42}, false, al, "al r3 pc 42", "al_r3_pc_42"},
753     {{al, r3, pc, 72}, false, al, "al r3 pc 72", "al_r3_pc_72"},
754     {{al, r0, pc, 152}, false, al, "al r0 pc 152", "al_r0_pc_152"},
755     {{al, r5, pc, 104}, false, al, "al r5 pc 104", "al_r5_pc_104"},
756     {{al, r1, pc, 136}, false, al, "al r1 pc 136", "al_r1_pc_136"},
757     {{al, r7, pc, 161}, false, al, "al r7 pc 161", "al_r7_pc_161"},
758     {{al, r1, pc, 188}, false, al, "al r1 pc 188", "al_r1_pc_188"},
759     {{al, r1, pc, 42}, false, al, "al r1 pc 42", "al_r1_pc_42"},
760     {{al, r4, pc, 145}, false, al, "al r4 pc 145", "al_r4_pc_145"},
761     {{al, r3, pc, 75}, false, al, "al r3 pc 75", "al_r3_pc_75"},
762     {{al, r1, pc, 219}, false, al, "al r1 pc 219", "al_r1_pc_219"},
763     {{al, r4, pc, 133}, false, al, "al r4 pc 133", "al_r4_pc_133"},
764     {{al, r1, pc, 176}, false, al, "al r1 pc 176", "al_r1_pc_176"},
765     {{al, r5, pc, 73}, false, al, "al r5 pc 73", "al_r5_pc_73"},
766     {{al, r6, pc, 127}, false, al, "al r6 pc 127", "al_r6_pc_127"},
767     {{al, r4, pc, 40}, false, al, "al r4 pc 40", "al_r4_pc_40"},
768     {{al, r0, pc, 89}, false, al, "al r0 pc 89", "al_r0_pc_89"},
769     {{al, r4, pc, 125}, false, al, "al r4 pc 125", "al_r4_pc_125"},
770     {{al, r0, pc, 124}, false, al, "al r0 pc 124", "al_r0_pc_124"},
771     {{al, r5, pc, 212}, false, al, "al r5 pc 212", "al_r5_pc_212"},
772     {{al, r1, pc, 121}, false, al, "al r1 pc 121", "al_r1_pc_121"},
773     {{al, r4, pc, 181}, false, al, "al r4 pc 181", "al_r4_pc_181"},
774     {{al, r6, pc, 2}, false, al, "al r6 pc 2", "al_r6_pc_2"},
775     {{al, r7, pc, 51}, false, al, "al r7 pc 51", "al_r7_pc_51"},
776     {{al, r7, pc, 39}, false, al, "al r7 pc 39", "al_r7_pc_39"},
777     {{al, r4, pc, 178}, false, al, "al r4 pc 178", "al_r4_pc_178"},
778     {{al, r7, pc, 121}, false, al, "al r7 pc 121", "al_r7_pc_121"},
779     {{al, r5, pc, 29}, false, al, "al r5 pc 29", "al_r5_pc_29"},
780     {{al, r6, pc, 105}, false, al, "al r6 pc 105", "al_r6_pc_105"},
781     {{al, r5, pc, 234}, false, al, "al r5 pc 234", "al_r5_pc_234"},
782     {{al, r6, pc, 50}, false, al, "al r6 pc 50", "al_r6_pc_50"},
783     {{al, r3, pc, 183}, false, al, "al r3 pc 183", "al_r3_pc_183"},
784     {{al, r2, pc, 121}, false, al, "al r2 pc 121", "al_r2_pc_121"},
785     {{al, r1, pc, 213}, false, al, "al r1 pc 213", "al_r1_pc_213"},
786     {{al, r1, pc, 168}, false, al, "al r1 pc 168", "al_r1_pc_168"},
787     {{al, r1, pc, 153}, false, al, "al r1 pc 153", "al_r1_pc_153"},
788     {{al, r6, pc, 254}, false, al, "al r6 pc 254", "al_r6_pc_254"},
789     {{al, r4, pc, 112}, false, al, "al r4 pc 112", "al_r4_pc_112"},
790     {{al, r4, pc, 162}, false, al, "al r4 pc 162", "al_r4_pc_162"},
791     {{al, r5, pc, 253}, false, al, "al r5 pc 253", "al_r5_pc_253"},
792     {{al, r6, pc, 22}, false, al, "al r6 pc 22", "al_r6_pc_22"},
793     {{al, r6, pc, 128}, false, al, "al r6 pc 128", "al_r6_pc_128"},
794     {{al, r5, pc, 248}, false, al, "al r5 pc 248", "al_r5_pc_248"},
795     {{al, r2, pc, 239}, false, al, "al r2 pc 239", "al_r2_pc_239"},
796     {{al, r1, pc, 223}, false, al, "al r1 pc 223", "al_r1_pc_223"},
797     {{al, r7, pc, 93}, false, al, "al r7 pc 93", "al_r7_pc_93"},
798     {{al, r4, pc, 91}, false, al, "al r4 pc 91", "al_r4_pc_91"},
799     {{al, r3, pc, 26}, false, al, "al r3 pc 26", "al_r3_pc_26"},
800     {{al, r4, pc, 21}, false, al, "al r4 pc 21", "al_r4_pc_21"},
801     {{al, r3, pc, 0}, false, al, "al r3 pc 0", "al_r3_pc_0"},
802     {{al, r0, pc, 216}, false, al, "al r0 pc 216", "al_r0_pc_216"},
803     {{al, r7, pc, 86}, false, al, "al r7 pc 86", "al_r7_pc_86"},
804     {{al, r2, pc, 114}, false, al, "al r2 pc 114", "al_r2_pc_114"},
805     {{al, r1, pc, 55}, false, al, "al r1 pc 55", "al_r1_pc_55"},
806     {{al, r1, pc, 154}, false, al, "al r1 pc 154", "al_r1_pc_154"},
807     {{al, r1, pc, 159}, false, al, "al r1 pc 159", "al_r1_pc_159"},
808     {{al, r6, pc, 93}, false, al, "al r6 pc 93", "al_r6_pc_93"},
809     {{al, r1, pc, 184}, false, al, "al r1 pc 184", "al_r1_pc_184"},
810     {{al, r2, pc, 83}, false, al, "al r2 pc 83", "al_r2_pc_83"},
811     {{al, r7, pc, 208}, false, al, "al r7 pc 208", "al_r7_pc_208"},
812     {{al, r2, pc, 124}, false, al, "al r2 pc 124", "al_r2_pc_124"},
813     {{al, r5, pc, 254}, false, al, "al r5 pc 254", "al_r5_pc_254"},
814     {{al, r2, pc, 139}, false, al, "al r2 pc 139", "al_r2_pc_139"},
815     {{al, r4, pc, 48}, false, al, "al r4 pc 48", "al_r4_pc_48"},
816     {{al, r1, pc, 15}, false, al, "al r1 pc 15", "al_r1_pc_15"},
817     {{al, r7, pc, 87}, false, al, "al r7 pc 87", "al_r7_pc_87"},
818     {{al, r0, pc, 27}, false, al, "al r0 pc 27", "al_r0_pc_27"},
819     {{al, r1, pc, 80}, false, al, "al r1 pc 80", "al_r1_pc_80"},
820     {{al, r6, pc, 91}, false, al, "al r6 pc 91", "al_r6_pc_91"},
821     {{al, r2, pc, 166}, false, al, "al r2 pc 166", "al_r2_pc_166"},
822     {{al, r5, pc, 242}, false, al, "al r5 pc 242", "al_r5_pc_242"},
823     {{al, r5, pc, 229}, false, al, "al r5 pc 229", "al_r5_pc_229"},
824     {{al, r1, pc, 7}, false, al, "al r1 pc 7", "al_r1_pc_7"},
825     {{al, r1, pc, 96}, false, al, "al r1 pc 96", "al_r1_pc_96"},
826     {{al, r3, pc, 56}, false, al, "al r3 pc 56", "al_r3_pc_56"},
827     {{al, r2, pc, 179}, false, al, "al r2 pc 179", "al_r2_pc_179"},
828     {{al, r4, pc, 27}, false, al, "al r4 pc 27", "al_r4_pc_27"},
829     {{al, r4, pc, 12}, false, al, "al r4 pc 12", "al_r4_pc_12"},
830     {{al, r2, pc, 79}, false, al, "al r2 pc 79", "al_r2_pc_79"},
831     {{al, r5, pc, 247}, false, al, "al r5 pc 247", "al_r5_pc_247"},
832     {{al, r0, pc, 18}, false, al, "al r0 pc 18", "al_r0_pc_18"},
833     {{al, r5, pc, 205}, false, al, "al r5 pc 205", "al_r5_pc_205"},
834     {{al, r2, pc, 66}, false, al, "al r2 pc 66", "al_r2_pc_66"},
835     {{al, r0, pc, 133}, false, al, "al r0 pc 133", "al_r0_pc_133"},
836     {{al, r6, pc, 58}, false, al, "al r6 pc 58", "al_r6_pc_58"},
837     {{al, r5, pc, 32}, false, al, "al r5 pc 32", "al_r5_pc_32"},
838     {{al, r0, pc, 99}, false, al, "al r0 pc 99", "al_r0_pc_99"},
839     {{al, r2, pc, 32}, false, al, "al r2 pc 32", "al_r2_pc_32"},
840     {{al, r3, pc, 89}, false, al, "al r3 pc 89", "al_r3_pc_89"},
841     {{al, r6, pc, 114}, false, al, "al r6 pc 114", "al_r6_pc_114"},
842     {{al, r2, pc, 100}, false, al, "al r2 pc 100", "al_r2_pc_100"},
843     {{al, r1, pc, 82}, false, al, "al r1 pc 82", "al_r1_pc_82"},
844     {{al, r2, pc, 210}, false, al, "al r2 pc 210", "al_r2_pc_210"},
845     {{al, r2, pc, 29}, false, al, "al r2 pc 29", "al_r2_pc_29"},
846     {{al, r6, pc, 20}, false, al, "al r6 pc 20", "al_r6_pc_20"},
847     {{al, r0, pc, 120}, false, al, "al r0 pc 120", "al_r0_pc_120"},
848     {{al, r6, pc, 75}, false, al, "al r6 pc 75", "al_r6_pc_75"},
849     {{al, r5, pc, 164}, false, al, "al r5 pc 164", "al_r5_pc_164"},
850     {{al, r6, pc, 32}, false, al, "al r6 pc 32", "al_r6_pc_32"},
851     {{al, r7, pc, 59}, false, al, "al r7 pc 59", "al_r7_pc_59"},
852     {{al, r0, pc, 71}, false, al, "al r0 pc 71", "al_r0_pc_71"},
853     {{al, r6, pc, 98}, false, al, "al r6 pc 98", "al_r6_pc_98"},
854     {{al, r0, pc, 236}, false, al, "al r0 pc 236", "al_r0_pc_236"},
855     {{al, r4, pc, 25}, false, al, "al r4 pc 25", "al_r4_pc_25"},
856     {{al, r1, pc, 131}, false, al, "al r1 pc 131", "al_r1_pc_131"},
857     {{al, r2, pc, 215}, false, al, "al r2 pc 215", "al_r2_pc_215"},
858     {{al, r5, pc, 44}, false, al, "al r5 pc 44", "al_r5_pc_44"},
859     {{al, r3, pc, 226}, false, al, "al r3 pc 226", "al_r3_pc_226"},
860     {{al, r1, pc, 34}, false, al, "al r1 pc 34", "al_r1_pc_34"},
861     {{al, r0, pc, 96}, false, al, "al r0 pc 96", "al_r0_pc_96"},
862     {{al, r4, pc, 245}, false, al, "al r4 pc 245", "al_r4_pc_245"},
863     {{al, r1, pc, 140}, false, al, "al r1 pc 140", "al_r1_pc_140"},
864     {{al, r6, pc, 83}, false, al, "al r6 pc 83", "al_r6_pc_83"},
865     {{al, r5, pc, 168}, false, al, "al r5 pc 168", "al_r5_pc_168"},
866     {{al, r6, pc, 183}, false, al, "al r6 pc 183", "al_r6_pc_183"},
867     {{al, r6, pc, 9}, false, al, "al r6 pc 9", "al_r6_pc_9"},
868     {{al, r7, pc, 110}, false, al, "al r7 pc 110", "al_r7_pc_110"},
869     {{al, r6, pc, 30}, false, al, "al r6 pc 30", "al_r6_pc_30"},
870     {{al, r3, pc, 253}, false, al, "al r3 pc 253", "al_r3_pc_253"},
871     {{al, r2, pc, 3}, false, al, "al r2 pc 3", "al_r2_pc_3"},
872     {{al, r3, pc, 177}, false, al, "al r3 pc 177", "al_r3_pc_177"},
873     {{al, r5, pc, 159}, false, al, "al r5 pc 159", "al_r5_pc_159"},
874     {{al, r0, pc, 110}, false, al, "al r0 pc 110", "al_r0_pc_110"},
875     {{al, r7, pc, 255}, false, al, "al r7 pc 255", "al_r7_pc_255"},
876     {{al, r5, pc, 9}, false, al, "al r5 pc 9", "al_r5_pc_9"},
877     {{al, r3, pc, 138}, false, al, "al r3 pc 138", "al_r3_pc_138"},
878     {{al, r0, pc, 10}, false, al, "al r0 pc 10", "al_r0_pc_10"},
879     {{al, r2, pc, 225}, false, al, "al r2 pc 225", "al_r2_pc_225"},
880     {{al, r3, pc, 70}, false, al, "al r3 pc 70", "al_r3_pc_70"},
881     {{al, r4, pc, 76}, false, al, "al r4 pc 76", "al_r4_pc_76"},
882     {{al, r2, pc, 105}, false, al, "al r2 pc 105", "al_r2_pc_105"},
883     {{al, r4, pc, 137}, false, al, "al r4 pc 137", "al_r4_pc_137"},
884     {{al, r4, pc, 5}, false, al, "al r4 pc 5", "al_r4_pc_5"},
885     {{al, r4, pc, 18}, false, al, "al r4 pc 18", "al_r4_pc_18"},
886     {{al, r5, pc, 174}, false, al, "al r5 pc 174", "al_r5_pc_174"},
887     {{al, r3, pc, 146}, false, al, "al r3 pc 146", "al_r3_pc_146"},
888     {{al, r1, pc, 201}, false, al, "al r1 pc 201", "al_r1_pc_201"},
889     {{al, r7, pc, 46}, false, al, "al r7 pc 46", "al_r7_pc_46"},
890     {{al, r4, pc, 37}, false, al, "al r4 pc 37", "al_r4_pc_37"},
891     {{al, r0, pc, 69}, false, al, "al r0 pc 69", "al_r0_pc_69"},
892     {{al, r2, pc, 188}, false, al, "al r2 pc 188", "al_r2_pc_188"},
893     {{al, r1, pc, 68}, false, al, "al r1 pc 68", "al_r1_pc_68"},
894     {{al, r3, pc, 3}, false, al, "al r3 pc 3", "al_r3_pc_3"},
895     {{al, r2, pc, 211}, false, al, "al r2 pc 211", "al_r2_pc_211"},
896     {{al, r3, pc, 137}, false, al, "al r3 pc 137", "al_r3_pc_137"},
897     {{al, r5, pc, 129}, false, al, "al r5 pc 129", "al_r5_pc_129"},
898     {{al, r3, pc, 241}, false, al, "al r3 pc 241", "al_r3_pc_241"},
899     {{al, r7, pc, 184}, false, al, "al r7 pc 184", "al_r7_pc_184"},
900     {{al, r6, pc, 89}, false, al, "al r6 pc 89", "al_r6_pc_89"},
901     {{al, r2, pc, 132}, false, al, "al r2 pc 132", "al_r2_pc_132"},
902     {{al, r2, pc, 246}, false, al, "al r2 pc 246", "al_r2_pc_246"},
903     {{al, r0, pc, 20}, false, al, "al r0 pc 20", "al_r0_pc_20"},
904     {{al, r4, pc, 224}, false, al, "al r4 pc 224", "al_r4_pc_224"},
905     {{al, r4, pc, 68}, false, al, "al r4 pc 68", "al_r4_pc_68"},
906     {{al, r1, pc, 19}, false, al, "al r1 pc 19", "al_r1_pc_19"},
907     {{al, r6, pc, 36}, false, al, "al r6 pc 36", "al_r6_pc_36"},
908     {{al, r1, pc, 52}, false, al, "al r1 pc 52", "al_r1_pc_52"},
909     {{al, r5, pc, 185}, false, al, "al r5 pc 185", "al_r5_pc_185"},
910     {{al, r3, pc, 118}, false, al, "al r3 pc 118", "al_r3_pc_118"},
911     {{al, r0, pc, 183}, false, al, "al r0 pc 183", "al_r0_pc_183"},
912     {{al, r7, pc, 50}, false, al, "al r7 pc 50", "al_r7_pc_50"},
913     {{al, r1, pc, 204}, false, al, "al r1 pc 204", "al_r1_pc_204"},
914     {{al, r2, pc, 25}, false, al, "al r2 pc 25", "al_r2_pc_25"},
915     {{al, r0, pc, 202}, false, al, "al r0 pc 202", "al_r0_pc_202"},
916     {{al, r6, pc, 186}, false, al, "al r6 pc 186", "al_r6_pc_186"},
917     {{al, r1, pc, 139}, false, al, "al r1 pc 139", "al_r1_pc_139"},
918     {{al, r5, pc, 148}, false, al, "al r5 pc 148", "al_r5_pc_148"},
919     {{al, r0, pc, 70}, false, al, "al r0 pc 70", "al_r0_pc_70"},
920     {{al, r0, pc, 101}, false, al, "al r0 pc 101", "al_r0_pc_101"},
921     {{al, r6, pc, 175}, false, al, "al r6 pc 175", "al_r6_pc_175"},
922     {{al, r7, pc, 253}, false, al, "al r7 pc 253", "al_r7_pc_253"},
923     {{al, r3, pc, 221}, false, al, "al r3 pc 221", "al_r3_pc_221"},
924     {{al, r4, pc, 19}, false, al, "al r4 pc 19", "al_r4_pc_19"},
925     {{al, r2, pc, 16}, false, al, "al r2 pc 16", "al_r2_pc_16"},
926     {{al, r2, pc, 74}, false, al, "al r2 pc 74", "al_r2_pc_74"},
927     {{al, r5, pc, 228}, false, al, "al r5 pc 228", "al_r5_pc_228"},
928     {{al, r5, pc, 251}, false, al, "al r5 pc 251", "al_r5_pc_251"},
929     {{al, r4, pc, 94}, false, al, "al r4 pc 94", "al_r4_pc_94"},
930     {{al, r5, pc, 48}, false, al, "al r5 pc 48", "al_r5_pc_48"},
931     {{al, r3, pc, 225}, false, al, "al r3 pc 225", "al_r3_pc_225"},
932     {{al, r2, pc, 247}, false, al, "al r2 pc 247", "al_r2_pc_247"},
933     {{al, r4, pc, 29}, false, al, "al r4 pc 29", "al_r4_pc_29"},
934     {{al, r7, pc, 89}, false, al, "al r7 pc 89", "al_r7_pc_89"},
935     {{al, r5, pc, 162}, false, al, "al r5 pc 162", "al_r5_pc_162"},
936     {{al, r6, pc, 104}, false, al, "al r6 pc 104", "al_r6_pc_104"},
937     {{al, r1, pc, 3}, false, al, "al r1 pc 3", "al_r1_pc_3"},
938     {{al, r6, pc, 229}, false, al, "al r6 pc 229", "al_r6_pc_229"},
939     {{al, r5, pc, 232}, false, al, "al r5 pc 232", "al_r5_pc_232"},
940     {{al, r1, pc, 94}, false, al, "al r1 pc 94", "al_r1_pc_94"},
941     {{al, r7, pc, 28}, false, al, "al r7 pc 28", "al_r7_pc_28"},
942     {{al, r6, pc, 206}, false, al, "al r6 pc 206", "al_r6_pc_206"},
943     {{al, r7, pc, 126}, false, al, "al r7 pc 126", "al_r7_pc_126"},
944     {{al, r4, pc, 109}, false, al, "al r4 pc 109", "al_r4_pc_109"},
945     {{al, r3, pc, 21}, false, al, "al r3 pc 21", "al_r3_pc_21"},
946     {{al, r5, pc, 227}, false, al, "al r5 pc 227", "al_r5_pc_227"},
947     {{al, r2, pc, 242}, false, al, "al r2 pc 242", "al_r2_pc_242"},
948     {{al, r3, pc, 51}, false, al, "al r3 pc 51", "al_r3_pc_51"},
949     {{al, r0, pc, 116}, false, al, "al r0 pc 116", "al_r0_pc_116"},
950     {{al, r7, pc, 84}, false, al, "al r7 pc 84", "al_r7_pc_84"},
951     {{al, r1, pc, 23}, false, al, "al r1 pc 23", "al_r1_pc_23"},
952     {{al, r3, pc, 192}, false, al, "al r3 pc 192", "al_r3_pc_192"},
953     {{al, r4, pc, 49}, false, al, "al r4 pc 49", "al_r4_pc_49"},
954     {{al, r2, pc, 222}, false, al, "al r2 pc 222", "al_r2_pc_222"},
955     {{al, r4, pc, 255}, false, al, "al r4 pc 255", "al_r4_pc_255"},
956     {{al, r3, pc, 55}, false, al, "al r3 pc 55", "al_r3_pc_55"},
957     {{al, r1, pc, 47}, false, al, "al r1 pc 47", "al_r1_pc_47"},
958     {{al, r7, pc, 141}, false, al, "al r7 pc 141", "al_r7_pc_141"},
959     {{al, r5, pc, 252}, false, al, "al r5 pc 252", "al_r5_pc_252"},
960     {{al, r0, pc, 62}, false, al, "al r0 pc 62", "al_r0_pc_62"},
961     {{al, r7, pc, 185}, false, al, "al r7 pc 185", "al_r7_pc_185"},
962     {{al, r0, pc, 194}, false, al, "al r0 pc 194", "al_r0_pc_194"},
963     {{al, r4, pc, 107}, false, al, "al r4 pc 107", "al_r4_pc_107"},
964     {{al, r5, pc, 100}, false, al, "al r5 pc 100", "al_r5_pc_100"},
965     {{al, r3, pc, 48}, false, al, "al r3 pc 48", "al_r3_pc_48"},
966     {{al, r7, pc, 118}, false, al, "al r7 pc 118", "al_r7_pc_118"},
967     {{al, r5, pc, 210}, false, al, "al r5 pc 210", "al_r5_pc_210"},
968     {{al, r7, pc, 178}, false, al, "al r7 pc 178", "al_r7_pc_178"},
969     {{al, r0, pc, 78}, false, al, "al r0 pc 78", "al_r0_pc_78"},
970     {{al, r7, pc, 15}, false, al, "al r7 pc 15", "al_r7_pc_15"},
971     {{al, r1, pc, 177}, false, al, "al r1 pc 177", "al_r1_pc_177"},
972     {{al, r6, pc, 208}, false, al, "al r6 pc 208", "al_r6_pc_208"},
973     {{al, r2, pc, 88}, false, al, "al r2 pc 88", "al_r2_pc_88"},
974     {{al, r4, pc, 241}, false, al, "al r4 pc 241", "al_r4_pc_241"},
975     {{al, r1, pc, 119}, false, al, "al r1 pc 119", "al_r1_pc_119"},
976     {{al, r6, pc, 143}, false, al, "al r6 pc 143", "al_r6_pc_143"},
977     {{al, r6, pc, 112}, false, al, "al r6 pc 112", "al_r6_pc_112"},
978     {{al, r5, pc, 96}, false, al, "al r5 pc 96", "al_r5_pc_96"},
979     {{al, r5, pc, 74}, false, al, "al r5 pc 74", "al_r5_pc_74"},
980     {{al, r6, pc, 84}, false, al, "al r6 pc 84", "al_r6_pc_84"},
981     {{al, r7, pc, 234}, false, al, "al r7 pc 234", "al_r7_pc_234"},
982     {{al, r7, pc, 211}, false, al, "al r7 pc 211", "al_r7_pc_211"},
983     {{al, r6, pc, 74}, false, al, "al r6 pc 74", "al_r6_pc_74"},
984     {{al, r4, pc, 36}, false, al, "al r4 pc 36", "al_r4_pc_36"},
985     {{al, r6, pc, 26}, false, al, "al r6 pc 26", "al_r6_pc_26"},
986     {{al, r5, pc, 133}, false, al, "al r5 pc 133", "al_r5_pc_133"},
987     {{al, r7, pc, 216}, false, al, "al r7 pc 216", "al_r7_pc_216"},
988     {{al, r4, pc, 159}, false, al, "al r4 pc 159", "al_r4_pc_159"},
989     {{al, r2, pc, 0}, false, al, "al r2 pc 0", "al_r2_pc_0"},
990     {{al, r6, pc, 172}, false, al, "al r6 pc 172", "al_r6_pc_172"},
991     {{al, r6, pc, 80}, false, al, "al r6 pc 80", "al_r6_pc_80"},
992     {{al, r4, pc, 250}, false, al, "al r4 pc 250", "al_r4_pc_250"},
993     {{al, r0, pc, 163}, false, al, "al r0 pc 163", "al_r0_pc_163"},
994     {{al, r6, pc, 190}, false, al, "al r6 pc 190", "al_r6_pc_190"},
995     {{al, r1, pc, 17}, false, al, "al r1 pc 17", "al_r1_pc_17"},
996     {{al, r5, pc, 238}, false, al, "al r5 pc 238", "al_r5_pc_238"},
997     {{al, r4, pc, 231}, false, al, "al r4 pc 231", "al_r4_pc_231"},
998     {{al, r3, pc, 197}, false, al, "al r3 pc 197", "al_r3_pc_197"},
999     {{al, r5, pc, 167}, false, al, "al r5 pc 167", "al_r5_pc_167"},
1000     {{al, r3, pc, 36}, false, al, "al r3 pc 36", "al_r3_pc_36"},
1001     {{al, r3, pc, 110}, false, al, "al r3 pc 110", "al_r3_pc_110"},
1002     {{al, r7, pc, 157}, false, al, "al r7 pc 157", "al_r7_pc_157"},
1003     {{al, r0, pc, 160}, false, al, "al r0 pc 160", "al_r0_pc_160"},
1004     {{al, r1, pc, 187}, false, al, "al r1 pc 187", "al_r1_pc_187"},
1005     {{al, r6, pc, 213}, false, al, "al r6 pc 213", "al_r6_pc_213"},
1006     {{al, r1, pc, 175}, false, al, "al r1 pc 175", "al_r1_pc_175"},
1007     {{al, r1, pc, 58}, false, al, "al r1 pc 58", "al_r1_pc_58"},
1008     {{al, r1, pc, 30}, false, al, "al r1 pc 30", "al_r1_pc_30"},
1009     {{al, r3, pc, 234}, false, al, "al r3 pc 234", "al_r3_pc_234"},
1010     {{al, r4, pc, 129}, false, al, "al r4 pc 129", "al_r4_pc_129"},
1011     {{al, r0, pc, 49}, false, al, "al r0 pc 49", "al_r0_pc_49"},
1012     {{al, r6, pc, 140}, false, al, "al r6 pc 140", "al_r6_pc_140"},
1013     {{al, r4, pc, 64}, false, al, "al r4 pc 64", "al_r4_pc_64"},
1014     {{al, r1, pc, 250}, false, al, "al r1 pc 250", "al_r1_pc_250"},
1015     {{al, r3, pc, 233}, false, al, "al r3 pc 233", "al_r3_pc_233"},
1016     {{al, r6, pc, 194}, false, al, "al r6 pc 194", "al_r6_pc_194"},
1017     {{al, r7, pc, 245}, false, al, "al r7 pc 245", "al_r7_pc_245"},
1018     {{al, r1, pc, 200}, false, al, "al r1 pc 200", "al_r1_pc_200"},
1019     {{al, r4, pc, 175}, false, al, "al r4 pc 175", "al_r4_pc_175"},
1020     {{al, r3, pc, 68}, false, al, "al r3 pc 68", "al_r3_pc_68"},
1021     {{al, r0, pc, 221}, false, al, "al r0 pc 221", "al_r0_pc_221"},
1022     {{al, r7, pc, 130}, false, al, "al r7 pc 130", "al_r7_pc_130"},
1023     {{al, r2, pc, 187}, false, al, "al r2 pc 187", "al_r2_pc_187"},
1024     {{al, r2, pc, 159}, false, al, "al r2 pc 159", "al_r2_pc_159"},
1025     {{al, r1, pc, 210}, false, al, "al r1 pc 210", "al_r1_pc_210"},
1026     {{al, r3, pc, 141}, false, al, "al r3 pc 141", "al_r3_pc_141"},
1027     {{al, r2, pc, 148}, false, al, "al r2 pc 148", "al_r2_pc_148"},
1028     {{al, r7, pc, 26}, false, al, "al r7 pc 26", "al_r7_pc_26"},
1029     {{al, r6, pc, 153}, false, al, "al r6 pc 153", "al_r6_pc_153"},
1030     {{al, r2, pc, 252}, false, al, "al r2 pc 252", "al_r2_pc_252"},
1031     {{al, r6, pc, 101}, false, al, "al r6 pc 101", "al_r6_pc_101"},
1032     {{al, r3, pc, 128}, false, al, "al r3 pc 128", "al_r3_pc_128"},
1033     {{al, r2, pc, 69}, false, al, "al r2 pc 69", "al_r2_pc_69"},
1034     {{al, r2, pc, 208}, false, al, "al r2 pc 208", "al_r2_pc_208"},
1035     {{al, r1, pc, 199}, false, al, "al r1 pc 199", "al_r1_pc_199"},
1036     {{al, r7, pc, 202}, false, al, "al r7 pc 202", "al_r7_pc_202"},
1037     {{al, r5, pc, 16}, false, al, "al r5 pc 16", "al_r5_pc_16"},
1038     {{al, r7, pc, 172}, false, al, "al r7 pc 172", "al_r7_pc_172"},
1039     {{al, r3, pc, 205}, false, al, "al r3 pc 205", "al_r3_pc_205"},
1040     {{al, r1, pc, 111}, false, al, "al r1 pc 111", "al_r1_pc_111"},
1041     {{al, r3, pc, 163}, false, al, "al r3 pc 163", "al_r3_pc_163"},
1042     {{al, r7, pc, 217}, false, al, "al r7 pc 217", "al_r7_pc_217"},
1043     {{al, r1, pc, 254}, false, al, "al r1 pc 254", "al_r1_pc_254"},
1044     {{al, r2, pc, 117}, false, al, "al r2 pc 117", "al_r2_pc_117"},
1045     {{al, r0, pc, 188}, false, al, "al r0 pc 188", "al_r0_pc_188"},
1046     {{al, r5, pc, 209}, false, al, "al r5 pc 209", "al_r5_pc_209"},
1047     {{al, r4, pc, 13}, false, al, "al r4 pc 13", "al_r4_pc_13"},
1048     {{al, r7, pc, 165}, false, al, "al r7 pc 165", "al_r7_pc_165"},
1049     {{al, r4, pc, 172}, false, al, "al r4 pc 172", "al_r4_pc_172"},
1050     {{al, r3, pc, 106}, false, al, "al r3 pc 106", "al_r3_pc_106"},
1051     {{al, r0, pc, 201}, false, al, "al r0 pc 201", "al_r0_pc_201"},
1052     {{al, r4, pc, 7}, false, al, "al r4 pc 7", "al_r4_pc_7"},
1053     {{al, r1, pc, 197}, false, al, "al r1 pc 197", "al_r1_pc_197"},
1054     {{al, r4, pc, 204}, false, al, "al r4 pc 204", "al_r4_pc_204"},
1055     {{al, r7, pc, 64}, false, al, "al r7 pc 64", "al_r7_pc_64"},
1056     {{al, r3, pc, 20}, false, al, "al r3 pc 20", "al_r3_pc_20"},
1057     {{al, r6, pc, 12}, false, al, "al r6 pc 12", "al_r6_pc_12"},
1058     {{al, r1, pc, 193}, false, al, "al r1 pc 193", "al_r1_pc_193"},
1059     {{al, r6, pc, 156}, false, al, "al r6 pc 156", "al_r6_pc_156"},
1060     {{al, r7, pc, 166}, false, al, "al r7 pc 166", "al_r7_pc_166"},
1061     {{al, r5, pc, 154}, false, al, "al r5 pc 154", "al_r5_pc_154"},
1062     {{al, r3, pc, 144}, false, al, "al r3 pc 144", "al_r3_pc_144"},
1063     {{al, r0, pc, 21}, false, al, "al r0 pc 21", "al_r0_pc_21"},
1064     {{al, r0, pc, 128}, false, al, "al r0 pc 128", "al_r0_pc_128"},
1065     {{al, r6, pc, 163}, false, al, "al r6 pc 163", "al_r6_pc_163"},
1066     {{al, r2, pc, 216}, false, al, "al r2 pc 216", "al_r2_pc_216"},
1067     {{al, r3, pc, 122}, false, al, "al r3 pc 122", "al_r3_pc_122"},
1068     {{al, r5, pc, 81}, false, al, "al r5 pc 81", "al_r5_pc_81"},
1069     {{al, r4, pc, 31}, false, al, "al r4 pc 31", "al_r4_pc_31"},
1070     {{al, r1, pc, 2}, false, al, "al r1 pc 2", "al_r1_pc_2"},
1071     {{al, r6, pc, 111}, false, al, "al r6 pc 111", "al_r6_pc_111"},
1072     {{al, r3, pc, 247}, false, al, "al r3 pc 247", "al_r3_pc_247"},
1073     {{al, r1, pc, 62}, false, al, "al r1 pc 62", "al_r1_pc_62"},
1074     {{al, r2, pc, 82}, false, al, "al r2 pc 82", "al_r2_pc_82"},
1075     {{al, r4, pc, 43}, false, al, "al r4 pc 43", "al_r4_pc_43"},
1076     {{al, r1, pc, 25}, false, al, "al r1 pc 25", "al_r1_pc_25"},
1077     {{al, r0, pc, 35}, false, al, "al r0 pc 35", "al_r0_pc_35"},
1078     {{al, r3, pc, 204}, false, al, "al r3 pc 204", "al_r3_pc_204"},
1079     {{al, r5, pc, 0}, false, al, "al r5 pc 0", "al_r5_pc_0"},
1080     {{al, r0, pc, 100}, false, al, "al r0 pc 100", "al_r0_pc_100"},
1081     {{al, r5, pc, 140}, false, al, "al r5 pc 140", "al_r5_pc_140"},
1082     {{al, r0, pc, 252}, false, al, "al r0 pc 252", "al_r0_pc_252"},
1083     {{al, r5, pc, 117}, false, al, "al r5 pc 117", "al_r5_pc_117"},
1084     {{al, r2, pc, 131}, false, al, "al r2 pc 131", "al_r2_pc_131"},
1085     {{al, r1, pc, 99}, false, al, "al r1 pc 99", "al_r1_pc_99"},
1086     {{al, r0, pc, 189}, false, al, "al r0 pc 189", "al_r0_pc_189"},
1087     {{al, r1, pc, 18}, false, al, "al r1 pc 18", "al_r1_pc_18"},
1088     {{al, r7, pc, 205}, false, al, "al r7 pc 205", "al_r7_pc_205"},
1089     {{al, r0, pc, 213}, false, al, "al r0 pc 213", "al_r0_pc_213"},
1090     {{al, r5, pc, 249}, false, al, "al r5 pc 249", "al_r5_pc_249"},
1091     {{al, r3, pc, 57}, false, al, "al r3 pc 57", "al_r3_pc_57"},
1092     {{al, r2, pc, 38}, false, al, "al r2 pc 38", "al_r2_pc_38"},
1093     {{al, r6, pc, 106}, false, al, "al r6 pc 106", "al_r6_pc_106"},
1094     {{al, r5, pc, 224}, false, al, "al r5 pc 224", "al_r5_pc_224"}};
1095
1096// These headers each contain an array of `TestResult` with the reference output
1097// values. The reference arrays are names `kReference{mnemonic}`.
1098#include "aarch32/traces/assembler-cond-rd-pc-operand-imm8-add-t32.h"
1099
1100
1101// The maximum number of errors to report in detail for each test.
1102const unsigned kErrorReportLimit = 8;
1103
1104typedef void (MacroAssembler::*Fn)(Condition cond,
1105                                   Register rd,
1106                                   Register rn,
1107                                   const Operand& op);
1108
1109void TestHelper(Fn instruction,
1110                const char* mnemonic,
1111                const TestResult reference[]) {
1112  unsigned total_error_count = 0;
1113  MacroAssembler masm(BUF_SIZE);
1114
1115  masm.UseT32();
1116
1117  for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
1118    // Values to pass to the macro-assembler.
1119    Condition cond = kTests[i].operands.cond;
1120    Register rd = kTests[i].operands.rd;
1121    Register rn = kTests[i].operands.rn;
1122    int32_t immediate = kTests[i].operands.immediate;
1123    Operand op(immediate);
1124
1125    int32_t start = masm.GetCursorOffset();
1126    {
1127      // We never generate more that 4 bytes, as IT instructions are only
1128      // allowed for narrow encodings.
1129      ExactAssemblyScope scope(&masm, 4, ExactAssemblyScope::kMaximumSize);
1130      if (kTests[i].in_it_block) {
1131        masm.it(kTests[i].it_condition);
1132      }
1133      (masm.*instruction)(cond, rd, rn, op);
1134    }
1135    int32_t end = masm.GetCursorOffset();
1136
1137    const byte* result_ptr =
1138        masm.GetBuffer()->GetOffsetAddress<const byte*>(start);
1139    VIXL_ASSERT(start < end);
1140    uint32_t result_size = end - start;
1141
1142    if (Test::generate_test_trace()) {
1143      // Print the result bytes.
1144      printf("const byte kInstruction_%s_%s[] = {\n",
1145             mnemonic,
1146             kTests[i].identifier);
1147      for (uint32_t j = 0; j < result_size; j++) {
1148        if (j == 0) {
1149          printf("  0x%02" PRIx8, result_ptr[j]);
1150        } else {
1151          printf(", 0x%02" PRIx8, result_ptr[j]);
1152        }
1153      }
1154      // This comment is meant to be used by external tools to validate
1155      // the encoding. We can parse the comment to figure out what
1156      // instruction this corresponds to.
1157      if (kTests[i].in_it_block) {
1158        printf(" // It %s; %s %s\n};\n",
1159               kTests[i].it_condition.GetName(),
1160               mnemonic,
1161               kTests[i].operands_description);
1162      } else {
1163        printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description);
1164      }
1165    } else {
1166      // Check we've emitted the exact same encoding as present in the
1167      // trace file. Only print up to `kErrorReportLimit` errors.
1168      if (((result_size != reference[i].size) ||
1169           (memcmp(result_ptr, reference[i].encoding, reference[i].size) !=
1170            0)) &&
1171          (++total_error_count <= kErrorReportLimit)) {
1172        printf("Error when testing \"%s\" with operands \"%s\":\n",
1173               mnemonic,
1174               kTests[i].operands_description);
1175        printf("  Expected: ");
1176        for (uint32_t j = 0; j < reference[i].size; j++) {
1177          if (j == 0) {
1178            printf("0x%02" PRIx8, reference[i].encoding[j]);
1179          } else {
1180            printf(", 0x%02" PRIx8, reference[i].encoding[j]);
1181          }
1182        }
1183        printf("\n");
1184        printf("  Found:    ");
1185        for (uint32_t j = 0; j < result_size; j++) {
1186          if (j == 0) {
1187            printf("0x%02" PRIx8, result_ptr[j]);
1188          } else {
1189            printf(", 0x%02" PRIx8, result_ptr[j]);
1190          }
1191        }
1192        printf("\n");
1193      }
1194    }
1195  }
1196
1197  masm.FinalizeCode();
1198
1199  if (Test::generate_test_trace()) {
1200    // Finalize the trace file by writing the final `TestResult` array
1201    // which links all generated instruction encodings.
1202    printf("const TestResult kReference%s[] = {\n", mnemonic);
1203    for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
1204      printf("  {\n");
1205      printf("    ARRAY_SIZE(kInstruction_%s_%s),\n",
1206             mnemonic,
1207             kTests[i].identifier);
1208      printf("    kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier);
1209      printf("  },\n");
1210    }
1211    printf("};\n");
1212  } else {
1213    if (total_error_count > kErrorReportLimit) {
1214      printf("%u other errors follow.\n",
1215             total_error_count - kErrorReportLimit);
1216    }
1217    // Crash if the test failed.
1218    VIXL_CHECK(total_error_count == 0);
1219  }
1220}
1221
1222// Instantiate tests for each instruction in the list.
1223#define TEST(mnemonic)                                                        \
1224  void Test_##mnemonic() {                                                    \
1225    TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic);   \
1226  }                                                                           \
1227  Test test_##mnemonic("AARCH32_ASSEMBLER_COND_RD_PC_OPERAND_IMM8_" #mnemonic \
1228                       "_T32",                                                \
1229                       &Test_##mnemonic);
1230FOREACH_INSTRUCTION(TEST)
1231#undef TEST
1232
1233}  // namespace
1234#endif
1235
1236}  // namespace aarch32
1237}  // namespace vixl
1238