1 // Copyright 2016, VIXL authors
2 // All rights reserved.
3 //
4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are met:
6 //
7 // * Redistributions of source code must retain the above copyright notice,
8 // this list of conditions and the following disclaimer.
9 // * Redistributions in binary form must reproduce the above copyright notice,
10 // this list of conditions and the following disclaimer in the documentation
11 // and/or other materials provided with the distribution.
12 // * Neither the name of ARM Limited nor the names of its contributors may be
13 // used to endorse or promote products derived from this software without
14 // specific prior written permission.
15 //
16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
17 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
20 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
27
28 // -----------------------------------------------------------------------------
29 // This file is auto generated from the
30 // test/aarch32/config/template-assembler-aarch32.cc.in template file using
31 // tools/generate_tests.py.
32 //
33 // PLEASE DO NOT EDIT.
34 // -----------------------------------------------------------------------------
35
36
37 #include "test-runner.h"
38
39 #include "test-utils.h"
40 #include "test-utils-aarch32.h"
41
42 #include "aarch32/assembler-aarch32.h"
43 #include "aarch32/macro-assembler-aarch32.h"
44
45 #define BUF_SIZE (4096)
46
47 namespace vixl {
48 namespace aarch32 {
49
50 // List of instruction mnemonics.
51 #define FOREACH_INSTRUCTION(M) \
52 M(cmn) \
53 M(cmp) \
54 M(mov) \
55 M(movs) \
56 M(mvn) \
57 M(mvns) \
58 M(teq) \
59 M(tst)
60
61
62 // The following definitions are defined again in each generated test, therefore
63 // we need to place them in an anomymous namespace. It expresses that they are
64 // local to this file only, and the compiler is not allowed to share these types
65 // across test files during template instantiation. Specifically, `Operands` has
66 // various layouts across generated tests so it absolutely cannot be shared.
67
68 #ifdef VIXL_INCLUDE_TARGET_A32
69 namespace {
70
71 // Values to be passed to the assembler to produce the instruction under test.
72 struct Operands {
73 Condition cond;
74 Register rd;
75 Register rn;
76 ShiftType shift;
77 uint32_t amount;
78 };
79
80 // This structure contains all data needed to test one specific
81 // instruction.
82 struct TestData {
83 // The `operands` field represents what to pass to the assembler to
84 // produce the instruction.
85 Operands operands;
86 // True if we need to generate an IT instruction for this test to be valid.
87 bool in_it_block;
88 // The condition to give the IT instruction, this will be set to "al" by
89 // default.
90 Condition it_condition;
91 // Description of the operands, used for error reporting.
92 const char* operands_description;
93 // Unique identifier, used for generating traces.
94 const char* identifier;
95 };
96
97 struct TestResult {
98 size_t size;
99 const byte* encoding;
100 };
101
102 // Each element of this array produce one instruction encoding.
103 const TestData kTests[] = {
104 {{vc, r5, r5, ROR, 10}, false, al, "vc r5 r5 ROR 10", "vc_r5_r5_ROR_10"},
105 {{ne, r3, r4, ROR, 17}, false, al, "ne r3 r4 ROR 17", "ne_r3_r4_ROR_17"},
106 {{cs, r9, r10, ROR, 16}, false, al, "cs r9 r10 ROR 16", "cs_r9_r10_ROR_16"},
107 {{lt, r0, r2, ROR, 29}, false, al, "lt r0 r2 ROR 29", "lt_r0_r2_ROR_29"},
108 {{al, r11, r2, ROR, 23}, false, al, "al r11 r2 ROR 23", "al_r11_r2_ROR_23"},
109 {{hi, r7, r1, LSL, 29}, false, al, "hi r7 r1 LSL 29", "hi_r7_r1_LSL_29"},
110 {{eq, r5, r3, ROR, 21}, false, al, "eq r5 r3 ROR 21", "eq_r5_r3_ROR_21"},
111 {{pl, r2, r10, ROR, 13}, false, al, "pl r2 r10 ROR 13", "pl_r2_r10_ROR_13"},
112 {{lt, r1, r1, LSL, 23}, false, al, "lt r1 r1 LSL 23", "lt_r1_r1_LSL_23"},
113 {{mi, r11, r10, ROR, 31},
114 false,
115 al,
116 "mi r11 r10 ROR 31",
117 "mi_r11_r10_ROR_31"},
118 {{cs, r3, r5, LSL, 8}, false, al, "cs r3 r5 LSL 8", "cs_r3_r5_LSL_8"},
119 {{gt, r0, r13, LSL, 23}, false, al, "gt r0 r13 LSL 23", "gt_r0_r13_LSL_23"},
120 {{eq, r10, r11, ROR, 7}, false, al, "eq r10 r11 ROR 7", "eq_r10_r11_ROR_7"},
121 {{vs, r4, r3, ROR, 18}, false, al, "vs r4 r3 ROR 18", "vs_r4_r3_ROR_18"},
122 {{ge, r6, r0, ROR, 16}, false, al, "ge r6 r0 ROR 16", "ge_r6_r0_ROR_16"},
123 {{ls, r3, r5, LSL, 20}, false, al, "ls r3 r5 LSL 20", "ls_r3_r5_LSL_20"},
124 {{ge, r10, r13, ROR, 31},
125 false,
126 al,
127 "ge r10 r13 ROR 31",
128 "ge_r10_r13_ROR_31"},
129 {{cc, r9, r1, ROR, 8}, false, al, "cc r9 r1 ROR 8", "cc_r9_r1_ROR_8"},
130 {{mi, r5, r5, LSL, 16}, false, al, "mi r5 r5 LSL 16", "mi_r5_r5_LSL_16"},
131 {{eq, r14, r6, LSL, 4}, false, al, "eq r14 r6 LSL 4", "eq_r14_r6_LSL_4"},
132 {{lt, r10, r5, ROR, 16}, false, al, "lt r10 r5 ROR 16", "lt_r10_r5_ROR_16"},
133 {{vs, r3, r6, LSL, 23}, false, al, "vs r3 r6 LSL 23", "vs_r3_r6_LSL_23"},
134 {{ls, r0, r6, LSL, 30}, false, al, "ls r0 r6 LSL 30", "ls_r0_r6_LSL_30"},
135 {{vc, r0, r5, ROR, 19}, false, al, "vc r0 r5 ROR 19", "vc_r0_r5_ROR_19"},
136 {{ne, r6, r0, ROR, 19}, false, al, "ne r6 r0 ROR 19", "ne_r6_r0_ROR_19"},
137 {{vc, r10, r13, LSL, 7}, false, al, "vc r10 r13 LSL 7", "vc_r10_r13_LSL_7"},
138 {{pl, r9, r13, ROR, 9}, false, al, "pl r9 r13 ROR 9", "pl_r9_r13_ROR_9"},
139 {{vs, r6, r13, ROR, 6}, false, al, "vs r6 r13 ROR 6", "vs_r6_r13_ROR_6"},
140 {{mi, r12, r0, ROR, 11}, false, al, "mi r12 r0 ROR 11", "mi_r12_r0_ROR_11"},
141 {{vs, r8, r12, LSL, 9}, false, al, "vs r8 r12 LSL 9", "vs_r8_r12_LSL_9"},
142 {{ls, r2, r3, LSL, 10}, false, al, "ls r2 r3 LSL 10", "ls_r2_r3_LSL_10"},
143 {{gt, r14, r9, ROR, 18}, false, al, "gt r14 r9 ROR 18", "gt_r14_r9_ROR_18"},
144 {{pl, r7, r1, LSL, 5}, false, al, "pl r7 r1 LSL 5", "pl_r7_r1_LSL_5"},
145 {{cc, r3, r14, ROR, 5}, false, al, "cc r3 r14 ROR 5", "cc_r3_r14_ROR_5"},
146 {{vc, r3, r10, LSL, 13}, false, al, "vc r3 r10 LSL 13", "vc_r3_r10_LSL_13"},
147 {{mi, r13, r12, LSL, 25},
148 false,
149 al,
150 "mi r13 r12 LSL 25",
151 "mi_r13_r12_LSL_25"},
152 {{mi, r12, r7, LSL, 17}, false, al, "mi r12 r7 LSL 17", "mi_r12_r7_LSL_17"},
153 {{al, r10, r14, LSL, 18},
154 false,
155 al,
156 "al r10 r14 LSL 18",
157 "al_r10_r14_LSL_18"},
158 {{cc, r7, r4, ROR, 30}, false, al, "cc r7 r4 ROR 30", "cc_r7_r4_ROR_30"},
159 {{al, r0, r1, ROR, 8}, false, al, "al r0 r1 ROR 8", "al_r0_r1_ROR_8"},
160 {{eq, r5, r7, LSL, 16}, false, al, "eq r5 r7 LSL 16", "eq_r5_r7_LSL_16"},
161 {{cc, r1, r2, ROR, 25}, false, al, "cc r1 r2 ROR 25", "cc_r1_r2_ROR_25"},
162 {{gt, r9, r6, LSL, 18}, false, al, "gt r9 r6 LSL 18", "gt_r9_r6_LSL_18"},
163 {{lt, r4, r6, LSL, 25}, false, al, "lt r4 r6 LSL 25", "lt_r4_r6_LSL_25"},
164 {{ge, r9, r3, ROR, 4}, false, al, "ge r9 r3 ROR 4", "ge_r9_r3_ROR_4"},
165 {{le, r8, r7, LSL, 2}, false, al, "le r8 r7 LSL 2", "le_r8_r7_LSL_2"},
166 {{eq, r7, r2, LSL, 4}, false, al, "eq r7 r2 LSL 4", "eq_r7_r2_LSL_4"},
167 {{vc, r7, r11, ROR, 21}, false, al, "vc r7 r11 ROR 21", "vc_r7_r11_ROR_21"},
168 {{vc, r14, r14, LSL, 15},
169 false,
170 al,
171 "vc r14 r14 LSL 15",
172 "vc_r14_r14_LSL_15"},
173 {{vc, r10, r3, LSL, 5}, false, al, "vc r10 r3 LSL 5", "vc_r10_r3_LSL_5"},
174 {{vs, r6, r12, ROR, 15}, false, al, "vs r6 r12 ROR 15", "vs_r6_r12_ROR_15"},
175 {{ls, r6, r12, ROR, 3}, false, al, "ls r6 r12 ROR 3", "ls_r6_r12_ROR_3"},
176 {{vs, r12, r10, ROR, 17},
177 false,
178 al,
179 "vs r12 r10 ROR 17",
180 "vs_r12_r10_ROR_17"},
181 {{eq, r6, r13, ROR, 9}, false, al, "eq r6 r13 ROR 9", "eq_r6_r13_ROR_9"},
182 {{mi, r10, r9, ROR, 18}, false, al, "mi r10 r9 ROR 18", "mi_r10_r9_ROR_18"},
183 {{eq, r0, r7, LSL, 13}, false, al, "eq r0 r7 LSL 13", "eq_r0_r7_LSL_13"},
184 {{eq, r9, r13, ROR, 16}, false, al, "eq r9 r13 ROR 16", "eq_r9_r13_ROR_16"},
185 {{eq, r7, r9, ROR, 21}, false, al, "eq r7 r9 ROR 21", "eq_r7_r9_ROR_21"},
186 {{gt, r12, r6, ROR, 30}, false, al, "gt r12 r6 ROR 30", "gt_r12_r6_ROR_30"},
187 {{ge, r4, r8, ROR, 29}, false, al, "ge r4 r8 ROR 29", "ge_r4_r8_ROR_29"},
188 {{hi, r7, r9, LSL, 21}, false, al, "hi r7 r9 LSL 21", "hi_r7_r9_LSL_21"},
189 {{le, r3, r13, LSL, 10}, false, al, "le r3 r13 LSL 10", "le_r3_r13_LSL_10"},
190 {{gt, r9, r13, LSL, 18}, false, al, "gt r9 r13 LSL 18", "gt_r9_r13_LSL_18"},
191 {{pl, r3, r11, ROR, 20}, false, al, "pl r3 r11 ROR 20", "pl_r3_r11_ROR_20"},
192 {{le, r1, r3, LSL, 5}, false, al, "le r1 r3 LSL 5", "le_r1_r3_LSL_5"},
193 {{mi, r4, r6, LSL, 12}, false, al, "mi r4 r6 LSL 12", "mi_r4_r6_LSL_12"},
194 {{pl, r1, r5, ROR, 27}, false, al, "pl r1 r5 ROR 27", "pl_r1_r5_ROR_27"},
195 {{gt, r9, r5, LSL, 4}, false, al, "gt r9 r5 LSL 4", "gt_r9_r5_LSL_4"},
196 {{eq, r4, r8, LSL, 11}, false, al, "eq r4 r8 LSL 11", "eq_r4_r8_LSL_11"},
197 {{mi, r1, r8, ROR, 13}, false, al, "mi r1 r8 ROR 13", "mi_r1_r8_ROR_13"},
198 {{al, r7, r0, ROR, 20}, false, al, "al r7 r0 ROR 20", "al_r7_r0_ROR_20"},
199 {{vs, r5, r7, ROR, 28}, false, al, "vs r5 r7 ROR 28", "vs_r5_r7_ROR_28"},
200 {{cs, r0, r12, LSL, 31}, false, al, "cs r0 r12 LSL 31", "cs_r0_r12_LSL_31"},
201 {{gt, r11, r12, LSL, 25},
202 false,
203 al,
204 "gt r11 r12 LSL 25",
205 "gt_r11_r12_LSL_25"},
206 {{gt, r2, r13, ROR, 19}, false, al, "gt r2 r13 ROR 19", "gt_r2_r13_ROR_19"},
207 {{cs, r4, r7, ROR, 7}, false, al, "cs r4 r7 ROR 7", "cs_r4_r7_ROR_7"},
208 {{gt, r9, r8, ROR, 24}, false, al, "gt r9 r8 ROR 24", "gt_r9_r8_ROR_24"},
209 {{lt, r10, r2, ROR, 4}, false, al, "lt r10 r2 ROR 4", "lt_r10_r2_ROR_4"},
210 {{lt, r4, r2, ROR, 20}, false, al, "lt r4 r2 ROR 20", "lt_r4_r2_ROR_20"},
211 {{ge, r2, r0, LSL, 18}, false, al, "ge r2 r0 LSL 18", "ge_r2_r0_LSL_18"},
212 {{hi, r13, r14, LSL, 24},
213 false,
214 al,
215 "hi r13 r14 LSL 24",
216 "hi_r13_r14_LSL_24"},
217 {{al, r8, r0, ROR, 3}, false, al, "al r8 r0 ROR 3", "al_r8_r0_ROR_3"},
218 {{ne, r11, r2, LSL, 6}, false, al, "ne r11 r2 LSL 6", "ne_r11_r2_LSL_6"},
219 {{cs, r14, r1, LSL, 6}, false, al, "cs r14 r1 LSL 6", "cs_r14_r1_LSL_6"},
220 {{al, r13, r1, LSL, 12}, false, al, "al r13 r1 LSL 12", "al_r13_r1_LSL_12"},
221 {{ls, r14, r1, ROR, 7}, false, al, "ls r14 r1 ROR 7", "ls_r14_r1_ROR_7"},
222 {{cs, r11, r2, ROR, 1}, false, al, "cs r11 r2 ROR 1", "cs_r11_r2_ROR_1"},
223 {{al, r9, r1, ROR, 19}, false, al, "al r9 r1 ROR 19", "al_r9_r1_ROR_19"},
224 {{ls, r14, r9, ROR, 2}, false, al, "ls r14 r9 ROR 2", "ls_r14_r9_ROR_2"},
225 {{ne, r13, r2, ROR, 13}, false, al, "ne r13 r2 ROR 13", "ne_r13_r2_ROR_13"},
226 {{vs, r5, r1, LSL, 4}, false, al, "vs r5 r1 LSL 4", "vs_r5_r1_LSL_4"},
227 {{cc, r13, r5, ROR, 11}, false, al, "cc r13 r5 ROR 11", "cc_r13_r5_ROR_11"},
228 {{eq, r5, r1, ROR, 12}, false, al, "eq r5 r1 ROR 12", "eq_r5_r1_ROR_12"},
229 {{al, r9, r7, LSL, 16}, false, al, "al r9 r7 LSL 16", "al_r9_r7_LSL_16"},
230 {{eq, r9, r10, LSL, 20}, false, al, "eq r9 r10 LSL 20", "eq_r9_r10_LSL_20"},
231 {{eq, r4, r13, ROR, 3}, false, al, "eq r4 r13 ROR 3", "eq_r4_r13_ROR_3"},
232 {{cs, r14, r1, LSL, 18}, false, al, "cs r14 r1 LSL 18", "cs_r14_r1_LSL_18"},
233 {{cc, r5, r7, ROR, 1}, false, al, "cc r5 r7 ROR 1", "cc_r5_r7_ROR_1"},
234 {{mi, r5, r8, ROR, 30}, false, al, "mi r5 r8 ROR 30", "mi_r5_r8_ROR_30"},
235 {{eq, r8, r0, LSL, 4}, false, al, "eq r8 r0 LSL 4", "eq_r8_r0_LSL_4"},
236 {{mi, r2, r1, ROR, 30}, false, al, "mi r2 r1 ROR 30", "mi_r2_r1_ROR_30"},
237 {{vs, r7, r5, LSL, 29}, false, al, "vs r7 r5 LSL 29", "vs_r7_r5_LSL_29"},
238 {{le, r11, r5, ROR, 4}, false, al, "le r11 r5 ROR 4", "le_r11_r5_ROR_4"},
239 {{gt, r6, r8, LSL, 22}, false, al, "gt r6 r8 LSL 22", "gt_r6_r8_LSL_22"},
240 {{al, r13, r4, LSL, 8}, false, al, "al r13 r4 LSL 8", "al_r13_r4_LSL_8"},
241 {{lt, r4, r5, ROR, 22}, false, al, "lt r4 r5 ROR 22", "lt_r4_r5_ROR_22"},
242 {{mi, r1, r14, LSL, 12}, false, al, "mi r1 r14 LSL 12", "mi_r1_r14_LSL_12"},
243 {{gt, r4, r12, LSL, 8}, false, al, "gt r4 r12 LSL 8", "gt_r4_r12_LSL_8"},
244 {{gt, r1, r13, ROR, 15}, false, al, "gt r1 r13 ROR 15", "gt_r1_r13_ROR_15"},
245 {{lt, r14, r5, LSL, 23}, false, al, "lt r14 r5 LSL 23", "lt_r14_r5_LSL_23"},
246 {{ls, r2, r14, LSL, 21}, false, al, "ls r2 r14 LSL 21", "ls_r2_r14_LSL_21"},
247 {{vc, r12, r0, LSL, 12}, false, al, "vc r12 r0 LSL 12", "vc_r12_r0_LSL_12"},
248 {{al, r2, r1, ROR, 18}, false, al, "al r2 r1 ROR 18", "al_r2_r1_ROR_18"},
249 {{vc, r12, r5, ROR, 2}, false, al, "vc r12 r5 ROR 2", "vc_r12_r5_ROR_2"},
250 {{mi, r11, r9, LSL, 13}, false, al, "mi r11 r9 LSL 13", "mi_r11_r9_LSL_13"},
251 {{lt, r8, r12, ROR, 3}, false, al, "lt r8 r12 ROR 3", "lt_r8_r12_ROR_3"},
252 {{vs, r0, r2, ROR, 31}, false, al, "vs r0 r2 ROR 31", "vs_r0_r2_ROR_31"},
253 {{hi, r5, r5, ROR, 9}, false, al, "hi r5 r5 ROR 9", "hi_r5_r5_ROR_9"},
254 {{ne, r8, r0, LSL, 4}, false, al, "ne r8 r0 LSL 4", "ne_r8_r0_LSL_4"},
255 {{gt, r2, r4, LSL, 29}, false, al, "gt r2 r4 LSL 29", "gt_r2_r4_LSL_29"},
256 {{le, r11, r9, LSL, 28}, false, al, "le r11 r9 LSL 28", "le_r11_r9_LSL_28"},
257 {{ge, r13, r8, LSL, 26}, false, al, "ge r13 r8 LSL 26", "ge_r13_r8_LSL_26"},
258 {{gt, r5, r13, ROR, 25}, false, al, "gt r5 r13 ROR 25", "gt_r5_r13_ROR_25"},
259 {{cc, r9, r11, ROR, 28}, false, al, "cc r9 r11 ROR 28", "cc_r9_r11_ROR_28"},
260 {{vs, r12, r14, ROR, 18},
261 false,
262 al,
263 "vs r12 r14 ROR 18",
264 "vs_r12_r14_ROR_18"},
265 {{lt, r6, r11, ROR, 2}, false, al, "lt r6 r11 ROR 2", "lt_r6_r11_ROR_2"},
266 {{cs, r12, r6, LSL, 7}, false, al, "cs r12 r6 LSL 7", "cs_r12_r6_LSL_7"},
267 {{gt, r1, r5, LSL, 8}, false, al, "gt r1 r5 LSL 8", "gt_r1_r5_LSL_8"},
268 {{vc, r3, r9, ROR, 28}, false, al, "vc r3 r9 ROR 28", "vc_r3_r9_ROR_28"},
269 {{eq, r1, r6, ROR, 13}, false, al, "eq r1 r6 ROR 13", "eq_r1_r6_ROR_13"},
270 {{ge, r13, r0, LSL, 31}, false, al, "ge r13 r0 LSL 31", "ge_r13_r0_LSL_31"},
271 {{pl, r7, r10, ROR, 4}, false, al, "pl r7 r10 ROR 4", "pl_r7_r10_ROR_4"},
272 {{eq, r7, r4, ROR, 22}, false, al, "eq r7 r4 ROR 22", "eq_r7_r4_ROR_22"},
273 {{gt, r14, r12, LSL, 25},
274 false,
275 al,
276 "gt r14 r12 LSL 25",
277 "gt_r14_r12_LSL_25"},
278 {{eq, r2, r11, ROR, 22}, false, al, "eq r2 r11 ROR 22", "eq_r2_r11_ROR_22"},
279 {{ge, r4, r11, ROR, 17}, false, al, "ge r4 r11 ROR 17", "ge_r4_r11_ROR_17"},
280 {{hi, r1, r9, LSL, 12}, false, al, "hi r1 r9 LSL 12", "hi_r1_r9_LSL_12"},
281 {{mi, r2, r12, ROR, 6}, false, al, "mi r2 r12 ROR 6", "mi_r2_r12_ROR_6"},
282 {{vs, r6, r9, ROR, 15}, false, al, "vs r6 r9 ROR 15", "vs_r6_r9_ROR_15"},
283 {{mi, r6, r4, LSL, 27}, false, al, "mi r6 r4 LSL 27", "mi_r6_r4_LSL_27"},
284 {{vc, r5, r10, LSL, 7}, false, al, "vc r5 r10 LSL 7", "vc_r5_r10_LSL_7"},
285 {{ls, r4, r12, LSL, 6}, false, al, "ls r4 r12 LSL 6", "ls_r4_r12_LSL_6"},
286 {{mi, r11, r4, ROR, 11}, false, al, "mi r11 r4 ROR 11", "mi_r11_r4_ROR_11"},
287 {{le, r0, r14, ROR, 27}, false, al, "le r0 r14 ROR 27", "le_r0_r14_ROR_27"},
288 {{gt, r4, r9, ROR, 18}, false, al, "gt r4 r9 ROR 18", "gt_r4_r9_ROR_18"},
289 {{hi, r0, r3, ROR, 10}, false, al, "hi r0 r3 ROR 10", "hi_r0_r3_ROR_10"},
290 {{pl, r13, r3, ROR, 25}, false, al, "pl r13 r3 ROR 25", "pl_r13_r3_ROR_25"},
291 {{pl, r1, r14, ROR, 1}, false, al, "pl r1 r14 ROR 1", "pl_r1_r14_ROR_1"},
292 {{ls, r7, r7, ROR, 31}, false, al, "ls r7 r7 ROR 31", "ls_r7_r7_ROR_31"},
293 {{gt, r12, r11, LSL, 5}, false, al, "gt r12 r11 LSL 5", "gt_r12_r11_LSL_5"},
294 {{lt, r3, r10, LSL, 30}, false, al, "lt r3 r10 LSL 30", "lt_r3_r10_LSL_30"},
295 {{eq, r14, r3, ROR, 24}, false, al, "eq r14 r3 ROR 24", "eq_r14_r3_ROR_24"},
296 {{le, r14, r5, ROR, 18}, false, al, "le r14 r5 ROR 18", "le_r14_r5_ROR_18"},
297 {{vs, r4, r6, ROR, 9}, false, al, "vs r4 r6 ROR 9", "vs_r4_r6_ROR_9"},
298 {{vc, r3, r1, ROR, 25}, false, al, "vc r3 r1 ROR 25", "vc_r3_r1_ROR_25"},
299 {{vc, r8, r13, ROR, 18}, false, al, "vc r8 r13 ROR 18", "vc_r8_r13_ROR_18"},
300 {{ls, r7, r13, LSL, 28}, false, al, "ls r7 r13 LSL 28", "ls_r7_r13_LSL_28"},
301 {{vs, r6, r11, LSL, 18}, false, al, "vs r6 r11 LSL 18", "vs_r6_r11_LSL_18"},
302 {{lt, r7, r4, LSL, 22}, false, al, "lt r7 r4 LSL 22", "lt_r7_r4_LSL_22"},
303 {{pl, r4, r6, ROR, 2}, false, al, "pl r4 r6 ROR 2", "pl_r4_r6_ROR_2"},
304 {{ls, r2, r2, ROR, 20}, false, al, "ls r2 r2 ROR 20", "ls_r2_r2_ROR_20"},
305 {{ge, r8, r12, LSL, 31}, false, al, "ge r8 r12 LSL 31", "ge_r8_r12_LSL_31"},
306 {{cc, r9, r9, LSL, 26}, false, al, "cc r9 r9 LSL 26", "cc_r9_r9_LSL_26"},
307 {{hi, r13, r13, ROR, 22},
308 false,
309 al,
310 "hi r13 r13 ROR 22",
311 "hi_r13_r13_ROR_22"},
312 {{mi, r0, r13, ROR, 26}, false, al, "mi r0 r13 ROR 26", "mi_r0_r13_ROR_26"},
313 {{eq, r9, r11, LSL, 20}, false, al, "eq r9 r11 LSL 20", "eq_r9_r11_LSL_20"},
314 {{cs, r12, r12, LSL, 30},
315 false,
316 al,
317 "cs r12 r12 LSL 30",
318 "cs_r12_r12_LSL_30"},
319 {{mi, r9, r8, LSL, 17}, false, al, "mi r9 r8 LSL 17", "mi_r9_r8_LSL_17"},
320 {{cc, r0, r10, ROR, 28}, false, al, "cc r0 r10 ROR 28", "cc_r0_r10_ROR_28"},
321 {{lt, r3, r13, ROR, 19}, false, al, "lt r3 r13 ROR 19", "lt_r3_r13_ROR_19"},
322 {{ne, r14, r9, LSL, 22}, false, al, "ne r14 r9 LSL 22", "ne_r14_r9_LSL_22"},
323 {{ne, r8, r13, LSL, 24}, false, al, "ne r8 r13 LSL 24", "ne_r8_r13_LSL_24"},
324 {{eq, r9, r5, LSL, 17}, false, al, "eq r9 r5 LSL 17", "eq_r9_r5_LSL_17"},
325 {{al, r5, r10, LSL, 19}, false, al, "al r5 r10 LSL 19", "al_r5_r10_LSL_19"},
326 {{ge, r13, r13, LSL, 7}, false, al, "ge r13 r13 LSL 7", "ge_r13_r13_LSL_7"},
327 {{vc, r14, r4, LSL, 30}, false, al, "vc r14 r4 LSL 30", "vc_r14_r4_LSL_30"},
328 {{pl, r7, r12, LSL, 8}, false, al, "pl r7 r12 LSL 8", "pl_r7_r12_LSL_8"},
329 {{eq, r3, r6, LSL, 23}, false, al, "eq r3 r6 LSL 23", "eq_r3_r6_LSL_23"},
330 {{le, r2, r7, ROR, 1}, false, al, "le r2 r7 ROR 1", "le_r2_r7_ROR_1"},
331 {{al, r0, r8, LSL, 25}, false, al, "al r0 r8 LSL 25", "al_r0_r8_LSL_25"},
332 {{le, r2, r8, LSL, 25}, false, al, "le r2 r8 LSL 25", "le_r2_r8_LSL_25"},
333 {{ge, r5, r4, ROR, 7}, false, al, "ge r5 r4 ROR 7", "ge_r5_r4_ROR_7"},
334 {{vc, r1, r13, LSL, 13}, false, al, "vc r1 r13 LSL 13", "vc_r1_r13_LSL_13"},
335 {{ge, r5, r11, ROR, 23}, false, al, "ge r5 r11 ROR 23", "ge_r5_r11_ROR_23"},
336 {{eq, r13, r0, ROR, 29}, false, al, "eq r13 r0 ROR 29", "eq_r13_r0_ROR_29"},
337 {{vc, r2, r14, LSL, 28}, false, al, "vc r2 r14 LSL 28", "vc_r2_r14_LSL_28"},
338 {{lt, r14, r7, LSL, 28}, false, al, "lt r14 r7 LSL 28", "lt_r14_r7_LSL_28"},
339 {{gt, r2, r6, ROR, 20}, false, al, "gt r2 r6 ROR 20", "gt_r2_r6_ROR_20"},
340 {{pl, r10, r12, ROR, 3}, false, al, "pl r10 r12 ROR 3", "pl_r10_r12_ROR_3"},
341 {{vc, r6, r3, ROR, 3}, false, al, "vc r6 r3 ROR 3", "vc_r6_r3_ROR_3"},
342 {{cc, r11, r12, LSL, 28},
343 false,
344 al,
345 "cc r11 r12 LSL 28",
346 "cc_r11_r12_LSL_28"},
347 {{cs, r7, r3, LSL, 11}, false, al, "cs r7 r3 LSL 11", "cs_r7_r3_LSL_11"},
348 {{mi, r2, r7, ROR, 1}, false, al, "mi r2 r7 ROR 1", "mi_r2_r7_ROR_1"},
349 {{vc, r1, r4, ROR, 15}, false, al, "vc r1 r4 ROR 15", "vc_r1_r4_ROR_15"},
350 {{le, r11, r11, ROR, 5}, false, al, "le r11 r11 ROR 5", "le_r11_r11_ROR_5"},
351 {{vc, r9, r2, LSL, 10}, false, al, "vc r9 r2 LSL 10", "vc_r9_r2_LSL_10"},
352 {{hi, r2, r10, LSL, 17}, false, al, "hi r2 r10 LSL 17", "hi_r2_r10_LSL_17"},
353 {{al, r11, r4, ROR, 13}, false, al, "al r11 r4 ROR 13", "al_r11_r4_ROR_13"},
354 {{le, r2, r14, LSL, 20}, false, al, "le r2 r14 LSL 20", "le_r2_r14_LSL_20"},
355 {{cc, r7, r9, LSL, 3}, false, al, "cc r7 r9 LSL 3", "cc_r7_r9_LSL_3"},
356 {{hi, r11, r4, LSL, 14}, false, al, "hi r11 r4 LSL 14", "hi_r11_r4_LSL_14"},
357 {{gt, r14, r7, LSL, 24}, false, al, "gt r14 r7 LSL 24", "gt_r14_r7_LSL_24"},
358 {{ne, r9, r0, ROR, 25}, false, al, "ne r9 r0 ROR 25", "ne_r9_r0_ROR_25"},
359 {{pl, r13, r2, LSL, 4}, false, al, "pl r13 r2 LSL 4", "pl_r13_r2_LSL_4"},
360 {{lt, r1, r14, LSL, 15}, false, al, "lt r1 r14 LSL 15", "lt_r1_r14_LSL_15"},
361 {{cc, r7, r13, ROR, 31}, false, al, "cc r7 r13 ROR 31", "cc_r7_r13_ROR_31"},
362 {{ne, r11, r5, LSL, 12}, false, al, "ne r11 r5 LSL 12", "ne_r11_r5_LSL_12"},
363 {{lt, r14, r3, LSL, 4}, false, al, "lt r14 r3 LSL 4", "lt_r14_r3_LSL_4"},
364 {{vs, r0, r14, ROR, 29}, false, al, "vs r0 r14 ROR 29", "vs_r0_r14_ROR_29"},
365 {{gt, r7, r2, LSL, 4}, false, al, "gt r7 r2 LSL 4", "gt_r7_r2_LSL_4"},
366 {{vs, r13, r6, ROR, 22}, false, al, "vs r13 r6 ROR 22", "vs_r13_r6_ROR_22"},
367 {{pl, r14, r2, ROR, 24}, false, al, "pl r14 r2 ROR 24", "pl_r14_r2_ROR_24"},
368 {{cc, r2, r6, ROR, 6}, false, al, "cc r2 r6 ROR 6", "cc_r2_r6_ROR_6"},
369 {{vs, r14, r13, ROR, 10},
370 false,
371 al,
372 "vs r14 r13 ROR 10",
373 "vs_r14_r13_ROR_10"},
374 {{gt, r8, r11, ROR, 13}, false, al, "gt r8 r11 ROR 13", "gt_r8_r11_ROR_13"},
375 {{gt, r9, r12, ROR, 21}, false, al, "gt r9 r12 ROR 21", "gt_r9_r12_ROR_21"},
376 {{al, r3, r11, ROR, 17}, false, al, "al r3 r11 ROR 17", "al_r3_r11_ROR_17"},
377 {{hi, r0, r0, LSL, 25}, false, al, "hi r0 r0 LSL 25", "hi_r0_r0_LSL_25"},
378 {{ge, r14, r9, LSL, 12}, false, al, "ge r14 r9 LSL 12", "ge_r14_r9_LSL_12"},
379 {{pl, r9, r8, ROR, 5}, false, al, "pl r9 r8 ROR 5", "pl_r9_r8_ROR_5"},
380 {{ge, r6, r0, ROR, 2}, false, al, "ge r6 r0 ROR 2", "ge_r6_r0_ROR_2"},
381 {{vs, r2, r6, ROR, 21}, false, al, "vs r2 r6 ROR 21", "vs_r2_r6_ROR_21"},
382 {{vs, r14, r2, LSL, 18}, false, al, "vs r14 r2 LSL 18", "vs_r14_r2_LSL_18"},
383 {{mi, r11, r9, ROR, 30}, false, al, "mi r11 r9 ROR 30", "mi_r11_r9_ROR_30"},
384 {{cc, r10, r12, ROR, 4}, false, al, "cc r10 r12 ROR 4", "cc_r10_r12_ROR_4"},
385 {{vc, r2, r4, ROR, 31}, false, al, "vc r2 r4 ROR 31", "vc_r2_r4_ROR_31"},
386 {{ge, r0, r12, ROR, 2}, false, al, "ge r0 r12 ROR 2", "ge_r0_r12_ROR_2"},
387 {{cc, r13, r14, LSL, 11},
388 false,
389 al,
390 "cc r13 r14 LSL 11",
391 "cc_r13_r14_LSL_11"},
392 {{cs, r3, r3, ROR, 26}, false, al, "cs r3 r3 ROR 26", "cs_r3_r3_ROR_26"},
393 {{cc, r0, r0, ROR, 21}, false, al, "cc r0 r0 ROR 21", "cc_r0_r0_ROR_21"},
394 {{vc, r13, r11, ROR, 19},
395 false,
396 al,
397 "vc r13 r11 ROR 19",
398 "vc_r13_r11_ROR_19"},
399 {{al, r0, r7, ROR, 6}, false, al, "al r0 r7 ROR 6", "al_r0_r7_ROR_6"},
400 {{mi, r0, r8, ROR, 19}, false, al, "mi r0 r8 ROR 19", "mi_r0_r8_ROR_19"},
401 {{cs, r1, r13, ROR, 20}, false, al, "cs r1 r13 ROR 20", "cs_r1_r13_ROR_20"},
402 {{vs, r2, r13, ROR, 28}, false, al, "vs r2 r13 ROR 28", "vs_r2_r13_ROR_28"},
403 {{mi, r5, r6, LSL, 23}, false, al, "mi r5 r6 LSL 23", "mi_r5_r6_LSL_23"},
404 {{ne, r8, r13, ROR, 3}, false, al, "ne r8 r13 ROR 3", "ne_r8_r13_ROR_3"},
405 {{le, r9, r12, ROR, 24}, false, al, "le r9 r12 ROR 24", "le_r9_r12_ROR_24"},
406 {{le, r4, r0, LSL, 10}, false, al, "le r4 r0 LSL 10", "le_r4_r0_LSL_10"},
407 {{hi, r6, r1, ROR, 5}, false, al, "hi r6 r1 ROR 5", "hi_r6_r1_ROR_5"},
408 {{pl, r1, r5, ROR, 31}, false, al, "pl r1 r5 ROR 31", "pl_r1_r5_ROR_31"},
409 {{lt, r1, r13, LSL, 7}, false, al, "lt r1 r13 LSL 7", "lt_r1_r13_LSL_7"},
410 {{ge, r8, r10, LSL, 24}, false, al, "ge r8 r10 LSL 24", "ge_r8_r10_LSL_24"},
411 {{eq, r10, r2, ROR, 6}, false, al, "eq r10 r2 ROR 6", "eq_r10_r2_ROR_6"},
412 {{ls, r7, r2, LSL, 3}, false, al, "ls r7 r2 LSL 3", "ls_r7_r2_LSL_3"},
413 {{al, r13, r6, ROR, 19}, false, al, "al r13 r6 ROR 19", "al_r13_r6_ROR_19"},
414 {{le, r10, r2, ROR, 26}, false, al, "le r10 r2 ROR 26", "le_r10_r2_ROR_26"},
415 {{ls, r11, r7, LSL, 25}, false, al, "ls r11 r7 LSL 25", "ls_r11_r7_LSL_25"},
416 {{eq, r7, r0, LSL, 5}, false, al, "eq r7 r0 LSL 5", "eq_r7_r0_LSL_5"},
417 {{lt, r3, r11, LSL, 23}, false, al, "lt r3 r11 LSL 23", "lt_r3_r11_LSL_23"},
418 {{ls, r13, r0, ROR, 13}, false, al, "ls r13 r0 ROR 13", "ls_r13_r0_ROR_13"},
419 {{mi, r4, r10, LSL, 22}, false, al, "mi r4 r10 LSL 22", "mi_r4_r10_LSL_22"},
420 {{pl, r6, r8, LSL, 6}, false, al, "pl r6 r8 LSL 6", "pl_r6_r8_LSL_6"},
421 {{le, r13, r2, ROR, 16}, false, al, "le r13 r2 ROR 16", "le_r13_r2_ROR_16"},
422 {{al, r6, r8, ROR, 9}, false, al, "al r6 r8 ROR 9", "al_r6_r8_ROR_9"},
423 {{lt, r11, r14, ROR, 4}, false, al, "lt r11 r14 ROR 4", "lt_r11_r14_ROR_4"},
424 {{ls, r14, r14, ROR, 9}, false, al, "ls r14 r14 ROR 9", "ls_r14_r14_ROR_9"},
425 {{gt, r1, r0, LSL, 23}, false, al, "gt r1 r0 LSL 23", "gt_r1_r0_LSL_23"},
426 {{lt, r4, r0, ROR, 25}, false, al, "lt r4 r0 ROR 25", "lt_r4_r0_ROR_25"},
427 {{hi, r4, r12, ROR, 18}, false, al, "hi r4 r12 ROR 18", "hi_r4_r12_ROR_18"},
428 {{ne, r10, r2, ROR, 28}, false, al, "ne r10 r2 ROR 28", "ne_r10_r2_ROR_28"},
429 {{lt, r1, r4, ROR, 2}, false, al, "lt r1 r4 ROR 2", "lt_r1_r4_ROR_2"},
430 {{mi, r4, r10, ROR, 23}, false, al, "mi r4 r10 ROR 23", "mi_r4_r10_ROR_23"},
431 {{cs, r12, r7, LSL, 9}, false, al, "cs r12 r7 LSL 9", "cs_r12_r7_LSL_9"},
432 {{lt, r7, r14, ROR, 4}, false, al, "lt r7 r14 ROR 4", "lt_r7_r14_ROR_4"},
433 {{lt, r2, r10, ROR, 25}, false, al, "lt r2 r10 ROR 25", "lt_r2_r10_ROR_25"},
434 {{hi, r4, r9, ROR, 24}, false, al, "hi r4 r9 ROR 24", "hi_r4_r9_ROR_24"},
435 {{hi, r0, r12, ROR, 29}, false, al, "hi r0 r12 ROR 29", "hi_r0_r12_ROR_29"},
436 {{ge, r8, r9, LSL, 10}, false, al, "ge r8 r9 LSL 10", "ge_r8_r9_LSL_10"},
437 {{ge, r2, r13, LSL, 21}, false, al, "ge r2 r13 LSL 21", "ge_r2_r13_LSL_21"},
438 {{lt, r8, r12, LSL, 28}, false, al, "lt r8 r12 LSL 28", "lt_r8_r12_LSL_28"},
439 {{hi, r13, r11, LSL, 20},
440 false,
441 al,
442 "hi r13 r11 LSL 20",
443 "hi_r13_r11_LSL_20"},
444 {{eq, r6, r0, LSL, 17}, false, al, "eq r6 r0 LSL 17", "eq_r6_r0_LSL_17"},
445 {{vc, r1, r0, ROR, 15}, false, al, "vc r1 r0 ROR 15", "vc_r1_r0_ROR_15"},
446 {{ge, r13, r11, LSL, 7}, false, al, "ge r13 r11 LSL 7", "ge_r13_r11_LSL_7"},
447 {{mi, r6, r10, LSL, 11}, false, al, "mi r6 r10 LSL 11", "mi_r6_r10_LSL_11"},
448 {{mi, r1, r8, ROR, 26}, false, al, "mi r1 r8 ROR 26", "mi_r1_r8_ROR_26"},
449 {{vs, r12, r6, LSL, 1}, false, al, "vs r12 r6 LSL 1", "vs_r12_r6_LSL_1"},
450 {{lt, r5, r13, LSL, 12}, false, al, "lt r5 r13 LSL 12", "lt_r5_r13_LSL_12"},
451 {{pl, r13, r10, LSL, 7}, false, al, "pl r13 r10 LSL 7", "pl_r13_r10_LSL_7"},
452 {{hi, r3, r8, LSL, 2}, false, al, "hi r3 r8 LSL 2", "hi_r3_r8_LSL_2"},
453 {{ge, r12, r9, ROR, 5}, false, al, "ge r12 r9 ROR 5", "ge_r12_r9_ROR_5"},
454 {{lt, r11, r11, LSL, 21},
455 false,
456 al,
457 "lt r11 r11 LSL 21",
458 "lt_r11_r11_LSL_21"},
459 {{le, r13, r11, LSL, 10},
460 false,
461 al,
462 "le r13 r11 LSL 10",
463 "le_r13_r11_LSL_10"},
464 {{cs, r0, r8, ROR, 19}, false, al, "cs r0 r8 ROR 19", "cs_r0_r8_ROR_19"},
465 {{ge, r1, r13, ROR, 19}, false, al, "ge r1 r13 ROR 19", "ge_r1_r13_ROR_19"},
466 {{al, r14, r7, ROR, 16}, false, al, "al r14 r7 ROR 16", "al_r14_r7_ROR_16"},
467 {{lt, r7, r12, LSL, 22}, false, al, "lt r7 r12 LSL 22", "lt_r7_r12_LSL_22"},
468 {{al, r3, r12, LSL, 25}, false, al, "al r3 r12 LSL 25", "al_r3_r12_LSL_25"},
469 {{cc, r10, r0, ROR, 8}, false, al, "cc r10 r0 ROR 8", "cc_r10_r0_ROR_8"},
470 {{ls, r10, r4, LSL, 26}, false, al, "ls r10 r4 LSL 26", "ls_r10_r4_LSL_26"},
471 {{hi, r11, r13, ROR, 28},
472 false,
473 al,
474 "hi r11 r13 ROR 28",
475 "hi_r11_r13_ROR_28"},
476 {{le, r14, r14, LSL, 28},
477 false,
478 al,
479 "le r14 r14 LSL 28",
480 "le_r14_r14_LSL_28"},
481 {{le, r4, r8, LSL, 31}, false, al, "le r4 r8 LSL 31", "le_r4_r8_LSL_31"},
482 {{ge, r8, r6, LSL, 1}, false, al, "ge r8 r6 LSL 1", "ge_r8_r6_LSL_1"},
483 {{ne, r8, r2, ROR, 10}, false, al, "ne r8 r2 ROR 10", "ne_r8_r2_ROR_10"},
484 {{pl, r8, r2, LSL, 18}, false, al, "pl r8 r2 LSL 18", "pl_r8_r2_LSL_18"},
485 {{ne, r6, r9, LSL, 5}, false, al, "ne r6 r9 LSL 5", "ne_r6_r9_LSL_5"},
486 {{lt, r0, r0, ROR, 16}, false, al, "lt r0 r0 ROR 16", "lt_r0_r0_ROR_16"},
487 {{le, r6, r1, ROR, 13}, false, al, "le r6 r1 ROR 13", "le_r6_r1_ROR_13"},
488 {{hi, r10, r11, ROR, 5}, false, al, "hi r10 r11 ROR 5", "hi_r10_r11_ROR_5"},
489 {{al, r13, r14, ROR, 6}, false, al, "al r13 r14 ROR 6", "al_r13_r14_ROR_6"},
490 {{vs, r8, r1, LSL, 29}, false, al, "vs r8 r1 LSL 29", "vs_r8_r1_LSL_29"},
491 {{vc, r12, r5, LSL, 9}, false, al, "vc r12 r5 LSL 9", "vc_r12_r5_LSL_9"},
492 {{vs, r3, r5, ROR, 31}, false, al, "vs r3 r5 ROR 31", "vs_r3_r5_ROR_31"},
493 {{cs, r12, r1, ROR, 14}, false, al, "cs r12 r1 ROR 14", "cs_r12_r1_ROR_14"},
494 {{vc, r0, r9, ROR, 15}, false, al, "vc r0 r9 ROR 15", "vc_r0_r9_ROR_15"},
495 {{ls, r7, r0, LSL, 8}, false, al, "ls r7 r0 LSL 8", "ls_r7_r0_LSL_8"},
496 {{ge, r5, r6, LSL, 28}, false, al, "ge r5 r6 LSL 28", "ge_r5_r6_LSL_28"},
497 {{cs, r6, r13, LSL, 30}, false, al, "cs r6 r13 LSL 30", "cs_r6_r13_LSL_30"},
498 {{mi, r9, r10, ROR, 17}, false, al, "mi r9 r10 ROR 17", "mi_r9_r10_ROR_17"},
499 {{ne, r6, r7, ROR, 8}, false, al, "ne r6 r7 ROR 8", "ne_r6_r7_ROR_8"},
500 {{ge, r12, r6, ROR, 11}, false, al, "ge r12 r6 ROR 11", "ge_r12_r6_ROR_11"},
501 {{eq, r9, r1, LSL, 28}, false, al, "eq r9 r1 LSL 28", "eq_r9_r1_LSL_28"},
502 {{gt, r14, r11, LSL, 30},
503 false,
504 al,
505 "gt r14 r11 LSL 30",
506 "gt_r14_r11_LSL_30"},
507 {{ls, r11, r10, LSL, 24},
508 false,
509 al,
510 "ls r11 r10 LSL 24",
511 "ls_r11_r10_LSL_24"},
512 {{ls, r13, r12, LSL, 29},
513 false,
514 al,
515 "ls r13 r12 LSL 29",
516 "ls_r13_r12_LSL_29"},
517 {{hi, r12, r4, LSL, 7}, false, al, "hi r12 r4 LSL 7", "hi_r12_r4_LSL_7"},
518 {{ls, r11, r1, ROR, 26}, false, al, "ls r11 r1 ROR 26", "ls_r11_r1_ROR_26"},
519 {{ls, r14, r6, LSL, 10}, false, al, "ls r14 r6 LSL 10", "ls_r14_r6_LSL_10"},
520 {{le, r11, r10, ROR, 18},
521 false,
522 al,
523 "le r11 r10 ROR 18",
524 "le_r11_r10_ROR_18"},
525 {{cc, r0, r10, LSL, 15}, false, al, "cc r0 r10 LSL 15", "cc_r0_r10_LSL_15"},
526 {{eq, r7, r14, ROR, 29}, false, al, "eq r7 r14 ROR 29", "eq_r7_r14_ROR_29"},
527 {{lt, r13, r3, ROR, 19}, false, al, "lt r13 r3 ROR 19", "lt_r13_r3_ROR_19"},
528 {{ge, r7, r3, ROR, 4}, false, al, "ge r7 r3 ROR 4", "ge_r7_r3_ROR_4"},
529 {{lt, r3, r3, ROR, 24}, false, al, "lt r3 r3 ROR 24", "lt_r3_r3_ROR_24"},
530 {{pl, r4, r1, ROR, 14}, false, al, "pl r4 r1 ROR 14", "pl_r4_r1_ROR_14"},
531 {{lt, r1, r9, LSL, 4}, false, al, "lt r1 r9 LSL 4", "lt_r1_r9_LSL_4"},
532 {{vs, r5, r11, ROR, 15}, false, al, "vs r5 r11 ROR 15", "vs_r5_r11_ROR_15"},
533 {{gt, r3, r12, LSL, 22}, false, al, "gt r3 r12 LSL 22", "gt_r3_r12_LSL_22"},
534 {{vs, r14, r5, LSL, 18}, false, al, "vs r14 r5 LSL 18", "vs_r14_r5_LSL_18"},
535 {{ls, r11, r6, ROR, 9}, false, al, "ls r11 r6 ROR 9", "ls_r11_r6_ROR_9"},
536 {{mi, r8, r6, LSL, 6}, false, al, "mi r8 r6 LSL 6", "mi_r8_r6_LSL_6"},
537 {{lt, r12, r12, ROR, 18},
538 false,
539 al,
540 "lt r12 r12 ROR 18",
541 "lt_r12_r12_ROR_18"},
542 {{ls, r11, r5, ROR, 1}, false, al, "ls r11 r5 ROR 1", "ls_r11_r5_ROR_1"},
543 {{ne, r5, r9, LSL, 26}, false, al, "ne r5 r9 LSL 26", "ne_r5_r9_LSL_26"},
544 {{eq, r4, r10, ROR, 5}, false, al, "eq r4 r10 ROR 5", "eq_r4_r10_ROR_5"},
545 {{ne, r14, r11, ROR, 7}, false, al, "ne r14 r11 ROR 7", "ne_r14_r11_ROR_7"},
546 {{eq, r3, r10, ROR, 28}, false, al, "eq r3 r10 ROR 28", "eq_r3_r10_ROR_28"},
547 {{vc, r1, r11, LSL, 13}, false, al, "vc r1 r11 LSL 13", "vc_r1_r11_LSL_13"},
548 {{ge, r14, r3, LSL, 18}, false, al, "ge r14 r3 LSL 18", "ge_r14_r3_LSL_18"},
549 {{al, r12, r11, LSL, 19},
550 false,
551 al,
552 "al r12 r11 LSL 19",
553 "al_r12_r11_LSL_19"},
554 {{al, r8, r11, LSL, 10}, false, al, "al r8 r11 LSL 10", "al_r8_r11_LSL_10"},
555 {{mi, r0, r2, LSL, 17}, false, al, "mi r0 r2 LSL 17", "mi_r0_r2_LSL_17"},
556 {{ls, r8, r4, LSL, 30}, false, al, "ls r8 r4 LSL 30", "ls_r8_r4_LSL_30"},
557 {{gt, r9, r3, LSL, 5}, false, al, "gt r9 r3 LSL 5", "gt_r9_r3_LSL_5"},
558 {{ne, r13, r11, ROR, 7}, false, al, "ne r13 r11 ROR 7", "ne_r13_r11_ROR_7"},
559 {{gt, r8, r1, ROR, 13}, false, al, "gt r8 r1 ROR 13", "gt_r8_r1_ROR_13"},
560 {{ne, r2, r1, LSL, 31}, false, al, "ne r2 r1 LSL 31", "ne_r2_r1_LSL_31"},
561 {{le, r12, r0, ROR, 23}, false, al, "le r12 r0 ROR 23", "le_r12_r0_ROR_23"},
562 {{ge, r14, r0, ROR, 20}, false, al, "ge r14 r0 ROR 20", "ge_r14_r0_ROR_20"},
563 {{ne, r13, r4, ROR, 9}, false, al, "ne r13 r4 ROR 9", "ne_r13_r4_ROR_9"},
564 {{lt, r12, r8, ROR, 9}, false, al, "lt r12 r8 ROR 9", "lt_r12_r8_ROR_9"},
565 {{gt, r1, r14, LSL, 27}, false, al, "gt r1 r14 LSL 27", "gt_r1_r14_LSL_27"},
566 {{ls, r0, r14, ROR, 5}, false, al, "ls r0 r14 ROR 5", "ls_r0_r14_ROR_5"},
567 {{lt, r6, r5, ROR, 2}, false, al, "lt r6 r5 ROR 2", "lt_r6_r5_ROR_2"},
568 {{vs, r1, r13, LSL, 7}, false, al, "vs r1 r13 LSL 7", "vs_r1_r13_LSL_7"},
569 {{lt, r13, r2, LSL, 26}, false, al, "lt r13 r2 LSL 26", "lt_r13_r2_LSL_26"},
570 {{cs, r11, r1, LSL, 15}, false, al, "cs r11 r1 LSL 15", "cs_r11_r1_LSL_15"},
571 {{cs, r2, r4, ROR, 15}, false, al, "cs r2 r4 ROR 15", "cs_r2_r4_ROR_15"},
572 {{gt, r9, r10, ROR, 28}, false, al, "gt r9 r10 ROR 28", "gt_r9_r10_ROR_28"},
573 {{ge, r4, r11, LSL, 16}, false, al, "ge r4 r11 LSL 16", "ge_r4_r11_LSL_16"},
574 {{mi, r6, r2, LSL, 2}, false, al, "mi r6 r2 LSL 2", "mi_r6_r2_LSL_2"},
575 {{ls, r0, r11, LSL, 12}, false, al, "ls r0 r11 LSL 12", "ls_r0_r11_LSL_12"},
576 {{mi, r13, r13, LSL, 1}, false, al, "mi r13 r13 LSL 1", "mi_r13_r13_LSL_1"},
577 {{ge, r1, r11, LSL, 9}, false, al, "ge r1 r11 LSL 9", "ge_r1_r11_LSL_9"},
578 {{gt, r7, r4, ROR, 29}, false, al, "gt r7 r4 ROR 29", "gt_r7_r4_ROR_29"},
579 {{eq, r9, r14, LSL, 5}, false, al, "eq r9 r14 LSL 5", "eq_r9_r14_LSL_5"},
580 {{eq, r8, r4, ROR, 11}, false, al, "eq r8 r4 ROR 11", "eq_r8_r4_ROR_11"},
581 {{ge, r5, r6, LSL, 23}, false, al, "ge r5 r6 LSL 23", "ge_r5_r6_LSL_23"},
582 {{lt, r5, r4, LSL, 23}, false, al, "lt r5 r4 LSL 23", "lt_r5_r4_LSL_23"},
583 {{ge, r6, r3, ROR, 21}, false, al, "ge r6 r3 ROR 21", "ge_r6_r3_ROR_21"},
584 {{lt, r4, r6, ROR, 2}, false, al, "lt r4 r6 ROR 2", "lt_r4_r6_ROR_2"},
585 {{hi, r7, r9, ROR, 14}, false, al, "hi r7 r9 ROR 14", "hi_r7_r9_ROR_14"},
586 {{pl, r9, r9, LSL, 9}, false, al, "pl r9 r9 LSL 9", "pl_r9_r9_LSL_9"},
587 {{gt, r4, r1, ROR, 8}, false, al, "gt r4 r1 ROR 8", "gt_r4_r1_ROR_8"},
588 {{pl, r13, r0, ROR, 8}, false, al, "pl r13 r0 ROR 8", "pl_r13_r0_ROR_8"},
589 {{vc, r1, r12, LSL, 12}, false, al, "vc r1 r12 LSL 12", "vc_r1_r12_LSL_12"},
590 {{ge, r12, r5, LSL, 18}, false, al, "ge r12 r5 LSL 18", "ge_r12_r5_LSL_18"},
591 {{le, r8, r2, LSL, 7}, false, al, "le r8 r2 LSL 7", "le_r8_r2_LSL_7"},
592 {{ne, r8, r3, ROR, 26}, false, al, "ne r8 r3 ROR 26", "ne_r8_r3_ROR_26"},
593 {{lt, r8, r0, LSL, 9}, false, al, "lt r8 r0 LSL 9", "lt_r8_r0_LSL_9"},
594 {{cc, r11, r8, LSL, 28}, false, al, "cc r11 r8 LSL 28", "cc_r11_r8_LSL_28"},
595 {{cc, r14, r14, ROR, 29},
596 false,
597 al,
598 "cc r14 r14 ROR 29",
599 "cc_r14_r14_ROR_29"},
600 {{vc, r4, r9, LSL, 31}, false, al, "vc r4 r9 LSL 31", "vc_r4_r9_LSL_31"},
601 {{ne, r14, r0, ROR, 22}, false, al, "ne r14 r0 ROR 22", "ne_r14_r0_ROR_22"},
602 {{al, r14, r5, LSL, 2}, false, al, "al r14 r5 LSL 2", "al_r14_r5_LSL_2"},
603 {{ge, r9, r5, LSL, 20}, false, al, "ge r9 r5 LSL 20", "ge_r9_r5_LSL_20"},
604 {{cc, r7, r5, ROR, 12}, false, al, "cc r7 r5 ROR 12", "cc_r7_r5_ROR_12"},
605 {{le, r0, r12, LSL, 18}, false, al, "le r0 r12 LSL 18", "le_r0_r12_LSL_18"},
606 {{ne, r6, r2, ROR, 4}, false, al, "ne r6 r2 ROR 4", "ne_r6_r2_ROR_4"},
607 {{mi, r4, r2, ROR, 30}, false, al, "mi r4 r2 ROR 30", "mi_r4_r2_ROR_30"},
608 {{ls, r12, r1, ROR, 21}, false, al, "ls r12 r1 ROR 21", "ls_r12_r1_ROR_21"},
609 {{ne, r11, r6, LSL, 30}, false, al, "ne r11 r6 LSL 30", "ne_r11_r6_LSL_30"},
610 {{vs, r14, r2, ROR, 16}, false, al, "vs r14 r2 ROR 16", "vs_r14_r2_ROR_16"},
611 {{le, r2, r1, LSL, 5}, false, al, "le r2 r1 LSL 5", "le_r2_r1_LSL_5"},
612 {{vs, r12, r14, ROR, 16},
613 false,
614 al,
615 "vs r12 r14 ROR 16",
616 "vs_r12_r14_ROR_16"},
617 {{hi, r10, r12, ROR, 15},
618 false,
619 al,
620 "hi r10 r12 ROR 15",
621 "hi_r10_r12_ROR_15"},
622 {{ls, r10, r5, ROR, 11}, false, al, "ls r10 r5 ROR 11", "ls_r10_r5_ROR_11"},
623 {{vc, r6, r0, ROR, 27}, false, al, "vc r6 r0 ROR 27", "vc_r6_r0_ROR_27"},
624 {{vs, r8, r13, LSL, 15}, false, al, "vs r8 r13 LSL 15", "vs_r8_r13_LSL_15"},
625 {{lt, r9, r7, ROR, 26}, false, al, "lt r9 r7 ROR 26", "lt_r9_r7_ROR_26"},
626 {{gt, r6, r14, ROR, 23}, false, al, "gt r6 r14 ROR 23", "gt_r6_r14_ROR_23"},
627 {{hi, r4, r11, LSL, 21}, false, al, "hi r4 r11 LSL 21", "hi_r4_r11_LSL_21"},
628 {{ls, r14, r12, LSL, 14},
629 false,
630 al,
631 "ls r14 r12 LSL 14",
632 "ls_r14_r12_LSL_14"},
633 {{cc, r9, r4, LSL, 9}, false, al, "cc r9 r4 LSL 9", "cc_r9_r4_LSL_9"},
634 {{eq, r5, r1, LSL, 26}, false, al, "eq r5 r1 LSL 26", "eq_r5_r1_LSL_26"},
635 {{pl, r10, r7, LSL, 20}, false, al, "pl r10 r7 LSL 20", "pl_r10_r7_LSL_20"},
636 {{gt, r2, r14, LSL, 25}, false, al, "gt r2 r14 LSL 25", "gt_r2_r14_LSL_25"},
637 {{ge, r8, r1, LSL, 17}, false, al, "ge r8 r1 LSL 17", "ge_r8_r1_LSL_17"},
638 {{ne, r5, r7, ROR, 19}, false, al, "ne r5 r7 ROR 19", "ne_r5_r7_ROR_19"},
639 {{pl, r4, r9, LSL, 20}, false, al, "pl r4 r9 LSL 20", "pl_r4_r9_LSL_20"},
640 {{gt, r14, r1, LSL, 18}, false, al, "gt r14 r1 LSL 18", "gt_r14_r1_LSL_18"},
641 {{ge, r1, r4, LSL, 1}, false, al, "ge r1 r4 LSL 1", "ge_r1_r4_LSL_1"},
642 {{cc, r14, r0, LSL, 18}, false, al, "cc r14 r0 LSL 18", "cc_r14_r0_LSL_18"},
643 {{vc, r12, r13, LSL, 16},
644 false,
645 al,
646 "vc r12 r13 LSL 16",
647 "vc_r12_r13_LSL_16"},
648 {{ls, r10, r8, LSL, 15}, false, al, "ls r10 r8 LSL 15", "ls_r10_r8_LSL_15"},
649 {{ne, r4, r4, ROR, 22}, false, al, "ne r4 r4 ROR 22", "ne_r4_r4_ROR_22"},
650 {{le, r4, r5, LSL, 29}, false, al, "le r4 r5 LSL 29", "le_r4_r5_LSL_29"},
651 {{hi, r10, r5, LSL, 19}, false, al, "hi r10 r5 LSL 19", "hi_r10_r5_LSL_19"},
652 {{gt, r6, r10, LSL, 26}, false, al, "gt r6 r10 LSL 26", "gt_r6_r10_LSL_26"},
653 {{lt, r3, r7, LSL, 19}, false, al, "lt r3 r7 LSL 19", "lt_r3_r7_LSL_19"},
654 {{vs, r9, r9, ROR, 17}, false, al, "vs r9 r9 ROR 17", "vs_r9_r9_ROR_17"},
655 {{vc, r0, r0, ROR, 21}, false, al, "vc r0 r0 ROR 21", "vc_r0_r0_ROR_21"},
656 {{le, r5, r10, LSL, 20}, false, al, "le r5 r10 LSL 20", "le_r5_r10_LSL_20"},
657 {{lt, r3, r6, ROR, 26}, false, al, "lt r3 r6 ROR 26", "lt_r3_r6_ROR_26"},
658 {{vs, r0, r13, ROR, 31}, false, al, "vs r0 r13 ROR 31", "vs_r0_r13_ROR_31"},
659 {{le, r9, r7, ROR, 18}, false, al, "le r9 r7 ROR 18", "le_r9_r7_ROR_18"},
660 {{le, r2, r8, LSL, 10}, false, al, "le r2 r8 LSL 10", "le_r2_r8_LSL_10"},
661 {{eq, r0, r5, LSL, 13}, false, al, "eq r0 r5 LSL 13", "eq_r0_r5_LSL_13"},
662 {{vs, r0, r4, ROR, 3}, false, al, "vs r0 r4 ROR 3", "vs_r0_r4_ROR_3"},
663 {{cs, r4, r6, LSL, 16}, false, al, "cs r4 r6 LSL 16", "cs_r4_r6_LSL_16"},
664 {{hi, r5, r13, LSL, 19}, false, al, "hi r5 r13 LSL 19", "hi_r5_r13_LSL_19"},
665 {{cc, r2, r9, ROR, 31}, false, al, "cc r2 r9 ROR 31", "cc_r2_r9_ROR_31"},
666 {{ls, r2, r11, ROR, 7}, false, al, "ls r2 r11 ROR 7", "ls_r2_r11_ROR_7"},
667 {{ne, r9, r6, LSL, 21}, false, al, "ne r9 r6 LSL 21", "ne_r9_r6_LSL_21"},
668 {{le, r7, r9, ROR, 8}, false, al, "le r7 r9 ROR 8", "le_r7_r9_ROR_8"},
669 {{ls, r11, r13, LSL, 2}, false, al, "ls r11 r13 LSL 2", "ls_r11_r13_LSL_2"},
670 {{cs, r6, r9, LSL, 17}, false, al, "cs r6 r9 LSL 17", "cs_r6_r9_LSL_17"},
671 {{vs, r12, r1, ROR, 21}, false, al, "vs r12 r1 ROR 21", "vs_r12_r1_ROR_21"},
672 {{vc, r11, r10, ROR, 27},
673 false,
674 al,
675 "vc r11 r10 ROR 27",
676 "vc_r11_r10_ROR_27"},
677 {{ge, r4, r14, LSL, 9}, false, al, "ge r4 r14 LSL 9", "ge_r4_r14_LSL_9"},
678 {{eq, r0, r7, LSL, 14}, false, al, "eq r0 r7 LSL 14", "eq_r0_r7_LSL_14"},
679 {{le, r1, r11, LSL, 6}, false, al, "le r1 r11 LSL 6", "le_r1_r11_LSL_6"},
680 {{eq, r8, r7, LSL, 7}, false, al, "eq r8 r7 LSL 7", "eq_r8_r7_LSL_7"},
681 {{ge, r8, r7, ROR, 2}, false, al, "ge r8 r7 ROR 2", "ge_r8_r7_ROR_2"},
682 {{hi, r3, r4, LSL, 17}, false, al, "hi r3 r4 LSL 17", "hi_r3_r4_LSL_17"},
683 {{mi, r8, r11, ROR, 18}, false, al, "mi r8 r11 ROR 18", "mi_r8_r11_ROR_18"},
684 {{pl, r4, r10, LSL, 11}, false, al, "pl r4 r10 LSL 11", "pl_r4_r10_LSL_11"},
685 {{pl, r10, r2, LSL, 15}, false, al, "pl r10 r2 LSL 15", "pl_r10_r2_LSL_15"},
686 {{ne, r3, r1, LSL, 5}, false, al, "ne r3 r1 LSL 5", "ne_r3_r1_LSL_5"},
687 {{ls, r10, r13, LSL, 3}, false, al, "ls r10 r13 LSL 3", "ls_r10_r13_LSL_3"},
688 {{vs, r8, r11, ROR, 11}, false, al, "vs r8 r11 ROR 11", "vs_r8_r11_ROR_11"},
689 {{gt, r13, r10, LSL, 8}, false, al, "gt r13 r10 LSL 8", "gt_r13_r10_LSL_8"},
690 {{hi, r8, r6, LSL, 11}, false, al, "hi r8 r6 LSL 11", "hi_r8_r6_LSL_11"},
691 {{vc, r8, r3, ROR, 13}, false, al, "vc r8 r3 ROR 13", "vc_r8_r3_ROR_13"},
692 {{lt, r5, r14, ROR, 5}, false, al, "lt r5 r14 ROR 5", "lt_r5_r14_ROR_5"},
693 {{hi, r11, r4, ROR, 23}, false, al, "hi r11 r4 ROR 23", "hi_r11_r4_ROR_23"},
694 {{al, r5, r6, ROR, 3}, false, al, "al r5 r6 ROR 3", "al_r5_r6_ROR_3"},
695 {{pl, r2, r2, LSL, 10}, false, al, "pl r2 r2 LSL 10", "pl_r2_r2_LSL_10"},
696 {{mi, r0, r7, LSL, 9}, false, al, "mi r0 r7 LSL 9", "mi_r0_r7_LSL_9"},
697 {{gt, r7, r5, LSL, 11}, false, al, "gt r7 r5 LSL 11", "gt_r7_r5_LSL_11"},
698 {{mi, r10, r11, ROR, 18},
699 false,
700 al,
701 "mi r10 r11 ROR 18",
702 "mi_r10_r11_ROR_18"},
703 {{cc, r7, r10, ROR, 10}, false, al, "cc r7 r10 ROR 10", "cc_r7_r10_ROR_10"},
704 {{hi, r8, r9, ROR, 31}, false, al, "hi r8 r9 ROR 31", "hi_r8_r9_ROR_31"},
705 {{cs, r8, r12, LSL, 16}, false, al, "cs r8 r12 LSL 16", "cs_r8_r12_LSL_16"},
706 {{gt, r4, r0, LSL, 11}, false, al, "gt r4 r0 LSL 11", "gt_r4_r0_LSL_11"},
707 {{cc, r4, r12, LSL, 3}, false, al, "cc r4 r12 LSL 3", "cc_r4_r12_LSL_3"},
708 {{al, r13, r3, LSL, 9}, false, al, "al r13 r3 LSL 9", "al_r13_r3_LSL_9"},
709 {{cs, r0, r4, LSL, 4}, false, al, "cs r0 r4 LSL 4", "cs_r0_r4_LSL_4"},
710 {{hi, r10, r14, LSL, 8}, false, al, "hi r10 r14 LSL 8", "hi_r10_r14_LSL_8"},
711 {{ge, r14, r13, ROR, 15},
712 false,
713 al,
714 "ge r14 r13 ROR 15",
715 "ge_r14_r13_ROR_15"},
716 {{vc, r8, r8, LSL, 25}, false, al, "vc r8 r8 LSL 25", "vc_r8_r8_LSL_25"},
717 {{hi, r11, r3, ROR, 23}, false, al, "hi r11 r3 ROR 23", "hi_r11_r3_ROR_23"},
718 {{al, r11, r7, LSL, 14}, false, al, "al r11 r7 LSL 14", "al_r11_r7_LSL_14"},
719 {{ls, r0, r2, LSL, 21}, false, al, "ls r0 r2 LSL 21", "ls_r0_r2_LSL_21"},
720 {{ne, r2, r3, LSL, 24}, false, al, "ne r2 r3 LSL 24", "ne_r2_r3_LSL_24"},
721 {{gt, r11, r14, ROR, 5}, false, al, "gt r11 r14 ROR 5", "gt_r11_r14_ROR_5"},
722 {{hi, r9, r4, LSL, 18}, false, al, "hi r9 r4 LSL 18", "hi_r9_r4_LSL_18"},
723 {{cs, r10, r6, LSL, 3}, false, al, "cs r10 r6 LSL 3", "cs_r10_r6_LSL_3"},
724 {{hi, r10, r12, LSL, 28},
725 false,
726 al,
727 "hi r10 r12 LSL 28",
728 "hi_r10_r12_LSL_28"},
729 {{pl, r12, r14, LSL, 4}, false, al, "pl r12 r14 LSL 4", "pl_r12_r14_LSL_4"},
730 {{ls, r12, r5, ROR, 18}, false, al, "ls r12 r5 ROR 18", "ls_r12_r5_ROR_18"},
731 {{eq, r0, r5, ROR, 3}, false, al, "eq r0 r5 ROR 3", "eq_r0_r5_ROR_3"},
732 {{cc, r4, r2, ROR, 11}, false, al, "cc r4 r2 ROR 11", "cc_r4_r2_ROR_11"},
733 {{lt, r4, r8, ROR, 31}, false, al, "lt r4 r8 ROR 31", "lt_r4_r8_ROR_31"},
734 {{cc, r9, r7, LSL, 31}, false, al, "cc r9 r7 LSL 31", "cc_r9_r7_LSL_31"},
735 {{cs, r4, r5, ROR, 25}, false, al, "cs r4 r5 ROR 25", "cs_r4_r5_ROR_25"},
736 {{mi, r13, r10, LSL, 14},
737 false,
738 al,
739 "mi r13 r10 LSL 14",
740 "mi_r13_r10_LSL_14"},
741 {{gt, r9, r3, ROR, 13}, false, al, "gt r9 r3 ROR 13", "gt_r9_r3_ROR_13"},
742 {{lt, r4, r11, LSL, 1}, false, al, "lt r4 r11 LSL 1", "lt_r4_r11_LSL_1"},
743 {{le, r10, r4, LSL, 19}, false, al, "le r10 r4 LSL 19", "le_r10_r4_LSL_19"},
744 {{vc, r12, r10, ROR, 14},
745 false,
746 al,
747 "vc r12 r10 ROR 14",
748 "vc_r12_r10_ROR_14"},
749 {{eq, r0, r1, LSL, 15}, false, al, "eq r0 r1 LSL 15", "eq_r0_r1_LSL_15"},
750 {{le, r14, r14, ROR, 30},
751 false,
752 al,
753 "le r14 r14 ROR 30",
754 "le_r14_r14_ROR_30"},
755 {{gt, r13, r5, LSL, 18}, false, al, "gt r13 r5 LSL 18", "gt_r13_r5_LSL_18"},
756 {{lt, r6, r11, LSL, 23}, false, al, "lt r6 r11 LSL 23", "lt_r6_r11_LSL_23"},
757 {{cc, r2, r1, ROR, 17}, false, al, "cc r2 r1 ROR 17", "cc_r2_r1_ROR_17"},
758 {{mi, r6, r3, LSL, 22}, false, al, "mi r6 r3 LSL 22", "mi_r6_r3_LSL_22"},
759 {{al, r3, r1, ROR, 9}, false, al, "al r3 r1 ROR 9", "al_r3_r1_ROR_9"},
760 {{hi, r0, r12, LSL, 5}, false, al, "hi r0 r12 LSL 5", "hi_r0_r12_LSL_5"},
761 {{eq, r6, r0, ROR, 11}, false, al, "eq r6 r0 ROR 11", "eq_r6_r0_ROR_11"},
762 {{mi, r10, r7, LSL, 26}, false, al, "mi r10 r7 LSL 26", "mi_r10_r7_LSL_26"},
763 {{ne, r7, r3, ROR, 12}, false, al, "ne r7 r3 ROR 12", "ne_r7_r3_ROR_12"},
764 {{le, r0, r8, ROR, 30}, false, al, "le r0 r8 ROR 30", "le_r0_r8_ROR_30"},
765 {{gt, r7, r1, ROR, 17}, false, al, "gt r7 r1 ROR 17", "gt_r7_r1_ROR_17"},
766 {{al, r0, r6, ROR, 8}, false, al, "al r0 r6 ROR 8", "al_r0_r6_ROR_8"},
767 {{vc, r13, r13, ROR, 17},
768 false,
769 al,
770 "vc r13 r13 ROR 17",
771 "vc_r13_r13_ROR_17"},
772 {{ge, r2, r9, ROR, 25}, false, al, "ge r2 r9 ROR 25", "ge_r2_r9_ROR_25"},
773 {{lt, r11, r3, ROR, 27}, false, al, "lt r11 r3 ROR 27", "lt_r11_r3_ROR_27"},
774 {{hi, r0, r3, ROR, 14}, false, al, "hi r0 r3 ROR 14", "hi_r0_r3_ROR_14"},
775 {{vc, r13, r1, ROR, 18}, false, al, "vc r13 r1 ROR 18", "vc_r13_r1_ROR_18"},
776 {{eq, r1, r13, LSL, 31}, false, al, "eq r1 r13 LSL 31", "eq_r1_r13_LSL_31"},
777 {{mi, r12, r9, ROR, 22}, false, al, "mi r12 r9 ROR 22", "mi_r12_r9_ROR_22"},
778 {{al, r5, r11, ROR, 31}, false, al, "al r5 r11 ROR 31", "al_r5_r11_ROR_31"},
779 {{ne, r7, r4, ROR, 20}, false, al, "ne r7 r4 ROR 20", "ne_r7_r4_ROR_20"},
780 {{hi, r0, r1, LSL, 10}, false, al, "hi r0 r1 LSL 10", "hi_r0_r1_LSL_10"},
781 {{ne, r5, r12, ROR, 6}, false, al, "ne r5 r12 ROR 6", "ne_r5_r12_ROR_6"},
782 {{hi, r14, r14, LSL, 6}, false, al, "hi r14 r14 LSL 6", "hi_r14_r14_LSL_6"},
783 {{pl, r12, r9, ROR, 28}, false, al, "pl r12 r9 ROR 28", "pl_r12_r9_ROR_28"},
784 {{al, r7, r2, LSL, 2}, false, al, "al r7 r2 LSL 2", "al_r7_r2_LSL_2"},
785 {{le, r12, r9, LSL, 5}, false, al, "le r12 r9 LSL 5", "le_r12_r9_LSL_5"},
786 {{lt, r0, r6, ROR, 1}, false, al, "lt r0 r6 ROR 1", "lt_r0_r6_ROR_1"},
787 {{le, r3, r4, LSL, 14}, false, al, "le r3 r4 LSL 14", "le_r3_r4_LSL_14"},
788 {{ge, r1, r10, LSL, 3}, false, al, "ge r1 r10 LSL 3", "ge_r1_r10_LSL_3"},
789 {{ne, r12, r14, ROR, 6}, false, al, "ne r12 r14 ROR 6", "ne_r12_r14_ROR_6"},
790 {{ne, r11, r7, LSL, 27}, false, al, "ne r11 r7 LSL 27", "ne_r11_r7_LSL_27"},
791 {{mi, r4, r2, LSL, 30}, false, al, "mi r4 r2 LSL 30", "mi_r4_r2_LSL_30"},
792 {{ls, r8, r2, LSL, 20}, false, al, "ls r8 r2 LSL 20", "ls_r8_r2_LSL_20"},
793 {{ge, r1, r5, ROR, 21}, false, al, "ge r1 r5 ROR 21", "ge_r1_r5_ROR_21"},
794 {{vs, r3, r10, LSL, 13}, false, al, "vs r3 r10 LSL 13", "vs_r3_r10_LSL_13"},
795 {{ge, r7, r6, ROR, 2}, false, al, "ge r7 r6 ROR 2", "ge_r7_r6_ROR_2"},
796 {{ls, r13, r12, ROR, 5}, false, al, "ls r13 r12 ROR 5", "ls_r13_r12_ROR_5"},
797 {{eq, r9, r10, LSL, 19}, false, al, "eq r9 r10 LSL 19", "eq_r9_r10_LSL_19"},
798 {{le, r5, r7, ROR, 6}, false, al, "le r5 r7 ROR 6", "le_r5_r7_ROR_6"},
799 {{eq, r11, r5, LSL, 8}, false, al, "eq r11 r5 LSL 8", "eq_r11_r5_LSL_8"},
800 {{mi, r6, r5, ROR, 31}, false, al, "mi r6 r5 ROR 31", "mi_r6_r5_ROR_31"},
801 {{cc, r13, r11, ROR, 8}, false, al, "cc r13 r11 ROR 8", "cc_r13_r11_ROR_8"},
802 {{mi, r0, r14, LSL, 13}, false, al, "mi r0 r14 LSL 13", "mi_r0_r14_LSL_13"},
803 {{lt, r7, r12, LSL, 2}, false, al, "lt r7 r12 LSL 2", "lt_r7_r12_LSL_2"},
804 {{eq, r6, r8, LSL, 22}, false, al, "eq r6 r8 LSL 22", "eq_r6_r8_LSL_22"},
805 {{lt, r13, r8, LSL, 26}, false, al, "lt r13 r8 LSL 26", "lt_r13_r8_LSL_26"},
806 {{gt, r5, r7, ROR, 18}, false, al, "gt r5 r7 ROR 18", "gt_r5_r7_ROR_18"},
807 {{al, r9, r4, LSL, 25}, false, al, "al r9 r4 LSL 25", "al_r9_r4_LSL_25"},
808 {{gt, r8, r12, ROR, 23}, false, al, "gt r8 r12 ROR 23", "gt_r8_r12_ROR_23"},
809 {{eq, r5, r6, ROR, 23}, false, al, "eq r5 r6 ROR 23", "eq_r5_r6_ROR_23"},
810 {{ge, r0, r4, ROR, 14}, false, al, "ge r0 r4 ROR 14", "ge_r0_r4_ROR_14"},
811 {{le, r1, r1, ROR, 12}, false, al, "le r1 r1 ROR 12", "le_r1_r1_ROR_12"},
812 {{le, r12, r12, LSL, 29},
813 false,
814 al,
815 "le r12 r12 LSL 29",
816 "le_r12_r12_LSL_29"},
817 {{ls, r2, r9, LSL, 7}, false, al, "ls r2 r9 LSL 7", "ls_r2_r9_LSL_7"},
818 {{pl, r4, r12, ROR, 10}, false, al, "pl r4 r12 ROR 10", "pl_r4_r12_ROR_10"},
819 {{ge, r4, r0, LSL, 1}, false, al, "ge r4 r0 LSL 1", "ge_r4_r0_LSL_1"},
820 {{mi, r9, r6, LSL, 14}, false, al, "mi r9 r6 LSL 14", "mi_r9_r6_LSL_14"},
821 {{vc, r14, r10, LSL, 8}, false, al, "vc r14 r10 LSL 8", "vc_r14_r10_LSL_8"},
822 {{ls, r9, r10, LSL, 18}, false, al, "ls r9 r10 LSL 18", "ls_r9_r10_LSL_18"},
823 {{cc, r9, r4, ROR, 19}, false, al, "cc r9 r4 ROR 19", "cc_r9_r4_ROR_19"},
824 {{ne, r10, r2, ROR, 5}, false, al, "ne r10 r2 ROR 5", "ne_r10_r2_ROR_5"},
825 {{cc, r14, r7, ROR, 31}, false, al, "cc r14 r7 ROR 31", "cc_r14_r7_ROR_31"},
826 {{hi, r4, r7, LSL, 7}, false, al, "hi r4 r7 LSL 7", "hi_r4_r7_LSL_7"},
827 {{mi, r5, r9, LSL, 14}, false, al, "mi r5 r9 LSL 14", "mi_r5_r9_LSL_14"},
828 {{cs, r7, r11, ROR, 4}, false, al, "cs r7 r11 ROR 4", "cs_r7_r11_ROR_4"},
829 {{cc, r9, r8, ROR, 9}, false, al, "cc r9 r8 ROR 9", "cc_r9_r8_ROR_9"},
830 {{hi, r1, r11, LSL, 12}, false, al, "hi r1 r11 LSL 12", "hi_r1_r11_LSL_12"},
831 {{pl, r8, r12, ROR, 19}, false, al, "pl r8 r12 ROR 19", "pl_r8_r12_ROR_19"},
832 {{gt, r4, r3, ROR, 30}, false, al, "gt r4 r3 ROR 30", "gt_r4_r3_ROR_30"},
833 {{le, r8, r10, ROR, 2}, false, al, "le r8 r10 ROR 2", "le_r8_r10_ROR_2"},
834 {{gt, r2, r1, ROR, 1}, false, al, "gt r2 r1 ROR 1", "gt_r2_r1_ROR_1"},
835 {{mi, r7, r5, LSL, 11}, false, al, "mi r7 r5 LSL 11", "mi_r7_r5_LSL_11"},
836 {{eq, r10, r12, ROR, 26},
837 false,
838 al,
839 "eq r10 r12 ROR 26",
840 "eq_r10_r12_ROR_26"},
841 {{le, r1, r3, ROR, 29}, false, al, "le r1 r3 ROR 29", "le_r1_r3_ROR_29"},
842 {{lt, r3, r8, ROR, 30}, false, al, "lt r3 r8 ROR 30", "lt_r3_r8_ROR_30"},
843 {{ls, r1, r9, ROR, 11}, false, al, "ls r1 r9 ROR 11", "ls_r1_r9_ROR_11"},
844 {{vs, r14, r12, ROR, 23},
845 false,
846 al,
847 "vs r14 r12 ROR 23",
848 "vs_r14_r12_ROR_23"},
849 {{ge, r9, r14, LSL, 4}, false, al, "ge r9 r14 LSL 4", "ge_r9_r14_LSL_4"},
850 {{cc, r1, r8, ROR, 2}, false, al, "cc r1 r8 ROR 2", "cc_r1_r8_ROR_2"},
851 {{ge, r14, r10, ROR, 28},
852 false,
853 al,
854 "ge r14 r10 ROR 28",
855 "ge_r14_r10_ROR_28"},
856 {{cc, r8, r13, ROR, 31}, false, al, "cc r8 r13 ROR 31", "cc_r8_r13_ROR_31"},
857 {{ls, r10, r8, LSL, 28}, false, al, "ls r10 r8 LSL 28", "ls_r10_r8_LSL_28"},
858 {{ge, r10, r1, LSL, 1}, false, al, "ge r10 r1 LSL 1", "ge_r10_r1_LSL_1"},
859 {{vs, r9, r9, ROR, 19}, false, al, "vs r9 r9 ROR 19", "vs_r9_r9_ROR_19"},
860 {{ne, r6, r7, ROR, 19}, false, al, "ne r6 r7 ROR 19", "ne_r6_r7_ROR_19"},
861 {{cs, r13, r9, ROR, 21}, false, al, "cs r13 r9 ROR 21", "cs_r13_r9_ROR_21"},
862 {{ls, r13, r14, ROR, 10},
863 false,
864 al,
865 "ls r13 r14 ROR 10",
866 "ls_r13_r14_ROR_10"},
867 {{hi, r2, r8, LSL, 29}, false, al, "hi r2 r8 LSL 29", "hi_r2_r8_LSL_29"},
868 {{le, r4, r2, LSL, 27}, false, al, "le r4 r2 LSL 27", "le_r4_r2_LSL_27"},
869 {{gt, r2, r10, ROR, 6}, false, al, "gt r2 r10 ROR 6", "gt_r2_r10_ROR_6"},
870 {{hi, r3, r7, ROR, 4}, false, al, "hi r3 r7 ROR 4", "hi_r3_r7_ROR_4"},
871 {{hi, r12, r9, LSL, 14}, false, al, "hi r12 r9 LSL 14", "hi_r12_r9_LSL_14"},
872 {{lt, r9, r11, ROR, 31}, false, al, "lt r9 r11 ROR 31", "lt_r9_r11_ROR_31"},
873 {{ls, r3, r1, ROR, 18}, false, al, "ls r3 r1 ROR 18", "ls_r3_r1_ROR_18"},
874 {{al, r0, r9, ROR, 17}, false, al, "al r0 r9 ROR 17", "al_r0_r9_ROR_17"},
875 {{cc, r0, r7, LSL, 14}, false, al, "cc r0 r7 LSL 14", "cc_r0_r7_LSL_14"},
876 {{al, r10, r12, LSL, 17},
877 false,
878 al,
879 "al r10 r12 LSL 17",
880 "al_r10_r12_LSL_17"},
881 {{lt, r1, r14, LSL, 22}, false, al, "lt r1 r14 LSL 22", "lt_r1_r14_LSL_22"},
882 {{ge, r1, r7, ROR, 1}, false, al, "ge r1 r7 ROR 1", "ge_r1_r7_ROR_1"},
883 {{mi, r1, r1, LSL, 30}, false, al, "mi r1 r1 LSL 30", "mi_r1_r1_LSL_30"},
884 {{cc, r7, r2, LSL, 19}, false, al, "cc r7 r2 LSL 19", "cc_r7_r2_LSL_19"},
885 {{vs, r14, r3, LSL, 3}, false, al, "vs r14 r3 LSL 3", "vs_r14_r3_LSL_3"},
886 {{ls, r5, r1, ROR, 30}, false, al, "ls r5 r1 ROR 30", "ls_r5_r1_ROR_30"},
887 {{al, r4, r4, LSL, 29}, false, al, "al r4 r4 LSL 29", "al_r4_r4_LSL_29"},
888 {{mi, r7, r3, ROR, 25}, false, al, "mi r7 r3 ROR 25", "mi_r7_r3_ROR_25"},
889 {{eq, r9, r4, ROR, 2}, false, al, "eq r9 r4 ROR 2", "eq_r9_r4_ROR_2"},
890 {{vc, r7, r13, ROR, 9}, false, al, "vc r7 r13 ROR 9", "vc_r7_r13_ROR_9"},
891 {{eq, r7, r1, ROR, 21}, false, al, "eq r7 r1 ROR 21", "eq_r7_r1_ROR_21"},
892 {{ge, r2, r6, ROR, 12}, false, al, "ge r2 r6 ROR 12", "ge_r2_r6_ROR_12"},
893 {{ge, r2, r7, LSL, 10}, false, al, "ge r2 r7 LSL 10", "ge_r2_r7_LSL_10"},
894 {{ne, r0, r14, LSL, 19}, false, al, "ne r0 r14 LSL 19", "ne_r0_r14_LSL_19"},
895 {{ge, r0, r7, LSL, 19}, false, al, "ge r0 r7 LSL 19", "ge_r0_r7_LSL_19"},
896 {{cc, r9, r12, LSL, 3}, false, al, "cc r9 r12 LSL 3", "cc_r9_r12_LSL_3"},
897 {{gt, r7, r13, ROR, 23}, false, al, "gt r7 r13 ROR 23", "gt_r7_r13_ROR_23"},
898 {{mi, r2, r6, LSL, 19}, false, al, "mi r2 r6 LSL 19", "mi_r2_r6_LSL_19"},
899 {{ne, r11, r6, ROR, 14}, false, al, "ne r11 r6 ROR 14", "ne_r11_r6_ROR_14"},
900 {{ls, r12, r2, LSL, 6}, false, al, "ls r12 r2 LSL 6", "ls_r12_r2_LSL_6"},
901 {{cc, r4, r14, ROR, 11}, false, al, "cc r4 r14 ROR 11", "cc_r4_r14_ROR_11"},
902 {{lt, r12, r10, LSL, 20},
903 false,
904 al,
905 "lt r12 r10 LSL 20",
906 "lt_r12_r10_LSL_20"},
907 {{le, r10, r14, LSL, 3}, false, al, "le r10 r14 LSL 3", "le_r10_r14_LSL_3"},
908 {{al, r14, r9, LSL, 28}, false, al, "al r14 r9 LSL 28", "al_r14_r9_LSL_28"},
909 {{ls, r9, r3, LSL, 17}, false, al, "ls r9 r3 LSL 17", "ls_r9_r3_LSL_17"},
910 {{eq, r10, r2, ROR, 25}, false, al, "eq r10 r2 ROR 25", "eq_r10_r2_ROR_25"},
911 {{lt, r6, r7, ROR, 2}, false, al, "lt r6 r7 ROR 2", "lt_r6_r7_ROR_2"},
912 {{le, r5, r7, ROR, 21}, false, al, "le r5 r7 ROR 21", "le_r5_r7_ROR_21"},
913 {{eq, r14, r2, LSL, 31}, false, al, "eq r14 r2 LSL 31", "eq_r14_r2_LSL_31"},
914 {{hi, r1, r8, LSL, 20}, false, al, "hi r1 r8 LSL 20", "hi_r1_r8_LSL_20"},
915 {{hi, r11, r0, ROR, 7}, false, al, "hi r11 r0 ROR 7", "hi_r11_r0_ROR_7"},
916 {{lt, r0, r4, ROR, 1}, false, al, "lt r0 r4 ROR 1", "lt_r0_r4_ROR_1"},
917 {{ge, r0, r2, ROR, 1}, false, al, "ge r0 r2 ROR 1", "ge_r0_r2_ROR_1"},
918 {{ge, r3, r11, ROR, 1}, false, al, "ge r3 r11 ROR 1", "ge_r3_r11_ROR_1"},
919 {{le, r4, r12, LSL, 27}, false, al, "le r4 r12 LSL 27", "le_r4_r12_LSL_27"},
920 {{al, r12, r2, ROR, 6}, false, al, "al r12 r2 ROR 6", "al_r12_r2_ROR_6"},
921 {{al, r11, r13, LSL, 2}, false, al, "al r11 r13 LSL 2", "al_r11_r13_LSL_2"},
922 {{lt, r6, r8, LSL, 3}, false, al, "lt r6 r8 LSL 3", "lt_r6_r8_LSL_3"},
923 {{ls, r1, r4, LSL, 21}, false, al, "ls r1 r4 LSL 21", "ls_r1_r4_LSL_21"},
924 {{al, r12, r13, ROR, 7}, false, al, "al r12 r13 ROR 7", "al_r12_r13_ROR_7"},
925 {{gt, r5, r14, LSL, 8}, false, al, "gt r5 r14 LSL 8", "gt_r5_r14_LSL_8"},
926 {{vc, r6, r8, ROR, 4}, false, al, "vc r6 r8 ROR 4", "vc_r6_r8_ROR_4"},
927 {{vc, r0, r14, LSL, 1}, false, al, "vc r0 r14 LSL 1", "vc_r0_r14_LSL_1"},
928 {{ge, r5, r0, LSL, 18}, false, al, "ge r5 r0 LSL 18", "ge_r5_r0_LSL_18"},
929 {{lt, r6, r6, ROR, 28}, false, al, "lt r6 r6 ROR 28", "lt_r6_r6_ROR_28"},
930 {{lt, r4, r14, LSL, 2}, false, al, "lt r4 r14 LSL 2", "lt_r4_r14_LSL_2"},
931 {{lt, r8, r9, ROR, 21}, false, al, "lt r8 r9 ROR 21", "lt_r8_r9_ROR_21"},
932 {{cc, r6, r12, LSL, 27}, false, al, "cc r6 r12 LSL 27", "cc_r6_r12_LSL_27"},
933 {{gt, r4, r11, LSL, 4}, false, al, "gt r4 r11 LSL 4", "gt_r4_r11_LSL_4"},
934 {{pl, r13, r8, LSL, 4}, false, al, "pl r13 r8 LSL 4", "pl_r13_r8_LSL_4"},
935 {{eq, r5, r8, LSL, 16}, false, al, "eq r5 r8 LSL 16", "eq_r5_r8_LSL_16"},
936 {{al, r5, r1, ROR, 28}, false, al, "al r5 r1 ROR 28", "al_r5_r1_ROR_28"},
937 {{lt, r2, r12, LSL, 9}, false, al, "lt r2 r12 LSL 9", "lt_r2_r12_LSL_9"},
938 {{vc, r10, r4, LSL, 28}, false, al, "vc r10 r4 LSL 28", "vc_r10_r4_LSL_28"},
939 {{hi, r0, r4, ROR, 23}, false, al, "hi r0 r4 ROR 23", "hi_r0_r4_ROR_23"},
940 {{gt, r14, r1, ROR, 16}, false, al, "gt r14 r1 ROR 16", "gt_r14_r1_ROR_16"},
941 {{ne, r14, r2, ROR, 24}, false, al, "ne r14 r2 ROR 24", "ne_r14_r2_ROR_24"},
942 {{ls, r3, r4, LSL, 18}, false, al, "ls r3 r4 LSL 18", "ls_r3_r4_LSL_18"},
943 {{mi, r9, r6, LSL, 13}, false, al, "mi r9 r6 LSL 13", "mi_r9_r6_LSL_13"},
944 {{ge, r3, r10, ROR, 10}, false, al, "ge r3 r10 ROR 10", "ge_r3_r10_ROR_10"},
945 {{ge, r5, r7, LSL, 27}, false, al, "ge r5 r7 LSL 27", "ge_r5_r7_LSL_27"},
946 {{vc, r6, r0, ROR, 26}, false, al, "vc r6 r0 ROR 26", "vc_r6_r0_ROR_26"},
947 {{ne, r11, r3, ROR, 6}, false, al, "ne r11 r3 ROR 6", "ne_r11_r3_ROR_6"},
948 {{gt, r3, r4, ROR, 17}, false, al, "gt r3 r4 ROR 17", "gt_r3_r4_ROR_17"},
949 {{lt, r1, r14, ROR, 25}, false, al, "lt r1 r14 ROR 25", "lt_r1_r14_ROR_25"},
950 {{eq, r11, r13, LSL, 27},
951 false,
952 al,
953 "eq r11 r13 LSL 27",
954 "eq_r11_r13_LSL_27"},
955 {{cs, r6, r1, ROR, 27}, false, al, "cs r6 r1 ROR 27", "cs_r6_r1_ROR_27"},
956 {{vc, r14, r14, LSL, 31},
957 false,
958 al,
959 "vc r14 r14 LSL 31",
960 "vc_r14_r14_LSL_31"},
961 {{vc, r7, r2, LSL, 8}, false, al, "vc r7 r2 LSL 8", "vc_r7_r2_LSL_8"},
962 {{eq, r3, r1, ROR, 4}, false, al, "eq r3 r1 ROR 4", "eq_r3_r1_ROR_4"},
963 {{mi, r13, r14, LSL, 12},
964 false,
965 al,
966 "mi r13 r14 LSL 12",
967 "mi_r13_r14_LSL_12"},
968 {{vc, r10, r14, ROR, 28},
969 false,
970 al,
971 "vc r10 r14 ROR 28",
972 "vc_r10_r14_ROR_28"},
973 {{cc, r13, r0, LSL, 17}, false, al, "cc r13 r0 LSL 17", "cc_r13_r0_LSL_17"},
974 {{vs, r14, r8, LSL, 23}, false, al, "vs r14 r8 LSL 23", "vs_r14_r8_LSL_23"},
975 {{cc, r14, r10, LSL, 16},
976 false,
977 al,
978 "cc r14 r10 LSL 16",
979 "cc_r14_r10_LSL_16"},
980 {{mi, r8, r7, ROR, 23}, false, al, "mi r8 r7 ROR 23", "mi_r8_r7_ROR_23"},
981 {{ge, r5, r12, ROR, 10}, false, al, "ge r5 r12 ROR 10", "ge_r5_r12_ROR_10"},
982 {{hi, r13, r5, LSL, 19}, false, al, "hi r13 r5 LSL 19", "hi_r13_r5_LSL_19"},
983 {{hi, r11, r12, LSL, 21},
984 false,
985 al,
986 "hi r11 r12 LSL 21",
987 "hi_r11_r12_LSL_21"},
988 {{cc, r1, r1, LSL, 9}, false, al, "cc r1 r1 LSL 9", "cc_r1_r1_LSL_9"},
989 {{ge, r14, r13, LSL, 8}, false, al, "ge r14 r13 LSL 8", "ge_r14_r13_LSL_8"},
990 {{le, r2, r0, LSL, 31}, false, al, "le r2 r0 LSL 31", "le_r2_r0_LSL_31"},
991 {{gt, r9, r3, LSL, 19}, false, al, "gt r9 r3 LSL 19", "gt_r9_r3_LSL_19"},
992 {{ls, r9, r3, LSL, 22}, false, al, "ls r9 r3 LSL 22", "ls_r9_r3_LSL_22"},
993 {{lt, r10, r9, ROR, 13}, false, al, "lt r10 r9 ROR 13", "lt_r10_r9_ROR_13"},
994 {{lt, r1, r8, ROR, 11}, false, al, "lt r1 r8 ROR 11", "lt_r1_r8_ROR_11"},
995 {{eq, r1, r2, LSL, 3}, false, al, "eq r1 r2 LSL 3", "eq_r1_r2_LSL_3"},
996 {{eq, r1, r6, LSL, 16}, false, al, "eq r1 r6 LSL 16", "eq_r1_r6_LSL_16"},
997 {{ne, r3, r2, ROR, 28}, false, al, "ne r3 r2 ROR 28", "ne_r3_r2_ROR_28"},
998 {{ge, r7, r5, ROR, 6}, false, al, "ge r7 r5 ROR 6", "ge_r7_r5_ROR_6"},
999 {{ne, r3, r1, ROR, 12}, false, al, "ne r3 r1 ROR 12", "ne_r3_r1_ROR_12"},
1000 {{gt, r12, r3, ROR, 13}, false, al, "gt r12 r3 ROR 13", "gt_r12_r3_ROR_13"},
1001 {{gt, r4, r6, ROR, 13}, false, al, "gt r4 r6 ROR 13", "gt_r4_r6_ROR_13"},
1002 {{pl, r11, r14, ROR, 7}, false, al, "pl r11 r14 ROR 7", "pl_r11_r14_ROR_7"},
1003 {{gt, r3, r4, LSL, 9}, false, al, "gt r3 r4 LSL 9", "gt_r3_r4_LSL_9"},
1004 {{vc, r14, r14, ROR, 6}, false, al, "vc r14 r14 ROR 6", "vc_r14_r14_ROR_6"},
1005 {{ne, r1, r14, LSL, 26}, false, al, "ne r1 r14 LSL 26", "ne_r1_r14_LSL_26"},
1006 {{ge, r4, r0, ROR, 4}, false, al, "ge r4 r0 ROR 4", "ge_r4_r0_ROR_4"},
1007 {{pl, r13, r3, LSL, 8}, false, al, "pl r13 r3 LSL 8", "pl_r13_r3_LSL_8"},
1008 {{vs, r11, r11, ROR, 26},
1009 false,
1010 al,
1011 "vs r11 r11 ROR 26",
1012 "vs_r11_r11_ROR_26"},
1013 {{le, r9, r3, LSL, 23}, false, al, "le r9 r3 LSL 23", "le_r9_r3_LSL_23"},
1014 {{mi, r10, r14, LSL, 25},
1015 false,
1016 al,
1017 "mi r10 r14 LSL 25",
1018 "mi_r10_r14_LSL_25"},
1019 {{mi, r13, r3, LSL, 16}, false, al, "mi r13 r3 LSL 16", "mi_r13_r3_LSL_16"},
1020 {{eq, r5, r5, ROR, 8}, false, al, "eq r5 r5 ROR 8", "eq_r5_r5_ROR_8"},
1021 {{lt, r11, r6, ROR, 8}, false, al, "lt r11 r6 ROR 8", "lt_r11_r6_ROR_8"},
1022 {{cs, r3, r9, ROR, 31}, false, al, "cs r3 r9 ROR 31", "cs_r3_r9_ROR_31"},
1023 {{cc, r0, r0, LSL, 10}, false, al, "cc r0 r0 LSL 10", "cc_r0_r0_LSL_10"},
1024 {{mi, r4, r1, LSL, 16}, false, al, "mi r4 r1 LSL 16", "mi_r4_r1_LSL_16"},
1025 {{le, r5, r4, LSL, 23}, false, al, "le r5 r4 LSL 23", "le_r5_r4_LSL_23"},
1026 {{lt, r3, r10, LSL, 14}, false, al, "lt r3 r10 LSL 14", "lt_r3_r10_LSL_14"},
1027 {{al, r10, r8, LSL, 4}, false, al, "al r10 r8 LSL 4", "al_r10_r8_LSL_4"},
1028 {{al, r14, r11, LSL, 11},
1029 false,
1030 al,
1031 "al r14 r11 LSL 11",
1032 "al_r14_r11_LSL_11"},
1033 {{mi, r14, r9, LSL, 30}, false, al, "mi r14 r9 LSL 30", "mi_r14_r9_LSL_30"},
1034 {{ge, r8, r11, LSL, 29}, false, al, "ge r8 r11 LSL 29", "ge_r8_r11_LSL_29"},
1035 {{vs, r14, r9, ROR, 13}, false, al, "vs r14 r9 ROR 13", "vs_r14_r9_ROR_13"},
1036 {{lt, r5, r5, LSL, 9}, false, al, "lt r5 r5 LSL 9", "lt_r5_r5_LSL_9"},
1037 {{pl, r13, r8, LSL, 2}, false, al, "pl r13 r8 LSL 2", "pl_r13_r8_LSL_2"},
1038 {{al, r7, r14, LSL, 15}, false, al, "al r7 r14 LSL 15", "al_r7_r14_LSL_15"},
1039 {{cs, r4, r0, ROR, 3}, false, al, "cs r4 r0 ROR 3", "cs_r4_r0_ROR_3"},
1040 {{gt, r4, r6, ROR, 21}, false, al, "gt r4 r6 ROR 21", "gt_r4_r6_ROR_21"},
1041 {{pl, r2, r1, LSL, 3}, false, al, "pl r2 r1 LSL 3", "pl_r2_r1_LSL_3"},
1042 {{vc, r5, r11, ROR, 1}, false, al, "vc r5 r11 ROR 1", "vc_r5_r11_ROR_1"},
1043 {{vc, r9, r0, LSL, 25}, false, al, "vc r9 r0 LSL 25", "vc_r9_r0_LSL_25"},
1044 {{gt, r2, r7, LSL, 30}, false, al, "gt r2 r7 LSL 30", "gt_r2_r7_LSL_30"},
1045 {{mi, r3, r0, LSL, 29}, false, al, "mi r3 r0 LSL 29", "mi_r3_r0_LSL_29"},
1046 {{lt, r6, r3, ROR, 18}, false, al, "lt r6 r3 ROR 18", "lt_r6_r3_ROR_18"},
1047 {{ne, r12, r10, ROR, 28},
1048 false,
1049 al,
1050 "ne r12 r10 ROR 28",
1051 "ne_r12_r10_ROR_28"},
1052 {{vs, r13, r9, LSL, 25}, false, al, "vs r13 r9 LSL 25", "vs_r13_r9_LSL_25"},
1053 {{ge, r5, r12, LSL, 13}, false, al, "ge r5 r12 LSL 13", "ge_r5_r12_LSL_13"},
1054 {{vs, r2, r4, ROR, 18}, false, al, "vs r2 r4 ROR 18", "vs_r2_r4_ROR_18"},
1055 {{pl, r10, r4, LSL, 9}, false, al, "pl r10 r4 LSL 9", "pl_r10_r4_LSL_9"},
1056 {{mi, r14, r13, ROR, 27},
1057 false,
1058 al,
1059 "mi r14 r13 ROR 27",
1060 "mi_r14_r13_ROR_27"},
1061 {{lt, r1, r13, LSL, 16}, false, al, "lt r1 r13 LSL 16", "lt_r1_r13_LSL_16"},
1062 {{vc, r1, r13, LSL, 9}, false, al, "vc r1 r13 LSL 9", "vc_r1_r13_LSL_9"},
1063 {{vs, r1, r5, ROR, 24}, false, al, "vs r1 r5 ROR 24", "vs_r1_r5_ROR_24"},
1064 {{pl, r8, r7, LSL, 30}, false, al, "pl r8 r7 LSL 30", "pl_r8_r7_LSL_30"},
1065 {{eq, r9, r5, LSL, 30}, false, al, "eq r9 r5 LSL 30", "eq_r9_r5_LSL_30"},
1066 {{al, r1, r13, ROR, 15}, false, al, "al r1 r13 ROR 15", "al_r1_r13_ROR_15"},
1067 {{lt, r3, r6, LSL, 24}, false, al, "lt r3 r6 LSL 24", "lt_r3_r6_LSL_24"},
1068 {{gt, r3, r5, LSL, 6}, false, al, "gt r3 r5 LSL 6", "gt_r3_r5_LSL_6"},
1069 {{cc, r1, r13, LSL, 8}, false, al, "cc r1 r13 LSL 8", "cc_r1_r13_LSL_8"},
1070 {{cc, r11, r11, ROR, 20},
1071 false,
1072 al,
1073 "cc r11 r11 ROR 20",
1074 "cc_r11_r11_ROR_20"},
1075 {{gt, r4, r8, LSL, 22}, false, al, "gt r4 r8 LSL 22", "gt_r4_r8_LSL_22"},
1076 {{ge, r4, r12, LSL, 3}, false, al, "ge r4 r12 LSL 3", "ge_r4_r12_LSL_3"},
1077 {{eq, r10, r13, ROR, 10},
1078 false,
1079 al,
1080 "eq r10 r13 ROR 10",
1081 "eq_r10_r13_ROR_10"},
1082 {{pl, r2, r9, LSL, 1}, false, al, "pl r2 r9 LSL 1", "pl_r2_r9_LSL_1"},
1083 {{cc, r14, r0, ROR, 22}, false, al, "cc r14 r0 ROR 22", "cc_r14_r0_ROR_22"},
1084 {{ge, r9, r8, LSL, 6}, false, al, "ge r9 r8 LSL 6", "ge_r9_r8_LSL_6"},
1085 {{ls, r14, r0, ROR, 13}, false, al, "ls r14 r0 ROR 13", "ls_r14_r0_ROR_13"},
1086 {{mi, r14, r5, LSL, 11}, false, al, "mi r14 r5 LSL 11", "mi_r14_r5_LSL_11"},
1087 {{hi, r12, r4, LSL, 11}, false, al, "hi r12 r4 LSL 11", "hi_r12_r4_LSL_11"},
1088 {{vc, r11, r10, ROR, 22},
1089 false,
1090 al,
1091 "vc r11 r10 ROR 22",
1092 "vc_r11_r10_ROR_22"},
1093 {{eq, r12, r4, ROR, 10}, false, al, "eq r12 r4 ROR 10", "eq_r12_r4_ROR_10"},
1094 {{pl, r0, r5, ROR, 12}, false, al, "pl r0 r5 ROR 12", "pl_r0_r5_ROR_12"},
1095 {{le, r6, r9, LSL, 11}, false, al, "le r6 r9 LSL 11", "le_r6_r9_LSL_11"},
1096 {{pl, r0, r5, LSL, 13}, false, al, "pl r0 r5 LSL 13", "pl_r0_r5_LSL_13"},
1097 {{hi, r14, r3, ROR, 3}, false, al, "hi r14 r3 ROR 3", "hi_r14_r3_ROR_3"},
1098 {{hi, r13, r7, LSL, 12}, false, al, "hi r13 r7 LSL 12", "hi_r13_r7_LSL_12"},
1099 {{hi, r1, r4, LSL, 3}, false, al, "hi r1 r4 LSL 3", "hi_r1_r4_LSL_3"},
1100 {{vc, r12, r3, LSL, 21}, false, al, "vc r12 r3 LSL 21", "vc_r12_r3_LSL_21"},
1101 {{gt, r3, r0, ROR, 9}, false, al, "gt r3 r0 ROR 9", "gt_r3_r0_ROR_9"},
1102 {{mi, r1, r6, ROR, 31}, false, al, "mi r1 r6 ROR 31", "mi_r1_r6_ROR_31"},
1103 {{cs, r2, r3, ROR, 16}, false, al, "cs r2 r3 ROR 16", "cs_r2_r3_ROR_16"},
1104 {{lt, r6, r3, ROR, 7}, false, al, "lt r6 r3 ROR 7", "lt_r6_r3_ROR_7"},
1105 {{le, r5, r3, LSL, 12}, false, al, "le r5 r3 LSL 12", "le_r5_r3_LSL_12"},
1106 {{pl, r14, r12, ROR, 3}, false, al, "pl r14 r12 ROR 3", "pl_r14_r12_ROR_3"},
1107 {{gt, r6, r4, LSL, 27}, false, al, "gt r6 r4 LSL 27", "gt_r6_r4_LSL_27"},
1108 {{le, r11, r10, ROR, 4}, false, al, "le r11 r10 ROR 4", "le_r11_r10_ROR_4"},
1109 {{gt, r8, r1, LSL, 25}, false, al, "gt r8 r1 LSL 25", "gt_r8_r1_LSL_25"},
1110 {{pl, r10, r4, LSL, 22}, false, al, "pl r10 r4 LSL 22", "pl_r10_r4_LSL_22"},
1111 {{al, r9, r5, ROR, 15}, false, al, "al r9 r5 ROR 15", "al_r9_r5_ROR_15"},
1112 {{cs, r1, r5, ROR, 3}, false, al, "cs r1 r5 ROR 3", "cs_r1_r5_ROR_3"},
1113 {{eq, r0, r1, LSL, 26}, false, al, "eq r0 r1 LSL 26", "eq_r0_r1_LSL_26"},
1114 {{hi, r13, r14, LSL, 6}, false, al, "hi r13 r14 LSL 6", "hi_r13_r14_LSL_6"},
1115 {{vs, r8, r1, LSL, 18}, false, al, "vs r8 r1 LSL 18", "vs_r8_r1_LSL_18"},
1116 {{eq, r12, r2, LSL, 16}, false, al, "eq r12 r2 LSL 16", "eq_r12_r2_LSL_16"},
1117 {{cc, r4, r3, LSL, 4}, false, al, "cc r4 r3 LSL 4", "cc_r4_r3_LSL_4"},
1118 {{ls, r4, r2, LSL, 14}, false, al, "ls r4 r2 LSL 14", "ls_r4_r2_LSL_14"},
1119 {{cs, r8, r12, LSL, 27}, false, al, "cs r8 r12 LSL 27", "cs_r8_r12_LSL_27"},
1120 {{le, r3, r10, ROR, 18}, false, al, "le r3 r10 ROR 18", "le_r3_r10_ROR_18"},
1121 {{vc, r6, r0, LSL, 26}, false, al, "vc r6 r0 LSL 26", "vc_r6_r0_LSL_26"},
1122 {{mi, r8, r13, LSL, 3}, false, al, "mi r8 r13 LSL 3", "mi_r8_r13_LSL_3"},
1123 {{al, r3, r2, ROR, 14}, false, al, "al r3 r2 ROR 14", "al_r3_r2_ROR_14"},
1124 {{gt, r6, r14, LSL, 29}, false, al, "gt r6 r14 LSL 29", "gt_r6_r14_LSL_29"},
1125 {{hi, r9, r12, ROR, 25}, false, al, "hi r9 r12 ROR 25", "hi_r9_r12_ROR_25"},
1126 {{mi, r11, r13, ROR, 12},
1127 false,
1128 al,
1129 "mi r11 r13 ROR 12",
1130 "mi_r11_r13_ROR_12"},
1131 {{vs, r2, r6, LSL, 13}, false, al, "vs r2 r6 LSL 13", "vs_r2_r6_LSL_13"},
1132 {{hi, r14, r4, LSL, 29}, false, al, "hi r14 r4 LSL 29", "hi_r14_r4_LSL_29"},
1133 {{hi, r9, r13, LSL, 4}, false, al, "hi r9 r13 LSL 4", "hi_r9_r13_LSL_4"},
1134 {{hi, r8, r1, ROR, 12}, false, al, "hi r8 r1 ROR 12", "hi_r8_r1_ROR_12"},
1135 {{vs, r13, r0, ROR, 11}, false, al, "vs r13 r0 ROR 11", "vs_r13_r0_ROR_11"},
1136 {{le, r4, r11, ROR, 31}, false, al, "le r4 r11 ROR 31", "le_r4_r11_ROR_31"},
1137 {{eq, r7, r1, ROR, 9}, false, al, "eq r7 r1 ROR 9", "eq_r7_r1_ROR_9"},
1138 {{ls, r13, r3, ROR, 4}, false, al, "ls r13 r3 ROR 4", "ls_r13_r3_ROR_4"},
1139 {{hi, r3, r4, ROR, 9}, false, al, "hi r3 r4 ROR 9", "hi_r3_r4_ROR_9"},
1140 {{al, r4, r8, LSL, 7}, false, al, "al r4 r8 LSL 7", "al_r4_r8_LSL_7"},
1141 {{le, r11, r2, ROR, 15}, false, al, "le r11 r2 ROR 15", "le_r11_r2_ROR_15"},
1142 {{hi, r4, r11, ROR, 3}, false, al, "hi r4 r11 ROR 3", "hi_r4_r11_ROR_3"},
1143 {{mi, r5, r4, LSL, 16}, false, al, "mi r5 r4 LSL 16", "mi_r5_r4_LSL_16"},
1144 {{pl, r7, r10, ROR, 11}, false, al, "pl r7 r10 ROR 11", "pl_r7_r10_ROR_11"},
1145 {{lt, r11, r14, ROR, 5}, false, al, "lt r11 r14 ROR 5", "lt_r11_r14_ROR_5"},
1146 {{le, r14, r12, LSL, 3}, false, al, "le r14 r12 LSL 3", "le_r14_r12_LSL_3"},
1147 {{mi, r6, r7, LSL, 7}, false, al, "mi r6 r7 LSL 7", "mi_r6_r7_LSL_7"},
1148 {{hi, r6, r12, LSL, 13}, false, al, "hi r6 r12 LSL 13", "hi_r6_r12_LSL_13"},
1149 {{mi, r12, r12, ROR, 24},
1150 false,
1151 al,
1152 "mi r12 r12 ROR 24",
1153 "mi_r12_r12_ROR_24"},
1154 {{mi, r6, r4, LSL, 31}, false, al, "mi r6 r4 LSL 31", "mi_r6_r4_LSL_31"},
1155 {{vc, r13, r7, LSL, 22}, false, al, "vc r13 r7 LSL 22", "vc_r13_r7_LSL_22"},
1156 {{le, r1, r10, ROR, 8}, false, al, "le r1 r10 ROR 8", "le_r1_r10_ROR_8"},
1157 {{gt, r9, r1, LSL, 6}, false, al, "gt r9 r1 LSL 6", "gt_r9_r1_LSL_6"},
1158 {{gt, r14, r2, ROR, 26}, false, al, "gt r14 r2 ROR 26", "gt_r14_r2_ROR_26"},
1159 {{pl, r11, r3, LSL, 1}, false, al, "pl r11 r3 LSL 1", "pl_r11_r3_LSL_1"},
1160 {{ge, r4, r7, LSL, 29}, false, al, "ge r4 r7 LSL 29", "ge_r4_r7_LSL_29"},
1161 {{gt, r9, r2, LSL, 6}, false, al, "gt r9 r2 LSL 6", "gt_r9_r2_LSL_6"},
1162 {{cs, r4, r7, LSL, 21}, false, al, "cs r4 r7 LSL 21", "cs_r4_r7_LSL_21"},
1163 {{eq, r4, r3, LSL, 9}, false, al, "eq r4 r3 LSL 9", "eq_r4_r3_LSL_9"},
1164 {{ne, r14, r3, ROR, 10}, false, al, "ne r14 r3 ROR 10", "ne_r14_r3_ROR_10"},
1165 {{eq, r4, r6, LSL, 19}, false, al, "eq r4 r6 LSL 19", "eq_r4_r6_LSL_19"},
1166 {{cs, r6, r1, ROR, 2}, false, al, "cs r6 r1 ROR 2", "cs_r6_r1_ROR_2"},
1167 {{ls, r0, r11, LSL, 7}, false, al, "ls r0 r11 LSL 7", "ls_r0_r11_LSL_7"},
1168 {{ge, r10, r10, LSL, 28},
1169 false,
1170 al,
1171 "ge r10 r10 LSL 28",
1172 "ge_r10_r10_LSL_28"},
1173 {{mi, r0, r9, LSL, 27}, false, al, "mi r0 r9 LSL 27", "mi_r0_r9_LSL_27"},
1174 {{vc, r7, r4, LSL, 17}, false, al, "vc r7 r4 LSL 17", "vc_r7_r4_LSL_17"},
1175 {{gt, r4, r4, LSL, 21}, false, al, "gt r4 r4 LSL 21", "gt_r4_r4_LSL_21"},
1176 {{mi, r5, r9, ROR, 28}, false, al, "mi r5 r9 ROR 28", "mi_r5_r9_ROR_28"},
1177 {{hi, r9, r9, LSL, 2}, false, al, "hi r9 r9 LSL 2", "hi_r9_r9_LSL_2"},
1178 {{hi, r2, r2, ROR, 11}, false, al, "hi r2 r2 ROR 11", "hi_r2_r2_ROR_11"},
1179 {{mi, r8, r9, ROR, 25}, false, al, "mi r8 r9 ROR 25", "mi_r8_r9_ROR_25"},
1180 {{mi, r3, r13, ROR, 20}, false, al, "mi r3 r13 ROR 20", "mi_r3_r13_ROR_20"},
1181 {{lt, r9, r10, ROR, 28}, false, al, "lt r9 r10 ROR 28", "lt_r9_r10_ROR_28"},
1182 {{pl, r8, r5, LSL, 16}, false, al, "pl r8 r5 LSL 16", "pl_r8_r5_LSL_16"},
1183 {{al, r14, r1, LSL, 11}, false, al, "al r14 r1 LSL 11", "al_r14_r1_LSL_11"},
1184 {{ls, r8, r4, ROR, 5}, false, al, "ls r8 r4 ROR 5", "ls_r8_r4_ROR_5"},
1185 {{cc, r11, r9, ROR, 15}, false, al, "cc r11 r9 ROR 15", "cc_r11_r9_ROR_15"},
1186 {{gt, r6, r0, LSL, 2}, false, al, "gt r6 r0 LSL 2", "gt_r6_r0_LSL_2"},
1187 {{ne, r12, r8, LSL, 15}, false, al, "ne r12 r8 LSL 15", "ne_r12_r8_LSL_15"},
1188 {{gt, r8, r2, ROR, 31}, false, al, "gt r8 r2 ROR 31", "gt_r8_r2_ROR_31"},
1189 {{lt, r7, r12, LSL, 19}, false, al, "lt r7 r12 LSL 19", "lt_r7_r12_LSL_19"},
1190 {{al, r9, r11, ROR, 28}, false, al, "al r9 r11 ROR 28", "al_r9_r11_ROR_28"},
1191 {{al, r13, r5, ROR, 28}, false, al, "al r13 r5 ROR 28", "al_r13_r5_ROR_28"},
1192 {{lt, r2, r13, LSL, 6}, false, al, "lt r2 r13 LSL 6", "lt_r2_r13_LSL_6"},
1193 {{al, r7, r7, LSL, 8}, false, al, "al r7 r7 LSL 8", "al_r7_r7_LSL_8"},
1194 {{lt, r1, r11, ROR, 16}, false, al, "lt r1 r11 ROR 16", "lt_r1_r11_ROR_16"},
1195 {{eq, r7, r8, LSL, 23}, false, al, "eq r7 r8 LSL 23", "eq_r7_r8_LSL_23"},
1196 {{cs, r4, r12, LSL, 1}, false, al, "cs r4 r12 LSL 1", "cs_r4_r12_LSL_1"},
1197 {{ls, r2, r3, ROR, 26}, false, al, "ls r2 r3 ROR 26", "ls_r2_r3_ROR_26"},
1198 {{ne, r13, r1, ROR, 11}, false, al, "ne r13 r1 ROR 11", "ne_r13_r1_ROR_11"},
1199 {{le, r8, r13, ROR, 26}, false, al, "le r8 r13 ROR 26", "le_r8_r13_ROR_26"},
1200 {{al, r2, r4, LSL, 8}, false, al, "al r2 r4 LSL 8", "al_r2_r4_LSL_8"},
1201 {{gt, r4, r12, ROR, 16}, false, al, "gt r4 r12 ROR 16", "gt_r4_r12_ROR_16"},
1202 {{lt, r8, r1, ROR, 19}, false, al, "lt r8 r1 ROR 19", "lt_r8_r1_ROR_19"},
1203 {{ne, r7, r3, ROR, 15}, false, al, "ne r7 r3 ROR 15", "ne_r7_r3_ROR_15"},
1204 {{ge, r11, r8, LSL, 23}, false, al, "ge r11 r8 LSL 23", "ge_r11_r8_LSL_23"},
1205 {{mi, r11, r12, ROR, 10},
1206 false,
1207 al,
1208 "mi r11 r12 ROR 10",
1209 "mi_r11_r12_ROR_10"},
1210 {{cs, r1, r4, ROR, 15}, false, al, "cs r1 r4 ROR 15", "cs_r1_r4_ROR_15"},
1211 {{mi, r14, r4, LSL, 5}, false, al, "mi r14 r4 LSL 5", "mi_r14_r4_LSL_5"},
1212 {{ge, r5, r2, ROR, 15}, false, al, "ge r5 r2 ROR 15", "ge_r5_r2_ROR_15"},
1213 {{lt, r11, r11, LSL, 13},
1214 false,
1215 al,
1216 "lt r11 r11 LSL 13",
1217 "lt_r11_r11_LSL_13"},
1218 {{hi, r7, r8, ROR, 2}, false, al, "hi r7 r8 ROR 2", "hi_r7_r8_ROR_2"},
1219 {{eq, r14, r0, LSL, 4}, false, al, "eq r14 r0 LSL 4", "eq_r14_r0_LSL_4"},
1220 {{al, r12, r5, LSL, 6}, false, al, "al r12 r5 LSL 6", "al_r12_r5_LSL_6"},
1221 {{mi, r5, r6, ROR, 14}, false, al, "mi r5 r6 ROR 14", "mi_r5_r6_ROR_14"},
1222 {{cc, r14, r0, ROR, 31}, false, al, "cc r14 r0 ROR 31", "cc_r14_r0_ROR_31"},
1223 {{ne, r4, r12, ROR, 22}, false, al, "ne r4 r12 ROR 22", "ne_r4_r12_ROR_22"},
1224 {{ne, r1, r3, LSL, 24}, false, al, "ne r1 r3 LSL 24", "ne_r1_r3_LSL_24"},
1225 {{hi, r3, r9, LSL, 26}, false, al, "hi r3 r9 LSL 26", "hi_r3_r9_LSL_26"},
1226 {{vs, r0, r7, ROR, 31}, false, al, "vs r0 r7 ROR 31", "vs_r0_r7_ROR_31"},
1227 {{le, r3, r1, ROR, 12}, false, al, "le r3 r1 ROR 12", "le_r3_r1_ROR_12"},
1228 {{le, r5, r8, LSL, 19}, false, al, "le r5 r8 LSL 19", "le_r5_r8_LSL_19"},
1229 {{lt, r0, r13, ROR, 8}, false, al, "lt r0 r13 ROR 8", "lt_r0_r13_ROR_8"},
1230 {{ge, r12, r13, LSL, 6}, false, al, "ge r12 r13 LSL 6", "ge_r12_r13_LSL_6"},
1231 {{lt, r1, r2, LSL, 21}, false, al, "lt r1 r2 LSL 21", "lt_r1_r2_LSL_21"},
1232 {{ge, r4, r5, LSL, 26}, false, al, "ge r4 r5 LSL 26", "ge_r4_r5_LSL_26"},
1233 {{ls, r6, r10, LSL, 25}, false, al, "ls r6 r10 LSL 25", "ls_r6_r10_LSL_25"},
1234 {{hi, r5, r4, LSL, 18}, false, al, "hi r5 r4 LSL 18", "hi_r5_r4_LSL_18"},
1235 {{cs, r7, r14, LSL, 23}, false, al, "cs r7 r14 LSL 23", "cs_r7_r14_LSL_23"},
1236 {{cc, r14, r4, ROR, 3}, false, al, "cc r14 r4 ROR 3", "cc_r14_r4_ROR_3"},
1237 {{cs, r14, r4, LSL, 17}, false, al, "cs r14 r4 LSL 17", "cs_r14_r4_LSL_17"},
1238 {{lt, r14, r12, LSL, 24},
1239 false,
1240 al,
1241 "lt r14 r12 LSL 24",
1242 "lt_r14_r12_LSL_24"},
1243 {{vc, r6, r14, ROR, 3}, false, al, "vc r6 r14 ROR 3", "vc_r6_r14_ROR_3"},
1244 {{ls, r11, r5, ROR, 18}, false, al, "ls r11 r5 ROR 18", "ls_r11_r5_ROR_18"},
1245 {{gt, r3, r1, ROR, 2}, false, al, "gt r3 r1 ROR 2", "gt_r3_r1_ROR_2"},
1246 {{al, r11, r14, ROR, 5}, false, al, "al r11 r14 ROR 5", "al_r11_r14_ROR_5"},
1247 {{le, r11, r11, LSL, 15},
1248 false,
1249 al,
1250 "le r11 r11 LSL 15",
1251 "le_r11_r11_LSL_15"},
1252 {{gt, r1, r13, LSL, 30}, false, al, "gt r1 r13 LSL 30", "gt_r1_r13_LSL_30"},
1253 {{le, r3, r5, LSL, 31}, false, al, "le r3 r5 LSL 31", "le_r3_r5_LSL_31"},
1254 {{hi, r4, r10, ROR, 16}, false, al, "hi r4 r10 ROR 16", "hi_r4_r10_ROR_16"},
1255 {{eq, r0, r6, LSL, 6}, false, al, "eq r0 r6 LSL 6", "eq_r0_r6_LSL_6"},
1256 {{vs, r0, r14, ROR, 3}, false, al, "vs r0 r14 ROR 3", "vs_r0_r14_ROR_3"},
1257 {{eq, r0, r3, ROR, 26}, false, al, "eq r0 r3 ROR 26", "eq_r0_r3_ROR_26"},
1258 {{eq, r1, r10, ROR, 30}, false, al, "eq r1 r10 ROR 30", "eq_r1_r10_ROR_30"},
1259 {{ls, r9, r2, ROR, 12}, false, al, "ls r9 r2 ROR 12", "ls_r9_r2_ROR_12"},
1260 {{gt, r9, r14, ROR, 22}, false, al, "gt r9 r14 ROR 22", "gt_r9_r14_ROR_22"},
1261 {{hi, r1, r8, LSL, 1}, false, al, "hi r1 r8 LSL 1", "hi_r1_r8_LSL_1"},
1262 {{le, r13, r0, ROR, 4}, false, al, "le r13 r0 ROR 4", "le_r13_r0_ROR_4"},
1263 {{lt, r11, r10, ROR, 4}, false, al, "lt r11 r10 ROR 4", "lt_r11_r10_ROR_4"},
1264 {{le, r2, r5, LSL, 28}, false, al, "le r2 r5 LSL 28", "le_r2_r5_LSL_28"},
1265 {{vc, r8, r12, LSL, 27}, false, al, "vc r8 r12 LSL 27", "vc_r8_r12_LSL_27"},
1266 {{al, r11, r3, LSL, 6}, false, al, "al r11 r3 LSL 6", "al_r11_r3_LSL_6"},
1267 {{al, r12, r1, ROR, 2}, false, al, "al r12 r1 ROR 2", "al_r12_r1_ROR_2"},
1268 {{cs, r8, r10, LSL, 5}, false, al, "cs r8 r10 LSL 5", "cs_r8_r10_LSL_5"},
1269 {{hi, r11, r2, ROR, 4}, false, al, "hi r11 r2 ROR 4", "hi_r11_r2_ROR_4"},
1270 {{eq, r1, r2, LSL, 15}, false, al, "eq r1 r2 LSL 15", "eq_r1_r2_LSL_15"},
1271 {{lt, r0, r5, ROR, 5}, false, al, "lt r0 r5 ROR 5", "lt_r0_r5_ROR_5"},
1272 {{mi, r9, r0, ROR, 18}, false, al, "mi r9 r0 ROR 18", "mi_r9_r0_ROR_18"},
1273 {{cs, r12, r9, LSL, 5}, false, al, "cs r12 r9 LSL 5", "cs_r12_r9_LSL_5"},
1274 {{cc, r13, r10, LSL, 19},
1275 false,
1276 al,
1277 "cc r13 r10 LSL 19",
1278 "cc_r13_r10_LSL_19"},
1279 {{eq, r8, r0, LSL, 25}, false, al, "eq r8 r0 LSL 25", "eq_r8_r0_LSL_25"},
1280 {{cc, r9, r7, LSL, 4}, false, al, "cc r9 r7 LSL 4", "cc_r9_r7_LSL_4"},
1281 {{ls, r6, r2, LSL, 18}, false, al, "ls r6 r2 LSL 18", "ls_r6_r2_LSL_18"},
1282 {{lt, r6, r14, ROR, 3}, false, al, "lt r6 r14 ROR 3", "lt_r6_r14_ROR_3"},
1283 {{al, r10, r6, ROR, 13}, false, al, "al r10 r6 ROR 13", "al_r10_r6_ROR_13"},
1284 {{le, r1, r0, ROR, 8}, false, al, "le r1 r0 ROR 8", "le_r1_r0_ROR_8"},
1285 {{hi, r1, r3, ROR, 5}, false, al, "hi r1 r3 ROR 5", "hi_r1_r3_ROR_5"},
1286 {{cc, r5, r1, ROR, 5}, false, al, "cc r5 r1 ROR 5", "cc_r5_r1_ROR_5"},
1287 {{vc, r12, r3, LSL, 6}, false, al, "vc r12 r3 LSL 6", "vc_r12_r3_LSL_6"},
1288 {{ls, r11, r13, ROR, 28},
1289 false,
1290 al,
1291 "ls r11 r13 ROR 28",
1292 "ls_r11_r13_ROR_28"},
1293 {{vs, r9, r13, ROR, 10}, false, al, "vs r9 r13 ROR 10", "vs_r9_r13_ROR_10"},
1294 {{eq, r3, r13, LSL, 31}, false, al, "eq r3 r13 LSL 31", "eq_r3_r13_LSL_31"},
1295 {{cc, r11, r9, ROR, 27}, false, al, "cc r11 r9 ROR 27", "cc_r11_r9_ROR_27"},
1296 {{cc, r9, r2, LSL, 28}, false, al, "cc r9 r2 LSL 28", "cc_r9_r2_LSL_28"},
1297 {{ne, r14, r5, LSL, 4}, false, al, "ne r14 r5 LSL 4", "ne_r14_r5_LSL_4"},
1298 {{gt, r4, r2, LSL, 31}, false, al, "gt r4 r2 LSL 31", "gt_r4_r2_LSL_31"},
1299 {{cc, r9, r1, ROR, 17}, false, al, "cc r9 r1 ROR 17", "cc_r9_r1_ROR_17"},
1300 {{hi, r4, r10, LSL, 24}, false, al, "hi r4 r10 LSL 24", "hi_r4_r10_LSL_24"},
1301 {{ne, r3, r9, LSL, 5}, false, al, "ne r3 r9 LSL 5", "ne_r3_r9_LSL_5"},
1302 {{hi, r8, r5, ROR, 10}, false, al, "hi r8 r5 ROR 10", "hi_r8_r5_ROR_10"},
1303 {{pl, r5, r1, ROR, 3}, false, al, "pl r5 r1 ROR 3", "pl_r5_r1_ROR_3"},
1304 {{ge, r14, r0, ROR, 14}, false, al, "ge r14 r0 ROR 14", "ge_r14_r0_ROR_14"},
1305 {{ge, r11, r7, LSL, 15}, false, al, "ge r11 r7 LSL 15", "ge_r11_r7_LSL_15"},
1306 {{pl, r10, r11, LSL, 15},
1307 false,
1308 al,
1309 "pl r10 r11 LSL 15",
1310 "pl_r10_r11_LSL_15"},
1311 {{ne, r6, r11, LSL, 3}, false, al, "ne r6 r11 LSL 3", "ne_r6_r11_LSL_3"},
1312 {{cs, r4, r5, ROR, 12}, false, al, "cs r4 r5 ROR 12", "cs_r4_r5_ROR_12"},
1313 {{eq, r8, r10, ROR, 4}, false, al, "eq r8 r10 ROR 4", "eq_r8_r10_ROR_4"},
1314 {{mi, r9, r12, ROR, 2}, false, al, "mi r9 r12 ROR 2", "mi_r9_r12_ROR_2"},
1315 {{pl, r6, r2, LSL, 24}, false, al, "pl r6 r2 LSL 24", "pl_r6_r2_LSL_24"},
1316 {{vs, r6, r8, LSL, 12}, false, al, "vs r6 r8 LSL 12", "vs_r6_r8_LSL_12"},
1317 {{vc, r0, r13, ROR, 29}, false, al, "vc r0 r13 ROR 29", "vc_r0_r13_ROR_29"},
1318 {{ne, r1, r4, LSL, 19}, false, al, "ne r1 r4 LSL 19", "ne_r1_r4_LSL_19"},
1319 {{cc, r3, r12, ROR, 30}, false, al, "cc r3 r12 ROR 30", "cc_r3_r12_ROR_30"},
1320 {{gt, r9, r8, LSL, 17}, false, al, "gt r9 r8 LSL 17", "gt_r9_r8_LSL_17"},
1321 {{ne, r3, r9, ROR, 14}, false, al, "ne r3 r9 ROR 14", "ne_r3_r9_ROR_14"},
1322 {{ne, r5, r7, ROR, 25}, false, al, "ne r5 r7 ROR 25", "ne_r5_r7_ROR_25"},
1323 {{pl, r8, r10, LSL, 16}, false, al, "pl r8 r10 LSL 16", "pl_r8_r10_LSL_16"},
1324 {{ls, r10, r10, ROR, 22},
1325 false,
1326 al,
1327 "ls r10 r10 ROR 22",
1328 "ls_r10_r10_ROR_22"},
1329 {{al, r11, r11, ROR, 29},
1330 false,
1331 al,
1332 "al r11 r11 ROR 29",
1333 "al_r11_r11_ROR_29"},
1334 {{ge, r6, r11, LSL, 18}, false, al, "ge r6 r11 LSL 18", "ge_r6_r11_LSL_18"},
1335 {{hi, r0, r12, LSL, 2}, false, al, "hi r0 r12 LSL 2", "hi_r0_r12_LSL_2"},
1336 {{ge, r3, r12, LSL, 25}, false, al, "ge r3 r12 LSL 25", "ge_r3_r12_LSL_25"},
1337 {{pl, r6, r1, LSL, 27}, false, al, "pl r6 r1 LSL 27", "pl_r6_r1_LSL_27"},
1338 {{lt, r7, r8, LSL, 19}, false, al, "lt r7 r8 LSL 19", "lt_r7_r8_LSL_19"},
1339 {{hi, r3, r9, LSL, 10}, false, al, "hi r3 r9 LSL 10", "hi_r3_r9_LSL_10"},
1340 {{eq, r3, r13, LSL, 27}, false, al, "eq r3 r13 LSL 27", "eq_r3_r13_LSL_27"},
1341 {{ne, r3, r1, ROR, 6}, false, al, "ne r3 r1 ROR 6", "ne_r3_r1_ROR_6"},
1342 {{cs, r8, r13, ROR, 16}, false, al, "cs r8 r13 ROR 16", "cs_r8_r13_ROR_16"},
1343 {{eq, r1, r4, ROR, 23}, false, al, "eq r1 r4 ROR 23", "eq_r1_r4_ROR_23"},
1344 {{vc, r5, r8, ROR, 5}, false, al, "vc r5 r8 ROR 5", "vc_r5_r8_ROR_5"},
1345 {{ge, r13, r5, LSL, 24}, false, al, "ge r13 r5 LSL 24", "ge_r13_r5_LSL_24"},
1346 {{lt, r4, r10, ROR, 25}, false, al, "lt r4 r10 ROR 25", "lt_r4_r10_ROR_25"},
1347 {{hi, r3, r10, LSL, 21}, false, al, "hi r3 r10 LSL 21", "hi_r3_r10_LSL_21"},
1348 {{hi, r7, r1, LSL, 31}, false, al, "hi r7 r1 LSL 31", "hi_r7_r1_LSL_31"},
1349 {{gt, r4, r12, ROR, 29}, false, al, "gt r4 r12 ROR 29", "gt_r4_r12_ROR_29"},
1350 {{cs, r5, r1, ROR, 27}, false, al, "cs r5 r1 ROR 27", "cs_r5_r1_ROR_27"},
1351 {{al, r4, r7, ROR, 8}, false, al, "al r4 r7 ROR 8", "al_r4_r7_ROR_8"},
1352 {{ge, r8, r10, LSL, 7}, false, al, "ge r8 r10 LSL 7", "ge_r8_r10_LSL_7"},
1353 {{vc, r0, r12, LSL, 29}, false, al, "vc r0 r12 LSL 29", "vc_r0_r12_LSL_29"},
1354 {{lt, r5, r1, LSL, 9}, false, al, "lt r5 r1 LSL 9", "lt_r5_r1_LSL_9"},
1355 {{gt, r6, r10, LSL, 30}, false, al, "gt r6 r10 LSL 30", "gt_r6_r10_LSL_30"},
1356 {{eq, r14, r0, LSL, 2}, false, al, "eq r14 r0 LSL 2", "eq_r14_r0_LSL_2"},
1357 {{lt, r0, r6, LSL, 21}, false, al, "lt r0 r6 LSL 21", "lt_r0_r6_LSL_21"},
1358 {{vs, r2, r12, LSL, 13}, false, al, "vs r2 r12 LSL 13", "vs_r2_r12_LSL_13"},
1359 {{ge, r10, r1, ROR, 22}, false, al, "ge r10 r1 ROR 22", "ge_r10_r1_ROR_22"},
1360 {{ne, r5, r14, ROR, 16}, false, al, "ne r5 r14 ROR 16", "ne_r5_r14_ROR_16"},
1361 {{ge, r13, r11, LSL, 21},
1362 false,
1363 al,
1364 "ge r13 r11 LSL 21",
1365 "ge_r13_r11_LSL_21"},
1366 {{ge, r5, r9, ROR, 29}, false, al, "ge r5 r9 ROR 29", "ge_r5_r9_ROR_29"},
1367 {{al, r3, r13, ROR, 18}, false, al, "al r3 r13 ROR 18", "al_r3_r13_ROR_18"},
1368 {{hi, r0, r12, LSL, 10}, false, al, "hi r0 r12 LSL 10", "hi_r0_r12_LSL_10"},
1369 {{vc, r11, r3, ROR, 19}, false, al, "vc r11 r3 ROR 19", "vc_r11_r3_ROR_19"},
1370 {{mi, r9, r4, LSL, 7}, false, al, "mi r9 r4 LSL 7", "mi_r9_r4_LSL_7"},
1371 {{mi, r0, r14, LSL, 31}, false, al, "mi r0 r14 LSL 31", "mi_r0_r14_LSL_31"},
1372 {{mi, r2, r5, ROR, 11}, false, al, "mi r2 r5 ROR 11", "mi_r2_r5_ROR_11"},
1373 {{hi, r8, r2, LSL, 30}, false, al, "hi r8 r2 LSL 30", "hi_r8_r2_LSL_30"},
1374 {{cs, r6, r13, ROR, 25}, false, al, "cs r6 r13 ROR 25", "cs_r6_r13_ROR_25"},
1375 {{le, r14, r5, ROR, 25}, false, al, "le r14 r5 ROR 25", "le_r14_r5_ROR_25"},
1376 {{le, r12, r2, LSL, 20}, false, al, "le r12 r2 LSL 20", "le_r12_r2_LSL_20"},
1377 {{le, r4, r1, LSL, 23}, false, al, "le r4 r1 LSL 23", "le_r4_r1_LSL_23"},
1378 {{al, r9, r11, LSL, 6}, false, al, "al r9 r11 LSL 6", "al_r9_r11_LSL_6"},
1379 {{gt, r10, r13, LSL, 1}, false, al, "gt r10 r13 LSL 1", "gt_r10_r13_LSL_1"},
1380 {{vs, r8, r6, ROR, 27}, false, al, "vs r8 r6 ROR 27", "vs_r8_r6_ROR_27"},
1381 {{vs, r3, r5, LSL, 28}, false, al, "vs r3 r5 LSL 28", "vs_r3_r5_LSL_28"},
1382 {{vs, r7, r5, ROR, 28}, false, al, "vs r7 r5 ROR 28", "vs_r7_r5_ROR_28"},
1383 {{vs, r14, r0, ROR, 25}, false, al, "vs r14 r0 ROR 25", "vs_r14_r0_ROR_25"},
1384 {{ge, r9, r14, ROR, 20}, false, al, "ge r9 r14 ROR 20", "ge_r9_r14_ROR_20"},
1385 {{ne, r13, r10, LSL, 14},
1386 false,
1387 al,
1388 "ne r13 r10 LSL 14",
1389 "ne_r13_r10_LSL_14"},
1390 {{hi, r1, r8, ROR, 3}, false, al, "hi r1 r8 ROR 3", "hi_r1_r8_ROR_3"},
1391 {{mi, r14, r7, ROR, 18}, false, al, "mi r14 r7 ROR 18", "mi_r14_r7_ROR_18"},
1392 {{hi, r13, r14, LSL, 30},
1393 false,
1394 al,
1395 "hi r13 r14 LSL 30",
1396 "hi_r13_r14_LSL_30"},
1397 {{hi, r5, r7, ROR, 26}, false, al, "hi r5 r7 ROR 26", "hi_r5_r7_ROR_26"},
1398 {{eq, r5, r1, ROR, 16}, false, al, "eq r5 r1 ROR 16", "eq_r5_r1_ROR_16"},
1399 {{cs, r1, r1, LSL, 14}, false, al, "cs r1 r1 LSL 14", "cs_r1_r1_LSL_14"},
1400 {{le, r3, r7, LSL, 5}, false, al, "le r3 r7 LSL 5", "le_r3_r7_LSL_5"},
1401 {{eq, r2, r3, LSL, 2}, false, al, "eq r2 r3 LSL 2", "eq_r2_r3_LSL_2"},
1402 {{vc, r9, r9, ROR, 15}, false, al, "vc r9 r9 ROR 15", "vc_r9_r9_ROR_15"},
1403 {{pl, r4, r14, ROR, 10}, false, al, "pl r4 r14 ROR 10", "pl_r4_r14_ROR_10"},
1404 {{gt, r4, r4, LSL, 25}, false, al, "gt r4 r4 LSL 25", "gt_r4_r4_LSL_25"},
1405 {{cc, r6, r1, ROR, 12}, false, al, "cc r6 r1 ROR 12", "cc_r6_r1_ROR_12"},
1406 {{hi, r12, r3, LSL, 23}, false, al, "hi r12 r3 LSL 23", "hi_r12_r3_LSL_23"},
1407 {{eq, r7, r1, LSL, 9}, false, al, "eq r7 r1 LSL 9", "eq_r7_r1_LSL_9"}};
1408
1409 // These headers each contain an array of `TestResult` with the reference output
1410 // values. The reference arrays are names `kReference{mnemonic}`.
1411 #include "aarch32/traces/assembler-cond-rd-operand-rn-shift-amount-1to31-cmn-a32.h"
1412 #include "aarch32/traces/assembler-cond-rd-operand-rn-shift-amount-1to31-cmp-a32.h"
1413 #include "aarch32/traces/assembler-cond-rd-operand-rn-shift-amount-1to31-mov-a32.h"
1414 #include "aarch32/traces/assembler-cond-rd-operand-rn-shift-amount-1to31-movs-a32.h"
1415 #include "aarch32/traces/assembler-cond-rd-operand-rn-shift-amount-1to31-mvn-a32.h"
1416 #include "aarch32/traces/assembler-cond-rd-operand-rn-shift-amount-1to31-mvns-a32.h"
1417 #include "aarch32/traces/assembler-cond-rd-operand-rn-shift-amount-1to31-teq-a32.h"
1418 #include "aarch32/traces/assembler-cond-rd-operand-rn-shift-amount-1to31-tst-a32.h"
1419
1420
1421 // The maximum number of errors to report in detail for each test.
1422 const unsigned kErrorReportLimit = 8;
1423
1424 typedef void (MacroAssembler::*Fn)(Condition cond,
1425 Register rd,
1426 const Operand& op);
1427
TestHelper(Fn instruction,const char * mnemonic,const TestResult reference[])1428 void TestHelper(Fn instruction,
1429 const char* mnemonic,
1430 const TestResult reference[]) {
1431 unsigned total_error_count = 0;
1432 MacroAssembler masm(BUF_SIZE);
1433
1434 masm.UseA32();
1435
1436 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
1437 // Values to pass to the macro-assembler.
1438 Condition cond = kTests[i].operands.cond;
1439 Register rd = kTests[i].operands.rd;
1440 Register rn = kTests[i].operands.rn;
1441 ShiftType shift = kTests[i].operands.shift;
1442 uint32_t amount = kTests[i].operands.amount;
1443 Operand op(rn, shift, amount);
1444
1445 int32_t start = masm.GetCursorOffset();
1446 {
1447 // We never generate more that 4 bytes, as IT instructions are only
1448 // allowed for narrow encodings.
1449 ExactAssemblyScope scope(&masm, 4, ExactAssemblyScope::kMaximumSize);
1450 if (kTests[i].in_it_block) {
1451 masm.it(kTests[i].it_condition);
1452 }
1453 (masm.*instruction)(cond, rd, op);
1454 }
1455 int32_t end = masm.GetCursorOffset();
1456
1457 const byte* result_ptr =
1458 masm.GetBuffer()->GetOffsetAddress<const byte*>(start);
1459 VIXL_ASSERT(start < end);
1460 uint32_t result_size = end - start;
1461
1462 if (Test::generate_test_trace()) {
1463 // Print the result bytes.
1464 printf("const byte kInstruction_%s_%s[] = {\n",
1465 mnemonic,
1466 kTests[i].identifier);
1467 for (uint32_t j = 0; j < result_size; j++) {
1468 if (j == 0) {
1469 printf(" 0x%02" PRIx8, result_ptr[j]);
1470 } else {
1471 printf(", 0x%02" PRIx8, result_ptr[j]);
1472 }
1473 }
1474 // This comment is meant to be used by external tools to validate
1475 // the encoding. We can parse the comment to figure out what
1476 // instruction this corresponds to.
1477 if (kTests[i].in_it_block) {
1478 printf(" // It %s; %s %s\n};\n",
1479 kTests[i].it_condition.GetName(),
1480 mnemonic,
1481 kTests[i].operands_description);
1482 } else {
1483 printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description);
1484 }
1485 } else {
1486 // Check we've emitted the exact same encoding as present in the
1487 // trace file. Only print up to `kErrorReportLimit` errors.
1488 if (((result_size != reference[i].size) ||
1489 (memcmp(result_ptr, reference[i].encoding, reference[i].size) !=
1490 0)) &&
1491 (++total_error_count <= kErrorReportLimit)) {
1492 printf("Error when testing \"%s\" with operands \"%s\":\n",
1493 mnemonic,
1494 kTests[i].operands_description);
1495 printf(" Expected: ");
1496 for (uint32_t j = 0; j < reference[i].size; j++) {
1497 if (j == 0) {
1498 printf("0x%02" PRIx8, reference[i].encoding[j]);
1499 } else {
1500 printf(", 0x%02" PRIx8, reference[i].encoding[j]);
1501 }
1502 }
1503 printf("\n");
1504 printf(" Found: ");
1505 for (uint32_t j = 0; j < result_size; j++) {
1506 if (j == 0) {
1507 printf("0x%02" PRIx8, result_ptr[j]);
1508 } else {
1509 printf(", 0x%02" PRIx8, result_ptr[j]);
1510 }
1511 }
1512 printf("\n");
1513 }
1514 }
1515 }
1516
1517 masm.FinalizeCode();
1518
1519 if (Test::generate_test_trace()) {
1520 // Finalize the trace file by writing the final `TestResult` array
1521 // which links all generated instruction encodings.
1522 printf("const TestResult kReference%s[] = {\n", mnemonic);
1523 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
1524 printf(" {\n");
1525 printf(" ARRAY_SIZE(kInstruction_%s_%s),\n",
1526 mnemonic,
1527 kTests[i].identifier);
1528 printf(" kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier);
1529 printf(" },\n");
1530 }
1531 printf("};\n");
1532 } else {
1533 if (total_error_count > kErrorReportLimit) {
1534 printf("%u other errors follow.\n",
1535 total_error_count - kErrorReportLimit);
1536 }
1537 // Crash if the test failed.
1538 VIXL_CHECK(total_error_count == 0);
1539 }
1540 }
1541
1542 // Instantiate tests for each instruction in the list.
1543 #define TEST(mnemonic) \
1544 void Test_##mnemonic() { \
1545 TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic); \
1546 } \
1547 Test test_##mnemonic( \
1548 "AARCH32_ASSEMBLER_COND_RD_OPERAND_RN_SHIFT_AMOUNT_1TO31_" #mnemonic \
1549 "_A32", \
1550 &Test_##mnemonic);
1551 FOREACH_INSTRUCTION(TEST)
1552 #undef TEST
1553
1554 } // namespace
1555 #endif
1556
1557 } // namespace aarch32
1558 } // namespace vixl
1559