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(sxtb) \
53 M(sxtb16) \
54 M(sxth) \
55 M(uxtb) \
56 M(uxtb16) \
57 M(uxth)
58
59
60 // The following definitions are defined again in each generated test, therefore
61 // we need to place them in an anomymous namespace. It expresses that they are
62 // local to this file only, and the compiler is not allowed to share these types
63 // across test files during template instantiation. Specifically, `Operands` has
64 // various layouts across generated tests so it absolutely cannot be shared.
65
66 #ifdef VIXL_INCLUDE_TARGET_A32
67 namespace {
68
69 // Values to be passed to the assembler to produce the instruction under test.
70 struct Operands {
71 Condition cond;
72 Register rd;
73 Register rn;
74 ShiftType ror;
75 uint32_t amount;
76 };
77
78 // This structure contains all data needed to test one specific
79 // instruction.
80 struct TestData {
81 // The `operands` field represents what to pass to the assembler to
82 // produce the instruction.
83 Operands operands;
84 // True if we need to generate an IT instruction for this test to be valid.
85 bool in_it_block;
86 // The condition to give the IT instruction, this will be set to "al" by
87 // default.
88 Condition it_condition;
89 // Description of the operands, used for error reporting.
90 const char* operands_description;
91 // Unique identifier, used for generating traces.
92 const char* identifier;
93 };
94
95 struct TestResult {
96 size_t size;
97 const byte* encoding;
98 };
99
100 // Each element of this array produce one instruction encoding.
101 const TestData kTests[] = {
102 {{vc, r2, r5, ROR, 0}, false, al, "vc r2 r5 ROR 0", "vc_r2_r5_ROR_0"},
103 {{eq, r5, r7, ROR, 0}, false, al, "eq r5 r7 ROR 0", "eq_r5_r7_ROR_0"},
104 {{ge, r3, r2, ROR, 8}, false, al, "ge r3 r2 ROR 8", "ge_r3_r2_ROR_8"},
105 {{cc, r11, r3, ROR, 16}, false, al, "cc r11 r3 ROR 16", "cc_r11_r3_ROR_16"},
106 {{cs, r13, r6, ROR, 0}, false, al, "cs r13 r6 ROR 0", "cs_r13_r6_ROR_0"},
107 {{al, r6, r7, ROR, 16}, false, al, "al r6 r7 ROR 16", "al_r6_r7_ROR_16"},
108 {{le, r12, r12, ROR, 0}, false, al, "le r12 r12 ROR 0", "le_r12_r12_ROR_0"},
109 {{mi, r4, r5, ROR, 16}, false, al, "mi r4 r5 ROR 16", "mi_r4_r5_ROR_16"},
110 {{pl, r9, r2, ROR, 16}, false, al, "pl r9 r2 ROR 16", "pl_r9_r2_ROR_16"},
111 {{vs, r5, r11, ROR, 8}, false, al, "vs r5 r11 ROR 8", "vs_r5_r11_ROR_8"},
112 {{vs, r0, r3, ROR, 0}, false, al, "vs r0 r3 ROR 0", "vs_r0_r3_ROR_0"},
113 {{vs, r5, r4, ROR, 24}, false, al, "vs r5 r4 ROR 24", "vs_r5_r4_ROR_24"},
114 {{le, r14, r12, ROR, 24},
115 false,
116 al,
117 "le r14 r12 ROR 24",
118 "le_r14_r12_ROR_24"},
119 {{ne, r6, r12, ROR, 16}, false, al, "ne r6 r12 ROR 16", "ne_r6_r12_ROR_16"},
120 {{cs, r0, r9, ROR, 16}, false, al, "cs r0 r9 ROR 16", "cs_r0_r9_ROR_16"},
121 {{ne, r12, r2, ROR, 0}, false, al, "ne r12 r2 ROR 0", "ne_r12_r2_ROR_0"},
122 {{cc, r9, r6, ROR, 8}, false, al, "cc r9 r6 ROR 8", "cc_r9_r6_ROR_8"},
123 {{pl, r7, r14, ROR, 8}, false, al, "pl r7 r14 ROR 8", "pl_r7_r14_ROR_8"},
124 {{vs, r0, r1, ROR, 24}, false, al, "vs r0 r1 ROR 24", "vs_r0_r1_ROR_24"},
125 {{ls, r8, r6, ROR, 24}, false, al, "ls r8 r6 ROR 24", "ls_r8_r6_ROR_24"},
126 {{cs, r13, r14, ROR, 0}, false, al, "cs r13 r14 ROR 0", "cs_r13_r14_ROR_0"},
127 {{al, r11, r7, ROR, 8}, false, al, "al r11 r7 ROR 8", "al_r11_r7_ROR_8"},
128 {{ne, r12, r11, ROR, 0}, false, al, "ne r12 r11 ROR 0", "ne_r12_r11_ROR_0"},
129 {{cc, r0, r5, ROR, 24}, false, al, "cc r0 r5 ROR 24", "cc_r0_r5_ROR_24"},
130 {{vc, r12, r0, ROR, 0}, false, al, "vc r12 r0 ROR 0", "vc_r12_r0_ROR_0"},
131 {{al, r7, r7, ROR, 0}, false, al, "al r7 r7 ROR 0", "al_r7_r7_ROR_0"},
132 {{ne, r3, r11, ROR, 0}, false, al, "ne r3 r11 ROR 0", "ne_r3_r11_ROR_0"},
133 {{ge, r5, r10, ROR, 16}, false, al, "ge r5 r10 ROR 16", "ge_r5_r10_ROR_16"},
134 {{cc, r14, r9, ROR, 8}, false, al, "cc r14 r9 ROR 8", "cc_r14_r9_ROR_8"},
135 {{cc, r0, r3, ROR, 0}, false, al, "cc r0 r3 ROR 0", "cc_r0_r3_ROR_0"},
136 {{le, r14, r2, ROR, 16}, false, al, "le r14 r2 ROR 16", "le_r14_r2_ROR_16"},
137 {{vs, r5, r14, ROR, 24}, false, al, "vs r5 r14 ROR 24", "vs_r5_r14_ROR_24"},
138 {{pl, r1, r2, ROR, 16}, false, al, "pl r1 r2 ROR 16", "pl_r1_r2_ROR_16"},
139 {{lt, r4, r4, ROR, 0}, false, al, "lt r4 r4 ROR 0", "lt_r4_r4_ROR_0"},
140 {{vs, r2, r12, ROR, 0}, false, al, "vs r2 r12 ROR 0", "vs_r2_r12_ROR_0"},
141 {{cc, r9, r10, ROR, 8}, false, al, "cc r9 r10 ROR 8", "cc_r9_r10_ROR_8"},
142 {{ge, r5, r13, ROR, 0}, false, al, "ge r5 r13 ROR 0", "ge_r5_r13_ROR_0"},
143 {{hi, r12, r10, ROR, 8}, false, al, "hi r12 r10 ROR 8", "hi_r12_r10_ROR_8"},
144 {{cs, r13, r14, ROR, 8}, false, al, "cs r13 r14 ROR 8", "cs_r13_r14_ROR_8"},
145 {{cc, r10, r10, ROR, 0}, false, al, "cc r10 r10 ROR 0", "cc_r10_r10_ROR_0"},
146 {{gt, r4, r6, ROR, 16}, false, al, "gt r4 r6 ROR 16", "gt_r4_r6_ROR_16"},
147 {{al, r13, r5, ROR, 16}, false, al, "al r13 r5 ROR 16", "al_r13_r5_ROR_16"},
148 {{pl, r4, r8, ROR, 0}, false, al, "pl r4 r8 ROR 0", "pl_r4_r8_ROR_0"},
149 {{gt, r11, r13, ROR, 24},
150 false,
151 al,
152 "gt r11 r13 ROR 24",
153 "gt_r11_r13_ROR_24"},
154 {{cs, r10, r14, ROR, 0}, false, al, "cs r10 r14 ROR 0", "cs_r10_r14_ROR_0"},
155 {{ne, r3, r14, ROR, 8}, false, al, "ne r3 r14 ROR 8", "ne_r3_r14_ROR_8"},
156 {{vc, r10, r5, ROR, 8}, false, al, "vc r10 r5 ROR 8", "vc_r10_r5_ROR_8"},
157 {{lt, r0, r1, ROR, 0}, false, al, "lt r0 r1 ROR 0", "lt_r0_r1_ROR_0"},
158 {{le, r10, r10, ROR, 16},
159 false,
160 al,
161 "le r10 r10 ROR 16",
162 "le_r10_r10_ROR_16"},
163 {{eq, r10, r5, ROR, 24}, false, al, "eq r10 r5 ROR 24", "eq_r10_r5_ROR_24"},
164 {{gt, r7, r5, ROR, 16}, false, al, "gt r7 r5 ROR 16", "gt_r7_r5_ROR_16"},
165 {{ne, r1, r14, ROR, 24}, false, al, "ne r1 r14 ROR 24", "ne_r1_r14_ROR_24"},
166 {{cc, r8, r13, ROR, 0}, false, al, "cc r8 r13 ROR 0", "cc_r8_r13_ROR_0"},
167 {{lt, r3, r14, ROR, 0}, false, al, "lt r3 r14 ROR 0", "lt_r3_r14_ROR_0"},
168 {{ne, r3, r5, ROR, 24}, false, al, "ne r3 r5 ROR 24", "ne_r3_r5_ROR_24"},
169 {{ls, r1, r1, ROR, 8}, false, al, "ls r1 r1 ROR 8", "ls_r1_r1_ROR_8"},
170 {{mi, r5, r8, ROR, 0}, false, al, "mi r5 r8 ROR 0", "mi_r5_r8_ROR_0"},
171 {{pl, r3, r2, ROR, 0}, false, al, "pl r3 r2 ROR 0", "pl_r3_r2_ROR_0"},
172 {{lt, r6, r5, ROR, 24}, false, al, "lt r6 r5 ROR 24", "lt_r6_r5_ROR_24"},
173 {{ne, r6, r10, ROR, 0}, false, al, "ne r6 r10 ROR 0", "ne_r6_r10_ROR_0"},
174 {{ls, r11, r5, ROR, 24}, false, al, "ls r11 r5 ROR 24", "ls_r11_r5_ROR_24"},
175 {{gt, r12, r2, ROR, 24}, false, al, "gt r12 r2 ROR 24", "gt_r12_r2_ROR_24"},
176 {{vc, r11, r2, ROR, 8}, false, al, "vc r11 r2 ROR 8", "vc_r11_r2_ROR_8"},
177 {{vc, r9, r14, ROR, 0}, false, al, "vc r9 r14 ROR 0", "vc_r9_r14_ROR_0"},
178 {{le, r1, r1, ROR, 0}, false, al, "le r1 r1 ROR 0", "le_r1_r1_ROR_0"},
179 {{lt, r13, r6, ROR, 24}, false, al, "lt r13 r6 ROR 24", "lt_r13_r6_ROR_24"},
180 {{cs, r6, r11, ROR, 8}, false, al, "cs r6 r11 ROR 8", "cs_r6_r11_ROR_8"},
181 {{ge, r13, r0, ROR, 16}, false, al, "ge r13 r0 ROR 16", "ge_r13_r0_ROR_16"},
182 {{gt, r9, r5, ROR, 16}, false, al, "gt r9 r5 ROR 16", "gt_r9_r5_ROR_16"},
183 {{al, r9, r0, ROR, 0}, false, al, "al r9 r0 ROR 0", "al_r9_r0_ROR_0"},
184 {{hi, r12, r12, ROR, 16},
185 false,
186 al,
187 "hi r12 r12 ROR 16",
188 "hi_r12_r12_ROR_16"},
189 {{al, r9, r1, ROR, 24}, false, al, "al r9 r1 ROR 24", "al_r9_r1_ROR_24"},
190 {{pl, r13, r3, ROR, 8}, false, al, "pl r13 r3 ROR 8", "pl_r13_r3_ROR_8"},
191 {{eq, r10, r2, ROR, 24}, false, al, "eq r10 r2 ROR 24", "eq_r10_r2_ROR_24"},
192 {{cc, r4, r11, ROR, 16}, false, al, "cc r4 r11 ROR 16", "cc_r4_r11_ROR_16"},
193 {{vs, r4, r4, ROR, 8}, false, al, "vs r4 r4 ROR 8", "vs_r4_r4_ROR_8"},
194 {{cs, r9, r0, ROR, 16}, false, al, "cs r9 r0 ROR 16", "cs_r9_r0_ROR_16"},
195 {{hi, r1, r2, ROR, 8}, false, al, "hi r1 r2 ROR 8", "hi_r1_r2_ROR_8"},
196 {{vs, r4, r6, ROR, 16}, false, al, "vs r4 r6 ROR 16", "vs_r4_r6_ROR_16"},
197 {{hi, r2, r12, ROR, 16}, false, al, "hi r2 r12 ROR 16", "hi_r2_r12_ROR_16"},
198 {{vs, r14, r4, ROR, 24}, false, al, "vs r14 r4 ROR 24", "vs_r14_r4_ROR_24"},
199 {{pl, r0, r6, ROR, 24}, false, al, "pl r0 r6 ROR 24", "pl_r0_r6_ROR_24"},
200 {{vs, r3, r6, ROR, 0}, false, al, "vs r3 r6 ROR 0", "vs_r3_r6_ROR_0"},
201 {{eq, r14, r13, ROR, 0}, false, al, "eq r14 r13 ROR 0", "eq_r14_r13_ROR_0"},
202 {{ge, r1, r12, ROR, 8}, false, al, "ge r1 r12 ROR 8", "ge_r1_r12_ROR_8"},
203 {{gt, r12, r6, ROR, 24}, false, al, "gt r12 r6 ROR 24", "gt_r12_r6_ROR_24"},
204 {{al, r12, r8, ROR, 24}, false, al, "al r12 r8 ROR 24", "al_r12_r8_ROR_24"},
205 {{mi, r8, r10, ROR, 0}, false, al, "mi r8 r10 ROR 0", "mi_r8_r10_ROR_0"},
206 {{gt, r0, r4, ROR, 0}, false, al, "gt r0 r4 ROR 0", "gt_r0_r4_ROR_0"},
207 {{vs, r1, r11, ROR, 8}, false, al, "vs r1 r11 ROR 8", "vs_r1_r11_ROR_8"},
208 {{cc, r7, r3, ROR, 8}, false, al, "cc r7 r3 ROR 8", "cc_r7_r3_ROR_8"},
209 {{eq, r14, r6, ROR, 0}, false, al, "eq r14 r6 ROR 0", "eq_r14_r6_ROR_0"},
210 {{le, r3, r7, ROR, 16}, false, al, "le r3 r7 ROR 16", "le_r3_r7_ROR_16"},
211 {{eq, r13, r13, ROR, 24},
212 false,
213 al,
214 "eq r13 r13 ROR 24",
215 "eq_r13_r13_ROR_24"},
216 {{le, r13, r12, ROR, 8}, false, al, "le r13 r12 ROR 8", "le_r13_r12_ROR_8"},
217 {{eq, r11, r10, ROR, 24},
218 false,
219 al,
220 "eq r11 r10 ROR 24",
221 "eq_r11_r10_ROR_24"},
222 {{le, r3, r3, ROR, 0}, false, al, "le r3 r3 ROR 0", "le_r3_r3_ROR_0"},
223 {{hi, r7, r1, ROR, 0}, false, al, "hi r7 r1 ROR 0", "hi_r7_r1_ROR_0"},
224 {{lt, r5, r5, ROR, 24}, false, al, "lt r5 r5 ROR 24", "lt_r5_r5_ROR_24"},
225 {{hi, r11, r3, ROR, 0}, false, al, "hi r11 r3 ROR 0", "hi_r11_r3_ROR_0"},
226 {{vs, r2, r10, ROR, 0}, false, al, "vs r2 r10 ROR 0", "vs_r2_r10_ROR_0"},
227 {{vc, r7, r6, ROR, 0}, false, al, "vc r7 r6 ROR 0", "vc_r7_r6_ROR_0"},
228 {{cs, r14, r7, ROR, 8}, false, al, "cs r14 r7 ROR 8", "cs_r14_r7_ROR_8"},
229 {{ge, r4, r11, ROR, 16}, false, al, "ge r4 r11 ROR 16", "ge_r4_r11_ROR_16"},
230 {{mi, r5, r3, ROR, 16}, false, al, "mi r5 r3 ROR 16", "mi_r5_r3_ROR_16"},
231 {{al, r4, r11, ROR, 8}, false, al, "al r4 r11 ROR 8", "al_r4_r11_ROR_8"},
232 {{vs, r14, r10, ROR, 16},
233 false,
234 al,
235 "vs r14 r10 ROR 16",
236 "vs_r14_r10_ROR_16"},
237 {{cc, r9, r5, ROR, 8}, false, al, "cc r9 r5 ROR 8", "cc_r9_r5_ROR_8"},
238 {{vs, r4, r12, ROR, 24}, false, al, "vs r4 r12 ROR 24", "vs_r4_r12_ROR_24"},
239 {{hi, r13, r9, ROR, 24}, false, al, "hi r13 r9 ROR 24", "hi_r13_r9_ROR_24"},
240 {{cc, r5, r4, ROR, 0}, false, al, "cc r5 r4 ROR 0", "cc_r5_r4_ROR_0"},
241 {{mi, r2, r0, ROR, 16}, false, al, "mi r2 r0 ROR 16", "mi_r2_r0_ROR_16"},
242 {{hi, r14, r14, ROR, 8}, false, al, "hi r14 r14 ROR 8", "hi_r14_r14_ROR_8"},
243 {{eq, r2, r9, ROR, 24}, false, al, "eq r2 r9 ROR 24", "eq_r2_r9_ROR_24"},
244 {{mi, r14, r13, ROR, 24},
245 false,
246 al,
247 "mi r14 r13 ROR 24",
248 "mi_r14_r13_ROR_24"},
249 {{ne, r13, r4, ROR, 8}, false, al, "ne r13 r4 ROR 8", "ne_r13_r4_ROR_8"},
250 {{pl, r9, r8, ROR, 24}, false, al, "pl r9 r8 ROR 24", "pl_r9_r8_ROR_24"},
251 {{hi, r4, r9, ROR, 8}, false, al, "hi r4 r9 ROR 8", "hi_r4_r9_ROR_8"},
252 {{mi, r9, r6, ROR, 0}, false, al, "mi r9 r6 ROR 0", "mi_r9_r6_ROR_0"},
253 {{ge, r8, r12, ROR, 8}, false, al, "ge r8 r12 ROR 8", "ge_r8_r12_ROR_8"},
254 {{pl, r1, r1, ROR, 16}, false, al, "pl r1 r1 ROR 16", "pl_r1_r1_ROR_16"},
255 {{mi, r8, r0, ROR, 16}, false, al, "mi r8 r0 ROR 16", "mi_r8_r0_ROR_16"},
256 {{le, r0, r4, ROR, 16}, false, al, "le r0 r4 ROR 16", "le_r0_r4_ROR_16"},
257 {{mi, r10, r2, ROR, 16}, false, al, "mi r10 r2 ROR 16", "mi_r10_r2_ROR_16"},
258 {{ne, r11, r12, ROR, 0}, false, al, "ne r11 r12 ROR 0", "ne_r11_r12_ROR_0"},
259 {{lt, r12, r11, ROR, 24},
260 false,
261 al,
262 "lt r12 r11 ROR 24",
263 "lt_r12_r11_ROR_24"},
264 {{ne, r0, r10, ROR, 0}, false, al, "ne r0 r10 ROR 0", "ne_r0_r10_ROR_0"},
265 {{ls, r2, r14, ROR, 8}, false, al, "ls r2 r14 ROR 8", "ls_r2_r14_ROR_8"},
266 {{al, r2, r1, ROR, 8}, false, al, "al r2 r1 ROR 8", "al_r2_r1_ROR_8"},
267 {{pl, r12, r5, ROR, 0}, false, al, "pl r12 r5 ROR 0", "pl_r12_r5_ROR_0"},
268 {{le, r1, r14, ROR, 8}, false, al, "le r1 r14 ROR 8", "le_r1_r14_ROR_8"},
269 {{pl, r0, r14, ROR, 0}, false, al, "pl r0 r14 ROR 0", "pl_r0_r14_ROR_0"},
270 {{eq, r2, r1, ROR, 0}, false, al, "eq r2 r1 ROR 0", "eq_r2_r1_ROR_0"},
271 {{al, r0, r14, ROR, 16}, false, al, "al r0 r14 ROR 16", "al_r0_r14_ROR_16"},
272 {{eq, r1, r8, ROR, 0}, false, al, "eq r1 r8 ROR 0", "eq_r1_r8_ROR_0"},
273 {{mi, r13, r0, ROR, 8}, false, al, "mi r13 r0 ROR 8", "mi_r13_r0_ROR_8"},
274 {{mi, r6, r13, ROR, 0}, false, al, "mi r6 r13 ROR 0", "mi_r6_r13_ROR_0"},
275 {{vs, r0, r7, ROR, 8}, false, al, "vs r0 r7 ROR 8", "vs_r0_r7_ROR_8"},
276 {{ge, r11, r6, ROR, 24}, false, al, "ge r11 r6 ROR 24", "ge_r11_r6_ROR_24"},
277 {{lt, r14, r14, ROR, 16},
278 false,
279 al,
280 "lt r14 r14 ROR 16",
281 "lt_r14_r14_ROR_16"},
282 {{hi, r11, r6, ROR, 16}, false, al, "hi r11 r6 ROR 16", "hi_r11_r6_ROR_16"},
283 {{cc, r2, r12, ROR, 24}, false, al, "cc r2 r12 ROR 24", "cc_r2_r12_ROR_24"},
284 {{lt, r0, r6, ROR, 8}, false, al, "lt r0 r6 ROR 8", "lt_r0_r6_ROR_8"},
285 {{cs, r6, r10, ROR, 24}, false, al, "cs r6 r10 ROR 24", "cs_r6_r10_ROR_24"},
286 {{mi, r12, r13, ROR, 8}, false, al, "mi r12 r13 ROR 8", "mi_r12_r13_ROR_8"},
287 {{cs, r4, r6, ROR, 16}, false, al, "cs r4 r6 ROR 16", "cs_r4_r6_ROR_16"},
288 {{gt, r8, r2, ROR, 0}, false, al, "gt r8 r2 ROR 0", "gt_r8_r2_ROR_0"},
289 {{mi, r4, r14, ROR, 8}, false, al, "mi r4 r14 ROR 8", "mi_r4_r14_ROR_8"},
290 {{ne, r1, r5, ROR, 0}, false, al, "ne r1 r5 ROR 0", "ne_r1_r5_ROR_0"},
291 {{hi, r11, r6, ROR, 8}, false, al, "hi r11 r6 ROR 8", "hi_r11_r6_ROR_8"},
292 {{pl, r1, r8, ROR, 16}, false, al, "pl r1 r8 ROR 16", "pl_r1_r8_ROR_16"},
293 {{cc, r2, r3, ROR, 8}, false, al, "cc r2 r3 ROR 8", "cc_r2_r3_ROR_8"},
294 {{ne, r14, r5, ROR, 16}, false, al, "ne r14 r5 ROR 16", "ne_r14_r5_ROR_16"},
295 {{hi, r8, r2, ROR, 0}, false, al, "hi r8 r2 ROR 0", "hi_r8_r2_ROR_0"},
296 {{eq, r12, r9, ROR, 8}, false, al, "eq r12 r9 ROR 8", "eq_r12_r9_ROR_8"},
297 {{cs, r3, r0, ROR, 0}, false, al, "cs r3 r0 ROR 0", "cs_r3_r0_ROR_0"},
298 {{ne, r2, r6, ROR, 16}, false, al, "ne r2 r6 ROR 16", "ne_r2_r6_ROR_16"},
299 {{eq, r1, r13, ROR, 8}, false, al, "eq r1 r13 ROR 8", "eq_r1_r13_ROR_8"},
300 {{vc, r6, r0, ROR, 8}, false, al, "vc r6 r0 ROR 8", "vc_r6_r0_ROR_8"},
301 {{pl, r9, r3, ROR, 16}, false, al, "pl r9 r3 ROR 16", "pl_r9_r3_ROR_16"},
302 {{al, r1, r14, ROR, 0}, false, al, "al r1 r14 ROR 0", "al_r1_r14_ROR_0"},
303 {{ls, r4, r8, ROR, 0}, false, al, "ls r4 r8 ROR 0", "ls_r4_r8_ROR_0"},
304 {{ge, r10, r7, ROR, 16}, false, al, "ge r10 r7 ROR 16", "ge_r10_r7_ROR_16"},
305 {{ls, r1, r8, ROR, 16}, false, al, "ls r1 r8 ROR 16", "ls_r1_r8_ROR_16"},
306 {{cs, r12, r13, ROR, 24},
307 false,
308 al,
309 "cs r12 r13 ROR 24",
310 "cs_r12_r13_ROR_24"},
311 {{le, r8, r10, ROR, 8}, false, al, "le r8 r10 ROR 8", "le_r8_r10_ROR_8"},
312 {{eq, r3, r3, ROR, 16}, false, al, "eq r3 r3 ROR 16", "eq_r3_r3_ROR_16"},
313 {{ge, r13, r11, ROR, 16},
314 false,
315 al,
316 "ge r13 r11 ROR 16",
317 "ge_r13_r11_ROR_16"},
318 {{hi, r4, r11, ROR, 0}, false, al, "hi r4 r11 ROR 0", "hi_r4_r11_ROR_0"},
319 {{mi, r4, r9, ROR, 8}, false, al, "mi r4 r9 ROR 8", "mi_r4_r9_ROR_8"},
320 {{eq, r4, r10, ROR, 16}, false, al, "eq r4 r10 ROR 16", "eq_r4_r10_ROR_16"},
321 {{mi, r9, r11, ROR, 8}, false, al, "mi r9 r11 ROR 8", "mi_r9_r11_ROR_8"},
322 {{vc, r5, r5, ROR, 24}, false, al, "vc r5 r5 ROR 24", "vc_r5_r5_ROR_24"},
323 {{hi, r13, r8, ROR, 16}, false, al, "hi r13 r8 ROR 16", "hi_r13_r8_ROR_16"},
324 {{pl, r2, r10, ROR, 0}, false, al, "pl r2 r10 ROR 0", "pl_r2_r10_ROR_0"},
325 {{le, r0, r6, ROR, 24}, false, al, "le r0 r6 ROR 24", "le_r0_r6_ROR_24"},
326 {{ls, r11, r6, ROR, 16}, false, al, "ls r11 r6 ROR 16", "ls_r11_r6_ROR_16"},
327 {{eq, r7, r3, ROR, 0}, false, al, "eq r7 r3 ROR 0", "eq_r7_r3_ROR_0"},
328 {{cs, r13, r1, ROR, 24}, false, al, "cs r13 r1 ROR 24", "cs_r13_r1_ROR_24"},
329 {{gt, r7, r11, ROR, 8}, false, al, "gt r7 r11 ROR 8", "gt_r7_r11_ROR_8"},
330 {{le, r5, r11, ROR, 0}, false, al, "le r5 r11 ROR 0", "le_r5_r11_ROR_0"},
331 {{ne, r11, r4, ROR, 24}, false, al, "ne r11 r4 ROR 24", "ne_r11_r4_ROR_24"},
332 {{cs, r3, r5, ROR, 16}, false, al, "cs r3 r5 ROR 16", "cs_r3_r5_ROR_16"},
333 {{lt, r10, r14, ROR, 0}, false, al, "lt r10 r14 ROR 0", "lt_r10_r14_ROR_0"},
334 {{ls, r4, r0, ROR, 24}, false, al, "ls r4 r0 ROR 24", "ls_r4_r0_ROR_24"},
335 {{le, r0, r13, ROR, 24}, false, al, "le r0 r13 ROR 24", "le_r0_r13_ROR_24"},
336 {{lt, r10, r0, ROR, 0}, false, al, "lt r10 r0 ROR 0", "lt_r10_r0_ROR_0"},
337 {{cc, r11, r14, ROR, 24},
338 false,
339 al,
340 "cc r11 r14 ROR 24",
341 "cc_r11_r14_ROR_24"},
342 {{mi, r4, r14, ROR, 16}, false, al, "mi r4 r14 ROR 16", "mi_r4_r14_ROR_16"},
343 {{ls, r11, r0, ROR, 0}, false, al, "ls r11 r0 ROR 0", "ls_r11_r0_ROR_0"},
344 {{ge, r6, r4, ROR, 16}, false, al, "ge r6 r4 ROR 16", "ge_r6_r4_ROR_16"},
345 {{cc, r8, r6, ROR, 16}, false, al, "cc r8 r6 ROR 16", "cc_r8_r6_ROR_16"},
346 {{mi, r12, r11, ROR, 8}, false, al, "mi r12 r11 ROR 8", "mi_r12_r11_ROR_8"},
347 {{lt, r1, r6, ROR, 0}, false, al, "lt r1 r6 ROR 0", "lt_r1_r6_ROR_0"},
348 {{lt, r4, r12, ROR, 8}, false, al, "lt r4 r12 ROR 8", "lt_r4_r12_ROR_8"},
349 {{al, r3, r5, ROR, 24}, false, al, "al r3 r5 ROR 24", "al_r3_r5_ROR_24"},
350 {{le, r4, r12, ROR, 16}, false, al, "le r4 r12 ROR 16", "le_r4_r12_ROR_16"},
351 {{eq, r9, r8, ROR, 16}, false, al, "eq r9 r8 ROR 16", "eq_r9_r8_ROR_16"},
352 {{ge, r7, r1, ROR, 0}, false, al, "ge r7 r1 ROR 0", "ge_r7_r1_ROR_0"},
353 {{vc, r2, r6, ROR, 16}, false, al, "vc r2 r6 ROR 16", "vc_r2_r6_ROR_16"},
354 {{ne, r9, r4, ROR, 16}, false, al, "ne r9 r4 ROR 16", "ne_r9_r4_ROR_16"},
355 {{mi, r0, r12, ROR, 24}, false, al, "mi r0 r12 ROR 24", "mi_r0_r12_ROR_24"},
356 {{vc, r5, r8, ROR, 16}, false, al, "vc r5 r8 ROR 16", "vc_r5_r8_ROR_16"},
357 {{pl, r1, r13, ROR, 24}, false, al, "pl r1 r13 ROR 24", "pl_r1_r13_ROR_24"},
358 {{mi, r14, r14, ROR, 8}, false, al, "mi r14 r14 ROR 8", "mi_r14_r14_ROR_8"},
359 {{eq, r9, r6, ROR, 16}, false, al, "eq r9 r6 ROR 16", "eq_r9_r6_ROR_16"},
360 {{cc, r6, r0, ROR, 0}, false, al, "cc r6 r0 ROR 0", "cc_r6_r0_ROR_0"},
361 {{gt, r2, r14, ROR, 8}, false, al, "gt r2 r14 ROR 8", "gt_r2_r14_ROR_8"},
362 {{vs, r2, r11, ROR, 16}, false, al, "vs r2 r11 ROR 16", "vs_r2_r11_ROR_16"},
363 {{al, r10, r9, ROR, 0}, false, al, "al r10 r9 ROR 0", "al_r10_r9_ROR_0"},
364 {{lt, r4, r3, ROR, 16}, false, al, "lt r4 r3 ROR 16", "lt_r4_r3_ROR_16"},
365 {{hi, r7, r10, ROR, 24}, false, al, "hi r7 r10 ROR 24", "hi_r7_r10_ROR_24"},
366 {{vs, r14, r11, ROR, 16},
367 false,
368 al,
369 "vs r14 r11 ROR 16",
370 "vs_r14_r11_ROR_16"},
371 {{cs, r3, r6, ROR, 24}, false, al, "cs r3 r6 ROR 24", "cs_r3_r6_ROR_24"},
372 {{eq, r5, r0, ROR, 24}, false, al, "eq r5 r0 ROR 24", "eq_r5_r0_ROR_24"},
373 {{hi, r3, r5, ROR, 24}, false, al, "hi r3 r5 ROR 24", "hi_r3_r5_ROR_24"},
374 {{al, r10, r10, ROR, 16},
375 false,
376 al,
377 "al r10 r10 ROR 16",
378 "al_r10_r10_ROR_16"},
379 {{le, r7, r14, ROR, 16}, false, al, "le r7 r14 ROR 16", "le_r7_r14_ROR_16"},
380 {{ne, r7, r2, ROR, 24}, false, al, "ne r7 r2 ROR 24", "ne_r7_r2_ROR_24"},
381 {{mi, r6, r6, ROR, 24}, false, al, "mi r6 r6 ROR 24", "mi_r6_r6_ROR_24"},
382 {{gt, r1, r5, ROR, 16}, false, al, "gt r1 r5 ROR 16", "gt_r1_r5_ROR_16"},
383 {{al, r7, r5, ROR, 8}, false, al, "al r7 r5 ROR 8", "al_r7_r5_ROR_8"},
384 {{le, r13, r6, ROR, 8}, false, al, "le r13 r6 ROR 8", "le_r13_r6_ROR_8"},
385 {{cc, r12, r12, ROR, 8}, false, al, "cc r12 r12 ROR 8", "cc_r12_r12_ROR_8"},
386 {{pl, r1, r12, ROR, 8}, false, al, "pl r1 r12 ROR 8", "pl_r1_r12_ROR_8"},
387 {{ls, r2, r10, ROR, 16}, false, al, "ls r2 r10 ROR 16", "ls_r2_r10_ROR_16"},
388 {{le, r4, r12, ROR, 8}, false, al, "le r4 r12 ROR 8", "le_r4_r12_ROR_8"},
389 {{ne, r2, r0, ROR, 24}, false, al, "ne r2 r0 ROR 24", "ne_r2_r0_ROR_24"},
390 {{ne, r4, r2, ROR, 8}, false, al, "ne r4 r2 ROR 8", "ne_r4_r2_ROR_8"},
391 {{mi, r7, r5, ROR, 0}, false, al, "mi r7 r5 ROR 0", "mi_r7_r5_ROR_0"},
392 {{vs, r5, r12, ROR, 16}, false, al, "vs r5 r12 ROR 16", "vs_r5_r12_ROR_16"},
393 {{al, r7, r13, ROR, 24}, false, al, "al r7 r13 ROR 24", "al_r7_r13_ROR_24"},
394 {{cs, r2, r3, ROR, 0}, false, al, "cs r2 r3 ROR 0", "cs_r2_r3_ROR_0"},
395 {{al, r7, r14, ROR, 0}, false, al, "al r7 r14 ROR 0", "al_r7_r14_ROR_0"},
396 {{lt, r5, r7, ROR, 16}, false, al, "lt r5 r7 ROR 16", "lt_r5_r7_ROR_16"},
397 {{al, r7, r5, ROR, 24}, false, al, "al r7 r5 ROR 24", "al_r7_r5_ROR_24"},
398 {{vs, r2, r3, ROR, 0}, false, al, "vs r2 r3 ROR 0", "vs_r2_r3_ROR_0"},
399 {{ne, r7, r10, ROR, 8}, false, al, "ne r7 r10 ROR 8", "ne_r7_r10_ROR_8"},
400 {{eq, r10, r8, ROR, 8}, false, al, "eq r10 r8 ROR 8", "eq_r10_r8_ROR_8"},
401 {{al, r7, r2, ROR, 0}, false, al, "al r7 r2 ROR 0", "al_r7_r2_ROR_0"},
402 {{vc, r11, r6, ROR, 24}, false, al, "vc r11 r6 ROR 24", "vc_r11_r6_ROR_24"},
403 {{eq, r10, r3, ROR, 24}, false, al, "eq r10 r3 ROR 24", "eq_r10_r3_ROR_24"},
404 {{gt, r14, r11, ROR, 0}, false, al, "gt r14 r11 ROR 0", "gt_r14_r11_ROR_0"},
405 {{al, r14, r11, ROR, 0}, false, al, "al r14 r11 ROR 0", "al_r14_r11_ROR_0"},
406 {{pl, r7, r7, ROR, 8}, false, al, "pl r7 r7 ROR 8", "pl_r7_r7_ROR_8"},
407 {{hi, r7, r8, ROR, 0}, false, al, "hi r7 r8 ROR 0", "hi_r7_r8_ROR_0"},
408 {{lt, r7, r5, ROR, 16}, false, al, "lt r7 r5 ROR 16", "lt_r7_r5_ROR_16"},
409 {{eq, r7, r9, ROR, 16}, false, al, "eq r7 r9 ROR 16", "eq_r7_r9_ROR_16"},
410 {{cs, r1, r12, ROR, 24}, false, al, "cs r1 r12 ROR 24", "cs_r1_r12_ROR_24"},
411 {{al, r10, r9, ROR, 8}, false, al, "al r10 r9 ROR 8", "al_r10_r9_ROR_8"},
412 {{ge, r2, r6, ROR, 24}, false, al, "ge r2 r6 ROR 24", "ge_r2_r6_ROR_24"},
413 {{mi, r5, r12, ROR, 0}, false, al, "mi r5 r12 ROR 0", "mi_r5_r12_ROR_0"},
414 {{al, r11, r8, ROR, 24}, false, al, "al r11 r8 ROR 24", "al_r11_r8_ROR_24"},
415 {{mi, r10, r1, ROR, 0}, false, al, "mi r10 r1 ROR 0", "mi_r10_r1_ROR_0"},
416 {{ls, r11, r7, ROR, 0}, false, al, "ls r11 r7 ROR 0", "ls_r11_r7_ROR_0"},
417 {{vs, r13, r14, ROR, 8}, false, al, "vs r13 r14 ROR 8", "vs_r13_r14_ROR_8"},
418 {{gt, r0, r6, ROR, 8}, false, al, "gt r0 r6 ROR 8", "gt_r0_r6_ROR_8"},
419 {{cs, r3, r4, ROR, 16}, false, al, "cs r3 r4 ROR 16", "cs_r3_r4_ROR_16"},
420 {{eq, r0, r7, ROR, 0}, false, al, "eq r0 r7 ROR 0", "eq_r0_r7_ROR_0"},
421 {{le, r12, r11, ROR, 16},
422 false,
423 al,
424 "le r12 r11 ROR 16",
425 "le_r12_r11_ROR_16"},
426 {{pl, r8, r7, ROR, 8}, false, al, "pl r8 r7 ROR 8", "pl_r8_r7_ROR_8"},
427 {{ls, r5, r3, ROR, 8}, false, al, "ls r5 r3 ROR 8", "ls_r5_r3_ROR_8"},
428 {{vs, r2, r12, ROR, 16}, false, al, "vs r2 r12 ROR 16", "vs_r2_r12_ROR_16"},
429 {{ls, r4, r3, ROR, 0}, false, al, "ls r4 r3 ROR 0", "ls_r4_r3_ROR_0"},
430 {{pl, r9, r3, ROR, 8}, false, al, "pl r9 r3 ROR 8", "pl_r9_r3_ROR_8"},
431 {{vs, r10, r8, ROR, 0}, false, al, "vs r10 r8 ROR 0", "vs_r10_r8_ROR_0"},
432 {{pl, r7, r13, ROR, 0}, false, al, "pl r7 r13 ROR 0", "pl_r7_r13_ROR_0"},
433 {{ls, r0, r0, ROR, 16}, false, al, "ls r0 r0 ROR 16", "ls_r0_r0_ROR_16"},
434 {{le, r14, r7, ROR, 16}, false, al, "le r14 r7 ROR 16", "le_r14_r7_ROR_16"},
435 {{pl, r13, r4, ROR, 24}, false, al, "pl r13 r4 ROR 24", "pl_r13_r4_ROR_24"},
436 {{ls, r3, r4, ROR, 24}, false, al, "ls r3 r4 ROR 24", "ls_r3_r4_ROR_24"},
437 {{hi, r1, r3, ROR, 8}, false, al, "hi r1 r3 ROR 8", "hi_r1_r3_ROR_8"},
438 {{hi, r2, r7, ROR, 0}, false, al, "hi r2 r7 ROR 0", "hi_r2_r7_ROR_0"},
439 {{ls, r12, r11, ROR, 8}, false, al, "ls r12 r11 ROR 8", "ls_r12_r11_ROR_8"},
440 {{mi, r7, r12, ROR, 0}, false, al, "mi r7 r12 ROR 0", "mi_r7_r12_ROR_0"},
441 {{gt, r2, r6, ROR, 16}, false, al, "gt r2 r6 ROR 16", "gt_r2_r6_ROR_16"},
442 {{cs, r7, r14, ROR, 24}, false, al, "cs r7 r14 ROR 24", "cs_r7_r14_ROR_24"},
443 {{vc, r0, r0, ROR, 8}, false, al, "vc r0 r0 ROR 8", "vc_r0_r0_ROR_8"},
444 {{al, r10, r10, ROR, 0}, false, al, "al r10 r10 ROR 0", "al_r10_r10_ROR_0"},
445 {{al, r1, r4, ROR, 0}, false, al, "al r1 r4 ROR 0", "al_r1_r4_ROR_0"},
446 {{vc, r2, r8, ROR, 0}, false, al, "vc r2 r8 ROR 0", "vc_r2_r8_ROR_0"},
447 {{vc, r4, r6, ROR, 16}, false, al, "vc r4 r6 ROR 16", "vc_r4_r6_ROR_16"},
448 {{pl, r1, r9, ROR, 0}, false, al, "pl r1 r9 ROR 0", "pl_r1_r9_ROR_0"},
449 {{le, r2, r9, ROR, 0}, false, al, "le r2 r9 ROR 0", "le_r2_r9_ROR_0"},
450 {{mi, r14, r5, ROR, 16}, false, al, "mi r14 r5 ROR 16", "mi_r14_r5_ROR_16"},
451 {{le, r3, r5, ROR, 24}, false, al, "le r3 r5 ROR 24", "le_r3_r5_ROR_24"},
452 {{lt, r4, r14, ROR, 0}, false, al, "lt r4 r14 ROR 0", "lt_r4_r14_ROR_0"},
453 {{al, r9, r9, ROR, 0}, false, al, "al r9 r9 ROR 0", "al_r9_r9_ROR_0"},
454 {{lt, r13, r12, ROR, 24},
455 false,
456 al,
457 "lt r13 r12 ROR 24",
458 "lt_r13_r12_ROR_24"},
459 {{mi, r7, r7, ROR, 16}, false, al, "mi r7 r7 ROR 16", "mi_r7_r7_ROR_16"},
460 {{lt, r0, r10, ROR, 0}, false, al, "lt r0 r10 ROR 0", "lt_r0_r10_ROR_0"},
461 {{al, r0, r12, ROR, 16}, false, al, "al r0 r12 ROR 16", "al_r0_r12_ROR_16"},
462 {{mi, r12, r5, ROR, 8}, false, al, "mi r12 r5 ROR 8", "mi_r12_r5_ROR_8"},
463 {{vc, r13, r1, ROR, 0}, false, al, "vc r13 r1 ROR 0", "vc_r13_r1_ROR_0"},
464 {{mi, r1, r11, ROR, 24}, false, al, "mi r1 r11 ROR 24", "mi_r1_r11_ROR_24"},
465 {{cc, r1, r3, ROR, 0}, false, al, "cc r1 r3 ROR 0", "cc_r1_r3_ROR_0"},
466 {{mi, r6, r7, ROR, 0}, false, al, "mi r6 r7 ROR 0", "mi_r6_r7_ROR_0"},
467 {{cs, r1, r13, ROR, 24}, false, al, "cs r1 r13 ROR 24", "cs_r1_r13_ROR_24"},
468 {{pl, r8, r3, ROR, 24}, false, al, "pl r8 r3 ROR 24", "pl_r8_r3_ROR_24"},
469 {{mi, r11, r12, ROR, 16},
470 false,
471 al,
472 "mi r11 r12 ROR 16",
473 "mi_r11_r12_ROR_16"},
474 {{cs, r3, r12, ROR, 0}, false, al, "cs r3 r12 ROR 0", "cs_r3_r12_ROR_0"},
475 {{cs, r0, r2, ROR, 24}, false, al, "cs r0 r2 ROR 24", "cs_r0_r2_ROR_24"},
476 {{vs, r0, r8, ROR, 8}, false, al, "vs r0 r8 ROR 8", "vs_r0_r8_ROR_8"},
477 {{lt, r3, r13, ROR, 0}, false, al, "lt r3 r13 ROR 0", "lt_r3_r13_ROR_0"},
478 {{mi, r11, r14, ROR, 16},
479 false,
480 al,
481 "mi r11 r14 ROR 16",
482 "mi_r11_r14_ROR_16"},
483 {{mi, r10, r9, ROR, 0}, false, al, "mi r10 r9 ROR 0", "mi_r10_r9_ROR_0"},
484 {{cc, r8, r6, ROR, 8}, false, al, "cc r8 r6 ROR 8", "cc_r8_r6_ROR_8"},
485 {{le, r4, r5, ROR, 24}, false, al, "le r4 r5 ROR 24", "le_r4_r5_ROR_24"},
486 {{le, r12, r4, ROR, 8}, false, al, "le r12 r4 ROR 8", "le_r12_r4_ROR_8"},
487 {{ge, r8, r11, ROR, 0}, false, al, "ge r8 r11 ROR 0", "ge_r8_r11_ROR_0"},
488 {{ne, r5, r1, ROR, 8}, false, al, "ne r5 r1 ROR 8", "ne_r5_r1_ROR_8"},
489 {{vc, r10, r6, ROR, 0}, false, al, "vc r10 r6 ROR 0", "vc_r10_r6_ROR_0"},
490 {{le, r7, r8, ROR, 24}, false, al, "le r7 r8 ROR 24", "le_r7_r8_ROR_24"},
491 {{ge, r10, r11, ROR, 8}, false, al, "ge r10 r11 ROR 8", "ge_r10_r11_ROR_8"},
492 {{lt, r13, r11, ROR, 0}, false, al, "lt r13 r11 ROR 0", "lt_r13_r11_ROR_0"},
493 {{ge, r7, r10, ROR, 16}, false, al, "ge r7 r10 ROR 16", "ge_r7_r10_ROR_16"},
494 {{ge, r5, r9, ROR, 0}, false, al, "ge r5 r9 ROR 0", "ge_r5_r9_ROR_0"},
495 {{ne, r5, r2, ROR, 0}, false, al, "ne r5 r2 ROR 0", "ne_r5_r2_ROR_0"},
496 {{cc, r12, r7, ROR, 0}, false, al, "cc r12 r7 ROR 0", "cc_r12_r7_ROR_0"},
497 {{le, r11, r7, ROR, 0}, false, al, "le r11 r7 ROR 0", "le_r11_r7_ROR_0"},
498 {{al, r1, r11, ROR, 0}, false, al, "al r1 r11 ROR 0", "al_r1_r11_ROR_0"},
499 {{eq, r4, r2, ROR, 24}, false, al, "eq r4 r2 ROR 24", "eq_r4_r2_ROR_24"},
500 {{ne, r8, r12, ROR, 8}, false, al, "ne r8 r12 ROR 8", "ne_r8_r12_ROR_8"},
501 {{al, r9, r11, ROR, 0}, false, al, "al r9 r11 ROR 0", "al_r9_r11_ROR_0"},
502 {{le, r9, r0, ROR, 8}, false, al, "le r9 r0 ROR 8", "le_r9_r0_ROR_8"},
503 {{mi, r6, r2, ROR, 0}, false, al, "mi r6 r2 ROR 0", "mi_r6_r2_ROR_0"},
504 {{ne, r0, r10, ROR, 16}, false, al, "ne r0 r10 ROR 16", "ne_r0_r10_ROR_16"},
505 {{ne, r4, r9, ROR, 24}, false, al, "ne r4 r9 ROR 24", "ne_r4_r9_ROR_24"},
506 {{lt, r7, r10, ROR, 0}, false, al, "lt r7 r10 ROR 0", "lt_r7_r10_ROR_0"},
507 {{hi, r2, r0, ROR, 8}, false, al, "hi r2 r0 ROR 8", "hi_r2_r0_ROR_8"},
508 {{eq, r1, r6, ROR, 16}, false, al, "eq r1 r6 ROR 16", "eq_r1_r6_ROR_16"},
509 {{pl, r4, r2, ROR, 24}, false, al, "pl r4 r2 ROR 24", "pl_r4_r2_ROR_24"},
510 {{vs, r11, r10, ROR, 24},
511 false,
512 al,
513 "vs r11 r10 ROR 24",
514 "vs_r11_r10_ROR_24"},
515 {{lt, r3, r11, ROR, 8}, false, al, "lt r3 r11 ROR 8", "lt_r3_r11_ROR_8"},
516 {{hi, r8, r0, ROR, 0}, false, al, "hi r8 r0 ROR 0", "hi_r8_r0_ROR_0"},
517 {{lt, r11, r11, ROR, 16},
518 false,
519 al,
520 "lt r11 r11 ROR 16",
521 "lt_r11_r11_ROR_16"},
522 {{cs, r7, r6, ROR, 24}, false, al, "cs r7 r6 ROR 24", "cs_r7_r6_ROR_24"},
523 {{pl, r8, r9, ROR, 24}, false, al, "pl r8 r9 ROR 24", "pl_r8_r9_ROR_24"},
524 {{ne, r5, r4, ROR, 8}, false, al, "ne r5 r4 ROR 8", "ne_r5_r4_ROR_8"},
525 {{ne, r5, r4, ROR, 0}, false, al, "ne r5 r4 ROR 0", "ne_r5_r4_ROR_0"},
526 {{gt, r0, r14, ROR, 24}, false, al, "gt r0 r14 ROR 24", "gt_r0_r14_ROR_24"},
527 {{mi, r10, r12, ROR, 8}, false, al, "mi r10 r12 ROR 8", "mi_r10_r12_ROR_8"},
528 {{le, r3, r14, ROR, 0}, false, al, "le r3 r14 ROR 0", "le_r3_r14_ROR_0"},
529 {{ne, r10, r14, ROR, 16},
530 false,
531 al,
532 "ne r10 r14 ROR 16",
533 "ne_r10_r14_ROR_16"},
534 {{ls, r14, r9, ROR, 24}, false, al, "ls r14 r9 ROR 24", "ls_r14_r9_ROR_24"},
535 {{ge, r2, r10, ROR, 24}, false, al, "ge r2 r10 ROR 24", "ge_r2_r10_ROR_24"},
536 {{lt, r12, r14, ROR, 0}, false, al, "lt r12 r14 ROR 0", "lt_r12_r14_ROR_0"},
537 {{eq, r7, r14, ROR, 0}, false, al, "eq r7 r14 ROR 0", "eq_r7_r14_ROR_0"},
538 {{al, r1, r8, ROR, 0}, false, al, "al r1 r8 ROR 0", "al_r1_r8_ROR_0"},
539 {{vc, r12, r13, ROR, 0}, false, al, "vc r12 r13 ROR 0", "vc_r12_r13_ROR_0"},
540 {{le, r4, r6, ROR, 24}, false, al, "le r4 r6 ROR 24", "le_r4_r6_ROR_24"},
541 {{vc, r12, r5, ROR, 24}, false, al, "vc r12 r5 ROR 24", "vc_r12_r5_ROR_24"},
542 {{al, r10, r12, ROR, 8}, false, al, "al r10 r12 ROR 8", "al_r10_r12_ROR_8"},
543 {{pl, r12, r4, ROR, 8}, false, al, "pl r12 r4 ROR 8", "pl_r12_r4_ROR_8"},
544 {{eq, r1, r7, ROR, 8}, false, al, "eq r1 r7 ROR 8", "eq_r1_r7_ROR_8"},
545 {{hi, r2, r8, ROR, 16}, false, al, "hi r2 r8 ROR 16", "hi_r2_r8_ROR_16"},
546 {{gt, r0, r11, ROR, 16}, false, al, "gt r0 r11 ROR 16", "gt_r0_r11_ROR_16"},
547 {{ge, r10, r6, ROR, 24}, false, al, "ge r10 r6 ROR 24", "ge_r10_r6_ROR_24"},
548 {{ne, r1, r5, ROR, 24}, false, al, "ne r1 r5 ROR 24", "ne_r1_r5_ROR_24"},
549 {{vc, r8, r10, ROR, 16}, false, al, "vc r8 r10 ROR 16", "vc_r8_r10_ROR_16"},
550 {{eq, r13, r7, ROR, 8}, false, al, "eq r13 r7 ROR 8", "eq_r13_r7_ROR_8"},
551 {{pl, r14, r6, ROR, 8}, false, al, "pl r14 r6 ROR 8", "pl_r14_r6_ROR_8"},
552 {{vs, r6, r2, ROR, 16}, false, al, "vs r6 r2 ROR 16", "vs_r6_r2_ROR_16"},
553 {{gt, r9, r8, ROR, 0}, false, al, "gt r9 r8 ROR 0", "gt_r9_r8_ROR_0"},
554 {{al, r6, r9, ROR, 16}, false, al, "al r6 r9 ROR 16", "al_r6_r9_ROR_16"},
555 {{cc, r6, r3, ROR, 0}, false, al, "cc r6 r3 ROR 0", "cc_r6_r3_ROR_0"},
556 {{cc, r2, r5, ROR, 24}, false, al, "cc r2 r5 ROR 24", "cc_r2_r5_ROR_24"},
557 {{mi, r4, r1, ROR, 16}, false, al, "mi r4 r1 ROR 16", "mi_r4_r1_ROR_16"},
558 {{vc, r4, r4, ROR, 0}, false, al, "vc r4 r4 ROR 0", "vc_r4_r4_ROR_0"},
559 {{cc, r2, r10, ROR, 24}, false, al, "cc r2 r10 ROR 24", "cc_r2_r10_ROR_24"},
560 {{vs, r9, r8, ROR, 0}, false, al, "vs r9 r8 ROR 0", "vs_r9_r8_ROR_0"},
561 {{gt, r0, r9, ROR, 8}, false, al, "gt r0 r9 ROR 8", "gt_r0_r9_ROR_8"},
562 {{ls, r10, r11, ROR, 8}, false, al, "ls r10 r11 ROR 8", "ls_r10_r11_ROR_8"},
563 {{al, r11, r9, ROR, 16}, false, al, "al r11 r9 ROR 16", "al_r11_r9_ROR_16"},
564 {{vs, r0, r10, ROR, 16}, false, al, "vs r0 r10 ROR 16", "vs_r0_r10_ROR_16"},
565 {{ls, r14, r10, ROR, 0}, false, al, "ls r14 r10 ROR 0", "ls_r14_r10_ROR_0"},
566 {{gt, r10, r5, ROR, 24}, false, al, "gt r10 r5 ROR 24", "gt_r10_r5_ROR_24"},
567 {{al, r14, r14, ROR, 0}, false, al, "al r14 r14 ROR 0", "al_r14_r14_ROR_0"},
568 {{ge, r6, r9, ROR, 16}, false, al, "ge r6 r9 ROR 16", "ge_r6_r9_ROR_16"},
569 {{vs, r1, r2, ROR, 8}, false, al, "vs r1 r2 ROR 8", "vs_r1_r2_ROR_8"},
570 {{lt, r11, r1, ROR, 8}, false, al, "lt r11 r1 ROR 8", "lt_r11_r1_ROR_8"},
571 {{mi, r12, r5, ROR, 0}, false, al, "mi r12 r5 ROR 0", "mi_r12_r5_ROR_0"},
572 {{pl, r0, r0, ROR, 24}, false, al, "pl r0 r0 ROR 24", "pl_r0_r0_ROR_24"},
573 {{gt, r5, r2, ROR, 8}, false, al, "gt r5 r2 ROR 8", "gt_r5_r2_ROR_8"},
574 {{ne, r10, r10, ROR, 0}, false, al, "ne r10 r10 ROR 0", "ne_r10_r10_ROR_0"},
575 {{mi, r11, r12, ROR, 8}, false, al, "mi r11 r12 ROR 8", "mi_r11_r12_ROR_8"},
576 {{vs, r9, r9, ROR, 16}, false, al, "vs r9 r9 ROR 16", "vs_r9_r9_ROR_16"},
577 {{mi, r9, r6, ROR, 16}, false, al, "mi r9 r6 ROR 16", "mi_r9_r6_ROR_16"},
578 {{vs, r12, r11, ROR, 24},
579 false,
580 al,
581 "vs r12 r11 ROR 24",
582 "vs_r12_r11_ROR_24"},
583 {{eq, r0, r1, ROR, 0}, false, al, "eq r0 r1 ROR 0", "eq_r0_r1_ROR_0"},
584 {{vc, r12, r11, ROR, 24},
585 false,
586 al,
587 "vc r12 r11 ROR 24",
588 "vc_r12_r11_ROR_24"},
589 {{cs, r14, r13, ROR, 16},
590 false,
591 al,
592 "cs r14 r13 ROR 16",
593 "cs_r14_r13_ROR_16"},
594 {{vs, r12, r1, ROR, 8}, false, al, "vs r12 r1 ROR 8", "vs_r12_r1_ROR_8"},
595 {{cc, r13, r9, ROR, 0}, false, al, "cc r13 r9 ROR 0", "cc_r13_r9_ROR_0"},
596 {{ne, r3, r8, ROR, 8}, false, al, "ne r3 r8 ROR 8", "ne_r3_r8_ROR_8"},
597 {{ne, r8, r6, ROR, 8}, false, al, "ne r8 r6 ROR 8", "ne_r8_r6_ROR_8"},
598 {{cc, r6, r8, ROR, 16}, false, al, "cc r6 r8 ROR 16", "cc_r6_r8_ROR_16"},
599 {{gt, r14, r14, ROR, 16},
600 false,
601 al,
602 "gt r14 r14 ROR 16",
603 "gt_r14_r14_ROR_16"},
604 {{lt, r7, r6, ROR, 16}, false, al, "lt r7 r6 ROR 16", "lt_r7_r6_ROR_16"},
605 {{pl, r10, r6, ROR, 8}, false, al, "pl r10 r6 ROR 8", "pl_r10_r6_ROR_8"},
606 {{ne, r5, r12, ROR, 0}, false, al, "ne r5 r12 ROR 0", "ne_r5_r12_ROR_0"},
607 {{al, r8, r11, ROR, 16}, false, al, "al r8 r11 ROR 16", "al_r8_r11_ROR_16"},
608 {{pl, r7, r9, ROR, 8}, false, al, "pl r7 r9 ROR 8", "pl_r7_r9_ROR_8"},
609 {{mi, r2, r7, ROR, 8}, false, al, "mi r2 r7 ROR 8", "mi_r2_r7_ROR_8"},
610 {{ls, r4, r3, ROR, 16}, false, al, "ls r4 r3 ROR 16", "ls_r4_r3_ROR_16"},
611 {{mi, r10, r8, ROR, 8}, false, al, "mi r10 r8 ROR 8", "mi_r10_r8_ROR_8"},
612 {{mi, r3, r3, ROR, 24}, false, al, "mi r3 r3 ROR 24", "mi_r3_r3_ROR_24"},
613 {{hi, r14, r7, ROR, 0}, false, al, "hi r14 r7 ROR 0", "hi_r14_r7_ROR_0"},
614 {{al, r3, r6, ROR, 16}, false, al, "al r3 r6 ROR 16", "al_r3_r6_ROR_16"},
615 {{gt, r3, r4, ROR, 0}, false, al, "gt r3 r4 ROR 0", "gt_r3_r4_ROR_0"},
616 {{pl, r14, r14, ROR, 0}, false, al, "pl r14 r14 ROR 0", "pl_r14_r14_ROR_0"},
617 {{hi, r3, r4, ROR, 0}, false, al, "hi r3 r4 ROR 0", "hi_r3_r4_ROR_0"},
618 {{le, r6, r3, ROR, 24}, false, al, "le r6 r3 ROR 24", "le_r6_r3_ROR_24"},
619 {{eq, r6, r10, ROR, 0}, false, al, "eq r6 r10 ROR 0", "eq_r6_r10_ROR_0"},
620 {{vs, r2, r11, ROR, 0}, false, al, "vs r2 r11 ROR 0", "vs_r2_r11_ROR_0"},
621 {{lt, r1, r0, ROR, 24}, false, al, "lt r1 r0 ROR 24", "lt_r1_r0_ROR_24"},
622 {{hi, r3, r7, ROR, 8}, false, al, "hi r3 r7 ROR 8", "hi_r3_r7_ROR_8"},
623 {{eq, r2, r0, ROR, 24}, false, al, "eq r2 r0 ROR 24", "eq_r2_r0_ROR_24"},
624 {{vs, r0, r7, ROR, 0}, false, al, "vs r0 r7 ROR 0", "vs_r0_r7_ROR_0"},
625 {{hi, r5, r11, ROR, 24}, false, al, "hi r5 r11 ROR 24", "hi_r5_r11_ROR_24"},
626 {{lt, r4, r9, ROR, 8}, false, al, "lt r4 r9 ROR 8", "lt_r4_r9_ROR_8"},
627 {{mi, r8, r4, ROR, 16}, false, al, "mi r8 r4 ROR 16", "mi_r8_r4_ROR_16"},
628 {{eq, r6, r5, ROR, 0}, false, al, "eq r6 r5 ROR 0", "eq_r6_r5_ROR_0"},
629 {{ne, r4, r1, ROR, 8}, false, al, "ne r4 r1 ROR 8", "ne_r4_r1_ROR_8"},
630 {{mi, r8, r5, ROR, 0}, false, al, "mi r8 r5 ROR 0", "mi_r8_r5_ROR_0"},
631 {{hi, r5, r14, ROR, 8}, false, al, "hi r5 r14 ROR 8", "hi_r5_r14_ROR_8"},
632 {{gt, r4, r2, ROR, 24}, false, al, "gt r4 r2 ROR 24", "gt_r4_r2_ROR_24"},
633 {{ls, r9, r9, ROR, 16}, false, al, "ls r9 r9 ROR 16", "ls_r9_r9_ROR_16"},
634 {{cs, r5, r2, ROR, 8}, false, al, "cs r5 r2 ROR 8", "cs_r5_r2_ROR_8"},
635 {{gt, r10, r6, ROR, 16}, false, al, "gt r10 r6 ROR 16", "gt_r10_r6_ROR_16"},
636 {{ls, r5, r7, ROR, 8}, false, al, "ls r5 r7 ROR 8", "ls_r5_r7_ROR_8"},
637 {{ls, r13, r8, ROR, 16}, false, al, "ls r13 r8 ROR 16", "ls_r13_r8_ROR_16"},
638 {{ls, r4, r11, ROR, 0}, false, al, "ls r4 r11 ROR 0", "ls_r4_r11_ROR_0"},
639 {{mi, r14, r3, ROR, 24}, false, al, "mi r14 r3 ROR 24", "mi_r14_r3_ROR_24"},
640 {{hi, r0, r14, ROR, 8}, false, al, "hi r0 r14 ROR 8", "hi_r0_r14_ROR_8"},
641 {{ne, r3, r0, ROR, 8}, false, al, "ne r3 r0 ROR 8", "ne_r3_r0_ROR_8"},
642 {{cs, r12, r10, ROR, 0}, false, al, "cs r12 r10 ROR 0", "cs_r12_r10_ROR_0"},
643 {{ne, r10, r0, ROR, 24}, false, al, "ne r10 r0 ROR 24", "ne_r10_r0_ROR_24"},
644 {{pl, r11, r6, ROR, 24}, false, al, "pl r11 r6 ROR 24", "pl_r11_r6_ROR_24"},
645 {{mi, r3, r10, ROR, 16}, false, al, "mi r3 r10 ROR 16", "mi_r3_r10_ROR_16"},
646 {{vc, r2, r5, ROR, 16}, false, al, "vc r2 r5 ROR 16", "vc_r2_r5_ROR_16"},
647 {{eq, r5, r11, ROR, 16}, false, al, "eq r5 r11 ROR 16", "eq_r5_r11_ROR_16"},
648 {{al, r4, r11, ROR, 24}, false, al, "al r4 r11 ROR 24", "al_r4_r11_ROR_24"},
649 {{pl, r13, r4, ROR, 0}, false, al, "pl r13 r4 ROR 0", "pl_r13_r4_ROR_0"},
650 {{ls, r14, r13, ROR, 8}, false, al, "ls r14 r13 ROR 8", "ls_r14_r13_ROR_8"},
651 {{ge, r12, r2, ROR, 24}, false, al, "ge r12 r2 ROR 24", "ge_r12_r2_ROR_24"},
652 {{eq, r10, r1, ROR, 16}, false, al, "eq r10 r1 ROR 16", "eq_r10_r1_ROR_16"},
653 {{le, r0, r14, ROR, 24}, false, al, "le r0 r14 ROR 24", "le_r0_r14_ROR_24"},
654 {{al, r3, r9, ROR, 8}, false, al, "al r3 r9 ROR 8", "al_r3_r9_ROR_8"},
655 {{cc, r11, r12, ROR, 8}, false, al, "cc r11 r12 ROR 8", "cc_r11_r12_ROR_8"},
656 {{ls, r3, r0, ROR, 24}, false, al, "ls r3 r0 ROR 24", "ls_r3_r0_ROR_24"},
657 {{hi, r6, r6, ROR, 16}, false, al, "hi r6 r6 ROR 16", "hi_r6_r6_ROR_16"},
658 {{cs, r10, r5, ROR, 8}, false, al, "cs r10 r5 ROR 8", "cs_r10_r5_ROR_8"},
659 {{mi, r13, r0, ROR, 0}, false, al, "mi r13 r0 ROR 0", "mi_r13_r0_ROR_0"},
660 {{le, r6, r3, ROR, 16}, false, al, "le r6 r3 ROR 16", "le_r6_r3_ROR_16"},
661 {{ls, r11, r12, ROR, 16},
662 false,
663 al,
664 "ls r11 r12 ROR 16",
665 "ls_r11_r12_ROR_16"},
666 {{gt, r11, r10, ROR, 16},
667 false,
668 al,
669 "gt r11 r10 ROR 16",
670 "gt_r11_r10_ROR_16"},
671 {{le, r4, r11, ROR, 0}, false, al, "le r4 r11 ROR 0", "le_r4_r11_ROR_0"},
672 {{gt, r3, r7, ROR, 16}, false, al, "gt r3 r7 ROR 16", "gt_r3_r7_ROR_16"},
673 {{ne, r10, r0, ROR, 8}, false, al, "ne r10 r0 ROR 8", "ne_r10_r0_ROR_8"},
674 {{cc, r7, r5, ROR, 16}, false, al, "cc r7 r5 ROR 16", "cc_r7_r5_ROR_16"},
675 {{vc, r10, r0, ROR, 8}, false, al, "vc r10 r0 ROR 8", "vc_r10_r0_ROR_8"},
676 {{le, r7, r12, ROR, 8}, false, al, "le r7 r12 ROR 8", "le_r7_r12_ROR_8"},
677 {{ls, r1, r4, ROR, 24}, false, al, "ls r1 r4 ROR 24", "ls_r1_r4_ROR_24"},
678 {{al, r11, r7, ROR, 16}, false, al, "al r11 r7 ROR 16", "al_r11_r7_ROR_16"},
679 {{pl, r8, r4, ROR, 16}, false, al, "pl r8 r4 ROR 16", "pl_r8_r4_ROR_16"},
680 {{ne, r5, r9, ROR, 16}, false, al, "ne r5 r9 ROR 16", "ne_r5_r9_ROR_16"},
681 {{lt, r7, r13, ROR, 16}, false, al, "lt r7 r13 ROR 16", "lt_r7_r13_ROR_16"},
682 {{vc, r5, r7, ROR, 16}, false, al, "vc r5 r7 ROR 16", "vc_r5_r7_ROR_16"},
683 {{ls, r3, r10, ROR, 8}, false, al, "ls r3 r10 ROR 8", "ls_r3_r10_ROR_8"},
684 {{al, r1, r7, ROR, 16}, false, al, "al r1 r7 ROR 16", "al_r1_r7_ROR_16"},
685 {{al, r9, r12, ROR, 8}, false, al, "al r9 r12 ROR 8", "al_r9_r12_ROR_8"},
686 {{vc, r14, r9, ROR, 8}, false, al, "vc r14 r9 ROR 8", "vc_r14_r9_ROR_8"},
687 {{vs, r4, r1, ROR, 24}, false, al, "vs r4 r1 ROR 24", "vs_r4_r1_ROR_24"},
688 {{lt, r11, r9, ROR, 24}, false, al, "lt r11 r9 ROR 24", "lt_r11_r9_ROR_24"},
689 {{eq, r12, r8, ROR, 8}, false, al, "eq r12 r8 ROR 8", "eq_r12_r8_ROR_8"},
690 {{eq, r5, r5, ROR, 24}, false, al, "eq r5 r5 ROR 24", "eq_r5_r5_ROR_24"},
691 {{gt, r2, r4, ROR, 16}, false, al, "gt r2 r4 ROR 16", "gt_r2_r4_ROR_16"},
692 {{cs, r12, r0, ROR, 0}, false, al, "cs r12 r0 ROR 0", "cs_r12_r0_ROR_0"},
693 {{ge, r11, r9, ROR, 16}, false, al, "ge r11 r9 ROR 16", "ge_r11_r9_ROR_16"},
694 {{le, r3, r12, ROR, 0}, false, al, "le r3 r12 ROR 0", "le_r3_r12_ROR_0"},
695 {{al, r6, r3, ROR, 0}, false, al, "al r6 r3 ROR 0", "al_r6_r3_ROR_0"},
696 {{cc, r8, r3, ROR, 0}, false, al, "cc r8 r3 ROR 0", "cc_r8_r3_ROR_0"},
697 {{le, r14, r8, ROR, 8}, false, al, "le r14 r8 ROR 8", "le_r14_r8_ROR_8"},
698 {{al, r12, r5, ROR, 8}, false, al, "al r12 r5 ROR 8", "al_r12_r5_ROR_8"},
699 {{hi, r2, r11, ROR, 24}, false, al, "hi r2 r11 ROR 24", "hi_r2_r11_ROR_24"},
700 {{cc, r2, r7, ROR, 16}, false, al, "cc r2 r7 ROR 16", "cc_r2_r7_ROR_16"},
701 {{le, r3, r1, ROR, 0}, false, al, "le r3 r1 ROR 0", "le_r3_r1_ROR_0"},
702 {{vs, r14, r2, ROR, 0}, false, al, "vs r14 r2 ROR 0", "vs_r14_r2_ROR_0"},
703 {{lt, r1, r3, ROR, 24}, false, al, "lt r1 r3 ROR 24", "lt_r1_r3_ROR_24"},
704 {{cc, r0, r9, ROR, 16}, false, al, "cc r0 r9 ROR 16", "cc_r0_r9_ROR_16"},
705 {{ne, r11, r6, ROR, 0}, false, al, "ne r11 r6 ROR 0", "ne_r11_r6_ROR_0"},
706 {{cs, r4, r5, ROR, 16}, false, al, "cs r4 r5 ROR 16", "cs_r4_r5_ROR_16"},
707 {{eq, r9, r5, ROR, 16}, false, al, "eq r9 r5 ROR 16", "eq_r9_r5_ROR_16"},
708 {{cs, r11, r8, ROR, 8}, false, al, "cs r11 r8 ROR 8", "cs_r11_r8_ROR_8"},
709 {{al, r13, r7, ROR, 8}, false, al, "al r13 r7 ROR 8", "al_r13_r7_ROR_8"},
710 {{al, r5, r13, ROR, 16}, false, al, "al r5 r13 ROR 16", "al_r5_r13_ROR_16"},
711 {{ge, r9, r7, ROR, 16}, false, al, "ge r9 r7 ROR 16", "ge_r9_r7_ROR_16"},
712 {{vs, r1, r9, ROR, 24}, false, al, "vs r1 r9 ROR 24", "vs_r1_r9_ROR_24"},
713 {{lt, r0, r3, ROR, 8}, false, al, "lt r0 r3 ROR 8", "lt_r0_r3_ROR_8"},
714 {{pl, r7, r0, ROR, 16}, false, al, "pl r7 r0 ROR 16", "pl_r7_r0_ROR_16"},
715 {{lt, r5, r14, ROR, 24}, false, al, "lt r5 r14 ROR 24", "lt_r5_r14_ROR_24"},
716 {{vc, r0, r5, ROR, 8}, false, al, "vc r0 r5 ROR 8", "vc_r0_r5_ROR_8"},
717 {{le, r6, r8, ROR, 16}, false, al, "le r6 r8 ROR 16", "le_r6_r8_ROR_16"},
718 {{ge, r6, r6, ROR, 16}, false, al, "ge r6 r6 ROR 16", "ge_r6_r6_ROR_16"},
719 {{eq, r8, r2, ROR, 24}, false, al, "eq r8 r2 ROR 24", "eq_r8_r2_ROR_24"},
720 {{cc, r12, r6, ROR, 0}, false, al, "cc r12 r6 ROR 0", "cc_r12_r6_ROR_0"},
721 {{ls, r3, r13, ROR, 0}, false, al, "ls r3 r13 ROR 0", "ls_r3_r13_ROR_0"},
722 {{gt, r1, r11, ROR, 16}, false, al, "gt r1 r11 ROR 16", "gt_r1_r11_ROR_16"},
723 {{pl, r10, r1, ROR, 24}, false, al, "pl r10 r1 ROR 24", "pl_r10_r1_ROR_24"},
724 {{vc, r11, r7, ROR, 8}, false, al, "vc r11 r7 ROR 8", "vc_r11_r7_ROR_8"},
725 {{vc, r3, r13, ROR, 16}, false, al, "vc r3 r13 ROR 16", "vc_r3_r13_ROR_16"},
726 {{vc, r4, r12, ROR, 16}, false, al, "vc r4 r12 ROR 16", "vc_r4_r12_ROR_16"},
727 {{mi, r1, r8, ROR, 8}, false, al, "mi r1 r8 ROR 8", "mi_r1_r8_ROR_8"},
728 {{ls, r9, r5, ROR, 24}, false, al, "ls r9 r5 ROR 24", "ls_r9_r5_ROR_24"},
729 {{vc, r14, r0, ROR, 8}, false, al, "vc r14 r0 ROR 8", "vc_r14_r0_ROR_8"},
730 {{ls, r5, r5, ROR, 8}, false, al, "ls r5 r5 ROR 8", "ls_r5_r5_ROR_8"},
731 {{le, r8, r4, ROR, 8}, false, al, "le r8 r4 ROR 8", "le_r8_r4_ROR_8"},
732 {{pl, r6, r13, ROR, 0}, false, al, "pl r6 r13 ROR 0", "pl_r6_r13_ROR_0"},
733 {{ne, r0, r3, ROR, 24}, false, al, "ne r0 r3 ROR 24", "ne_r0_r3_ROR_24"},
734 {{mi, r4, r0, ROR, 0}, false, al, "mi r4 r0 ROR 0", "mi_r4_r0_ROR_0"},
735 {{ls, r7, r7, ROR, 16}, false, al, "ls r7 r7 ROR 16", "ls_r7_r7_ROR_16"},
736 {{vs, r12, r2, ROR, 16}, false, al, "vs r12 r2 ROR 16", "vs_r12_r2_ROR_16"},
737 {{pl, r0, r0, ROR, 8}, false, al, "pl r0 r0 ROR 8", "pl_r0_r0_ROR_8"},
738 {{le, r12, r3, ROR, 24}, false, al, "le r12 r3 ROR 24", "le_r12_r3_ROR_24"},
739 {{mi, r13, r6, ROR, 24}, false, al, "mi r13 r6 ROR 24", "mi_r13_r6_ROR_24"},
740 {{vs, r2, r8, ROR, 0}, false, al, "vs r2 r8 ROR 0", "vs_r2_r8_ROR_0"},
741 {{ne, r11, r11, ROR, 0}, false, al, "ne r11 r11 ROR 0", "ne_r11_r11_ROR_0"},
742 {{cs, r10, r3, ROR, 0}, false, al, "cs r10 r3 ROR 0", "cs_r10_r3_ROR_0"},
743 {{gt, r8, r6, ROR, 0}, false, al, "gt r8 r6 ROR 0", "gt_r8_r6_ROR_0"},
744 {{mi, r6, r12, ROR, 0}, false, al, "mi r6 r12 ROR 0", "mi_r6_r12_ROR_0"},
745 {{ne, r10, r8, ROR, 16}, false, al, "ne r10 r8 ROR 16", "ne_r10_r8_ROR_16"},
746 {{hi, r0, r10, ROR, 24}, false, al, "hi r0 r10 ROR 24", "hi_r0_r10_ROR_24"},
747 {{pl, r14, r0, ROR, 0}, false, al, "pl r14 r0 ROR 0", "pl_r14_r0_ROR_0"},
748 {{vs, r0, r3, ROR, 8}, false, al, "vs r0 r3 ROR 8", "vs_r0_r3_ROR_8"},
749 {{cs, r11, r5, ROR, 8}, false, al, "cs r11 r5 ROR 8", "cs_r11_r5_ROR_8"},
750 {{le, r3, r12, ROR, 24}, false, al, "le r3 r12 ROR 24", "le_r3_r12_ROR_24"},
751 {{vs, r14, r8, ROR, 16}, false, al, "vs r14 r8 ROR 16", "vs_r14_r8_ROR_16"},
752 {{le, r10, r4, ROR, 24}, false, al, "le r10 r4 ROR 24", "le_r10_r4_ROR_24"},
753 {{eq, r12, r7, ROR, 0}, false, al, "eq r12 r7 ROR 0", "eq_r12_r7_ROR_0"},
754 {{cs, r9, r4, ROR, 0}, false, al, "cs r9 r4 ROR 0", "cs_r9_r4_ROR_0"},
755 {{vs, r12, r5, ROR, 16}, false, al, "vs r12 r5 ROR 16", "vs_r12_r5_ROR_16"},
756 {{pl, r9, r4, ROR, 16}, false, al, "pl r9 r4 ROR 16", "pl_r9_r4_ROR_16"},
757 {{hi, r3, r0, ROR, 24}, false, al, "hi r3 r0 ROR 24", "hi_r3_r0_ROR_24"},
758 {{cc, r2, r6, ROR, 8}, false, al, "cc r2 r6 ROR 8", "cc_r2_r6_ROR_8"},
759 {{le, r12, r12, ROR, 16},
760 false,
761 al,
762 "le r12 r12 ROR 16",
763 "le_r12_r12_ROR_16"},
764 {{lt, r1, r8, ROR, 8}, false, al, "lt r1 r8 ROR 8", "lt_r1_r8_ROR_8"},
765 {{lt, r5, r10, ROR, 24}, false, al, "lt r5 r10 ROR 24", "lt_r5_r10_ROR_24"},
766 {{pl, r4, r7, ROR, 8}, false, al, "pl r4 r7 ROR 8", "pl_r4_r7_ROR_8"},
767 {{ne, r5, r9, ROR, 24}, false, al, "ne r5 r9 ROR 24", "ne_r5_r9_ROR_24"},
768 {{al, r13, r8, ROR, 8}, false, al, "al r13 r8 ROR 8", "al_r13_r8_ROR_8"},
769 {{eq, r9, r9, ROR, 0}, false, al, "eq r9 r9 ROR 0", "eq_r9_r9_ROR_0"},
770 {{ls, r9, r2, ROR, 0}, false, al, "ls r9 r2 ROR 0", "ls_r9_r2_ROR_0"},
771 {{eq, r12, r4, ROR, 16}, false, al, "eq r12 r4 ROR 16", "eq_r12_r4_ROR_16"},
772 {{pl, r4, r7, ROR, 16}, false, al, "pl r4 r7 ROR 16", "pl_r4_r7_ROR_16"},
773 {{ls, r7, r6, ROR, 8}, false, al, "ls r7 r6 ROR 8", "ls_r7_r6_ROR_8"},
774 {{vc, r7, r9, ROR, 8}, false, al, "vc r7 r9 ROR 8", "vc_r7_r9_ROR_8"},
775 {{hi, r6, r7, ROR, 8}, false, al, "hi r6 r7 ROR 8", "hi_r6_r7_ROR_8"},
776 {{vs, r5, r14, ROR, 0}, false, al, "vs r5 r14 ROR 0", "vs_r5_r14_ROR_0"},
777 {{vs, r8, r3, ROR, 8}, false, al, "vs r8 r3 ROR 8", "vs_r8_r3_ROR_8"},
778 {{vs, r13, r9, ROR, 24}, false, al, "vs r13 r9 ROR 24", "vs_r13_r9_ROR_24"},
779 {{hi, r1, r13, ROR, 24}, false, al, "hi r1 r13 ROR 24", "hi_r1_r13_ROR_24"},
780 {{mi, r7, r0, ROR, 0}, false, al, "mi r7 r0 ROR 0", "mi_r7_r0_ROR_0"},
781 {{cc, r6, r6, ROR, 16}, false, al, "cc r6 r6 ROR 16", "cc_r6_r6_ROR_16"},
782 {{le, r5, r5, ROR, 24}, false, al, "le r5 r5 ROR 24", "le_r5_r5_ROR_24"},
783 {{ge, r7, r3, ROR, 8}, false, al, "ge r7 r3 ROR 8", "ge_r7_r3_ROR_8"},
784 {{vs, r0, r14, ROR, 24}, false, al, "vs r0 r14 ROR 24", "vs_r0_r14_ROR_24"},
785 {{ne, r0, r5, ROR, 0}, false, al, "ne r0 r5 ROR 0", "ne_r0_r5_ROR_0"},
786 {{ne, r9, r1, ROR, 8}, false, al, "ne r9 r1 ROR 8", "ne_r9_r1_ROR_8"},
787 {{vs, r3, r13, ROR, 24}, false, al, "vs r3 r13 ROR 24", "vs_r3_r13_ROR_24"},
788 {{lt, r9, r11, ROR, 24}, false, al, "lt r9 r11 ROR 24", "lt_r9_r11_ROR_24"},
789 {{mi, r7, r3, ROR, 24}, false, al, "mi r7 r3 ROR 24", "mi_r7_r3_ROR_24"},
790 {{lt, r9, r9, ROR, 0}, false, al, "lt r9 r9 ROR 0", "lt_r9_r9_ROR_0"},
791 {{al, r2, r13, ROR, 0}, false, al, "al r2 r13 ROR 0", "al_r2_r13_ROR_0"},
792 {{gt, r1, r14, ROR, 24}, false, al, "gt r1 r14 ROR 24", "gt_r1_r14_ROR_24"},
793 {{cs, r7, r0, ROR, 16}, false, al, "cs r7 r0 ROR 16", "cs_r7_r0_ROR_16"},
794 {{pl, r8, r3, ROR, 8}, false, al, "pl r8 r3 ROR 8", "pl_r8_r3_ROR_8"},
795 {{ls, r8, r2, ROR, 24}, false, al, "ls r8 r2 ROR 24", "ls_r8_r2_ROR_24"},
796 {{ne, r11, r0, ROR, 8}, false, al, "ne r11 r0 ROR 8", "ne_r11_r0_ROR_8"},
797 {{cc, r14, r9, ROR, 24}, false, al, "cc r14 r9 ROR 24", "cc_r14_r9_ROR_24"},
798 {{le, r7, r4, ROR, 0}, false, al, "le r7 r4 ROR 0", "le_r7_r4_ROR_0"},
799 {{cc, r0, r5, ROR, 0}, false, al, "cc r0 r5 ROR 0", "cc_r0_r5_ROR_0"},
800 {{cc, r4, r14, ROR, 16}, false, al, "cc r4 r14 ROR 16", "cc_r4_r14_ROR_16"},
801 {{le, r11, r10, ROR, 16},
802 false,
803 al,
804 "le r11 r10 ROR 16",
805 "le_r11_r10_ROR_16"},
806 {{ls, r8, r7, ROR, 16}, false, al, "ls r8 r7 ROR 16", "ls_r8_r7_ROR_16"},
807 {{ls, r9, r8, ROR, 16}, false, al, "ls r9 r8 ROR 16", "ls_r9_r8_ROR_16"},
808 {{cc, r8, r4, ROR, 24}, false, al, "cc r8 r4 ROR 24", "cc_r8_r4_ROR_24"},
809 {{hi, r0, r13, ROR, 0}, false, al, "hi r0 r13 ROR 0", "hi_r0_r13_ROR_0"},
810 {{hi, r8, r10, ROR, 8}, false, al, "hi r8 r10 ROR 8", "hi_r8_r10_ROR_8"},
811 {{ge, r9, r9, ROR, 24}, false, al, "ge r9 r9 ROR 24", "ge_r9_r9_ROR_24"},
812 {{pl, r7, r12, ROR, 8}, false, al, "pl r7 r12 ROR 8", "pl_r7_r12_ROR_8"},
813 {{vs, r7, r13, ROR, 16}, false, al, "vs r7 r13 ROR 16", "vs_r7_r13_ROR_16"},
814 {{eq, r12, r9, ROR, 0}, false, al, "eq r12 r9 ROR 0", "eq_r12_r9_ROR_0"},
815 {{ls, r0, r9, ROR, 8}, false, al, "ls r0 r9 ROR 8", "ls_r0_r9_ROR_8"},
816 {{mi, r7, r4, ROR, 24}, false, al, "mi r7 r4 ROR 24", "mi_r7_r4_ROR_24"},
817 {{eq, r13, r8, ROR, 24}, false, al, "eq r13 r8 ROR 24", "eq_r13_r8_ROR_24"},
818 {{lt, r14, r9, ROR, 8}, false, al, "lt r14 r9 ROR 8", "lt_r14_r9_ROR_8"},
819 {{ne, r1, r14, ROR, 8}, false, al, "ne r1 r14 ROR 8", "ne_r1_r14_ROR_8"},
820 {{ne, r13, r13, ROR, 16},
821 false,
822 al,
823 "ne r13 r13 ROR 16",
824 "ne_r13_r13_ROR_16"},
825 {{pl, r1, r11, ROR, 8}, false, al, "pl r1 r11 ROR 8", "pl_r1_r11_ROR_8"},
826 {{ls, r0, r4, ROR, 8}, false, al, "ls r0 r4 ROR 8", "ls_r0_r4_ROR_8"},
827 {{ge, r13, r3, ROR, 24}, false, al, "ge r13 r3 ROR 24", "ge_r13_r3_ROR_24"},
828 {{cs, r7, r12, ROR, 8}, false, al, "cs r7 r12 ROR 8", "cs_r7_r12_ROR_8"},
829 {{lt, r6, r2, ROR, 24}, false, al, "lt r6 r2 ROR 24", "lt_r6_r2_ROR_24"},
830 {{gt, r5, r9, ROR, 24}, false, al, "gt r5 r9 ROR 24", "gt_r5_r9_ROR_24"},
831 {{eq, r1, r2, ROR, 16}, false, al, "eq r1 r2 ROR 16", "eq_r1_r2_ROR_16"},
832 {{ne, r8, r8, ROR, 16}, false, al, "ne r8 r8 ROR 16", "ne_r8_r8_ROR_16"},
833 {{le, r9, r1, ROR, 8}, false, al, "le r9 r1 ROR 8", "le_r9_r1_ROR_8"},
834 {{ne, r13, r0, ROR, 24}, false, al, "ne r13 r0 ROR 24", "ne_r13_r0_ROR_24"},
835 {{cs, r12, r2, ROR, 0}, false, al, "cs r12 r2 ROR 0", "cs_r12_r2_ROR_0"},
836 {{mi, r14, r0, ROR, 16}, false, al, "mi r14 r0 ROR 16", "mi_r14_r0_ROR_16"},
837 {{cs, r2, r9, ROR, 16}, false, al, "cs r2 r9 ROR 16", "cs_r2_r9_ROR_16"},
838 {{ne, r10, r9, ROR, 16}, false, al, "ne r10 r9 ROR 16", "ne_r10_r9_ROR_16"},
839 {{lt, r1, r11, ROR, 8}, false, al, "lt r1 r11 ROR 8", "lt_r1_r11_ROR_8"},
840 {{cc, r6, r10, ROR, 24}, false, al, "cc r6 r10 ROR 24", "cc_r6_r10_ROR_24"},
841 {{le, r13, r10, ROR, 16},
842 false,
843 al,
844 "le r13 r10 ROR 16",
845 "le_r13_r10_ROR_16"},
846 {{mi, r2, r10, ROR, 24}, false, al, "mi r2 r10 ROR 24", "mi_r2_r10_ROR_24"},
847 {{hi, r13, r12, ROR, 24},
848 false,
849 al,
850 "hi r13 r12 ROR 24",
851 "hi_r13_r12_ROR_24"},
852 {{le, r13, r5, ROR, 24}, false, al, "le r13 r5 ROR 24", "le_r13_r5_ROR_24"},
853 {{cs, r11, r8, ROR, 16}, false, al, "cs r11 r8 ROR 16", "cs_r11_r8_ROR_16"},
854 {{vc, r10, r11, ROR, 24},
855 false,
856 al,
857 "vc r10 r11 ROR 24",
858 "vc_r10_r11_ROR_24"},
859 {{eq, r3, r5, ROR, 0}, false, al, "eq r3 r5 ROR 0", "eq_r3_r5_ROR_0"},
860 {{ne, r9, r7, ROR, 0}, false, al, "ne r9 r7 ROR 0", "ne_r9_r7_ROR_0"},
861 {{vc, r4, r8, ROR, 16}, false, al, "vc r4 r8 ROR 16", "vc_r4_r8_ROR_16"},
862 {{le, r10, r6, ROR, 8}, false, al, "le r10 r6 ROR 8", "le_r10_r6_ROR_8"},
863 {{eq, r7, r1, ROR, 8}, false, al, "eq r7 r1 ROR 8", "eq_r7_r1_ROR_8"},
864 {{pl, r2, r10, ROR, 8}, false, al, "pl r2 r10 ROR 8", "pl_r2_r10_ROR_8"},
865 {{ge, r8, r13, ROR, 16}, false, al, "ge r8 r13 ROR 16", "ge_r8_r13_ROR_16"},
866 {{cs, r10, r3, ROR, 24}, false, al, "cs r10 r3 ROR 24", "cs_r10_r3_ROR_24"},
867 {{gt, r5, r2, ROR, 24}, false, al, "gt r5 r2 ROR 24", "gt_r5_r2_ROR_24"},
868 {{ge, r2, r1, ROR, 0}, false, al, "ge r2 r1 ROR 0", "ge_r2_r1_ROR_0"},
869 {{cc, r6, r3, ROR, 16}, false, al, "cc r6 r3 ROR 16", "cc_r6_r3_ROR_16"},
870 {{cs, r5, r0, ROR, 16}, false, al, "cs r5 r0 ROR 16", "cs_r5_r0_ROR_16"},
871 {{mi, r3, r9, ROR, 8}, false, al, "mi r3 r9 ROR 8", "mi_r3_r9_ROR_8"},
872 {{eq, r1, r5, ROR, 0}, false, al, "eq r1 r5 ROR 0", "eq_r1_r5_ROR_0"},
873 {{hi, r12, r11, ROR, 24},
874 false,
875 al,
876 "hi r12 r11 ROR 24",
877 "hi_r12_r11_ROR_24"},
878 {{eq, r4, r9, ROR, 24}, false, al, "eq r4 r9 ROR 24", "eq_r4_r9_ROR_24"},
879 {{pl, r2, r7, ROR, 16}, false, al, "pl r2 r7 ROR 16", "pl_r2_r7_ROR_16"},
880 {{mi, r5, r13, ROR, 16}, false, al, "mi r5 r13 ROR 16", "mi_r5_r13_ROR_16"},
881 {{vs, r0, r8, ROR, 24}, false, al, "vs r0 r8 ROR 24", "vs_r0_r8_ROR_24"},
882 {{eq, r13, r4, ROR, 16}, false, al, "eq r13 r4 ROR 16", "eq_r13_r4_ROR_16"},
883 {{gt, r4, r3, ROR, 16}, false, al, "gt r4 r3 ROR 16", "gt_r4_r3_ROR_16"},
884 {{lt, r11, r7, ROR, 8}, false, al, "lt r11 r7 ROR 8", "lt_r11_r7_ROR_8"},
885 {{lt, r11, r1, ROR, 24}, false, al, "lt r11 r1 ROR 24", "lt_r11_r1_ROR_24"},
886 {{ne, r0, r9, ROR, 0}, false, al, "ne r0 r9 ROR 0", "ne_r0_r9_ROR_0"},
887 {{al, r8, r12, ROR, 16}, false, al, "al r8 r12 ROR 16", "al_r8_r12_ROR_16"},
888 {{cc, r5, r5, ROR, 16}, false, al, "cc r5 r5 ROR 16", "cc_r5_r5_ROR_16"},
889 {{le, r5, r10, ROR, 24}, false, al, "le r5 r10 ROR 24", "le_r5_r10_ROR_24"},
890 {{lt, r4, r13, ROR, 16}, false, al, "lt r4 r13 ROR 16", "lt_r4_r13_ROR_16"},
891 {{hi, r14, r1, ROR, 16}, false, al, "hi r14 r1 ROR 16", "hi_r14_r1_ROR_16"},
892 {{cs, r12, r7, ROR, 0}, false, al, "cs r12 r7 ROR 0", "cs_r12_r7_ROR_0"},
893 {{mi, r4, r2, ROR, 0}, false, al, "mi r4 r2 ROR 0", "mi_r4_r2_ROR_0"},
894 {{al, r8, r11, ROR, 24}, false, al, "al r8 r11 ROR 24", "al_r8_r11_ROR_24"},
895 {{vs, r3, r2, ROR, 0}, false, al, "vs r3 r2 ROR 0", "vs_r3_r2_ROR_0"},
896 {{eq, r13, r10, ROR, 16},
897 false,
898 al,
899 "eq r13 r10 ROR 16",
900 "eq_r13_r10_ROR_16"},
901 {{vc, r14, r13, ROR, 24},
902 false,
903 al,
904 "vc r14 r13 ROR 24",
905 "vc_r14_r13_ROR_24"},
906 {{ge, r14, r5, ROR, 0}, false, al, "ge r14 r5 ROR 0", "ge_r14_r5_ROR_0"},
907 {{mi, r8, r6, ROR, 8}, false, al, "mi r8 r6 ROR 8", "mi_r8_r6_ROR_8"},
908 {{hi, r1, r11, ROR, 24}, false, al, "hi r1 r11 ROR 24", "hi_r1_r11_ROR_24"},
909 {{vs, r9, r14, ROR, 0}, false, al, "vs r9 r14 ROR 0", "vs_r9_r14_ROR_0"},
910 {{le, r0, r11, ROR, 8}, false, al, "le r0 r11 ROR 8", "le_r0_r11_ROR_8"},
911 {{le, r3, r4, ROR, 16}, false, al, "le r3 r4 ROR 16", "le_r3_r4_ROR_16"},
912 {{vc, r1, r10, ROR, 16}, false, al, "vc r1 r10 ROR 16", "vc_r1_r10_ROR_16"},
913 {{gt, r11, r8, ROR, 8}, false, al, "gt r11 r8 ROR 8", "gt_r11_r8_ROR_8"},
914 {{lt, r10, r3, ROR, 24}, false, al, "lt r10 r3 ROR 24", "lt_r10_r3_ROR_24"},
915 {{vs, r13, r6, ROR, 16}, false, al, "vs r13 r6 ROR 16", "vs_r13_r6_ROR_16"},
916 {{pl, r11, r9, ROR, 0}, false, al, "pl r11 r9 ROR 0", "pl_r11_r9_ROR_0"},
917 {{pl, r4, r12, ROR, 24}, false, al, "pl r4 r12 ROR 24", "pl_r4_r12_ROR_24"},
918 {{pl, r14, r8, ROR, 0}, false, al, "pl r14 r8 ROR 0", "pl_r14_r8_ROR_0"},
919 {{gt, r3, r12, ROR, 16}, false, al, "gt r3 r12 ROR 16", "gt_r3_r12_ROR_16"},
920 {{le, r0, r6, ROR, 8}, false, al, "le r0 r6 ROR 8", "le_r0_r6_ROR_8"},
921 {{hi, r11, r2, ROR, 24}, false, al, "hi r11 r2 ROR 24", "hi_r11_r2_ROR_24"},
922 {{al, r5, r11, ROR, 24}, false, al, "al r5 r11 ROR 24", "al_r5_r11_ROR_24"},
923 {{vs, r9, r9, ROR, 8}, false, al, "vs r9 r9 ROR 8", "vs_r9_r9_ROR_8"},
924 {{cc, r7, r11, ROR, 0}, false, al, "cc r7 r11 ROR 0", "cc_r7_r11_ROR_0"},
925 {{vc, r10, r9, ROR, 0}, false, al, "vc r10 r9 ROR 0", "vc_r10_r9_ROR_0"},
926 {{ge, r10, r6, ROR, 0}, false, al, "ge r10 r6 ROR 0", "ge_r10_r6_ROR_0"},
927 {{le, r7, r11, ROR, 24}, false, al, "le r7 r11 ROR 24", "le_r7_r11_ROR_24"},
928 {{cc, r6, r5, ROR, 8}, false, al, "cc r6 r5 ROR 8", "cc_r6_r5_ROR_8"},
929 {{eq, r5, r10, ROR, 24}, false, al, "eq r5 r10 ROR 24", "eq_r5_r10_ROR_24"},
930 {{hi, r3, r2, ROR, 8}, false, al, "hi r3 r2 ROR 8", "hi_r3_r2_ROR_8"},
931 {{vs, r13, r5, ROR, 16}, false, al, "vs r13 r5 ROR 16", "vs_r13_r5_ROR_16"},
932 {{cc, r13, r12, ROR, 0}, false, al, "cc r13 r12 ROR 0", "cc_r13_r12_ROR_0"},
933 {{ge, r3, r6, ROR, 16}, false, al, "ge r3 r6 ROR 16", "ge_r3_r6_ROR_16"},
934 {{mi, r11, r1, ROR, 0}, false, al, "mi r11 r1 ROR 0", "mi_r11_r1_ROR_0"},
935 {{ge, r2, r3, ROR, 0}, false, al, "ge r2 r3 ROR 0", "ge_r2_r3_ROR_0"},
936 {{hi, r0, r0, ROR, 24}, false, al, "hi r0 r0 ROR 24", "hi_r0_r0_ROR_24"},
937 {{ne, r12, r8, ROR, 8}, false, al, "ne r12 r8 ROR 8", "ne_r12_r8_ROR_8"},
938 {{mi, r4, r11, ROR, 8}, false, al, "mi r4 r11 ROR 8", "mi_r4_r11_ROR_8"},
939 {{gt, r10, r14, ROR, 16},
940 false,
941 al,
942 "gt r10 r14 ROR 16",
943 "gt_r10_r14_ROR_16"},
944 {{pl, r9, r10, ROR, 16}, false, al, "pl r9 r10 ROR 16", "pl_r9_r10_ROR_16"},
945 {{mi, r1, r2, ROR, 8}, false, al, "mi r1 r2 ROR 8", "mi_r1_r2_ROR_8"},
946 {{vs, r1, r8, ROR, 16}, false, al, "vs r1 r8 ROR 16", "vs_r1_r8_ROR_16"},
947 {{gt, r0, r12, ROR, 0}, false, al, "gt r0 r12 ROR 0", "gt_r0_r12_ROR_0"},
948 {{ls, r13, r6, ROR, 8}, false, al, "ls r13 r6 ROR 8", "ls_r13_r6_ROR_8"},
949 {{vs, r11, r0, ROR, 0}, false, al, "vs r11 r0 ROR 0", "vs_r11_r0_ROR_0"},
950 {{cs, r4, r12, ROR, 8}, false, al, "cs r4 r12 ROR 8", "cs_r4_r12_ROR_8"},
951 {{cs, r13, r6, ROR, 8}, false, al, "cs r13 r6 ROR 8", "cs_r13_r6_ROR_8"},
952 {{eq, r11, r3, ROR, 24}, false, al, "eq r11 r3 ROR 24", "eq_r11_r3_ROR_24"},
953 {{ls, r9, r14, ROR, 24}, false, al, "ls r9 r14 ROR 24", "ls_r9_r14_ROR_24"},
954 {{eq, r6, r8, ROR, 0}, false, al, "eq r6 r8 ROR 0", "eq_r6_r8_ROR_0"},
955 {{hi, r9, r4, ROR, 16}, false, al, "hi r9 r4 ROR 16", "hi_r9_r4_ROR_16"},
956 {{vc, r8, r12, ROR, 16}, false, al, "vc r8 r12 ROR 16", "vc_r8_r12_ROR_16"},
957 {{lt, r1, r13, ROR, 24}, false, al, "lt r1 r13 ROR 24", "lt_r1_r13_ROR_24"},
958 {{ge, r1, r8, ROR, 16}, false, al, "ge r1 r8 ROR 16", "ge_r1_r8_ROR_16"},
959 {{vs, r3, r9, ROR, 24}, false, al, "vs r3 r9 ROR 24", "vs_r3_r9_ROR_24"},
960 {{cc, r6, r11, ROR, 0}, false, al, "cc r6 r11 ROR 0", "cc_r6_r11_ROR_0"},
961 {{al, r5, r10, ROR, 16}, false, al, "al r5 r10 ROR 16", "al_r5_r10_ROR_16"},
962 {{ge, r1, r6, ROR, 8}, false, al, "ge r1 r6 ROR 8", "ge_r1_r6_ROR_8"},
963 {{ge, r1, r4, ROR, 24}, false, al, "ge r1 r4 ROR 24", "ge_r1_r4_ROR_24"},
964 {{hi, r9, r9, ROR, 0}, false, al, "hi r9 r9 ROR 0", "hi_r9_r9_ROR_0"},
965 {{cs, r2, r13, ROR, 0}, false, al, "cs r2 r13 ROR 0", "cs_r2_r13_ROR_0"},
966 {{gt, r8, r5, ROR, 24}, false, al, "gt r8 r5 ROR 24", "gt_r8_r5_ROR_24"},
967 {{le, r7, r2, ROR, 0}, false, al, "le r7 r2 ROR 0", "le_r7_r2_ROR_0"},
968 {{hi, r3, r13, ROR, 0}, false, al, "hi r3 r13 ROR 0", "hi_r3_r13_ROR_0"},
969 {{ne, r11, r12, ROR, 24},
970 false,
971 al,
972 "ne r11 r12 ROR 24",
973 "ne_r11_r12_ROR_24"},
974 {{gt, r8, r1, ROR, 24}, false, al, "gt r8 r1 ROR 24", "gt_r8_r1_ROR_24"},
975 {{le, r1, r10, ROR, 8}, false, al, "le r1 r10 ROR 8", "le_r1_r10_ROR_8"},
976 {{mi, r14, r3, ROR, 16}, false, al, "mi r14 r3 ROR 16", "mi_r14_r3_ROR_16"},
977 {{al, r0, r9, ROR, 16}, false, al, "al r0 r9 ROR 16", "al_r0_r9_ROR_16"},
978 {{vs, r10, r3, ROR, 24}, false, al, "vs r10 r3 ROR 24", "vs_r10_r3_ROR_24"},
979 {{le, r8, r0, ROR, 0}, false, al, "le r8 r0 ROR 0", "le_r8_r0_ROR_0"},
980 {{vs, r3, r0, ROR, 16}, false, al, "vs r3 r0 ROR 16", "vs_r3_r0_ROR_16"},
981 {{ne, r2, r6, ROR, 8}, false, al, "ne r2 r6 ROR 8", "ne_r2_r6_ROR_8"},
982 {{al, r8, r4, ROR, 24}, false, al, "al r8 r4 ROR 24", "al_r8_r4_ROR_24"},
983 {{pl, r1, r4, ROR, 24}, false, al, "pl r1 r4 ROR 24", "pl_r1_r4_ROR_24"},
984 {{hi, r2, r10, ROR, 8}, false, al, "hi r2 r10 ROR 8", "hi_r2_r10_ROR_8"},
985 {{eq, r4, r9, ROR, 0}, false, al, "eq r4 r9 ROR 0", "eq_r4_r9_ROR_0"},
986 {{hi, r5, r2, ROR, 24}, false, al, "hi r5 r2 ROR 24", "hi_r5_r2_ROR_24"},
987 {{pl, r10, r13, ROR, 16},
988 false,
989 al,
990 "pl r10 r13 ROR 16",
991 "pl_r10_r13_ROR_16"},
992 {{ge, r14, r8, ROR, 16}, false, al, "ge r14 r8 ROR 16", "ge_r14_r8_ROR_16"},
993 {{gt, r0, r10, ROR, 0}, false, al, "gt r0 r10 ROR 0", "gt_r0_r10_ROR_0"},
994 {{ne, r12, r3, ROR, 16}, false, al, "ne r12 r3 ROR 16", "ne_r12_r3_ROR_16"},
995 {{ne, r5, r12, ROR, 8}, false, al, "ne r5 r12 ROR 8", "ne_r5_r12_ROR_8"},
996 {{vc, r0, r4, ROR, 8}, false, al, "vc r0 r4 ROR 8", "vc_r0_r4_ROR_8"},
997 {{le, r10, r2, ROR, 24}, false, al, "le r10 r2 ROR 24", "le_r10_r2_ROR_24"},
998 {{vc, r3, r2, ROR, 16}, false, al, "vc r3 r2 ROR 16", "vc_r3_r2_ROR_16"},
999 {{ge, r3, r11, ROR, 0}, false, al, "ge r3 r11 ROR 0", "ge_r3_r11_ROR_0"},
1000 {{ne, r1, r0, ROR, 24}, false, al, "ne r1 r0 ROR 24", "ne_r1_r0_ROR_24"},
1001 {{lt, r8, r5, ROR, 8}, false, al, "lt r8 r5 ROR 8", "lt_r8_r5_ROR_8"},
1002 {{ne, r6, r5, ROR, 0}, false, al, "ne r6 r5 ROR 0", "ne_r6_r5_ROR_0"},
1003 {{gt, r8, r0, ROR, 24}, false, al, "gt r8 r0 ROR 24", "gt_r8_r0_ROR_24"},
1004 {{pl, r13, r11, ROR, 24},
1005 false,
1006 al,
1007 "pl r13 r11 ROR 24",
1008 "pl_r13_r11_ROR_24"},
1009 {{ne, r5, r14, ROR, 16}, false, al, "ne r5 r14 ROR 16", "ne_r5_r14_ROR_16"},
1010 {{cc, r1, r7, ROR, 24}, false, al, "cc r1 r7 ROR 24", "cc_r1_r7_ROR_24"},
1011 {{ge, r9, r10, ROR, 8}, false, al, "ge r9 r10 ROR 8", "ge_r9_r10_ROR_8"},
1012 {{vc, r7, r3, ROR, 8}, false, al, "vc r7 r3 ROR 8", "vc_r7_r3_ROR_8"},
1013 {{eq, r7, r1, ROR, 16}, false, al, "eq r7 r1 ROR 16", "eq_r7_r1_ROR_16"},
1014 {{gt, r3, r2, ROR, 16}, false, al, "gt r3 r2 ROR 16", "gt_r3_r2_ROR_16"},
1015 {{mi, r13, r11, ROR, 0}, false, al, "mi r13 r11 ROR 0", "mi_r13_r11_ROR_0"},
1016 {{lt, r2, r5, ROR, 16}, false, al, "lt r2 r5 ROR 16", "lt_r2_r5_ROR_16"},
1017 {{gt, r3, r14, ROR, 16}, false, al, "gt r3 r14 ROR 16", "gt_r3_r14_ROR_16"},
1018 {{eq, r12, r11, ROR, 24},
1019 false,
1020 al,
1021 "eq r12 r11 ROR 24",
1022 "eq_r12_r11_ROR_24"},
1023 {{lt, r1, r1, ROR, 8}, false, al, "lt r1 r1 ROR 8", "lt_r1_r1_ROR_8"},
1024 {{al, r1, r9, ROR, 0}, false, al, "al r1 r9 ROR 0", "al_r1_r9_ROR_0"},
1025 {{ls, r6, r6, ROR, 16}, false, al, "ls r6 r6 ROR 16", "ls_r6_r6_ROR_16"},
1026 {{ls, r9, r4, ROR, 0}, false, al, "ls r9 r4 ROR 0", "ls_r9_r4_ROR_0"},
1027 {{cs, r3, r3, ROR, 0}, false, al, "cs r3 r3 ROR 0", "cs_r3_r3_ROR_0"},
1028 {{ne, r8, r6, ROR, 24}, false, al, "ne r8 r6 ROR 24", "ne_r8_r6_ROR_24"},
1029 {{eq, r6, r9, ROR, 8}, false, al, "eq r6 r9 ROR 8", "eq_r6_r9_ROR_8"},
1030 {{ls, r6, r6, ROR, 8}, false, al, "ls r6 r6 ROR 8", "ls_r6_r6_ROR_8"},
1031 {{al, r8, r5, ROR, 8}, false, al, "al r8 r5 ROR 8", "al_r8_r5_ROR_8"},
1032 {{mi, r12, r8, ROR, 8}, false, al, "mi r12 r8 ROR 8", "mi_r12_r8_ROR_8"},
1033 {{le, r1, r8, ROR, 16}, false, al, "le r1 r8 ROR 16", "le_r1_r8_ROR_16"},
1034 {{cc, r9, r7, ROR, 16}, false, al, "cc r9 r7 ROR 16", "cc_r9_r7_ROR_16"},
1035 {{ne, r1, r14, ROR, 0}, false, al, "ne r1 r14 ROR 0", "ne_r1_r14_ROR_0"},
1036 {{cc, r10, r13, ROR, 24},
1037 false,
1038 al,
1039 "cc r10 r13 ROR 24",
1040 "cc_r10_r13_ROR_24"},
1041 {{ge, r0, r12, ROR, 16}, false, al, "ge r0 r12 ROR 16", "ge_r0_r12_ROR_16"},
1042 {{ne, r12, r8, ROR, 0}, false, al, "ne r12 r8 ROR 0", "ne_r12_r8_ROR_0"},
1043 {{vc, r13, r11, ROR, 0}, false, al, "vc r13 r11 ROR 0", "vc_r13_r11_ROR_0"},
1044 {{al, r2, r0, ROR, 16}, false, al, "al r2 r0 ROR 16", "al_r2_r0_ROR_16"},
1045 {{pl, r10, r0, ROR, 24}, false, al, "pl r10 r0 ROR 24", "pl_r10_r0_ROR_24"},
1046 {{lt, r5, r14, ROR, 16}, false, al, "lt r5 r14 ROR 16", "lt_r5_r14_ROR_16"},
1047 {{cc, r9, r14, ROR, 8}, false, al, "cc r9 r14 ROR 8", "cc_r9_r14_ROR_8"},
1048 {{ls, r11, r11, ROR, 24},
1049 false,
1050 al,
1051 "ls r11 r11 ROR 24",
1052 "ls_r11_r11_ROR_24"},
1053 {{al, r5, r5, ROR, 0}, false, al, "al r5 r5 ROR 0", "al_r5_r5_ROR_0"},
1054 {{ge, r9, r1, ROR, 0}, false, al, "ge r9 r1 ROR 0", "ge_r9_r1_ROR_0"},
1055 {{vs, r10, r12, ROR, 0}, false, al, "vs r10 r12 ROR 0", "vs_r10_r12_ROR_0"},
1056 {{cs, r7, r9, ROR, 16}, false, al, "cs r7 r9 ROR 16", "cs_r7_r9_ROR_16"},
1057 {{cc, r2, r8, ROR, 8}, false, al, "cc r2 r8 ROR 8", "cc_r2_r8_ROR_8"},
1058 {{lt, r0, r7, ROR, 0}, false, al, "lt r0 r7 ROR 0", "lt_r0_r7_ROR_0"},
1059 {{cs, r4, r8, ROR, 16}, false, al, "cs r4 r8 ROR 16", "cs_r4_r8_ROR_16"},
1060 {{al, r11, r5, ROR, 24}, false, al, "al r11 r5 ROR 24", "al_r11_r5_ROR_24"},
1061 {{vc, r6, r3, ROR, 8}, false, al, "vc r6 r3 ROR 8", "vc_r6_r3_ROR_8"},
1062 {{cc, r14, r10, ROR, 16},
1063 false,
1064 al,
1065 "cc r14 r10 ROR 16",
1066 "cc_r14_r10_ROR_16"},
1067 {{mi, r5, r4, ROR, 8}, false, al, "mi r5 r4 ROR 8", "mi_r5_r4_ROR_8"},
1068 {{lt, r6, r6, ROR, 16}, false, al, "lt r6 r6 ROR 16", "lt_r6_r6_ROR_16"},
1069 {{ge, r6, r12, ROR, 24}, false, al, "ge r6 r12 ROR 24", "ge_r6_r12_ROR_24"},
1070 {{mi, r11, r2, ROR, 0}, false, al, "mi r11 r2 ROR 0", "mi_r11_r2_ROR_0"},
1071 {{cs, r13, r5, ROR, 8}, false, al, "cs r13 r5 ROR 8", "cs_r13_r5_ROR_8"},
1072 {{cc, r2, r1, ROR, 16}, false, al, "cc r2 r1 ROR 16", "cc_r2_r1_ROR_16"},
1073 {{eq, r9, r12, ROR, 24}, false, al, "eq r9 r12 ROR 24", "eq_r9_r12_ROR_24"},
1074 {{al, r9, r4, ROR, 8}, false, al, "al r9 r4 ROR 8", "al_r9_r4_ROR_8"},
1075 {{ne, r12, r4, ROR, 8}, false, al, "ne r12 r4 ROR 8", "ne_r12_r4_ROR_8"},
1076 {{cs, r2, r10, ROR, 24}, false, al, "cs r2 r10 ROR 24", "cs_r2_r10_ROR_24"},
1077 {{hi, r10, r5, ROR, 8}, false, al, "hi r10 r5 ROR 8", "hi_r10_r5_ROR_8"},
1078 {{ne, r5, r12, ROR, 16}, false, al, "ne r5 r12 ROR 16", "ne_r5_r12_ROR_16"},
1079 {{vc, r4, r9, ROR, 16}, false, al, "vc r4 r9 ROR 16", "vc_r4_r9_ROR_16"},
1080 {{pl, r13, r7, ROR, 16}, false, al, "pl r13 r7 ROR 16", "pl_r13_r7_ROR_16"},
1081 {{ne, r6, r0, ROR, 8}, false, al, "ne r6 r0 ROR 8", "ne_r6_r0_ROR_8"},
1082 {{hi, r7, r9, ROR, 16}, false, al, "hi r7 r9 ROR 16", "hi_r7_r9_ROR_16"},
1083 {{vs, r1, r0, ROR, 16}, false, al, "vs r1 r0 ROR 16", "vs_r1_r0_ROR_16"},
1084 {{mi, r0, r2, ROR, 0}, false, al, "mi r0 r2 ROR 0", "mi_r0_r2_ROR_0"},
1085 {{eq, r3, r9, ROR, 8}, false, al, "eq r3 r9 ROR 8", "eq_r3_r9_ROR_8"},
1086 {{ne, r2, r0, ROR, 8}, false, al, "ne r2 r0 ROR 8", "ne_r2_r0_ROR_8"},
1087 {{ge, r7, r12, ROR, 16}, false, al, "ge r7 r12 ROR 16", "ge_r7_r12_ROR_16"},
1088 {{mi, r2, r3, ROR, 8}, false, al, "mi r2 r3 ROR 8", "mi_r2_r3_ROR_8"},
1089 {{hi, r12, r11, ROR, 0}, false, al, "hi r12 r11 ROR 0", "hi_r12_r11_ROR_0"},
1090 {{ge, r10, r0, ROR, 24}, false, al, "ge r10 r0 ROR 24", "ge_r10_r0_ROR_24"},
1091 {{cc, r13, r6, ROR, 24}, false, al, "cc r13 r6 ROR 24", "cc_r13_r6_ROR_24"},
1092 {{vc, r9, r5, ROR, 16}, false, al, "vc r9 r5 ROR 16", "vc_r9_r5_ROR_16"},
1093 {{ge, r10, r0, ROR, 16}, false, al, "ge r10 r0 ROR 16", "ge_r10_r0_ROR_16"},
1094 {{ge, r5, r6, ROR, 24}, false, al, "ge r5 r6 ROR 24", "ge_r5_r6_ROR_24"},
1095 {{al, r4, r1, ROR, 8}, false, al, "al r4 r1 ROR 8", "al_r4_r1_ROR_8"},
1096 {{le, r11, r0, ROR, 0}, false, al, "le r11 r0 ROR 0", "le_r11_r0_ROR_0"},
1097 {{pl, r4, r0, ROR, 16}, false, al, "pl r4 r0 ROR 16", "pl_r4_r0_ROR_16"},
1098 {{le, r6, r8, ROR, 0}, false, al, "le r6 r8 ROR 0", "le_r6_r8_ROR_0"},
1099 {{pl, r14, r7, ROR, 0}, false, al, "pl r14 r7 ROR 0", "pl_r14_r7_ROR_0"},
1100 {{vs, r8, r1, ROR, 0}, false, al, "vs r8 r1 ROR 0", "vs_r8_r1_ROR_0"},
1101 {{gt, r14, r7, ROR, 0}, false, al, "gt r14 r7 ROR 0", "gt_r14_r7_ROR_0"},
1102 {{mi, r10, r10, ROR, 16},
1103 false,
1104 al,
1105 "mi r10 r10 ROR 16",
1106 "mi_r10_r10_ROR_16"},
1107 {{vs, r4, r2, ROR, 16}, false, al, "vs r4 r2 ROR 16", "vs_r4_r2_ROR_16"},
1108 {{ls, r12, r4, ROR, 16}, false, al, "ls r12 r4 ROR 16", "ls_r12_r4_ROR_16"},
1109 {{cs, r13, r0, ROR, 0}, false, al, "cs r13 r0 ROR 0", "cs_r13_r0_ROR_0"},
1110 {{mi, r13, r6, ROR, 8}, false, al, "mi r13 r6 ROR 8", "mi_r13_r6_ROR_8"},
1111 {{al, r2, r1, ROR, 0}, false, al, "al r2 r1 ROR 0", "al_r2_r1_ROR_0"},
1112 {{pl, r6, r1, ROR, 8}, false, al, "pl r6 r1 ROR 8", "pl_r6_r1_ROR_8"},
1113 {{vs, r9, r11, ROR, 24}, false, al, "vs r9 r11 ROR 24", "vs_r9_r11_ROR_24"},
1114 {{al, r9, r9, ROR, 16}, false, al, "al r9 r9 ROR 16", "al_r9_r9_ROR_16"},
1115 {{cs, r4, r11, ROR, 24}, false, al, "cs r4 r11 ROR 24", "cs_r4_r11_ROR_24"},
1116 {{ne, r8, r14, ROR, 16}, false, al, "ne r8 r14 ROR 16", "ne_r8_r14_ROR_16"},
1117 {{eq, r14, r10, ROR, 24},
1118 false,
1119 al,
1120 "eq r14 r10 ROR 24",
1121 "eq_r14_r10_ROR_24"},
1122 {{cs, r5, r11, ROR, 16}, false, al, "cs r5 r11 ROR 16", "cs_r5_r11_ROR_16"},
1123 {{mi, r7, r9, ROR, 24}, false, al, "mi r7 r9 ROR 24", "mi_r7_r9_ROR_24"},
1124 {{hi, r2, r10, ROR, 16}, false, al, "hi r2 r10 ROR 16", "hi_r2_r10_ROR_16"},
1125 {{gt, r11, r9, ROR, 24}, false, al, "gt r11 r9 ROR 24", "gt_r11_r9_ROR_24"},
1126 {{vc, r6, r13, ROR, 0}, false, al, "vc r6 r13 ROR 0", "vc_r6_r13_ROR_0"},
1127 {{le, r10, r11, ROR, 8}, false, al, "le r10 r11 ROR 8", "le_r10_r11_ROR_8"},
1128 {{cc, r4, r0, ROR, 0}, false, al, "cc r4 r0 ROR 0", "cc_r4_r0_ROR_0"},
1129 {{eq, r2, r8, ROR, 0}, false, al, "eq r2 r8 ROR 0", "eq_r2_r8_ROR_0"},
1130 {{gt, r9, r8, ROR, 16}, false, al, "gt r9 r8 ROR 16", "gt_r9_r8_ROR_16"},
1131 {{hi, r0, r9, ROR, 0}, false, al, "hi r0 r9 ROR 0", "hi_r0_r9_ROR_0"},
1132 {{ls, r14, r9, ROR, 0}, false, al, "ls r14 r9 ROR 0", "ls_r14_r9_ROR_0"},
1133 {{cs, r14, r0, ROR, 16}, false, al, "cs r14 r0 ROR 16", "cs_r14_r0_ROR_16"},
1134 {{vs, r3, r7, ROR, 0}, false, al, "vs r3 r7 ROR 0", "vs_r3_r7_ROR_0"},
1135 {{pl, r3, r6, ROR, 8}, false, al, "pl r3 r6 ROR 8", "pl_r3_r6_ROR_8"},
1136 {{al, r11, r5, ROR, 8}, false, al, "al r11 r5 ROR 8", "al_r11_r5_ROR_8"},
1137 {{hi, r13, r8, ROR, 0}, false, al, "hi r13 r8 ROR 0", "hi_r13_r8_ROR_0"},
1138 {{gt, r8, r9, ROR, 0}, false, al, "gt r8 r9 ROR 0", "gt_r8_r9_ROR_0"},
1139 {{ne, r8, r4, ROR, 24}, false, al, "ne r8 r4 ROR 24", "ne_r8_r4_ROR_24"},
1140 {{ls, r11, r14, ROR, 8}, false, al, "ls r11 r14 ROR 8", "ls_r11_r14_ROR_8"},
1141 {{ls, r6, r7, ROR, 8}, false, al, "ls r6 r7 ROR 8", "ls_r6_r7_ROR_8"},
1142 {{ge, r9, r6, ROR, 24}, false, al, "ge r9 r6 ROR 24", "ge_r9_r6_ROR_24"},
1143 {{le, r13, r14, ROR, 8}, false, al, "le r13 r14 ROR 8", "le_r13_r14_ROR_8"},
1144 {{hi, r11, r13, ROR, 8}, false, al, "hi r11 r13 ROR 8", "hi_r11_r13_ROR_8"},
1145 {{vc, r1, r7, ROR, 24}, false, al, "vc r1 r7 ROR 24", "vc_r1_r7_ROR_24"},
1146 {{lt, r3, r14, ROR, 8}, false, al, "lt r3 r14 ROR 8", "lt_r3_r14_ROR_8"},
1147 {{vs, r7, r1, ROR, 8}, false, al, "vs r7 r1 ROR 8", "vs_r7_r1_ROR_8"},
1148 {{al, r3, r14, ROR, 8}, false, al, "al r3 r14 ROR 8", "al_r3_r14_ROR_8"},
1149 {{le, r4, r3, ROR, 0}, false, al, "le r4 r3 ROR 0", "le_r4_r3_ROR_0"},
1150 {{hi, r12, r10, ROR, 0}, false, al, "hi r12 r10 ROR 0", "hi_r12_r10_ROR_0"},
1151 {{eq, r13, r12, ROR, 24},
1152 false,
1153 al,
1154 "eq r13 r12 ROR 24",
1155 "eq_r13_r12_ROR_24"},
1156 {{cc, r1, r1, ROR, 24}, false, al, "cc r1 r1 ROR 24", "cc_r1_r1_ROR_24"},
1157 {{vc, r7, r1, ROR, 24}, false, al, "vc r7 r1 ROR 24", "vc_r7_r1_ROR_24"},
1158 {{ne, r2, r3, ROR, 24}, false, al, "ne r2 r3 ROR 24", "ne_r2_r3_ROR_24"},
1159 {{lt, r10, r12, ROR, 16},
1160 false,
1161 al,
1162 "lt r10 r12 ROR 16",
1163 "lt_r10_r12_ROR_16"},
1164 {{mi, r6, r13, ROR, 24}, false, al, "mi r6 r13 ROR 24", "mi_r6_r13_ROR_24"},
1165 {{cc, r11, r4, ROR, 24}, false, al, "cc r11 r4 ROR 24", "cc_r11_r4_ROR_24"},
1166 {{vc, r7, r4, ROR, 24}, false, al, "vc r7 r4 ROR 24", "vc_r7_r4_ROR_24"},
1167 {{pl, r11, r5, ROR, 0}, false, al, "pl r11 r5 ROR 0", "pl_r11_r5_ROR_0"},
1168 {{vs, r4, r2, ROR, 8}, false, al, "vs r4 r2 ROR 8", "vs_r4_r2_ROR_8"},
1169 {{gt, r13, r0, ROR, 8}, false, al, "gt r13 r0 ROR 8", "gt_r13_r0_ROR_8"},
1170 {{ge, r8, r8, ROR, 16}, false, al, "ge r8 r8 ROR 16", "ge_r8_r8_ROR_16"},
1171 {{hi, r10, r14, ROR, 0}, false, al, "hi r10 r14 ROR 0", "hi_r10_r14_ROR_0"},
1172 {{al, r7, r0, ROR, 16}, false, al, "al r7 r0 ROR 16", "al_r7_r0_ROR_16"},
1173 {{lt, r2, r9, ROR, 16}, false, al, "lt r2 r9 ROR 16", "lt_r2_r9_ROR_16"},
1174 {{cs, r14, r4, ROR, 0}, false, al, "cs r14 r4 ROR 0", "cs_r14_r4_ROR_0"},
1175 {{lt, r3, r5, ROR, 16}, false, al, "lt r3 r5 ROR 16", "lt_r3_r5_ROR_16"},
1176 {{vc, r4, r12, ROR, 0}, false, al, "vc r4 r12 ROR 0", "vc_r4_r12_ROR_0"},
1177 {{hi, r4, r10, ROR, 8}, false, al, "hi r4 r10 ROR 8", "hi_r4_r10_ROR_8"},
1178 {{vc, r13, r6, ROR, 0}, false, al, "vc r13 r6 ROR 0", "vc_r13_r6_ROR_0"},
1179 {{vc, r9, r9, ROR, 24}, false, al, "vc r9 r9 ROR 24", "vc_r9_r9_ROR_24"},
1180 {{lt, r0, r4, ROR, 24}, false, al, "lt r0 r4 ROR 24", "lt_r0_r4_ROR_24"},
1181 {{cs, r9, r13, ROR, 8}, false, al, "cs r9 r13 ROR 8", "cs_r9_r13_ROR_8"},
1182 {{al, r2, r13, ROR, 16}, false, al, "al r2 r13 ROR 16", "al_r2_r13_ROR_16"},
1183 {{vc, r14, r4, ROR, 24}, false, al, "vc r14 r4 ROR 24", "vc_r14_r4_ROR_24"},
1184 {{cs, r12, r8, ROR, 0}, false, al, "cs r12 r8 ROR 0", "cs_r12_r8_ROR_0"},
1185 {{hi, r4, r7, ROR, 0}, false, al, "hi r4 r7 ROR 0", "hi_r4_r7_ROR_0"},
1186 {{cc, r14, r13, ROR, 0}, false, al, "cc r14 r13 ROR 0", "cc_r14_r13_ROR_0"},
1187 {{gt, r13, r2, ROR, 0}, false, al, "gt r13 r2 ROR 0", "gt_r13_r2_ROR_0"},
1188 {{al, r3, r14, ROR, 24}, false, al, "al r3 r14 ROR 24", "al_r3_r14_ROR_24"},
1189 {{vs, r7, r11, ROR, 8}, false, al, "vs r7 r11 ROR 8", "vs_r7_r11_ROR_8"},
1190 {{eq, r3, r11, ROR, 8}, false, al, "eq r3 r11 ROR 8", "eq_r3_r11_ROR_8"},
1191 {{lt, r8, r1, ROR, 24}, false, al, "lt r8 r1 ROR 24", "lt_r8_r1_ROR_24"},
1192 {{ge, r9, r1, ROR, 8}, false, al, "ge r9 r1 ROR 8", "ge_r9_r1_ROR_8"},
1193 {{ls, r7, r9, ROR, 8}, false, al, "ls r7 r9 ROR 8", "ls_r7_r9_ROR_8"},
1194 {{pl, r8, r13, ROR, 16}, false, al, "pl r8 r13 ROR 16", "pl_r8_r13_ROR_16"},
1195 {{lt, r4, r11, ROR, 0}, false, al, "lt r4 r11 ROR 0", "lt_r4_r11_ROR_0"},
1196 {{vc, r1, r11, ROR, 8}, false, al, "vc r1 r11 ROR 8", "vc_r1_r11_ROR_8"},
1197 {{eq, r9, r4, ROR, 8}, false, al, "eq r9 r4 ROR 8", "eq_r9_r4_ROR_8"},
1198 {{le, r0, r11, ROR, 0}, false, al, "le r0 r11 ROR 0", "le_r0_r11_ROR_0"},
1199 {{eq, r14, r1, ROR, 16}, false, al, "eq r14 r1 ROR 16", "eq_r14_r1_ROR_16"},
1200 {{ne, r13, r8, ROR, 0}, false, al, "ne r13 r8 ROR 0", "ne_r13_r8_ROR_0"},
1201 {{eq, r7, r2, ROR, 16}, false, al, "eq r7 r2 ROR 16", "eq_r7_r2_ROR_16"},
1202 {{ge, r6, r7, ROR, 24}, false, al, "ge r6 r7 ROR 24", "ge_r6_r7_ROR_24"},
1203 {{gt, r10, r2, ROR, 8}, false, al, "gt r10 r2 ROR 8", "gt_r10_r2_ROR_8"},
1204 {{le, r13, r2, ROR, 8}, false, al, "le r13 r2 ROR 8", "le_r13_r2_ROR_8"},
1205 {{lt, r11, r6, ROR, 8}, false, al, "lt r11 r6 ROR 8", "lt_r11_r6_ROR_8"},
1206 {{ne, r2, r8, ROR, 8}, false, al, "ne r2 r8 ROR 8", "ne_r2_r8_ROR_8"},
1207 {{lt, r4, r14, ROR, 8}, false, al, "lt r4 r14 ROR 8", "lt_r4_r14_ROR_8"},
1208 {{vc, r10, r7, ROR, 24}, false, al, "vc r10 r7 ROR 24", "vc_r10_r7_ROR_24"},
1209 {{eq, r4, r12, ROR, 0}, false, al, "eq r4 r12 ROR 0", "eq_r4_r12_ROR_0"},
1210 {{lt, r1, r2, ROR, 16}, false, al, "lt r1 r2 ROR 16", "lt_r1_r2_ROR_16"},
1211 {{gt, r2, r6, ROR, 24}, false, al, "gt r2 r6 ROR 24", "gt_r2_r6_ROR_24"},
1212 {{cc, r5, r14, ROR, 8}, false, al, "cc r5 r14 ROR 8", "cc_r5_r14_ROR_8"},
1213 {{eq, r7, r11, ROR, 8}, false, al, "eq r7 r11 ROR 8", "eq_r7_r11_ROR_8"},
1214 {{gt, r14, r9, ROR, 8}, false, al, "gt r14 r9 ROR 8", "gt_r14_r9_ROR_8"},
1215 {{vs, r10, r5, ROR, 16}, false, al, "vs r10 r5 ROR 16", "vs_r10_r5_ROR_16"},
1216 {{eq, r8, r13, ROR, 0}, false, al, "eq r8 r13 ROR 0", "eq_r8_r13_ROR_0"},
1217 {{gt, r5, r14, ROR, 16}, false, al, "gt r5 r14 ROR 16", "gt_r5_r14_ROR_16"},
1218 {{ge, r9, r3, ROR, 16}, false, al, "ge r9 r3 ROR 16", "ge_r9_r3_ROR_16"},
1219 {{hi, r2, r6, ROR, 0}, false, al, "hi r2 r6 ROR 0", "hi_r2_r6_ROR_0"},
1220 {{mi, r3, r1, ROR, 0}, false, al, "mi r3 r1 ROR 0", "mi_r3_r1_ROR_0"},
1221 {{gt, r14, r6, ROR, 24}, false, al, "gt r14 r6 ROR 24", "gt_r14_r6_ROR_24"},
1222 {{cs, r0, r11, ROR, 0}, false, al, "cs r0 r11 ROR 0", "cs_r0_r11_ROR_0"},
1223 {{cc, r2, r8, ROR, 16}, false, al, "cc r2 r8 ROR 16", "cc_r2_r8_ROR_16"},
1224 {{cc, r8, r4, ROR, 16}, false, al, "cc r8 r4 ROR 16", "cc_r8_r4_ROR_16"},
1225 {{gt, r6, r6, ROR, 16}, false, al, "gt r6 r6 ROR 16", "gt_r6_r6_ROR_16"},
1226 {{eq, r8, r3, ROR, 8}, false, al, "eq r8 r3 ROR 8", "eq_r8_r3_ROR_8"},
1227 {{ne, r12, r8, ROR, 24}, false, al, "ne r12 r8 ROR 24", "ne_r12_r8_ROR_24"},
1228 {{mi, r10, r2, ROR, 8}, false, al, "mi r10 r2 ROR 8", "mi_r10_r2_ROR_8"},
1229 {{ls, r1, r5, ROR, 24}, false, al, "ls r1 r5 ROR 24", "ls_r1_r5_ROR_24"},
1230 {{ge, r3, r14, ROR, 0}, false, al, "ge r3 r14 ROR 0", "ge_r3_r14_ROR_0"},
1231 {{le, r6, r1, ROR, 16}, false, al, "le r6 r1 ROR 16", "le_r6_r1_ROR_16"},
1232 {{cc, r8, r2, ROR, 16}, false, al, "cc r8 r2 ROR 16", "cc_r8_r2_ROR_16"},
1233 {{al, r1, r14, ROR, 16}, false, al, "al r1 r14 ROR 16", "al_r1_r14_ROR_16"},
1234 {{ge, r12, r5, ROR, 0}, false, al, "ge r12 r5 ROR 0", "ge_r12_r5_ROR_0"},
1235 {{cs, r1, r9, ROR, 16}, false, al, "cs r1 r9 ROR 16", "cs_r1_r9_ROR_16"},
1236 {{eq, r8, r2, ROR, 8}, false, al, "eq r8 r2 ROR 8", "eq_r8_r2_ROR_8"},
1237 {{al, r10, r6, ROR, 16}, false, al, "al r10 r6 ROR 16", "al_r10_r6_ROR_16"},
1238 {{ge, r5, r12, ROR, 24}, false, al, "ge r5 r12 ROR 24", "ge_r5_r12_ROR_24"},
1239 {{eq, r4, r13, ROR, 24}, false, al, "eq r4 r13 ROR 24", "eq_r4_r13_ROR_24"},
1240 {{le, r6, r1, ROR, 8}, false, al, "le r6 r1 ROR 8", "le_r6_r1_ROR_8"},
1241 {{gt, r13, r10, ROR, 24},
1242 false,
1243 al,
1244 "gt r13 r10 ROR 24",
1245 "gt_r13_r10_ROR_24"},
1246 {{lt, r4, r9, ROR, 0}, false, al, "lt r4 r9 ROR 0", "lt_r4_r9_ROR_0"},
1247 {{ls, r12, r14, ROR, 8}, false, al, "ls r12 r14 ROR 8", "ls_r12_r14_ROR_8"},
1248 {{cs, r14, r10, ROR, 16},
1249 false,
1250 al,
1251 "cs r14 r10 ROR 16",
1252 "cs_r14_r10_ROR_16"},
1253 {{ne, r4, r10, ROR, 0}, false, al, "ne r4 r10 ROR 0", "ne_r4_r10_ROR_0"},
1254 {{ge, r2, r11, ROR, 16}, false, al, "ge r2 r11 ROR 16", "ge_r2_r11_ROR_16"},
1255 {{lt, r4, r13, ROR, 0}, false, al, "lt r4 r13 ROR 0", "lt_r4_r13_ROR_0"},
1256 {{pl, r7, r12, ROR, 0}, false, al, "pl r7 r12 ROR 0", "pl_r7_r12_ROR_0"},
1257 {{vc, r10, r11, ROR, 0}, false, al, "vc r10 r11 ROR 0", "vc_r10_r11_ROR_0"},
1258 {{pl, r8, r2, ROR, 24}, false, al, "pl r8 r2 ROR 24", "pl_r8_r2_ROR_24"},
1259 {{pl, r7, r1, ROR, 16}, false, al, "pl r7 r1 ROR 16", "pl_r7_r1_ROR_16"},
1260 {{ls, r3, r12, ROR, 24}, false, al, "ls r3 r12 ROR 24", "ls_r3_r12_ROR_24"},
1261 {{cs, r3, r10, ROR, 16}, false, al, "cs r3 r10 ROR 16", "cs_r3_r10_ROR_16"},
1262 {{vc, r2, r8, ROR, 24}, false, al, "vc r2 r8 ROR 24", "vc_r2_r8_ROR_24"},
1263 {{al, r1, r11, ROR, 24}, false, al, "al r1 r11 ROR 24", "al_r1_r11_ROR_24"},
1264 {{ne, r11, r6, ROR, 16}, false, al, "ne r11 r6 ROR 16", "ne_r11_r6_ROR_16"},
1265 {{hi, r4, r13, ROR, 8}, false, al, "hi r4 r13 ROR 8", "hi_r4_r13_ROR_8"},
1266 {{vs, r8, r4, ROR, 24}, false, al, "vs r8 r4 ROR 24", "vs_r8_r4_ROR_24"},
1267 {{eq, r13, r1, ROR, 0}, false, al, "eq r13 r1 ROR 0", "eq_r13_r1_ROR_0"},
1268 {{eq, r11, r6, ROR, 24}, false, al, "eq r11 r6 ROR 24", "eq_r11_r6_ROR_24"},
1269 {{ne, r5, r10, ROR, 0}, false, al, "ne r5 r10 ROR 0", "ne_r5_r10_ROR_0"},
1270 {{cc, r8, r13, ROR, 16}, false, al, "cc r8 r13 ROR 16", "cc_r8_r13_ROR_16"},
1271 {{al, r14, r14, ROR, 24},
1272 false,
1273 al,
1274 "al r14 r14 ROR 24",
1275 "al_r14_r14_ROR_24"},
1276 {{ge, r9, r2, ROR, 8}, false, al, "ge r9 r2 ROR 8", "ge_r9_r2_ROR_8"},
1277 {{le, r11, r3, ROR, 24}, false, al, "le r11 r3 ROR 24", "le_r11_r3_ROR_24"},
1278 {{cs, r14, r10, ROR, 0}, false, al, "cs r14 r10 ROR 0", "cs_r14_r10_ROR_0"},
1279 {{cs, r12, r11, ROR, 8}, false, al, "cs r12 r11 ROR 8", "cs_r12_r11_ROR_8"},
1280 {{le, r2, r6, ROR, 0}, false, al, "le r2 r6 ROR 0", "le_r2_r6_ROR_0"},
1281 {{lt, r3, r10, ROR, 0}, false, al, "lt r3 r10 ROR 0", "lt_r3_r10_ROR_0"},
1282 {{cs, r13, r4, ROR, 24}, false, al, "cs r13 r4 ROR 24", "cs_r13_r4_ROR_24"},
1283 {{pl, r14, r12, ROR, 16},
1284 false,
1285 al,
1286 "pl r14 r12 ROR 16",
1287 "pl_r14_r12_ROR_16"},
1288 {{gt, r2, r14, ROR, 16}, false, al, "gt r2 r14 ROR 16", "gt_r2_r14_ROR_16"},
1289 {{vc, r2, r3, ROR, 8}, false, al, "vc r2 r3 ROR 8", "vc_r2_r3_ROR_8"},
1290 {{ge, r12, r0, ROR, 16}, false, al, "ge r12 r0 ROR 16", "ge_r12_r0_ROR_16"},
1291 {{ls, r8, r4, ROR, 0}, false, al, "ls r8 r4 ROR 0", "ls_r8_r4_ROR_0"},
1292 {{ge, r6, r14, ROR, 16}, false, al, "ge r6 r14 ROR 16", "ge_r6_r14_ROR_16"},
1293 {{ne, r1, r4, ROR, 0}, false, al, "ne r1 r4 ROR 0", "ne_r1_r4_ROR_0"},
1294 {{le, r8, r10, ROR, 16}, false, al, "le r8 r10 ROR 16", "le_r8_r10_ROR_16"},
1295 {{al, r1, r13, ROR, 16}, false, al, "al r1 r13 ROR 16", "al_r1_r13_ROR_16"},
1296 {{gt, r6, r12, ROR, 0}, false, al, "gt r6 r12 ROR 0", "gt_r6_r12_ROR_0"},
1297 {{ls, r11, r5, ROR, 16}, false, al, "ls r11 r5 ROR 16", "ls_r11_r5_ROR_16"},
1298 {{ls, r12, r4, ROR, 0}, false, al, "ls r12 r4 ROR 0", "ls_r12_r4_ROR_0"},
1299 {{vc, r1, r12, ROR, 24}, false, al, "vc r1 r12 ROR 24", "vc_r1_r12_ROR_24"},
1300 {{cs, r2, r11, ROR, 0}, false, al, "cs r2 r11 ROR 0", "cs_r2_r11_ROR_0"},
1301 {{hi, r6, r10, ROR, 24}, false, al, "hi r6 r10 ROR 24", "hi_r6_r10_ROR_24"},
1302 {{lt, r13, r10, ROR, 0}, false, al, "lt r13 r10 ROR 0", "lt_r13_r10_ROR_0"},
1303 {{vc, r6, r14, ROR, 24}, false, al, "vc r6 r14 ROR 24", "vc_r6_r14_ROR_24"},
1304 {{vc, r1, r5, ROR, 24}, false, al, "vc r1 r5 ROR 24", "vc_r1_r5_ROR_24"},
1305 {{ne, r9, r9, ROR, 8}, false, al, "ne r9 r9 ROR 8", "ne_r9_r9_ROR_8"},
1306 {{cs, r7, r2, ROR, 8}, false, al, "cs r7 r2 ROR 8", "cs_r7_r2_ROR_8"},
1307 {{lt, r5, r9, ROR, 24}, false, al, "lt r5 r9 ROR 24", "lt_r5_r9_ROR_24"},
1308 {{gt, r13, r0, ROR, 24}, false, al, "gt r13 r0 ROR 24", "gt_r13_r0_ROR_24"},
1309 {{lt, r10, r7, ROR, 24}, false, al, "lt r10 r7 ROR 24", "lt_r10_r7_ROR_24"},
1310 {{pl, r4, r0, ROR, 0}, false, al, "pl r4 r0 ROR 0", "pl_r4_r0_ROR_0"},
1311 {{vc, r9, r7, ROR, 24}, false, al, "vc r9 r7 ROR 24", "vc_r9_r7_ROR_24"},
1312 {{hi, r14, r0, ROR, 8}, false, al, "hi r14 r0 ROR 8", "hi_r14_r0_ROR_8"},
1313 {{mi, r4, r7, ROR, 16}, false, al, "mi r4 r7 ROR 16", "mi_r4_r7_ROR_16"}};
1314
1315 // These headers each contain an array of `TestResult` with the reference output
1316 // values. The reference arrays are names `kReference{mnemonic}`.
1317 #include "aarch32/traces/assembler-cond-rd-operand-rn-ror-amount-a32-sxtb.h"
1318 #include "aarch32/traces/assembler-cond-rd-operand-rn-ror-amount-a32-sxtb16.h"
1319 #include "aarch32/traces/assembler-cond-rd-operand-rn-ror-amount-a32-sxth.h"
1320 #include "aarch32/traces/assembler-cond-rd-operand-rn-ror-amount-a32-uxtb.h"
1321 #include "aarch32/traces/assembler-cond-rd-operand-rn-ror-amount-a32-uxtb16.h"
1322 #include "aarch32/traces/assembler-cond-rd-operand-rn-ror-amount-a32-uxth.h"
1323
1324
1325 // The maximum number of errors to report in detail for each test.
1326 const unsigned kErrorReportLimit = 8;
1327
1328 typedef void (MacroAssembler::*Fn)(Condition cond,
1329 Register rd,
1330 const Operand& op);
1331
TestHelper(Fn instruction,const char * mnemonic,const TestResult reference[])1332 void TestHelper(Fn instruction,
1333 const char* mnemonic,
1334 const TestResult reference[]) {
1335 unsigned total_error_count = 0;
1336 MacroAssembler masm(BUF_SIZE);
1337
1338 masm.UseA32();
1339
1340 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
1341 // Values to pass to the macro-assembler.
1342 Condition cond = kTests[i].operands.cond;
1343 Register rd = kTests[i].operands.rd;
1344 Register rn = kTests[i].operands.rn;
1345 ShiftType ror = kTests[i].operands.ror;
1346 uint32_t amount = kTests[i].operands.amount;
1347 Operand op(rn, ror, amount);
1348
1349 int32_t start = masm.GetCursorOffset();
1350 {
1351 // We never generate more that 4 bytes, as IT instructions are only
1352 // allowed for narrow encodings.
1353 ExactAssemblyScope scope(&masm, 4, ExactAssemblyScope::kMaximumSize);
1354 if (kTests[i].in_it_block) {
1355 masm.it(kTests[i].it_condition);
1356 }
1357 (masm.*instruction)(cond, rd, op);
1358 }
1359 int32_t end = masm.GetCursorOffset();
1360
1361 const byte* result_ptr =
1362 masm.GetBuffer()->GetOffsetAddress<const byte*>(start);
1363 VIXL_ASSERT(start < end);
1364 uint32_t result_size = end - start;
1365
1366 if (Test::generate_test_trace()) {
1367 // Print the result bytes.
1368 printf("const byte kInstruction_%s_%s[] = {\n",
1369 mnemonic,
1370 kTests[i].identifier);
1371 for (uint32_t j = 0; j < result_size; j++) {
1372 if (j == 0) {
1373 printf(" 0x%02" PRIx8, result_ptr[j]);
1374 } else {
1375 printf(", 0x%02" PRIx8, result_ptr[j]);
1376 }
1377 }
1378 // This comment is meant to be used by external tools to validate
1379 // the encoding. We can parse the comment to figure out what
1380 // instruction this corresponds to.
1381 if (kTests[i].in_it_block) {
1382 printf(" // It %s; %s %s\n};\n",
1383 kTests[i].it_condition.GetName(),
1384 mnemonic,
1385 kTests[i].operands_description);
1386 } else {
1387 printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description);
1388 }
1389 } else {
1390 // Check we've emitted the exact same encoding as present in the
1391 // trace file. Only print up to `kErrorReportLimit` errors.
1392 if (((result_size != reference[i].size) ||
1393 (memcmp(result_ptr, reference[i].encoding, reference[i].size) !=
1394 0)) &&
1395 (++total_error_count <= kErrorReportLimit)) {
1396 printf("Error when testing \"%s\" with operands \"%s\":\n",
1397 mnemonic,
1398 kTests[i].operands_description);
1399 printf(" Expected: ");
1400 for (uint32_t j = 0; j < reference[i].size; j++) {
1401 if (j == 0) {
1402 printf("0x%02" PRIx8, reference[i].encoding[j]);
1403 } else {
1404 printf(", 0x%02" PRIx8, reference[i].encoding[j]);
1405 }
1406 }
1407 printf("\n");
1408 printf(" Found: ");
1409 for (uint32_t j = 0; j < result_size; j++) {
1410 if (j == 0) {
1411 printf("0x%02" PRIx8, result_ptr[j]);
1412 } else {
1413 printf(", 0x%02" PRIx8, result_ptr[j]);
1414 }
1415 }
1416 printf("\n");
1417 }
1418 }
1419 }
1420
1421 masm.FinalizeCode();
1422
1423 if (Test::generate_test_trace()) {
1424 // Finalize the trace file by writing the final `TestResult` array
1425 // which links all generated instruction encodings.
1426 printf("const TestResult kReference%s[] = {\n", mnemonic);
1427 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
1428 printf(" {\n");
1429 printf(" ARRAY_SIZE(kInstruction_%s_%s),\n",
1430 mnemonic,
1431 kTests[i].identifier);
1432 printf(" kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier);
1433 printf(" },\n");
1434 }
1435 printf("};\n");
1436 } else {
1437 if (total_error_count > kErrorReportLimit) {
1438 printf("%u other errors follow.\n",
1439 total_error_count - kErrorReportLimit);
1440 }
1441 // Crash if the test failed.
1442 VIXL_CHECK(total_error_count == 0);
1443 }
1444 }
1445
1446 // Instantiate tests for each instruction in the list.
1447 #define TEST(mnemonic) \
1448 void Test_##mnemonic() { \
1449 TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic); \
1450 } \
1451 Test test_##mnemonic( \
1452 "AARCH32_ASSEMBLER_COND_RD_OPERAND_RN_ROR_AMOUNT_A32_" #mnemonic, \
1453 &Test_##mnemonic);
1454 FOREACH_INSTRUCTION(TEST)
1455 #undef TEST
1456
1457 } // namespace
1458 #endif
1459
1460 } // namespace aarch32
1461 } // namespace vixl
1462