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-simulator-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/disasm-aarch32.h" 44#include "aarch32/macro-assembler-aarch32.h" 45 46#define __ masm. 47#define BUF_SIZE (4096) 48 49#ifdef VIXL_INCLUDE_SIMULATOR_AARCH32 50// Run tests with the simulator. 51 52#define SETUP() MacroAssembler masm(BUF_SIZE) 53 54#define START() masm.GetBuffer()->Reset() 55 56#define END() \ 57 __ Hlt(0); \ 58 __ FinalizeCode(); 59 60// TODO: Run the tests in the simulator. 61#define RUN() 62 63#else // ifdef VIXL_INCLUDE_SIMULATOR_AARCH32. 64 65#define SETUP() \ 66 MacroAssembler masm(BUF_SIZE); \ 67 UseScratchRegisterScope harness_scratch; 68 69#define START() \ 70 harness_scratch.Open(&masm); \ 71 harness_scratch.ExcludeAll(); \ 72 masm.GetBuffer()->Reset(); \ 73 __ Push(r4); \ 74 __ Push(r5); \ 75 __ Push(r6); \ 76 __ Push(r7); \ 77 __ Push(r8); \ 78 __ Push(r9); \ 79 __ Push(r10); \ 80 __ Push(r11); \ 81 __ Push(lr); \ 82 harness_scratch.Include(ip); 83 84#define END() \ 85 harness_scratch.Exclude(ip); \ 86 __ Pop(lr); \ 87 __ Pop(r11); \ 88 __ Pop(r10); \ 89 __ Pop(r9); \ 90 __ Pop(r8); \ 91 __ Pop(r7); \ 92 __ Pop(r6); \ 93 __ Pop(r5); \ 94 __ Pop(r4); \ 95 __ Bx(lr); \ 96 __ FinalizeCode(); \ 97 harness_scratch.Close(); 98 99#define RUN() \ 100 { \ 101 int pcs_offset = masm.IsUsingT32() ? 1 : 0; \ 102 masm.GetBuffer()->SetExecutable(); \ 103 ExecuteMemory(masm.GetBuffer()->GetStartAddress<byte*>(), \ 104 masm.GetSizeOfCodeGenerated(), \ 105 pcs_offset); \ 106 masm.GetBuffer()->SetWritable(); \ 107 } 108 109#endif // ifdef VIXL_INCLUDE_SIMULATOR_AARCH32 110 111namespace vixl { 112namespace aarch32 { 113 114// List of instruction encodings: 115#define FOREACH_INSTRUCTION(M) \ 116 M(Ldr) \ 117 M(Ldrb) \ 118 M(Str) \ 119 M(Strb) 120 121 122// The following definitions are defined again in each generated test, therefore 123// we need to place them in an anomymous namespace. It expresses that they are 124// local to this file only, and the compiler is not allowed to share these types 125// across test files during template instantiation. Specifically, `Operands` and 126// `Inputs` have various layouts across generated tests so they absolutely 127// cannot be shared. 128 129#ifdef VIXL_INCLUDE_TARGET_A32 130namespace { 131 132// Values to be passed to the assembler to produce the instruction under test. 133struct Operands { 134 Condition cond; 135 Register rd; 136 Register rn; 137 Sign sign; 138 Register rm; 139 ShiftType shift; 140 uint32_t amount; 141 AddrMode addr_mode; 142}; 143 144// Input data to feed to the instruction. 145struct Inputs { 146 uint32_t apsr; 147 uint32_t rd; 148 uint32_t rm; 149 uint32_t memop[2]; 150}; 151 152// This structure contains all input data needed to test one specific encoding. 153// It used to generate a loop over an instruction. 154struct TestLoopData { 155 // The `operands` fields represents the values to pass to the assembler to 156 // produce the instruction. 157 Operands operands; 158 // Description of the operands, used for error reporting. 159 const char* operands_description; 160 // Unique identifier, used for generating traces. 161 const char* identifier; 162 // Array of values to be fed to the instruction. 163 size_t input_size; 164 const Inputs* inputs; 165}; 166 167static const Inputs kCondition[] = {{NFlag, 0xabababab, 0, {0, 0x77777777}}, 168 {ZFlag, 0xabababab, 0, {0, 0x77777777}}, 169 {CFlag, 0xabababab, 0, {0, 0x77777777}}, 170 {VFlag, 0xabababab, 0, {0, 0x77777777}}, 171 {NZFlag, 0xabababab, 0, {0, 0x77777777}}, 172 {NCFlag, 0xabababab, 0, {0, 0x77777777}}, 173 {NVFlag, 0xabababab, 0, {0, 0x77777777}}, 174 {ZCFlag, 0xabababab, 0, {0, 0x77777777}}, 175 {ZVFlag, 0xabababab, 0, {0, 0x77777777}}, 176 {CVFlag, 0xabababab, 0, {0, 0x77777777}}, 177 {NZCFlag, 0xabababab, 0, {0, 0x77777777}}, 178 {NZVFlag, 0xabababab, 0, {0, 0x77777777}}, 179 {NCVFlag, 0xabababab, 0, {0, 0x77777777}}, 180 {ZCVFlag, 0xabababab, 0, {0, 0x77777777}}, 181 {NZCVFlag, 0xabababab, 0, {0, 0x77777777}}}; 182 183static const Inputs kPositiveOffset[] = 184 {{NoFlag, 0xabababab, 2590, {0, 0x77777777}}, 185 {NoFlag, 0xabababab, 180, {0, 0x0cabba9e}}, 186 {NoFlag, 0xabababab, 3870, {0, 0x77777777}}, 187 {NoFlag, 0xabababab, 618, {0, 0x55555555}}, 188 {NoFlag, 0xabababab, 2650, {0, 0x0badbeef}}, 189 {NoFlag, 0xabababab, 2091, {0, 0x77777777}}, 190 {NoFlag, 0xabababab, 778, {0, 0x0badbeef}}, 191 {NoFlag, 0xabababab, 282, {0, 0x0cabba9e}}, 192 {NoFlag, 0xabababab, 263, {0, 0x77777777}}, 193 {NoFlag, 0xabababab, 200, {0, 0x0cabba9e}}}; 194 195static const Inputs kNegativeOffset[] = 196 {{NoFlag, 0xabababab, 3743, {0, 0x77777777}}, 197 {NoFlag, 0xabababab, 2475, {0, 0x0badbeef}}, 198 {NoFlag, 0xabababab, 1159, {0, 0x0cabba9e}}, 199 {NoFlag, 0xabababab, 2345, {0, 0x55555555}}, 200 {NoFlag, 0xabababab, 3625, {0, 0x55555555}}, 201 {NoFlag, 0xabababab, 2381, {0, 0x0badbeef}}, 202 {NoFlag, 0xabababab, 4037, {0, 0x0badbeef}}, 203 {NoFlag, 0xabababab, 778, {0, 0x77777777}}, 204 {NoFlag, 0xabababab, 3880, {0, 0x0cabba9e}}, 205 {NoFlag, 0xabababab, 3384, {0, 0x77777777}}}; 206 207static const Inputs kPositivePostIndex[] = 208 {{NoFlag, 0xabababab, 1526, {0, 0x0cabba9e}}, 209 {NoFlag, 0xabababab, 365, {0, 0x55555555}}, 210 {NoFlag, 0xabababab, 1948, {0, 0x0cabba9e}}, 211 {NoFlag, 0xabababab, 958, {0, 0x0cabba9e}}, 212 {NoFlag, 0xabababab, 969, {0, 0x55555555}}, 213 {NoFlag, 0xabababab, 2695, {0, 0x55555555}}, 214 {NoFlag, 0xabababab, 2690, {0, 0x0cabba9e}}, 215 {NoFlag, 0xabababab, 523, {0, 0x0cabba9e}}, 216 {NoFlag, 0xabababab, 2046, {0, 0x0cabba9e}}, 217 {NoFlag, 0xabababab, 2490, {0, 0x0cabba9e}}}; 218 219static const Inputs kNegativePostIndex[] = 220 {{NoFlag, 0xabababab, 4093, {0, 0x0badbeef}}, 221 {NoFlag, 0xabababab, 1860, {0, 0x0cabba9e}}, 222 {NoFlag, 0xabababab, 3157, {0, 0x55555555}}, 223 {NoFlag, 0xabababab, 3069, {0, 0x55555555}}, 224 {NoFlag, 0xabababab, 932, {0, 0x55555555}}, 225 {NoFlag, 0xabababab, 3287, {0, 0x55555555}}, 226 {NoFlag, 0xabababab, 685, {0, 0x0cabba9e}}, 227 {NoFlag, 0xabababab, 3685, {0, 0x55555555}}, 228 {NoFlag, 0xabababab, 3039, {0, 0x0badbeef}}, 229 {NoFlag, 0xabababab, 2245, {0, 0x0badbeef}}}; 230 231static const Inputs kPositivePreIndex[] = 232 {{NoFlag, 0xabababab, 719, {0, 0x0badbeef}}, 233 {NoFlag, 0xabababab, 2933, {0, 0x0badbeef}}, 234 {NoFlag, 0xabababab, 263, {0, 0x0badbeef}}, 235 {NoFlag, 0xabababab, 2086, {0, 0x55555555}}, 236 {NoFlag, 0xabababab, 2728, {0, 0x0badbeef}}, 237 {NoFlag, 0xabababab, 3399, {0, 0x55555555}}, 238 {NoFlag, 0xabababab, 2532, {0, 0x0badbeef}}, 239 {NoFlag, 0xabababab, 3626, {0, 0x0badbeef}}, 240 {NoFlag, 0xabababab, 612, {0, 0x77777777}}, 241 {NoFlag, 0xabababab, 3811, {0, 0x77777777}}}; 242 243static const Inputs kNegativePreIndex[] = 244 {{NoFlag, 0xabababab, 3564, {0, 0x77777777}}, 245 {NoFlag, 0xabababab, 766, {0, 0x55555555}}, 246 {NoFlag, 0xabababab, 2365, {0, 0x0badbeef}}, 247 {NoFlag, 0xabababab, 2462, {0, 0x0cabba9e}}, 248 {NoFlag, 0xabababab, 3439, {0, 0x0badbeef}}, 249 {NoFlag, 0xabababab, 2810, {0, 0x77777777}}, 250 {NoFlag, 0xabababab, 2590, {0, 0x55555555}}, 251 {NoFlag, 0xabababab, 1527, {0, 0x0cabba9e}}, 252 {NoFlag, 0xabababab, 523, {0, 0x0cabba9e}}, 253 {NoFlag, 0xabababab, 2290, {0, 0x77777777}}}; 254 255 256// A loop will be generated for each element of this array. 257const TestLoopData kTests[] = 258 {{{eq, r0, r1, plus, r8, LSL, 1, Offset}, 259 "eq r0 r1 plus r8 LSL 1 Offset", 260 "Condition_eq_r0_r1_plus_r8_LSL_1_Offset", 261 ARRAY_SIZE(kCondition), 262 kCondition}, 263 {{ne, r0, r1, plus, r8, LSL, 1, Offset}, 264 "ne r0 r1 plus r8 LSL 1 Offset", 265 "Condition_ne_r0_r1_plus_r8_LSL_1_Offset", 266 ARRAY_SIZE(kCondition), 267 kCondition}, 268 {{cs, r0, r1, plus, r8, LSL, 1, Offset}, 269 "cs r0 r1 plus r8 LSL 1 Offset", 270 "Condition_cs_r0_r1_plus_r8_LSL_1_Offset", 271 ARRAY_SIZE(kCondition), 272 kCondition}, 273 {{cc, r0, r1, plus, r8, LSL, 1, Offset}, 274 "cc r0 r1 plus r8 LSL 1 Offset", 275 "Condition_cc_r0_r1_plus_r8_LSL_1_Offset", 276 ARRAY_SIZE(kCondition), 277 kCondition}, 278 {{mi, r0, r1, plus, r8, LSL, 1, Offset}, 279 "mi r0 r1 plus r8 LSL 1 Offset", 280 "Condition_mi_r0_r1_plus_r8_LSL_1_Offset", 281 ARRAY_SIZE(kCondition), 282 kCondition}, 283 {{pl, r0, r1, plus, r8, LSL, 1, Offset}, 284 "pl r0 r1 plus r8 LSL 1 Offset", 285 "Condition_pl_r0_r1_plus_r8_LSL_1_Offset", 286 ARRAY_SIZE(kCondition), 287 kCondition}, 288 {{vs, r0, r1, plus, r8, LSL, 1, Offset}, 289 "vs r0 r1 plus r8 LSL 1 Offset", 290 "Condition_vs_r0_r1_plus_r8_LSL_1_Offset", 291 ARRAY_SIZE(kCondition), 292 kCondition}, 293 {{vc, r0, r1, plus, r8, LSL, 1, Offset}, 294 "vc r0 r1 plus r8 LSL 1 Offset", 295 "Condition_vc_r0_r1_plus_r8_LSL_1_Offset", 296 ARRAY_SIZE(kCondition), 297 kCondition}, 298 {{hi, r0, r1, plus, r8, LSL, 1, Offset}, 299 "hi r0 r1 plus r8 LSL 1 Offset", 300 "Condition_hi_r0_r1_plus_r8_LSL_1_Offset", 301 ARRAY_SIZE(kCondition), 302 kCondition}, 303 {{ls, r0, r1, plus, r8, LSL, 1, Offset}, 304 "ls r0 r1 plus r8 LSL 1 Offset", 305 "Condition_ls_r0_r1_plus_r8_LSL_1_Offset", 306 ARRAY_SIZE(kCondition), 307 kCondition}, 308 {{ge, r0, r1, plus, r8, LSL, 1, Offset}, 309 "ge r0 r1 plus r8 LSL 1 Offset", 310 "Condition_ge_r0_r1_plus_r8_LSL_1_Offset", 311 ARRAY_SIZE(kCondition), 312 kCondition}, 313 {{lt, r0, r1, plus, r8, LSL, 1, Offset}, 314 "lt r0 r1 plus r8 LSL 1 Offset", 315 "Condition_lt_r0_r1_plus_r8_LSL_1_Offset", 316 ARRAY_SIZE(kCondition), 317 kCondition}, 318 {{gt, r0, r1, plus, r8, LSL, 1, Offset}, 319 "gt r0 r1 plus r8 LSL 1 Offset", 320 "Condition_gt_r0_r1_plus_r8_LSL_1_Offset", 321 ARRAY_SIZE(kCondition), 322 kCondition}, 323 {{le, r0, r1, plus, r8, LSL, 1, Offset}, 324 "le r0 r1 plus r8 LSL 1 Offset", 325 "Condition_le_r0_r1_plus_r8_LSL_1_Offset", 326 ARRAY_SIZE(kCondition), 327 kCondition}, 328 {{al, r0, r1, plus, r8, LSL, 1, Offset}, 329 "al r0 r1 plus r8 LSL 1 Offset", 330 "Condition_al_r0_r1_plus_r8_LSL_1_Offset", 331 ARRAY_SIZE(kCondition), 332 kCondition}, 333 {{al, r1, r0, plus, r11, LSL, 2, Offset}, 334 "al r1 r0 plus r11 LSL 2 Offset", 335 "PositiveOffset_al_r1_r0_plus_r11_LSL_2_Offset", 336 ARRAY_SIZE(kPositiveOffset), 337 kPositiveOffset}, 338 {{al, r3, r11, plus, r12, LSL, 11, Offset}, 339 "al r3 r11 plus r12 LSL 11 Offset", 340 "PositiveOffset_al_r3_r11_plus_r12_LSL_11_Offset", 341 ARRAY_SIZE(kPositiveOffset), 342 kPositiveOffset}, 343 {{al, r14, r2, plus, r6, LSL, 2, Offset}, 344 "al r14 r2 plus r6 LSL 2 Offset", 345 "PositiveOffset_al_r14_r2_plus_r6_LSL_2_Offset", 346 ARRAY_SIZE(kPositiveOffset), 347 kPositiveOffset}, 348 {{al, r4, r12, plus, r9, ROR, 12, Offset}, 349 "al r4 r12 plus r9 ROR 12 Offset", 350 "PositiveOffset_al_r4_r12_plus_r9_ROR_12_Offset", 351 ARRAY_SIZE(kPositiveOffset), 352 kPositiveOffset}, 353 {{al, r1, r12, plus, r0, LSL, 17, Offset}, 354 "al r1 r12 plus r0 LSL 17 Offset", 355 "PositiveOffset_al_r1_r12_plus_r0_LSL_17_Offset", 356 ARRAY_SIZE(kPositiveOffset), 357 kPositiveOffset}, 358 {{al, r1, r9, plus, r6, LSL, 24, Offset}, 359 "al r1 r9 plus r6 LSL 24 Offset", 360 "PositiveOffset_al_r1_r9_plus_r6_LSL_24_Offset", 361 ARRAY_SIZE(kPositiveOffset), 362 kPositiveOffset}, 363 {{al, r1, r5, plus, r3, LSL, 21, Offset}, 364 "al r1 r5 plus r3 LSL 21 Offset", 365 "PositiveOffset_al_r1_r5_plus_r3_LSL_21_Offset", 366 ARRAY_SIZE(kPositiveOffset), 367 kPositiveOffset}, 368 {{al, r8, r7, plus, r6, LSL, 20, Offset}, 369 "al r8 r7 plus r6 LSL 20 Offset", 370 "PositiveOffset_al_r8_r7_plus_r6_LSL_20_Offset", 371 ARRAY_SIZE(kPositiveOffset), 372 kPositiveOffset}, 373 {{al, r12, r14, plus, r7, LSL, 21, Offset}, 374 "al r12 r14 plus r7 LSL 21 Offset", 375 "PositiveOffset_al_r12_r14_plus_r7_LSL_21_Offset", 376 ARRAY_SIZE(kPositiveOffset), 377 kPositiveOffset}, 378 {{al, r0, r11, plus, r4, ROR, 2, Offset}, 379 "al r0 r11 plus r4 ROR 2 Offset", 380 "PositiveOffset_al_r0_r11_plus_r4_ROR_2_Offset", 381 ARRAY_SIZE(kPositiveOffset), 382 kPositiveOffset}, 383 {{al, r6, r14, plus, r8, LSL, 30, Offset}, 384 "al r6 r14 plus r8 LSL 30 Offset", 385 "PositiveOffset_al_r6_r14_plus_r8_LSL_30_Offset", 386 ARRAY_SIZE(kPositiveOffset), 387 kPositiveOffset}, 388 {{al, r2, r11, plus, r9, ROR, 29, Offset}, 389 "al r2 r11 plus r9 ROR 29 Offset", 390 "PositiveOffset_al_r2_r11_plus_r9_ROR_29_Offset", 391 ARRAY_SIZE(kPositiveOffset), 392 kPositiveOffset}, 393 {{al, r0, r14, plus, r2, LSL, 31, Offset}, 394 "al r0 r14 plus r2 LSL 31 Offset", 395 "PositiveOffset_al_r0_r14_plus_r2_LSL_31_Offset", 396 ARRAY_SIZE(kPositiveOffset), 397 kPositiveOffset}, 398 {{al, r3, r4, plus, r7, LSL, 13, Offset}, 399 "al r3 r4 plus r7 LSL 13 Offset", 400 "PositiveOffset_al_r3_r4_plus_r7_LSL_13_Offset", 401 ARRAY_SIZE(kPositiveOffset), 402 kPositiveOffset}, 403 {{al, r10, r12, plus, r9, LSL, 7, Offset}, 404 "al r10 r12 plus r9 LSL 7 Offset", 405 "PositiveOffset_al_r10_r12_plus_r9_LSL_7_Offset", 406 ARRAY_SIZE(kPositiveOffset), 407 kPositiveOffset}, 408 {{al, r5, r1, plus, r3, ROR, 19, Offset}, 409 "al r5 r1 plus r3 ROR 19 Offset", 410 "PositiveOffset_al_r5_r1_plus_r3_ROR_19_Offset", 411 ARRAY_SIZE(kPositiveOffset), 412 kPositiveOffset}, 413 {{al, r5, r6, plus, r3, LSL, 27, Offset}, 414 "al r5 r6 plus r3 LSL 27 Offset", 415 "PositiveOffset_al_r5_r6_plus_r3_LSL_27_Offset", 416 ARRAY_SIZE(kPositiveOffset), 417 kPositiveOffset}, 418 {{al, r2, r10, plus, r1, LSL, 21, Offset}, 419 "al r2 r10 plus r1 LSL 21 Offset", 420 "PositiveOffset_al_r2_r10_plus_r1_LSL_21_Offset", 421 ARRAY_SIZE(kPositiveOffset), 422 kPositiveOffset}, 423 {{al, r7, r2, plus, r5, LSL, 23, Offset}, 424 "al r7 r2 plus r5 LSL 23 Offset", 425 "PositiveOffset_al_r7_r2_plus_r5_LSL_23_Offset", 426 ARRAY_SIZE(kPositiveOffset), 427 kPositiveOffset}, 428 {{al, r7, r14, plus, r0, ROR, 17, Offset}, 429 "al r7 r14 plus r0 ROR 17 Offset", 430 "PositiveOffset_al_r7_r14_plus_r0_ROR_17_Offset", 431 ARRAY_SIZE(kPositiveOffset), 432 kPositiveOffset}, 433 {{al, r4, r5, plus, r9, LSL, 19, Offset}, 434 "al r4 r5 plus r9 LSL 19 Offset", 435 "PositiveOffset_al_r4_r5_plus_r9_LSL_19_Offset", 436 ARRAY_SIZE(kPositiveOffset), 437 kPositiveOffset}, 438 {{al, r14, r0, plus, r2, ROR, 27, Offset}, 439 "al r14 r0 plus r2 ROR 27 Offset", 440 "PositiveOffset_al_r14_r0_plus_r2_ROR_27_Offset", 441 ARRAY_SIZE(kPositiveOffset), 442 kPositiveOffset}, 443 {{al, r11, r7, plus, r5, LSL, 15, Offset}, 444 "al r11 r7 plus r5 LSL 15 Offset", 445 "PositiveOffset_al_r11_r7_plus_r5_LSL_15_Offset", 446 ARRAY_SIZE(kPositiveOffset), 447 kPositiveOffset}, 448 {{al, r7, r6, plus, r0, LSL, 3, Offset}, 449 "al r7 r6 plus r0 LSL 3 Offset", 450 "PositiveOffset_al_r7_r6_plus_r0_LSL_3_Offset", 451 ARRAY_SIZE(kPositiveOffset), 452 kPositiveOffset}, 453 {{al, r14, r4, plus, r6, ROR, 5, Offset}, 454 "al r14 r4 plus r6 ROR 5 Offset", 455 "PositiveOffset_al_r14_r4_plus_r6_ROR_5_Offset", 456 ARRAY_SIZE(kPositiveOffset), 457 kPositiveOffset}, 458 {{al, r0, r12, plus, r8, LSL, 8, Offset}, 459 "al r0 r12 plus r8 LSL 8 Offset", 460 "PositiveOffset_al_r0_r12_plus_r8_LSL_8_Offset", 461 ARRAY_SIZE(kPositiveOffset), 462 kPositiveOffset}, 463 {{al, r14, r8, plus, r9, ROR, 13, Offset}, 464 "al r14 r8 plus r9 ROR 13 Offset", 465 "PositiveOffset_al_r14_r8_plus_r9_ROR_13_Offset", 466 ARRAY_SIZE(kPositiveOffset), 467 kPositiveOffset}, 468 {{al, r2, r11, plus, r12, LSL, 8, Offset}, 469 "al r2 r11 plus r12 LSL 8 Offset", 470 "PositiveOffset_al_r2_r11_plus_r12_LSL_8_Offset", 471 ARRAY_SIZE(kPositiveOffset), 472 kPositiveOffset}, 473 {{al, r5, r2, plus, r0, LSL, 16, Offset}, 474 "al r5 r2 plus r0 LSL 16 Offset", 475 "PositiveOffset_al_r5_r2_plus_r0_LSL_16_Offset", 476 ARRAY_SIZE(kPositiveOffset), 477 kPositiveOffset}, 478 {{al, r10, r8, plus, r9, ROR, 25, Offset}, 479 "al r10 r8 plus r9 ROR 25 Offset", 480 "PositiveOffset_al_r10_r8_plus_r9_ROR_25_Offset", 481 ARRAY_SIZE(kPositiveOffset), 482 kPositiveOffset}, 483 {{al, r11, r8, plus, r4, LSL, 6, Offset}, 484 "al r11 r8 plus r4 LSL 6 Offset", 485 "PositiveOffset_al_r11_r8_plus_r4_LSL_6_Offset", 486 ARRAY_SIZE(kPositiveOffset), 487 kPositiveOffset}, 488 {{al, r7, r5, plus, r10, ROR, 24, Offset}, 489 "al r7 r5 plus r10 ROR 24 Offset", 490 "PositiveOffset_al_r7_r5_plus_r10_ROR_24_Offset", 491 ARRAY_SIZE(kPositiveOffset), 492 kPositiveOffset}, 493 {{al, r8, r14, plus, r2, LSL, 31, Offset}, 494 "al r8 r14 plus r2 LSL 31 Offset", 495 "PositiveOffset_al_r8_r14_plus_r2_LSL_31_Offset", 496 ARRAY_SIZE(kPositiveOffset), 497 kPositiveOffset}, 498 {{al, r1, r2, plus, r12, LSL, 14, Offset}, 499 "al r1 r2 plus r12 LSL 14 Offset", 500 "PositiveOffset_al_r1_r2_plus_r12_LSL_14_Offset", 501 ARRAY_SIZE(kPositiveOffset), 502 kPositiveOffset}, 503 {{al, r12, r1, plus, r0, ROR, 12, Offset}, 504 "al r12 r1 plus r0 ROR 12 Offset", 505 "PositiveOffset_al_r12_r1_plus_r0_ROR_12_Offset", 506 ARRAY_SIZE(kPositiveOffset), 507 kPositiveOffset}, 508 {{al, r3, r5, plus, r1, LSL, 9, Offset}, 509 "al r3 r5 plus r1 LSL 9 Offset", 510 "PositiveOffset_al_r3_r5_plus_r1_LSL_9_Offset", 511 ARRAY_SIZE(kPositiveOffset), 512 kPositiveOffset}, 513 {{al, r7, r10, plus, r14, ROR, 3, Offset}, 514 "al r7 r10 plus r14 ROR 3 Offset", 515 "PositiveOffset_al_r7_r10_plus_r14_ROR_3_Offset", 516 ARRAY_SIZE(kPositiveOffset), 517 kPositiveOffset}, 518 {{al, r4, r1, plus, r14, LSL, 24, Offset}, 519 "al r4 r1 plus r14 LSL 24 Offset", 520 "PositiveOffset_al_r4_r1_plus_r14_LSL_24_Offset", 521 ARRAY_SIZE(kPositiveOffset), 522 kPositiveOffset}, 523 {{al, r3, r5, plus, r4, LSL, 4, Offset}, 524 "al r3 r5 plus r4 LSL 4 Offset", 525 "PositiveOffset_al_r3_r5_plus_r4_LSL_4_Offset", 526 ARRAY_SIZE(kPositiveOffset), 527 kPositiveOffset}, 528 {{al, r11, r12, plus, r10, ROR, 18, Offset}, 529 "al r11 r12 plus r10 ROR 18 Offset", 530 "PositiveOffset_al_r11_r12_plus_r10_ROR_18_Offset", 531 ARRAY_SIZE(kPositiveOffset), 532 kPositiveOffset}, 533 {{al, r1, r2, plus, r8, LSL, 5, Offset}, 534 "al r1 r2 plus r8 LSL 5 Offset", 535 "PositiveOffset_al_r1_r2_plus_r8_LSL_5_Offset", 536 ARRAY_SIZE(kPositiveOffset), 537 kPositiveOffset}, 538 {{al, r6, r7, plus, r5, LSL, 19, Offset}, 539 "al r6 r7 plus r5 LSL 19 Offset", 540 "PositiveOffset_al_r6_r7_plus_r5_LSL_19_Offset", 541 ARRAY_SIZE(kPositiveOffset), 542 kPositiveOffset}, 543 {{al, r7, r6, plus, r0, ROR, 7, Offset}, 544 "al r7 r6 plus r0 ROR 7 Offset", 545 "PositiveOffset_al_r7_r6_plus_r0_ROR_7_Offset", 546 ARRAY_SIZE(kPositiveOffset), 547 kPositiveOffset}, 548 {{al, r7, r3, plus, r4, ROR, 27, Offset}, 549 "al r7 r3 plus r4 ROR 27 Offset", 550 "PositiveOffset_al_r7_r3_plus_r4_ROR_27_Offset", 551 ARRAY_SIZE(kPositiveOffset), 552 kPositiveOffset}, 553 {{al, r12, r6, plus, r7, ROR, 10, Offset}, 554 "al r12 r6 plus r7 ROR 10 Offset", 555 "PositiveOffset_al_r12_r6_plus_r7_ROR_10_Offset", 556 ARRAY_SIZE(kPositiveOffset), 557 kPositiveOffset}, 558 {{al, r8, r5, plus, r7, ROR, 29, Offset}, 559 "al r8 r5 plus r7 ROR 29 Offset", 560 "PositiveOffset_al_r8_r5_plus_r7_ROR_29_Offset", 561 ARRAY_SIZE(kPositiveOffset), 562 kPositiveOffset}, 563 {{al, r9, r0, plus, r4, ROR, 2, Offset}, 564 "al r9 r0 plus r4 ROR 2 Offset", 565 "PositiveOffset_al_r9_r0_plus_r4_ROR_2_Offset", 566 ARRAY_SIZE(kPositiveOffset), 567 kPositiveOffset}, 568 {{al, r3, r4, plus, r1, LSL, 1, Offset}, 569 "al r3 r4 plus r1 LSL 1 Offset", 570 "PositiveOffset_al_r3_r4_plus_r1_LSL_1_Offset", 571 ARRAY_SIZE(kPositiveOffset), 572 kPositiveOffset}, 573 {{al, r3, r12, plus, r8, LSL, 17, Offset}, 574 "al r3 r12 plus r8 LSL 17 Offset", 575 "PositiveOffset_al_r3_r12_plus_r8_LSL_17_Offset", 576 ARRAY_SIZE(kPositiveOffset), 577 kPositiveOffset}, 578 {{al, r12, r5, plus, r10, LSL, 18, Offset}, 579 "al r12 r5 plus r10 LSL 18 Offset", 580 "PositiveOffset_al_r12_r5_plus_r10_LSL_18_Offset", 581 ARRAY_SIZE(kPositiveOffset), 582 kPositiveOffset}, 583 {{al, r5, r10, plus, r7, ROR, 19, Offset}, 584 "al r5 r10 plus r7 ROR 19 Offset", 585 "PositiveOffset_al_r5_r10_plus_r7_ROR_19_Offset", 586 ARRAY_SIZE(kPositiveOffset), 587 kPositiveOffset}, 588 {{al, r14, r2, plus, r12, LSL, 15, Offset}, 589 "al r14 r2 plus r12 LSL 15 Offset", 590 "PositiveOffset_al_r14_r2_plus_r12_LSL_15_Offset", 591 ARRAY_SIZE(kPositiveOffset), 592 kPositiveOffset}, 593 {{al, r2, r8, plus, r0, ROR, 28, Offset}, 594 "al r2 r8 plus r0 ROR 28 Offset", 595 "PositiveOffset_al_r2_r8_plus_r0_ROR_28_Offset", 596 ARRAY_SIZE(kPositiveOffset), 597 kPositiveOffset}, 598 {{al, r1, r7, plus, r6, LSL, 23, Offset}, 599 "al r1 r7 plus r6 LSL 23 Offset", 600 "PositiveOffset_al_r1_r7_plus_r6_LSL_23_Offset", 601 ARRAY_SIZE(kPositiveOffset), 602 kPositiveOffset}, 603 {{al, r9, r14, plus, r7, ROR, 9, Offset}, 604 "al r9 r14 plus r7 ROR 9 Offset", 605 "PositiveOffset_al_r9_r14_plus_r7_ROR_9_Offset", 606 ARRAY_SIZE(kPositiveOffset), 607 kPositiveOffset}, 608 {{al, r4, r11, plus, r0, LSL, 7, Offset}, 609 "al r4 r11 plus r0 LSL 7 Offset", 610 "PositiveOffset_al_r4_r11_plus_r0_LSL_7_Offset", 611 ARRAY_SIZE(kPositiveOffset), 612 kPositiveOffset}, 613 {{al, r6, r12, plus, r5, ROR, 17, Offset}, 614 "al r6 r12 plus r5 ROR 17 Offset", 615 "PositiveOffset_al_r6_r12_plus_r5_ROR_17_Offset", 616 ARRAY_SIZE(kPositiveOffset), 617 kPositiveOffset}, 618 {{al, r14, r5, plus, r8, LSL, 9, Offset}, 619 "al r14 r5 plus r8 LSL 9 Offset", 620 "PositiveOffset_al_r14_r5_plus_r8_LSL_9_Offset", 621 ARRAY_SIZE(kPositiveOffset), 622 kPositiveOffset}, 623 {{al, r8, r5, plus, r6, LSL, 26, Offset}, 624 "al r8 r5 plus r6 LSL 26 Offset", 625 "PositiveOffset_al_r8_r5_plus_r6_LSL_26_Offset", 626 ARRAY_SIZE(kPositiveOffset), 627 kPositiveOffset}, 628 {{al, r12, r9, plus, r6, LSL, 9, Offset}, 629 "al r12 r9 plus r6 LSL 9 Offset", 630 "PositiveOffset_al_r12_r9_plus_r6_LSL_9_Offset", 631 ARRAY_SIZE(kPositiveOffset), 632 kPositiveOffset}, 633 {{al, r9, r11, plus, r4, ROR, 28, Offset}, 634 "al r9 r11 plus r4 ROR 28 Offset", 635 "PositiveOffset_al_r9_r11_plus_r4_ROR_28_Offset", 636 ARRAY_SIZE(kPositiveOffset), 637 kPositiveOffset}, 638 {{al, r5, r9, plus, r2, ROR, 1, Offset}, 639 "al r5 r9 plus r2 ROR 1 Offset", 640 "PositiveOffset_al_r5_r9_plus_r2_ROR_1_Offset", 641 ARRAY_SIZE(kPositiveOffset), 642 kPositiveOffset}, 643 {{al, r2, r1, plus, r8, ROR, 4, Offset}, 644 "al r2 r1 plus r8 ROR 4 Offset", 645 "PositiveOffset_al_r2_r1_plus_r8_ROR_4_Offset", 646 ARRAY_SIZE(kPositiveOffset), 647 kPositiveOffset}, 648 {{al, r9, r10, plus, r0, ROR, 7, Offset}, 649 "al r9 r10 plus r0 ROR 7 Offset", 650 "PositiveOffset_al_r9_r10_plus_r0_ROR_7_Offset", 651 ARRAY_SIZE(kPositiveOffset), 652 kPositiveOffset}, 653 {{al, r5, r8, plus, r3, ROR, 1, Offset}, 654 "al r5 r8 plus r3 ROR 1 Offset", 655 "PositiveOffset_al_r5_r8_plus_r3_ROR_1_Offset", 656 ARRAY_SIZE(kPositiveOffset), 657 kPositiveOffset}, 658 {{al, r9, r11, plus, r5, ROR, 6, Offset}, 659 "al r9 r11 plus r5 ROR 6 Offset", 660 "PositiveOffset_al_r9_r11_plus_r5_ROR_6_Offset", 661 ARRAY_SIZE(kPositiveOffset), 662 kPositiveOffset}, 663 {{al, r7, r1, plus, r11, LSL, 21, Offset}, 664 "al r7 r1 plus r11 LSL 21 Offset", 665 "PositiveOffset_al_r7_r1_plus_r11_LSL_21_Offset", 666 ARRAY_SIZE(kPositiveOffset), 667 kPositiveOffset}, 668 {{al, r8, r4, plus, r10, ROR, 15, Offset}, 669 "al r8 r4 plus r10 ROR 15 Offset", 670 "PositiveOffset_al_r8_r4_plus_r10_ROR_15_Offset", 671 ARRAY_SIZE(kPositiveOffset), 672 kPositiveOffset}, 673 {{al, r3, r11, plus, r14, LSL, 4, Offset}, 674 "al r3 r11 plus r14 LSL 4 Offset", 675 "PositiveOffset_al_r3_r11_plus_r14_LSL_4_Offset", 676 ARRAY_SIZE(kPositiveOffset), 677 kPositiveOffset}, 678 {{al, r3, r9, plus, r14, ROR, 7, Offset}, 679 "al r3 r9 plus r14 ROR 7 Offset", 680 "PositiveOffset_al_r3_r9_plus_r14_ROR_7_Offset", 681 ARRAY_SIZE(kPositiveOffset), 682 kPositiveOffset}, 683 {{al, r1, r6, plus, r3, ROR, 15, Offset}, 684 "al r1 r6 plus r3 ROR 15 Offset", 685 "PositiveOffset_al_r1_r6_plus_r3_ROR_15_Offset", 686 ARRAY_SIZE(kPositiveOffset), 687 kPositiveOffset}, 688 {{al, r7, r1, plus, r12, ROR, 28, Offset}, 689 "al r7 r1 plus r12 ROR 28 Offset", 690 "PositiveOffset_al_r7_r1_plus_r12_ROR_28_Offset", 691 ARRAY_SIZE(kPositiveOffset), 692 kPositiveOffset}, 693 {{al, r8, r6, plus, r4, ROR, 13, Offset}, 694 "al r8 r6 plus r4 ROR 13 Offset", 695 "PositiveOffset_al_r8_r6_plus_r4_ROR_13_Offset", 696 ARRAY_SIZE(kPositiveOffset), 697 kPositiveOffset}, 698 {{al, r5, r14, plus, r8, LSL, 22, Offset}, 699 "al r5 r14 plus r8 LSL 22 Offset", 700 "PositiveOffset_al_r5_r14_plus_r8_LSL_22_Offset", 701 ARRAY_SIZE(kPositiveOffset), 702 kPositiveOffset}, 703 {{al, r6, r7, plus, r3, LSL, 29, Offset}, 704 "al r6 r7 plus r3 LSL 29 Offset", 705 "PositiveOffset_al_r6_r7_plus_r3_LSL_29_Offset", 706 ARRAY_SIZE(kPositiveOffset), 707 kPositiveOffset}, 708 {{al, r8, r2, plus, r5, LSL, 1, Offset}, 709 "al r8 r2 plus r5 LSL 1 Offset", 710 "PositiveOffset_al_r8_r2_plus_r5_LSL_1_Offset", 711 ARRAY_SIZE(kPositiveOffset), 712 kPositiveOffset}, 713 {{al, r2, r1, plus, r12, LSL, 3, Offset}, 714 "al r2 r1 plus r12 LSL 3 Offset", 715 "PositiveOffset_al_r2_r1_plus_r12_LSL_3_Offset", 716 ARRAY_SIZE(kPositiveOffset), 717 kPositiveOffset}, 718 {{al, r10, r2, plus, r7, ROR, 22, Offset}, 719 "al r10 r2 plus r7 ROR 22 Offset", 720 "PositiveOffset_al_r10_r2_plus_r7_ROR_22_Offset", 721 ARRAY_SIZE(kPositiveOffset), 722 kPositiveOffset}, 723 {{al, r7, r8, plus, r4, LSL, 6, Offset}, 724 "al r7 r8 plus r4 LSL 6 Offset", 725 "PositiveOffset_al_r7_r8_plus_r4_LSL_6_Offset", 726 ARRAY_SIZE(kPositiveOffset), 727 kPositiveOffset}, 728 {{al, r11, r5, plus, r6, LSL, 30, Offset}, 729 "al r11 r5 plus r6 LSL 30 Offset", 730 "PositiveOffset_al_r11_r5_plus_r6_LSL_30_Offset", 731 ARRAY_SIZE(kPositiveOffset), 732 kPositiveOffset}, 733 {{al, r11, r4, plus, r8, ROR, 12, Offset}, 734 "al r11 r4 plus r8 ROR 12 Offset", 735 "PositiveOffset_al_r11_r4_plus_r8_ROR_12_Offset", 736 ARRAY_SIZE(kPositiveOffset), 737 kPositiveOffset}, 738 {{al, r12, r1, plus, r8, ROR, 21, Offset}, 739 "al r12 r1 plus r8 ROR 21 Offset", 740 "PositiveOffset_al_r12_r1_plus_r8_ROR_21_Offset", 741 ARRAY_SIZE(kPositiveOffset), 742 kPositiveOffset}, 743 {{al, r6, r2, plus, r4, ROR, 17, Offset}, 744 "al r6 r2 plus r4 ROR 17 Offset", 745 "PositiveOffset_al_r6_r2_plus_r4_ROR_17_Offset", 746 ARRAY_SIZE(kPositiveOffset), 747 kPositiveOffset}, 748 {{al, r1, r11, plus, r12, LSL, 8, Offset}, 749 "al r1 r11 plus r12 LSL 8 Offset", 750 "PositiveOffset_al_r1_r11_plus_r12_LSL_8_Offset", 751 ARRAY_SIZE(kPositiveOffset), 752 kPositiveOffset}, 753 {{al, r14, r12, plus, r0, LSL, 26, Offset}, 754 "al r14 r12 plus r0 LSL 26 Offset", 755 "PositiveOffset_al_r14_r12_plus_r0_LSL_26_Offset", 756 ARRAY_SIZE(kPositiveOffset), 757 kPositiveOffset}, 758 {{al, r4, r10, plus, r0, ROR, 2, Offset}, 759 "al r4 r10 plus r0 ROR 2 Offset", 760 "PositiveOffset_al_r4_r10_plus_r0_ROR_2_Offset", 761 ARRAY_SIZE(kPositiveOffset), 762 kPositiveOffset}, 763 {{al, r4, r10, plus, r0, ROR, 27, Offset}, 764 "al r4 r10 plus r0 ROR 27 Offset", 765 "PositiveOffset_al_r4_r10_plus_r0_ROR_27_Offset", 766 ARRAY_SIZE(kPositiveOffset), 767 kPositiveOffset}, 768 {{al, r0, r12, plus, r4, LSL, 31, Offset}, 769 "al r0 r12 plus r4 LSL 31 Offset", 770 "PositiveOffset_al_r0_r12_plus_r4_LSL_31_Offset", 771 ARRAY_SIZE(kPositiveOffset), 772 kPositiveOffset}, 773 {{al, r5, r1, plus, r10, LSL, 31, Offset}, 774 "al r5 r1 plus r10 LSL 31 Offset", 775 "PositiveOffset_al_r5_r1_plus_r10_LSL_31_Offset", 776 ARRAY_SIZE(kPositiveOffset), 777 kPositiveOffset}, 778 {{al, r1, r14, plus, r5, LSL, 1, Offset}, 779 "al r1 r14 plus r5 LSL 1 Offset", 780 "PositiveOffset_al_r1_r14_plus_r5_LSL_1_Offset", 781 ARRAY_SIZE(kPositiveOffset), 782 kPositiveOffset}, 783 {{al, r12, r14, plus, r0, LSL, 7, Offset}, 784 "al r12 r14 plus r0 LSL 7 Offset", 785 "PositiveOffset_al_r12_r14_plus_r0_LSL_7_Offset", 786 ARRAY_SIZE(kPositiveOffset), 787 kPositiveOffset}, 788 {{al, r1, r6, plus, r5, LSL, 1, Offset}, 789 "al r1 r6 plus r5 LSL 1 Offset", 790 "PositiveOffset_al_r1_r6_plus_r5_LSL_1_Offset", 791 ARRAY_SIZE(kPositiveOffset), 792 kPositiveOffset}, 793 {{al, r6, r9, plus, r4, ROR, 9, Offset}, 794 "al r6 r9 plus r4 ROR 9 Offset", 795 "PositiveOffset_al_r6_r9_plus_r4_ROR_9_Offset", 796 ARRAY_SIZE(kPositiveOffset), 797 kPositiveOffset}, 798 {{al, r6, r11, plus, r10, LSL, 4, Offset}, 799 "al r6 r11 plus r10 LSL 4 Offset", 800 "PositiveOffset_al_r6_r11_plus_r10_LSL_4_Offset", 801 ARRAY_SIZE(kPositiveOffset), 802 kPositiveOffset}, 803 {{al, r5, r14, plus, r7, ROR, 25, Offset}, 804 "al r5 r14 plus r7 ROR 25 Offset", 805 "PositiveOffset_al_r5_r14_plus_r7_ROR_25_Offset", 806 ARRAY_SIZE(kPositiveOffset), 807 kPositiveOffset}, 808 {{al, r9, r6, plus, r3, LSL, 23, Offset}, 809 "al r9 r6 plus r3 LSL 23 Offset", 810 "PositiveOffset_al_r9_r6_plus_r3_LSL_23_Offset", 811 ARRAY_SIZE(kPositiveOffset), 812 kPositiveOffset}, 813 {{al, r3, r4, plus, r0, ROR, 27, Offset}, 814 "al r3 r4 plus r0 ROR 27 Offset", 815 "PositiveOffset_al_r3_r4_plus_r0_ROR_27_Offset", 816 ARRAY_SIZE(kPositiveOffset), 817 kPositiveOffset}, 818 {{al, r1, r0, plus, r2, ROR, 17, Offset}, 819 "al r1 r0 plus r2 ROR 17 Offset", 820 "PositiveOffset_al_r1_r0_plus_r2_ROR_17_Offset", 821 ARRAY_SIZE(kPositiveOffset), 822 kPositiveOffset}, 823 {{al, r9, r5, plus, r6, LSL, 10, Offset}, 824 "al r9 r5 plus r6 LSL 10 Offset", 825 "PositiveOffset_al_r9_r5_plus_r6_LSL_10_Offset", 826 ARRAY_SIZE(kPositiveOffset), 827 kPositiveOffset}, 828 {{al, r11, r4, plus, r9, LSL, 28, Offset}, 829 "al r11 r4 plus r9 LSL 28 Offset", 830 "PositiveOffset_al_r11_r4_plus_r9_LSL_28_Offset", 831 ARRAY_SIZE(kPositiveOffset), 832 kPositiveOffset}, 833 {{al, r7, r1, minus, r10, ROR, 20, Offset}, 834 "al r7 r1 minus r10 ROR 20 Offset", 835 "NegativeOffset_al_r7_r1_minus_r10_ROR_20_Offset", 836 ARRAY_SIZE(kNegativeOffset), 837 kNegativeOffset}, 838 {{al, r4, r12, minus, r6, ROR, 2, Offset}, 839 "al r4 r12 minus r6 ROR 2 Offset", 840 "NegativeOffset_al_r4_r12_minus_r6_ROR_2_Offset", 841 ARRAY_SIZE(kNegativeOffset), 842 kNegativeOffset}, 843 {{al, r6, r4, minus, r11, LSL, 6, Offset}, 844 "al r6 r4 minus r11 LSL 6 Offset", 845 "NegativeOffset_al_r6_r4_minus_r11_LSL_6_Offset", 846 ARRAY_SIZE(kNegativeOffset), 847 kNegativeOffset}, 848 {{al, r10, r0, minus, r12, LSL, 19, Offset}, 849 "al r10 r0 minus r12 LSL 19 Offset", 850 "NegativeOffset_al_r10_r0_minus_r12_LSL_19_Offset", 851 ARRAY_SIZE(kNegativeOffset), 852 kNegativeOffset}, 853 {{al, r10, r3, minus, r14, LSL, 20, Offset}, 854 "al r10 r3 minus r14 LSL 20 Offset", 855 "NegativeOffset_al_r10_r3_minus_r14_LSL_20_Offset", 856 ARRAY_SIZE(kNegativeOffset), 857 kNegativeOffset}, 858 {{al, r10, r3, minus, r12, LSL, 20, Offset}, 859 "al r10 r3 minus r12 LSL 20 Offset", 860 "NegativeOffset_al_r10_r3_minus_r12_LSL_20_Offset", 861 ARRAY_SIZE(kNegativeOffset), 862 kNegativeOffset}, 863 {{al, r14, r10, minus, r12, ROR, 29, Offset}, 864 "al r14 r10 minus r12 ROR 29 Offset", 865 "NegativeOffset_al_r14_r10_minus_r12_ROR_29_Offset", 866 ARRAY_SIZE(kNegativeOffset), 867 kNegativeOffset}, 868 {{al, r2, r11, minus, r5, ROR, 21, Offset}, 869 "al r2 r11 minus r5 ROR 21 Offset", 870 "NegativeOffset_al_r2_r11_minus_r5_ROR_21_Offset", 871 ARRAY_SIZE(kNegativeOffset), 872 kNegativeOffset}, 873 {{al, r14, r5, minus, r1, ROR, 22, Offset}, 874 "al r14 r5 minus r1 ROR 22 Offset", 875 "NegativeOffset_al_r14_r5_minus_r1_ROR_22_Offset", 876 ARRAY_SIZE(kNegativeOffset), 877 kNegativeOffset}, 878 {{al, r7, r4, minus, r10, LSL, 18, Offset}, 879 "al r7 r4 minus r10 LSL 18 Offset", 880 "NegativeOffset_al_r7_r4_minus_r10_LSL_18_Offset", 881 ARRAY_SIZE(kNegativeOffset), 882 kNegativeOffset}, 883 {{al, r4, r2, minus, r1, LSL, 9, Offset}, 884 "al r4 r2 minus r1 LSL 9 Offset", 885 "NegativeOffset_al_r4_r2_minus_r1_LSL_9_Offset", 886 ARRAY_SIZE(kNegativeOffset), 887 kNegativeOffset}, 888 {{al, r10, r12, minus, r8, LSL, 11, Offset}, 889 "al r10 r12 minus r8 LSL 11 Offset", 890 "NegativeOffset_al_r10_r12_minus_r8_LSL_11_Offset", 891 ARRAY_SIZE(kNegativeOffset), 892 kNegativeOffset}, 893 {{al, r5, r4, minus, r1, ROR, 30, Offset}, 894 "al r5 r4 minus r1 ROR 30 Offset", 895 "NegativeOffset_al_r5_r4_minus_r1_ROR_30_Offset", 896 ARRAY_SIZE(kNegativeOffset), 897 kNegativeOffset}, 898 {{al, r11, r0, minus, r10, ROR, 10, Offset}, 899 "al r11 r0 minus r10 ROR 10 Offset", 900 "NegativeOffset_al_r11_r0_minus_r10_ROR_10_Offset", 901 ARRAY_SIZE(kNegativeOffset), 902 kNegativeOffset}, 903 {{al, r11, r3, minus, r6, ROR, 25, Offset}, 904 "al r11 r3 minus r6 ROR 25 Offset", 905 "NegativeOffset_al_r11_r3_minus_r6_ROR_25_Offset", 906 ARRAY_SIZE(kNegativeOffset), 907 kNegativeOffset}, 908 {{al, r3, r12, minus, r1, ROR, 27, Offset}, 909 "al r3 r12 minus r1 ROR 27 Offset", 910 "NegativeOffset_al_r3_r12_minus_r1_ROR_27_Offset", 911 ARRAY_SIZE(kNegativeOffset), 912 kNegativeOffset}, 913 {{al, r3, r1, minus, r14, LSL, 5, Offset}, 914 "al r3 r1 minus r14 LSL 5 Offset", 915 "NegativeOffset_al_r3_r1_minus_r14_LSL_5_Offset", 916 ARRAY_SIZE(kNegativeOffset), 917 kNegativeOffset}, 918 {{al, r9, r1, minus, r7, LSL, 27, Offset}, 919 "al r9 r1 minus r7 LSL 27 Offset", 920 "NegativeOffset_al_r9_r1_minus_r7_LSL_27_Offset", 921 ARRAY_SIZE(kNegativeOffset), 922 kNegativeOffset}, 923 {{al, r2, r9, minus, r6, LSL, 4, Offset}, 924 "al r2 r9 minus r6 LSL 4 Offset", 925 "NegativeOffset_al_r2_r9_minus_r6_LSL_4_Offset", 926 ARRAY_SIZE(kNegativeOffset), 927 kNegativeOffset}, 928 {{al, r4, r6, minus, r1, ROR, 19, Offset}, 929 "al r4 r6 minus r1 ROR 19 Offset", 930 "NegativeOffset_al_r4_r6_minus_r1_ROR_19_Offset", 931 ARRAY_SIZE(kNegativeOffset), 932 kNegativeOffset}, 933 {{al, r14, r8, minus, r6, LSL, 5, Offset}, 934 "al r14 r8 minus r6 LSL 5 Offset", 935 "NegativeOffset_al_r14_r8_minus_r6_LSL_5_Offset", 936 ARRAY_SIZE(kNegativeOffset), 937 kNegativeOffset}, 938 {{al, r5, r0, minus, r12, LSL, 16, Offset}, 939 "al r5 r0 minus r12 LSL 16 Offset", 940 "NegativeOffset_al_r5_r0_minus_r12_LSL_16_Offset", 941 ARRAY_SIZE(kNegativeOffset), 942 kNegativeOffset}, 943 {{al, r5, r4, minus, r12, ROR, 29, Offset}, 944 "al r5 r4 minus r12 ROR 29 Offset", 945 "NegativeOffset_al_r5_r4_minus_r12_ROR_29_Offset", 946 ARRAY_SIZE(kNegativeOffset), 947 kNegativeOffset}, 948 {{al, r4, r10, minus, r1, LSL, 2, Offset}, 949 "al r4 r10 minus r1 LSL 2 Offset", 950 "NegativeOffset_al_r4_r10_minus_r1_LSL_2_Offset", 951 ARRAY_SIZE(kNegativeOffset), 952 kNegativeOffset}, 953 {{al, r6, r5, minus, r12, ROR, 8, Offset}, 954 "al r6 r5 minus r12 ROR 8 Offset", 955 "NegativeOffset_al_r6_r5_minus_r12_ROR_8_Offset", 956 ARRAY_SIZE(kNegativeOffset), 957 kNegativeOffset}, 958 {{al, r1, r11, minus, r0, ROR, 8, Offset}, 959 "al r1 r11 minus r0 ROR 8 Offset", 960 "NegativeOffset_al_r1_r11_minus_r0_ROR_8_Offset", 961 ARRAY_SIZE(kNegativeOffset), 962 kNegativeOffset}, 963 {{al, r10, r9, minus, r5, ROR, 1, Offset}, 964 "al r10 r9 minus r5 ROR 1 Offset", 965 "NegativeOffset_al_r10_r9_minus_r5_ROR_1_Offset", 966 ARRAY_SIZE(kNegativeOffset), 967 kNegativeOffset}, 968 {{al, r14, r2, minus, r7, LSL, 8, Offset}, 969 "al r14 r2 minus r7 LSL 8 Offset", 970 "NegativeOffset_al_r14_r2_minus_r7_LSL_8_Offset", 971 ARRAY_SIZE(kNegativeOffset), 972 kNegativeOffset}, 973 {{al, r3, r12, minus, r2, LSL, 17, Offset}, 974 "al r3 r12 minus r2 LSL 17 Offset", 975 "NegativeOffset_al_r3_r12_minus_r2_LSL_17_Offset", 976 ARRAY_SIZE(kNegativeOffset), 977 kNegativeOffset}, 978 {{al, r11, r6, minus, r7, LSL, 3, Offset}, 979 "al r11 r6 minus r7 LSL 3 Offset", 980 "NegativeOffset_al_r11_r6_minus_r7_LSL_3_Offset", 981 ARRAY_SIZE(kNegativeOffset), 982 kNegativeOffset}, 983 {{al, r2, r14, minus, r10, LSL, 26, Offset}, 984 "al r2 r14 minus r10 LSL 26 Offset", 985 "NegativeOffset_al_r2_r14_minus_r10_LSL_26_Offset", 986 ARRAY_SIZE(kNegativeOffset), 987 kNegativeOffset}, 988 {{al, r6, r3, minus, r11, LSL, 8, Offset}, 989 "al r6 r3 minus r11 LSL 8 Offset", 990 "NegativeOffset_al_r6_r3_minus_r11_LSL_8_Offset", 991 ARRAY_SIZE(kNegativeOffset), 992 kNegativeOffset}, 993 {{al, r9, r1, minus, r7, LSL, 20, Offset}, 994 "al r9 r1 minus r7 LSL 20 Offset", 995 "NegativeOffset_al_r9_r1_minus_r7_LSL_20_Offset", 996 ARRAY_SIZE(kNegativeOffset), 997 kNegativeOffset}, 998 {{al, r1, r11, minus, r12, ROR, 6, Offset}, 999 "al r1 r11 minus r12 ROR 6 Offset", 1000 "NegativeOffset_al_r1_r11_minus_r12_ROR_6_Offset", 1001 ARRAY_SIZE(kNegativeOffset), 1002 kNegativeOffset}, 1003 {{al, r7, r6, minus, r14, LSL, 16, Offset}, 1004 "al r7 r6 minus r14 LSL 16 Offset", 1005 "NegativeOffset_al_r7_r6_minus_r14_LSL_16_Offset", 1006 ARRAY_SIZE(kNegativeOffset), 1007 kNegativeOffset}, 1008 {{al, r12, r0, minus, r10, ROR, 6, Offset}, 1009 "al r12 r0 minus r10 ROR 6 Offset", 1010 "NegativeOffset_al_r12_r0_minus_r10_ROR_6_Offset", 1011 ARRAY_SIZE(kNegativeOffset), 1012 kNegativeOffset}, 1013 {{al, r11, r12, minus, r10, ROR, 7, Offset}, 1014 "al r11 r12 minus r10 ROR 7 Offset", 1015 "NegativeOffset_al_r11_r12_minus_r10_ROR_7_Offset", 1016 ARRAY_SIZE(kNegativeOffset), 1017 kNegativeOffset}, 1018 {{al, r12, r5, minus, r7, LSL, 8, Offset}, 1019 "al r12 r5 minus r7 LSL 8 Offset", 1020 "NegativeOffset_al_r12_r5_minus_r7_LSL_8_Offset", 1021 ARRAY_SIZE(kNegativeOffset), 1022 kNegativeOffset}, 1023 {{al, r9, r0, minus, r7, ROR, 14, Offset}, 1024 "al r9 r0 minus r7 ROR 14 Offset", 1025 "NegativeOffset_al_r9_r0_minus_r7_ROR_14_Offset", 1026 ARRAY_SIZE(kNegativeOffset), 1027 kNegativeOffset}, 1028 {{al, r12, r1, minus, r6, LSL, 22, Offset}, 1029 "al r12 r1 minus r6 LSL 22 Offset", 1030 "NegativeOffset_al_r12_r1_minus_r6_LSL_22_Offset", 1031 ARRAY_SIZE(kNegativeOffset), 1032 kNegativeOffset}, 1033 {{al, r11, r7, minus, r10, LSL, 16, Offset}, 1034 "al r11 r7 minus r10 LSL 16 Offset", 1035 "NegativeOffset_al_r11_r7_minus_r10_LSL_16_Offset", 1036 ARRAY_SIZE(kNegativeOffset), 1037 kNegativeOffset}, 1038 {{al, r6, r10, minus, r9, LSL, 8, Offset}, 1039 "al r6 r10 minus r9 LSL 8 Offset", 1040 "NegativeOffset_al_r6_r10_minus_r9_LSL_8_Offset", 1041 ARRAY_SIZE(kNegativeOffset), 1042 kNegativeOffset}, 1043 {{al, r2, r6, minus, r7, LSL, 18, Offset}, 1044 "al r2 r6 minus r7 LSL 18 Offset", 1045 "NegativeOffset_al_r2_r6_minus_r7_LSL_18_Offset", 1046 ARRAY_SIZE(kNegativeOffset), 1047 kNegativeOffset}, 1048 {{al, r7, r9, minus, r6, ROR, 31, Offset}, 1049 "al r7 r9 minus r6 ROR 31 Offset", 1050 "NegativeOffset_al_r7_r9_minus_r6_ROR_31_Offset", 1051 ARRAY_SIZE(kNegativeOffset), 1052 kNegativeOffset}, 1053 {{al, r10, r9, minus, r11, LSL, 16, Offset}, 1054 "al r10 r9 minus r11 LSL 16 Offset", 1055 "NegativeOffset_al_r10_r9_minus_r11_LSL_16_Offset", 1056 ARRAY_SIZE(kNegativeOffset), 1057 kNegativeOffset}, 1058 {{al, r11, r1, minus, r3, ROR, 8, Offset}, 1059 "al r11 r1 minus r3 ROR 8 Offset", 1060 "NegativeOffset_al_r11_r1_minus_r3_ROR_8_Offset", 1061 ARRAY_SIZE(kNegativeOffset), 1062 kNegativeOffset}, 1063 {{al, r14, r3, minus, r1, LSL, 1, Offset}, 1064 "al r14 r3 minus r1 LSL 1 Offset", 1065 "NegativeOffset_al_r14_r3_minus_r1_LSL_1_Offset", 1066 ARRAY_SIZE(kNegativeOffset), 1067 kNegativeOffset}, 1068 {{al, r1, r10, minus, r6, ROR, 19, Offset}, 1069 "al r1 r10 minus r6 ROR 19 Offset", 1070 "NegativeOffset_al_r1_r10_minus_r6_ROR_19_Offset", 1071 ARRAY_SIZE(kNegativeOffset), 1072 kNegativeOffset}, 1073 {{al, r2, r11, minus, r5, ROR, 24, Offset}, 1074 "al r2 r11 minus r5 ROR 24 Offset", 1075 "NegativeOffset_al_r2_r11_minus_r5_ROR_24_Offset", 1076 ARRAY_SIZE(kNegativeOffset), 1077 kNegativeOffset}, 1078 {{al, r3, r9, minus, r2, LSL, 19, Offset}, 1079 "al r3 r9 minus r2 LSL 19 Offset", 1080 "NegativeOffset_al_r3_r9_minus_r2_LSL_19_Offset", 1081 ARRAY_SIZE(kNegativeOffset), 1082 kNegativeOffset}, 1083 {{al, r14, r5, minus, r10, LSL, 25, Offset}, 1084 "al r14 r5 minus r10 LSL 25 Offset", 1085 "NegativeOffset_al_r14_r5_minus_r10_LSL_25_Offset", 1086 ARRAY_SIZE(kNegativeOffset), 1087 kNegativeOffset}, 1088 {{al, r4, r6, minus, r7, ROR, 22, Offset}, 1089 "al r4 r6 minus r7 ROR 22 Offset", 1090 "NegativeOffset_al_r4_r6_minus_r7_ROR_22_Offset", 1091 ARRAY_SIZE(kNegativeOffset), 1092 kNegativeOffset}, 1093 {{al, r8, r4, minus, r6, LSL, 9, Offset}, 1094 "al r8 r4 minus r6 LSL 9 Offset", 1095 "NegativeOffset_al_r8_r4_minus_r6_LSL_9_Offset", 1096 ARRAY_SIZE(kNegativeOffset), 1097 kNegativeOffset}, 1098 {{al, r3, r5, minus, r9, LSL, 24, Offset}, 1099 "al r3 r5 minus r9 LSL 24 Offset", 1100 "NegativeOffset_al_r3_r5_minus_r9_LSL_24_Offset", 1101 ARRAY_SIZE(kNegativeOffset), 1102 kNegativeOffset}, 1103 {{al, r11, r7, minus, r14, ROR, 29, Offset}, 1104 "al r11 r7 minus r14 ROR 29 Offset", 1105 "NegativeOffset_al_r11_r7_minus_r14_ROR_29_Offset", 1106 ARRAY_SIZE(kNegativeOffset), 1107 kNegativeOffset}, 1108 {{al, r9, r10, minus, r0, ROR, 10, Offset}, 1109 "al r9 r10 minus r0 ROR 10 Offset", 1110 "NegativeOffset_al_r9_r10_minus_r0_ROR_10_Offset", 1111 ARRAY_SIZE(kNegativeOffset), 1112 kNegativeOffset}, 1113 {{al, r1, r3, minus, r2, LSL, 2, Offset}, 1114 "al r1 r3 minus r2 LSL 2 Offset", 1115 "NegativeOffset_al_r1_r3_minus_r2_LSL_2_Offset", 1116 ARRAY_SIZE(kNegativeOffset), 1117 kNegativeOffset}, 1118 {{al, r1, r9, minus, r10, LSL, 5, Offset}, 1119 "al r1 r9 minus r10 LSL 5 Offset", 1120 "NegativeOffset_al_r1_r9_minus_r10_LSL_5_Offset", 1121 ARRAY_SIZE(kNegativeOffset), 1122 kNegativeOffset}, 1123 {{al, r6, r8, minus, r0, LSL, 9, Offset}, 1124 "al r6 r8 minus r0 LSL 9 Offset", 1125 "NegativeOffset_al_r6_r8_minus_r0_LSL_9_Offset", 1126 ARRAY_SIZE(kNegativeOffset), 1127 kNegativeOffset}, 1128 {{al, r6, r14, minus, r8, ROR, 28, Offset}, 1129 "al r6 r14 minus r8 ROR 28 Offset", 1130 "NegativeOffset_al_r6_r14_minus_r8_ROR_28_Offset", 1131 ARRAY_SIZE(kNegativeOffset), 1132 kNegativeOffset}, 1133 {{al, r4, r12, minus, r7, LSL, 30, Offset}, 1134 "al r4 r12 minus r7 LSL 30 Offset", 1135 "NegativeOffset_al_r4_r12_minus_r7_LSL_30_Offset", 1136 ARRAY_SIZE(kNegativeOffset), 1137 kNegativeOffset}, 1138 {{al, r6, r8, minus, r0, ROR, 26, Offset}, 1139 "al r6 r8 minus r0 ROR 26 Offset", 1140 "NegativeOffset_al_r6_r8_minus_r0_ROR_26_Offset", 1141 ARRAY_SIZE(kNegativeOffset), 1142 kNegativeOffset}, 1143 {{al, r2, r8, minus, r9, LSL, 17, Offset}, 1144 "al r2 r8 minus r9 LSL 17 Offset", 1145 "NegativeOffset_al_r2_r8_minus_r9_LSL_17_Offset", 1146 ARRAY_SIZE(kNegativeOffset), 1147 kNegativeOffset}, 1148 {{al, r9, r14, minus, r0, LSL, 5, Offset}, 1149 "al r9 r14 minus r0 LSL 5 Offset", 1150 "NegativeOffset_al_r9_r14_minus_r0_LSL_5_Offset", 1151 ARRAY_SIZE(kNegativeOffset), 1152 kNegativeOffset}, 1153 {{al, r11, r3, minus, r9, ROR, 27, Offset}, 1154 "al r11 r3 minus r9 ROR 27 Offset", 1155 "NegativeOffset_al_r11_r3_minus_r9_ROR_27_Offset", 1156 ARRAY_SIZE(kNegativeOffset), 1157 kNegativeOffset}, 1158 {{al, r6, r8, minus, r3, ROR, 19, Offset}, 1159 "al r6 r8 minus r3 ROR 19 Offset", 1160 "NegativeOffset_al_r6_r8_minus_r3_ROR_19_Offset", 1161 ARRAY_SIZE(kNegativeOffset), 1162 kNegativeOffset}, 1163 {{al, r0, r7, minus, r1, LSL, 7, Offset}, 1164 "al r0 r7 minus r1 LSL 7 Offset", 1165 "NegativeOffset_al_r0_r7_minus_r1_LSL_7_Offset", 1166 ARRAY_SIZE(kNegativeOffset), 1167 kNegativeOffset}, 1168 {{al, r8, r7, minus, r1, LSL, 14, Offset}, 1169 "al r8 r7 minus r1 LSL 14 Offset", 1170 "NegativeOffset_al_r8_r7_minus_r1_LSL_14_Offset", 1171 ARRAY_SIZE(kNegativeOffset), 1172 kNegativeOffset}, 1173 {{al, r7, r4, minus, r8, LSL, 15, Offset}, 1174 "al r7 r4 minus r8 LSL 15 Offset", 1175 "NegativeOffset_al_r7_r4_minus_r8_LSL_15_Offset", 1176 ARRAY_SIZE(kNegativeOffset), 1177 kNegativeOffset}, 1178 {{al, r14, r11, minus, r1, ROR, 21, Offset}, 1179 "al r14 r11 minus r1 ROR 21 Offset", 1180 "NegativeOffset_al_r14_r11_minus_r1_ROR_21_Offset", 1181 ARRAY_SIZE(kNegativeOffset), 1182 kNegativeOffset}, 1183 {{al, r12, r14, minus, r6, ROR, 6, Offset}, 1184 "al r12 r14 minus r6 ROR 6 Offset", 1185 "NegativeOffset_al_r12_r14_minus_r6_ROR_6_Offset", 1186 ARRAY_SIZE(kNegativeOffset), 1187 kNegativeOffset}, 1188 {{al, r4, r12, minus, r14, LSL, 25, Offset}, 1189 "al r4 r12 minus r14 LSL 25 Offset", 1190 "NegativeOffset_al_r4_r12_minus_r14_LSL_25_Offset", 1191 ARRAY_SIZE(kNegativeOffset), 1192 kNegativeOffset}, 1193 {{al, r6, r12, minus, r2, ROR, 2, Offset}, 1194 "al r6 r12 minus r2 ROR 2 Offset", 1195 "NegativeOffset_al_r6_r12_minus_r2_ROR_2_Offset", 1196 ARRAY_SIZE(kNegativeOffset), 1197 kNegativeOffset}, 1198 {{al, r11, r1, minus, r8, LSL, 26, Offset}, 1199 "al r11 r1 minus r8 LSL 26 Offset", 1200 "NegativeOffset_al_r11_r1_minus_r8_LSL_26_Offset", 1201 ARRAY_SIZE(kNegativeOffset), 1202 kNegativeOffset}, 1203 {{al, r9, r1, minus, r10, ROR, 29, Offset}, 1204 "al r9 r1 minus r10 ROR 29 Offset", 1205 "NegativeOffset_al_r9_r1_minus_r10_ROR_29_Offset", 1206 ARRAY_SIZE(kNegativeOffset), 1207 kNegativeOffset}, 1208 {{al, r0, r6, minus, r4, LSL, 23, Offset}, 1209 "al r0 r6 minus r4 LSL 23 Offset", 1210 "NegativeOffset_al_r0_r6_minus_r4_LSL_23_Offset", 1211 ARRAY_SIZE(kNegativeOffset), 1212 kNegativeOffset}, 1213 {{al, r12, r8, minus, r14, LSL, 26, Offset}, 1214 "al r12 r8 minus r14 LSL 26 Offset", 1215 "NegativeOffset_al_r12_r8_minus_r14_LSL_26_Offset", 1216 ARRAY_SIZE(kNegativeOffset), 1217 kNegativeOffset}, 1218 {{al, r0, r11, minus, r2, ROR, 23, Offset}, 1219 "al r0 r11 minus r2 ROR 23 Offset", 1220 "NegativeOffset_al_r0_r11_minus_r2_ROR_23_Offset", 1221 ARRAY_SIZE(kNegativeOffset), 1222 kNegativeOffset}, 1223 {{al, r11, r4, minus, r2, ROR, 14, Offset}, 1224 "al r11 r4 minus r2 ROR 14 Offset", 1225 "NegativeOffset_al_r11_r4_minus_r2_ROR_14_Offset", 1226 ARRAY_SIZE(kNegativeOffset), 1227 kNegativeOffset}, 1228 {{al, r4, r10, minus, r14, ROR, 29, Offset}, 1229 "al r4 r10 minus r14 ROR 29 Offset", 1230 "NegativeOffset_al_r4_r10_minus_r14_ROR_29_Offset", 1231 ARRAY_SIZE(kNegativeOffset), 1232 kNegativeOffset}, 1233 {{al, r7, r0, minus, r12, ROR, 5, Offset}, 1234 "al r7 r0 minus r12 ROR 5 Offset", 1235 "NegativeOffset_al_r7_r0_minus_r12_ROR_5_Offset", 1236 ARRAY_SIZE(kNegativeOffset), 1237 kNegativeOffset}, 1238 {{al, r6, r12, minus, r0, ROR, 15, Offset}, 1239 "al r6 r12 minus r0 ROR 15 Offset", 1240 "NegativeOffset_al_r6_r12_minus_r0_ROR_15_Offset", 1241 ARRAY_SIZE(kNegativeOffset), 1242 kNegativeOffset}, 1243 {{al, r6, r1, minus, r7, ROR, 22, Offset}, 1244 "al r6 r1 minus r7 ROR 22 Offset", 1245 "NegativeOffset_al_r6_r1_minus_r7_ROR_22_Offset", 1246 ARRAY_SIZE(kNegativeOffset), 1247 kNegativeOffset}, 1248 {{al, r9, r3, minus, r14, LSL, 7, Offset}, 1249 "al r9 r3 minus r14 LSL 7 Offset", 1250 "NegativeOffset_al_r9_r3_minus_r14_LSL_7_Offset", 1251 ARRAY_SIZE(kNegativeOffset), 1252 kNegativeOffset}, 1253 {{al, r12, r0, minus, r7, ROR, 19, Offset}, 1254 "al r12 r0 minus r7 ROR 19 Offset", 1255 "NegativeOffset_al_r12_r0_minus_r7_ROR_19_Offset", 1256 ARRAY_SIZE(kNegativeOffset), 1257 kNegativeOffset}, 1258 {{al, r9, r8, minus, r11, ROR, 21, Offset}, 1259 "al r9 r8 minus r11 ROR 21 Offset", 1260 "NegativeOffset_al_r9_r8_minus_r11_ROR_21_Offset", 1261 ARRAY_SIZE(kNegativeOffset), 1262 kNegativeOffset}, 1263 {{al, r9, r2, minus, r3, LSL, 20, Offset}, 1264 "al r9 r2 minus r3 LSL 20 Offset", 1265 "NegativeOffset_al_r9_r2_minus_r3_LSL_20_Offset", 1266 ARRAY_SIZE(kNegativeOffset), 1267 kNegativeOffset}, 1268 {{al, r12, r2, minus, r5, ROR, 25, Offset}, 1269 "al r12 r2 minus r5 ROR 25 Offset", 1270 "NegativeOffset_al_r12_r2_minus_r5_ROR_25_Offset", 1271 ARRAY_SIZE(kNegativeOffset), 1272 kNegativeOffset}, 1273 {{al, r6, r7, minus, r3, LSL, 15, Offset}, 1274 "al r6 r7 minus r3 LSL 15 Offset", 1275 "NegativeOffset_al_r6_r7_minus_r3_LSL_15_Offset", 1276 ARRAY_SIZE(kNegativeOffset), 1277 kNegativeOffset}, 1278 {{al, r1, r12, minus, r14, LSL, 12, Offset}, 1279 "al r1 r12 minus r14 LSL 12 Offset", 1280 "NegativeOffset_al_r1_r12_minus_r14_LSL_12_Offset", 1281 ARRAY_SIZE(kNegativeOffset), 1282 kNegativeOffset}, 1283 {{al, r14, r4, minus, r11, ROR, 31, Offset}, 1284 "al r14 r4 minus r11 ROR 31 Offset", 1285 "NegativeOffset_al_r14_r4_minus_r11_ROR_31_Offset", 1286 ARRAY_SIZE(kNegativeOffset), 1287 kNegativeOffset}, 1288 {{al, r14, r5, minus, r2, LSL, 27, Offset}, 1289 "al r14 r5 minus r2 LSL 27 Offset", 1290 "NegativeOffset_al_r14_r5_minus_r2_LSL_27_Offset", 1291 ARRAY_SIZE(kNegativeOffset), 1292 kNegativeOffset}, 1293 {{al, r9, r6, minus, r12, LSL, 31, Offset}, 1294 "al r9 r6 minus r12 LSL 31 Offset", 1295 "NegativeOffset_al_r9_r6_minus_r12_LSL_31_Offset", 1296 ARRAY_SIZE(kNegativeOffset), 1297 kNegativeOffset}, 1298 {{al, r4, r8, minus, r11, ROR, 31, Offset}, 1299 "al r4 r8 minus r11 ROR 31 Offset", 1300 "NegativeOffset_al_r4_r8_minus_r11_ROR_31_Offset", 1301 ARRAY_SIZE(kNegativeOffset), 1302 kNegativeOffset}, 1303 {{al, r0, r12, minus, r10, ROR, 25, Offset}, 1304 "al r0 r12 minus r10 ROR 25 Offset", 1305 "NegativeOffset_al_r0_r12_minus_r10_ROR_25_Offset", 1306 ARRAY_SIZE(kNegativeOffset), 1307 kNegativeOffset}, 1308 {{al, r1, r0, minus, r7, ROR, 5, Offset}, 1309 "al r1 r0 minus r7 ROR 5 Offset", 1310 "NegativeOffset_al_r1_r0_minus_r7_ROR_5_Offset", 1311 ARRAY_SIZE(kNegativeOffset), 1312 kNegativeOffset}, 1313 {{al, r12, r4, minus, r11, LSL, 26, Offset}, 1314 "al r12 r4 minus r11 LSL 26 Offset", 1315 "NegativeOffset_al_r12_r4_minus_r11_LSL_26_Offset", 1316 ARRAY_SIZE(kNegativeOffset), 1317 kNegativeOffset}, 1318 {{al, r2, r3, minus, r4, LSL, 10, Offset}, 1319 "al r2 r3 minus r4 LSL 10 Offset", 1320 "NegativeOffset_al_r2_r3_minus_r4_LSL_10_Offset", 1321 ARRAY_SIZE(kNegativeOffset), 1322 kNegativeOffset}, 1323 {{al, r1, r10, minus, r6, LSL, 8, Offset}, 1324 "al r1 r10 minus r6 LSL 8 Offset", 1325 "NegativeOffset_al_r1_r10_minus_r6_LSL_8_Offset", 1326 ARRAY_SIZE(kNegativeOffset), 1327 kNegativeOffset}, 1328 {{al, r7, r10, minus, r2, LSL, 8, Offset}, 1329 "al r7 r10 minus r2 LSL 8 Offset", 1330 "NegativeOffset_al_r7_r10_minus_r2_LSL_8_Offset", 1331 ARRAY_SIZE(kNegativeOffset), 1332 kNegativeOffset}, 1333 {{al, r9, r4, plus, r0, ROR, 19, PostIndex}, 1334 "al r9 r4 plus r0 ROR 19 PostIndex", 1335 "PositivePostIndex_al_r9_r4_plus_r0_ROR_19_PostIndex", 1336 ARRAY_SIZE(kPositivePostIndex), 1337 kPositivePostIndex}, 1338 {{al, r2, r3, plus, r8, LSL, 10, PostIndex}, 1339 "al r2 r3 plus r8 LSL 10 PostIndex", 1340 "PositivePostIndex_al_r2_r3_plus_r8_LSL_10_PostIndex", 1341 ARRAY_SIZE(kPositivePostIndex), 1342 kPositivePostIndex}, 1343 {{al, r11, r14, plus, r5, LSL, 31, PostIndex}, 1344 "al r11 r14 plus r5 LSL 31 PostIndex", 1345 "PositivePostIndex_al_r11_r14_plus_r5_LSL_31_PostIndex", 1346 ARRAY_SIZE(kPositivePostIndex), 1347 kPositivePostIndex}, 1348 {{al, r5, r14, plus, r9, ROR, 11, PostIndex}, 1349 "al r5 r14 plus r9 ROR 11 PostIndex", 1350 "PositivePostIndex_al_r5_r14_plus_r9_ROR_11_PostIndex", 1351 ARRAY_SIZE(kPositivePostIndex), 1352 kPositivePostIndex}, 1353 {{al, r6, r1, plus, r5, LSL, 11, PostIndex}, 1354 "al r6 r1 plus r5 LSL 11 PostIndex", 1355 "PositivePostIndex_al_r6_r1_plus_r5_LSL_11_PostIndex", 1356 ARRAY_SIZE(kPositivePostIndex), 1357 kPositivePostIndex}, 1358 {{al, r3, r2, plus, r14, LSL, 19, PostIndex}, 1359 "al r3 r2 plus r14 LSL 19 PostIndex", 1360 "PositivePostIndex_al_r3_r2_plus_r14_LSL_19_PostIndex", 1361 ARRAY_SIZE(kPositivePostIndex), 1362 kPositivePostIndex}, 1363 {{al, r12, r11, plus, r10, ROR, 6, PostIndex}, 1364 "al r12 r11 plus r10 ROR 6 PostIndex", 1365 "PositivePostIndex_al_r12_r11_plus_r10_ROR_6_PostIndex", 1366 ARRAY_SIZE(kPositivePostIndex), 1367 kPositivePostIndex}, 1368 {{al, r5, r0, plus, r10, LSL, 18, PostIndex}, 1369 "al r5 r0 plus r10 LSL 18 PostIndex", 1370 "PositivePostIndex_al_r5_r0_plus_r10_LSL_18_PostIndex", 1371 ARRAY_SIZE(kPositivePostIndex), 1372 kPositivePostIndex}, 1373 {{al, r4, r11, plus, r8, ROR, 6, PostIndex}, 1374 "al r4 r11 plus r8 ROR 6 PostIndex", 1375 "PositivePostIndex_al_r4_r11_plus_r8_ROR_6_PostIndex", 1376 ARRAY_SIZE(kPositivePostIndex), 1377 kPositivePostIndex}, 1378 {{al, r6, r9, plus, r14, ROR, 15, PostIndex}, 1379 "al r6 r9 plus r14 ROR 15 PostIndex", 1380 "PositivePostIndex_al_r6_r9_plus_r14_ROR_15_PostIndex", 1381 ARRAY_SIZE(kPositivePostIndex), 1382 kPositivePostIndex}, 1383 {{al, r3, r10, plus, r2, LSL, 6, PostIndex}, 1384 "al r3 r10 plus r2 LSL 6 PostIndex", 1385 "PositivePostIndex_al_r3_r10_plus_r2_LSL_6_PostIndex", 1386 ARRAY_SIZE(kPositivePostIndex), 1387 kPositivePostIndex}, 1388 {{al, r3, r5, plus, r8, LSL, 14, PostIndex}, 1389 "al r3 r5 plus r8 LSL 14 PostIndex", 1390 "PositivePostIndex_al_r3_r5_plus_r8_LSL_14_PostIndex", 1391 ARRAY_SIZE(kPositivePostIndex), 1392 kPositivePostIndex}, 1393 {{al, r8, r12, plus, r5, LSL, 14, PostIndex}, 1394 "al r8 r12 plus r5 LSL 14 PostIndex", 1395 "PositivePostIndex_al_r8_r12_plus_r5_LSL_14_PostIndex", 1396 ARRAY_SIZE(kPositivePostIndex), 1397 kPositivePostIndex}, 1398 {{al, r11, r4, plus, r6, LSL, 3, PostIndex}, 1399 "al r11 r4 plus r6 LSL 3 PostIndex", 1400 "PositivePostIndex_al_r11_r4_plus_r6_LSL_3_PostIndex", 1401 ARRAY_SIZE(kPositivePostIndex), 1402 kPositivePostIndex}, 1403 {{al, r8, r12, plus, r11, ROR, 16, PostIndex}, 1404 "al r8 r12 plus r11 ROR 16 PostIndex", 1405 "PositivePostIndex_al_r8_r12_plus_r11_ROR_16_PostIndex", 1406 ARRAY_SIZE(kPositivePostIndex), 1407 kPositivePostIndex}, 1408 {{al, r14, r7, plus, r3, LSL, 26, PostIndex}, 1409 "al r14 r7 plus r3 LSL 26 PostIndex", 1410 "PositivePostIndex_al_r14_r7_plus_r3_LSL_26_PostIndex", 1411 ARRAY_SIZE(kPositivePostIndex), 1412 kPositivePostIndex}, 1413 {{al, r2, r5, plus, r0, LSL, 13, PostIndex}, 1414 "al r2 r5 plus r0 LSL 13 PostIndex", 1415 "PositivePostIndex_al_r2_r5_plus_r0_LSL_13_PostIndex", 1416 ARRAY_SIZE(kPositivePostIndex), 1417 kPositivePostIndex}, 1418 {{al, r1, r14, plus, r10, ROR, 20, PostIndex}, 1419 "al r1 r14 plus r10 ROR 20 PostIndex", 1420 "PositivePostIndex_al_r1_r14_plus_r10_ROR_20_PostIndex", 1421 ARRAY_SIZE(kPositivePostIndex), 1422 kPositivePostIndex}, 1423 {{al, r9, r0, plus, r12, LSL, 4, PostIndex}, 1424 "al r9 r0 plus r12 LSL 4 PostIndex", 1425 "PositivePostIndex_al_r9_r0_plus_r12_LSL_4_PostIndex", 1426 ARRAY_SIZE(kPositivePostIndex), 1427 kPositivePostIndex}, 1428 {{al, r8, r1, plus, r12, LSL, 23, PostIndex}, 1429 "al r8 r1 plus r12 LSL 23 PostIndex", 1430 "PositivePostIndex_al_r8_r1_plus_r12_LSL_23_PostIndex", 1431 ARRAY_SIZE(kPositivePostIndex), 1432 kPositivePostIndex}, 1433 {{al, r10, r12, plus, r1, ROR, 25, PostIndex}, 1434 "al r10 r12 plus r1 ROR 25 PostIndex", 1435 "PositivePostIndex_al_r10_r12_plus_r1_ROR_25_PostIndex", 1436 ARRAY_SIZE(kPositivePostIndex), 1437 kPositivePostIndex}, 1438 {{al, r9, r4, plus, r5, LSL, 30, PostIndex}, 1439 "al r9 r4 plus r5 LSL 30 PostIndex", 1440 "PositivePostIndex_al_r9_r4_plus_r5_LSL_30_PostIndex", 1441 ARRAY_SIZE(kPositivePostIndex), 1442 kPositivePostIndex}, 1443 {{al, r6, r2, plus, r0, LSL, 6, PostIndex}, 1444 "al r6 r2 plus r0 LSL 6 PostIndex", 1445 "PositivePostIndex_al_r6_r2_plus_r0_LSL_6_PostIndex", 1446 ARRAY_SIZE(kPositivePostIndex), 1447 kPositivePostIndex}, 1448 {{al, r9, r12, plus, r5, ROR, 19, PostIndex}, 1449 "al r9 r12 plus r5 ROR 19 PostIndex", 1450 "PositivePostIndex_al_r9_r12_plus_r5_ROR_19_PostIndex", 1451 ARRAY_SIZE(kPositivePostIndex), 1452 kPositivePostIndex}, 1453 {{al, r11, r7, plus, r14, LSL, 16, PostIndex}, 1454 "al r11 r7 plus r14 LSL 16 PostIndex", 1455 "PositivePostIndex_al_r11_r7_plus_r14_LSL_16_PostIndex", 1456 ARRAY_SIZE(kPositivePostIndex), 1457 kPositivePostIndex}, 1458 {{al, r1, r4, plus, r3, ROR, 7, PostIndex}, 1459 "al r1 r4 plus r3 ROR 7 PostIndex", 1460 "PositivePostIndex_al_r1_r4_plus_r3_ROR_7_PostIndex", 1461 ARRAY_SIZE(kPositivePostIndex), 1462 kPositivePostIndex}, 1463 {{al, r3, r1, plus, r14, ROR, 3, PostIndex}, 1464 "al r3 r1 plus r14 ROR 3 PostIndex", 1465 "PositivePostIndex_al_r3_r1_plus_r14_ROR_3_PostIndex", 1466 ARRAY_SIZE(kPositivePostIndex), 1467 kPositivePostIndex}, 1468 {{al, r7, r0, plus, r4, ROR, 8, PostIndex}, 1469 "al r7 r0 plus r4 ROR 8 PostIndex", 1470 "PositivePostIndex_al_r7_r0_plus_r4_ROR_8_PostIndex", 1471 ARRAY_SIZE(kPositivePostIndex), 1472 kPositivePostIndex}, 1473 {{al, r0, r8, plus, r1, ROR, 27, PostIndex}, 1474 "al r0 r8 plus r1 ROR 27 PostIndex", 1475 "PositivePostIndex_al_r0_r8_plus_r1_ROR_27_PostIndex", 1476 ARRAY_SIZE(kPositivePostIndex), 1477 kPositivePostIndex}, 1478 {{al, r5, r4, plus, r11, LSL, 24, PostIndex}, 1479 "al r5 r4 plus r11 LSL 24 PostIndex", 1480 "PositivePostIndex_al_r5_r4_plus_r11_LSL_24_PostIndex", 1481 ARRAY_SIZE(kPositivePostIndex), 1482 kPositivePostIndex}, 1483 {{al, r8, r14, plus, r5, ROR, 12, PostIndex}, 1484 "al r8 r14 plus r5 ROR 12 PostIndex", 1485 "PositivePostIndex_al_r8_r14_plus_r5_ROR_12_PostIndex", 1486 ARRAY_SIZE(kPositivePostIndex), 1487 kPositivePostIndex}, 1488 {{al, r11, r7, plus, r5, LSL, 3, PostIndex}, 1489 "al r11 r7 plus r5 LSL 3 PostIndex", 1490 "PositivePostIndex_al_r11_r7_plus_r5_LSL_3_PostIndex", 1491 ARRAY_SIZE(kPositivePostIndex), 1492 kPositivePostIndex}, 1493 {{al, r14, r5, plus, r8, ROR, 16, PostIndex}, 1494 "al r14 r5 plus r8 ROR 16 PostIndex", 1495 "PositivePostIndex_al_r14_r5_plus_r8_ROR_16_PostIndex", 1496 ARRAY_SIZE(kPositivePostIndex), 1497 kPositivePostIndex}, 1498 {{al, r5, r7, plus, r12, ROR, 3, PostIndex}, 1499 "al r5 r7 plus r12 ROR 3 PostIndex", 1500 "PositivePostIndex_al_r5_r7_plus_r12_ROR_3_PostIndex", 1501 ARRAY_SIZE(kPositivePostIndex), 1502 kPositivePostIndex}, 1503 {{al, r8, r9, plus, r11, LSL, 15, PostIndex}, 1504 "al r8 r9 plus r11 LSL 15 PostIndex", 1505 "PositivePostIndex_al_r8_r9_plus_r11_LSL_15_PostIndex", 1506 ARRAY_SIZE(kPositivePostIndex), 1507 kPositivePostIndex}, 1508 {{al, r4, r12, plus, r3, LSL, 5, PostIndex}, 1509 "al r4 r12 plus r3 LSL 5 PostIndex", 1510 "PositivePostIndex_al_r4_r12_plus_r3_LSL_5_PostIndex", 1511 ARRAY_SIZE(kPositivePostIndex), 1512 kPositivePostIndex}, 1513 {{al, r8, r1, plus, r2, ROR, 5, PostIndex}, 1514 "al r8 r1 plus r2 ROR 5 PostIndex", 1515 "PositivePostIndex_al_r8_r1_plus_r2_ROR_5_PostIndex", 1516 ARRAY_SIZE(kPositivePostIndex), 1517 kPositivePostIndex}, 1518 {{al, r11, r7, plus, r0, LSL, 15, PostIndex}, 1519 "al r11 r7 plus r0 LSL 15 PostIndex", 1520 "PositivePostIndex_al_r11_r7_plus_r0_LSL_15_PostIndex", 1521 ARRAY_SIZE(kPositivePostIndex), 1522 kPositivePostIndex}, 1523 {{al, r6, r1, plus, r5, ROR, 6, PostIndex}, 1524 "al r6 r1 plus r5 ROR 6 PostIndex", 1525 "PositivePostIndex_al_r6_r1_plus_r5_ROR_6_PostIndex", 1526 ARRAY_SIZE(kPositivePostIndex), 1527 kPositivePostIndex}, 1528 {{al, r3, r11, plus, r4, ROR, 28, PostIndex}, 1529 "al r3 r11 plus r4 ROR 28 PostIndex", 1530 "PositivePostIndex_al_r3_r11_plus_r4_ROR_28_PostIndex", 1531 ARRAY_SIZE(kPositivePostIndex), 1532 kPositivePostIndex}, 1533 {{al, r4, r12, plus, r0, ROR, 18, PostIndex}, 1534 "al r4 r12 plus r0 ROR 18 PostIndex", 1535 "PositivePostIndex_al_r4_r12_plus_r0_ROR_18_PostIndex", 1536 ARRAY_SIZE(kPositivePostIndex), 1537 kPositivePostIndex}, 1538 {{al, r0, r4, plus, r7, LSL, 7, PostIndex}, 1539 "al r0 r4 plus r7 LSL 7 PostIndex", 1540 "PositivePostIndex_al_r0_r4_plus_r7_LSL_7_PostIndex", 1541 ARRAY_SIZE(kPositivePostIndex), 1542 kPositivePostIndex}, 1543 {{al, r9, r2, plus, r6, LSL, 21, PostIndex}, 1544 "al r9 r2 plus r6 LSL 21 PostIndex", 1545 "PositivePostIndex_al_r9_r2_plus_r6_LSL_21_PostIndex", 1546 ARRAY_SIZE(kPositivePostIndex), 1547 kPositivePostIndex}, 1548 {{al, r3, r7, plus, r9, ROR, 9, PostIndex}, 1549 "al r3 r7 plus r9 ROR 9 PostIndex", 1550 "PositivePostIndex_al_r3_r7_plus_r9_ROR_9_PostIndex", 1551 ARRAY_SIZE(kPositivePostIndex), 1552 kPositivePostIndex}, 1553 {{al, r14, r3, plus, r8, ROR, 11, PostIndex}, 1554 "al r14 r3 plus r8 ROR 11 PostIndex", 1555 "PositivePostIndex_al_r14_r3_plus_r8_ROR_11_PostIndex", 1556 ARRAY_SIZE(kPositivePostIndex), 1557 kPositivePostIndex}, 1558 {{al, r4, r12, plus, r10, LSL, 22, PostIndex}, 1559 "al r4 r12 plus r10 LSL 22 PostIndex", 1560 "PositivePostIndex_al_r4_r12_plus_r10_LSL_22_PostIndex", 1561 ARRAY_SIZE(kPositivePostIndex), 1562 kPositivePostIndex}, 1563 {{al, r7, r14, plus, r12, ROR, 21, PostIndex}, 1564 "al r7 r14 plus r12 ROR 21 PostIndex", 1565 "PositivePostIndex_al_r7_r14_plus_r12_ROR_21_PostIndex", 1566 ARRAY_SIZE(kPositivePostIndex), 1567 kPositivePostIndex}, 1568 {{al, r5, r9, plus, r0, ROR, 2, PostIndex}, 1569 "al r5 r9 plus r0 ROR 2 PostIndex", 1570 "PositivePostIndex_al_r5_r9_plus_r0_ROR_2_PostIndex", 1571 ARRAY_SIZE(kPositivePostIndex), 1572 kPositivePostIndex}, 1573 {{al, r7, r6, plus, r9, ROR, 1, PostIndex}, 1574 "al r7 r6 plus r9 ROR 1 PostIndex", 1575 "PositivePostIndex_al_r7_r6_plus_r9_ROR_1_PostIndex", 1576 ARRAY_SIZE(kPositivePostIndex), 1577 kPositivePostIndex}, 1578 {{al, r7, r12, plus, r10, ROR, 18, PostIndex}, 1579 "al r7 r12 plus r10 ROR 18 PostIndex", 1580 "PositivePostIndex_al_r7_r12_plus_r10_ROR_18_PostIndex", 1581 ARRAY_SIZE(kPositivePostIndex), 1582 kPositivePostIndex}, 1583 {{al, r1, r0, plus, r6, ROR, 18, PostIndex}, 1584 "al r1 r0 plus r6 ROR 18 PostIndex", 1585 "PositivePostIndex_al_r1_r0_plus_r6_ROR_18_PostIndex", 1586 ARRAY_SIZE(kPositivePostIndex), 1587 kPositivePostIndex}, 1588 {{al, r12, r3, plus, r14, ROR, 17, PostIndex}, 1589 "al r12 r3 plus r14 ROR 17 PostIndex", 1590 "PositivePostIndex_al_r12_r3_plus_r14_ROR_17_PostIndex", 1591 ARRAY_SIZE(kPositivePostIndex), 1592 kPositivePostIndex}, 1593 {{al, r11, r5, plus, r0, ROR, 18, PostIndex}, 1594 "al r11 r5 plus r0 ROR 18 PostIndex", 1595 "PositivePostIndex_al_r11_r5_plus_r0_ROR_18_PostIndex", 1596 ARRAY_SIZE(kPositivePostIndex), 1597 kPositivePostIndex}, 1598 {{al, r11, r4, plus, r5, ROR, 14, PostIndex}, 1599 "al r11 r4 plus r5 ROR 14 PostIndex", 1600 "PositivePostIndex_al_r11_r4_plus_r5_ROR_14_PostIndex", 1601 ARRAY_SIZE(kPositivePostIndex), 1602 kPositivePostIndex}, 1603 {{al, r6, r4, plus, r9, LSL, 4, PostIndex}, 1604 "al r6 r4 plus r9 LSL 4 PostIndex", 1605 "PositivePostIndex_al_r6_r4_plus_r9_LSL_4_PostIndex", 1606 ARRAY_SIZE(kPositivePostIndex), 1607 kPositivePostIndex}, 1608 {{al, r0, r1, plus, r12, ROR, 26, PostIndex}, 1609 "al r0 r1 plus r12 ROR 26 PostIndex", 1610 "PositivePostIndex_al_r0_r1_plus_r12_ROR_26_PostIndex", 1611 ARRAY_SIZE(kPositivePostIndex), 1612 kPositivePostIndex}, 1613 {{al, r2, r8, plus, r12, LSL, 23, PostIndex}, 1614 "al r2 r8 plus r12 LSL 23 PostIndex", 1615 "PositivePostIndex_al_r2_r8_plus_r12_LSL_23_PostIndex", 1616 ARRAY_SIZE(kPositivePostIndex), 1617 kPositivePostIndex}, 1618 {{al, r1, r4, plus, r10, ROR, 22, PostIndex}, 1619 "al r1 r4 plus r10 ROR 22 PostIndex", 1620 "PositivePostIndex_al_r1_r4_plus_r10_ROR_22_PostIndex", 1621 ARRAY_SIZE(kPositivePostIndex), 1622 kPositivePostIndex}, 1623 {{al, r0, r2, plus, r6, ROR, 24, PostIndex}, 1624 "al r0 r2 plus r6 ROR 24 PostIndex", 1625 "PositivePostIndex_al_r0_r2_plus_r6_ROR_24_PostIndex", 1626 ARRAY_SIZE(kPositivePostIndex), 1627 kPositivePostIndex}, 1628 {{al, r2, r12, plus, r3, ROR, 1, PostIndex}, 1629 "al r2 r12 plus r3 ROR 1 PostIndex", 1630 "PositivePostIndex_al_r2_r12_plus_r3_ROR_1_PostIndex", 1631 ARRAY_SIZE(kPositivePostIndex), 1632 kPositivePostIndex}, 1633 {{al, r14, r5, plus, r7, ROR, 6, PostIndex}, 1634 "al r14 r5 plus r7 ROR 6 PostIndex", 1635 "PositivePostIndex_al_r14_r5_plus_r7_ROR_6_PostIndex", 1636 ARRAY_SIZE(kPositivePostIndex), 1637 kPositivePostIndex}, 1638 {{al, r12, r6, plus, r3, LSL, 14, PostIndex}, 1639 "al r12 r6 plus r3 LSL 14 PostIndex", 1640 "PositivePostIndex_al_r12_r6_plus_r3_LSL_14_PostIndex", 1641 ARRAY_SIZE(kPositivePostIndex), 1642 kPositivePostIndex}, 1643 {{al, r1, r11, plus, r7, ROR, 18, PostIndex}, 1644 "al r1 r11 plus r7 ROR 18 PostIndex", 1645 "PositivePostIndex_al_r1_r11_plus_r7_ROR_18_PostIndex", 1646 ARRAY_SIZE(kPositivePostIndex), 1647 kPositivePostIndex}, 1648 {{al, r5, r8, plus, r3, LSL, 18, PostIndex}, 1649 "al r5 r8 plus r3 LSL 18 PostIndex", 1650 "PositivePostIndex_al_r5_r8_plus_r3_LSL_18_PostIndex", 1651 ARRAY_SIZE(kPositivePostIndex), 1652 kPositivePostIndex}, 1653 {{al, r8, r12, plus, r0, ROR, 26, PostIndex}, 1654 "al r8 r12 plus r0 ROR 26 PostIndex", 1655 "PositivePostIndex_al_r8_r12_plus_r0_ROR_26_PostIndex", 1656 ARRAY_SIZE(kPositivePostIndex), 1657 kPositivePostIndex}, 1658 {{al, r14, r6, plus, r11, LSL, 22, PostIndex}, 1659 "al r14 r6 plus r11 LSL 22 PostIndex", 1660 "PositivePostIndex_al_r14_r6_plus_r11_LSL_22_PostIndex", 1661 ARRAY_SIZE(kPositivePostIndex), 1662 kPositivePostIndex}, 1663 {{al, r7, r3, plus, r11, LSL, 15, PostIndex}, 1664 "al r7 r3 plus r11 LSL 15 PostIndex", 1665 "PositivePostIndex_al_r7_r3_plus_r11_LSL_15_PostIndex", 1666 ARRAY_SIZE(kPositivePostIndex), 1667 kPositivePostIndex}, 1668 {{al, r0, r8, plus, r4, LSL, 28, PostIndex}, 1669 "al r0 r8 plus r4 LSL 28 PostIndex", 1670 "PositivePostIndex_al_r0_r8_plus_r4_LSL_28_PostIndex", 1671 ARRAY_SIZE(kPositivePostIndex), 1672 kPositivePostIndex}, 1673 {{al, r7, r8, plus, r4, LSL, 28, PostIndex}, 1674 "al r7 r8 plus r4 LSL 28 PostIndex", 1675 "PositivePostIndex_al_r7_r8_plus_r4_LSL_28_PostIndex", 1676 ARRAY_SIZE(kPositivePostIndex), 1677 kPositivePostIndex}, 1678 {{al, r5, r4, plus, r14, LSL, 17, PostIndex}, 1679 "al r5 r4 plus r14 LSL 17 PostIndex", 1680 "PositivePostIndex_al_r5_r4_plus_r14_LSL_17_PostIndex", 1681 ARRAY_SIZE(kPositivePostIndex), 1682 kPositivePostIndex}, 1683 {{al, r2, r8, plus, r3, LSL, 1, PostIndex}, 1684 "al r2 r8 plus r3 LSL 1 PostIndex", 1685 "PositivePostIndex_al_r2_r8_plus_r3_LSL_1_PostIndex", 1686 ARRAY_SIZE(kPositivePostIndex), 1687 kPositivePostIndex}, 1688 {{al, r9, r3, plus, r4, ROR, 5, PostIndex}, 1689 "al r9 r3 plus r4 ROR 5 PostIndex", 1690 "PositivePostIndex_al_r9_r3_plus_r4_ROR_5_PostIndex", 1691 ARRAY_SIZE(kPositivePostIndex), 1692 kPositivePostIndex}, 1693 {{al, r5, r11, plus, r3, ROR, 26, PostIndex}, 1694 "al r5 r11 plus r3 ROR 26 PostIndex", 1695 "PositivePostIndex_al_r5_r11_plus_r3_ROR_26_PostIndex", 1696 ARRAY_SIZE(kPositivePostIndex), 1697 kPositivePostIndex}, 1698 {{al, r3, r6, plus, r11, ROR, 9, PostIndex}, 1699 "al r3 r6 plus r11 ROR 9 PostIndex", 1700 "PositivePostIndex_al_r3_r6_plus_r11_ROR_9_PostIndex", 1701 ARRAY_SIZE(kPositivePostIndex), 1702 kPositivePostIndex}, 1703 {{al, r3, r6, plus, r9, ROR, 24, PostIndex}, 1704 "al r3 r6 plus r9 ROR 24 PostIndex", 1705 "PositivePostIndex_al_r3_r6_plus_r9_ROR_24_PostIndex", 1706 ARRAY_SIZE(kPositivePostIndex), 1707 kPositivePostIndex}, 1708 {{al, r7, r4, plus, r11, LSL, 1, PostIndex}, 1709 "al r7 r4 plus r11 LSL 1 PostIndex", 1710 "PositivePostIndex_al_r7_r4_plus_r11_LSL_1_PostIndex", 1711 ARRAY_SIZE(kPositivePostIndex), 1712 kPositivePostIndex}, 1713 {{al, r2, r11, plus, r8, LSL, 17, PostIndex}, 1714 "al r2 r11 plus r8 LSL 17 PostIndex", 1715 "PositivePostIndex_al_r2_r11_plus_r8_LSL_17_PostIndex", 1716 ARRAY_SIZE(kPositivePostIndex), 1717 kPositivePostIndex}, 1718 {{al, r6, r10, plus, r7, ROR, 26, PostIndex}, 1719 "al r6 r10 plus r7 ROR 26 PostIndex", 1720 "PositivePostIndex_al_r6_r10_plus_r7_ROR_26_PostIndex", 1721 ARRAY_SIZE(kPositivePostIndex), 1722 kPositivePostIndex}, 1723 {{al, r4, r0, plus, r11, ROR, 5, PostIndex}, 1724 "al r4 r0 plus r11 ROR 5 PostIndex", 1725 "PositivePostIndex_al_r4_r0_plus_r11_ROR_5_PostIndex", 1726 ARRAY_SIZE(kPositivePostIndex), 1727 kPositivePostIndex}, 1728 {{al, r1, r10, plus, r7, ROR, 26, PostIndex}, 1729 "al r1 r10 plus r7 ROR 26 PostIndex", 1730 "PositivePostIndex_al_r1_r10_plus_r7_ROR_26_PostIndex", 1731 ARRAY_SIZE(kPositivePostIndex), 1732 kPositivePostIndex}, 1733 {{al, r9, r5, plus, r12, LSL, 20, PostIndex}, 1734 "al r9 r5 plus r12 LSL 20 PostIndex", 1735 "PositivePostIndex_al_r9_r5_plus_r12_LSL_20_PostIndex", 1736 ARRAY_SIZE(kPositivePostIndex), 1737 kPositivePostIndex}, 1738 {{al, r8, r12, plus, r10, ROR, 28, PostIndex}, 1739 "al r8 r12 plus r10 ROR 28 PostIndex", 1740 "PositivePostIndex_al_r8_r12_plus_r10_ROR_28_PostIndex", 1741 ARRAY_SIZE(kPositivePostIndex), 1742 kPositivePostIndex}, 1743 {{al, r4, r8, plus, r0, LSL, 14, PostIndex}, 1744 "al r4 r8 plus r0 LSL 14 PostIndex", 1745 "PositivePostIndex_al_r4_r8_plus_r0_LSL_14_PostIndex", 1746 ARRAY_SIZE(kPositivePostIndex), 1747 kPositivePostIndex}, 1748 {{al, r14, r12, plus, r8, ROR, 2, PostIndex}, 1749 "al r14 r12 plus r8 ROR 2 PostIndex", 1750 "PositivePostIndex_al_r14_r12_plus_r8_ROR_2_PostIndex", 1751 ARRAY_SIZE(kPositivePostIndex), 1752 kPositivePostIndex}, 1753 {{al, r12, r7, plus, r0, LSL, 17, PostIndex}, 1754 "al r12 r7 plus r0 LSL 17 PostIndex", 1755 "PositivePostIndex_al_r12_r7_plus_r0_LSL_17_PostIndex", 1756 ARRAY_SIZE(kPositivePostIndex), 1757 kPositivePostIndex}, 1758 {{al, r1, r6, plus, r14, ROR, 19, PostIndex}, 1759 "al r1 r6 plus r14 ROR 19 PostIndex", 1760 "PositivePostIndex_al_r1_r6_plus_r14_ROR_19_PostIndex", 1761 ARRAY_SIZE(kPositivePostIndex), 1762 kPositivePostIndex}, 1763 {{al, r9, r11, plus, r6, LSL, 10, PostIndex}, 1764 "al r9 r11 plus r6 LSL 10 PostIndex", 1765 "PositivePostIndex_al_r9_r11_plus_r6_LSL_10_PostIndex", 1766 ARRAY_SIZE(kPositivePostIndex), 1767 kPositivePostIndex}, 1768 {{al, r0, r2, plus, r12, ROR, 12, PostIndex}, 1769 "al r0 r2 plus r12 ROR 12 PostIndex", 1770 "PositivePostIndex_al_r0_r2_plus_r12_ROR_12_PostIndex", 1771 ARRAY_SIZE(kPositivePostIndex), 1772 kPositivePostIndex}, 1773 {{al, r9, r2, plus, r12, LSL, 31, PostIndex}, 1774 "al r9 r2 plus r12 LSL 31 PostIndex", 1775 "PositivePostIndex_al_r9_r2_plus_r12_LSL_31_PostIndex", 1776 ARRAY_SIZE(kPositivePostIndex), 1777 kPositivePostIndex}, 1778 {{al, r10, r4, plus, r7, LSL, 31, PostIndex}, 1779 "al r10 r4 plus r7 LSL 31 PostIndex", 1780 "PositivePostIndex_al_r10_r4_plus_r7_LSL_31_PostIndex", 1781 ARRAY_SIZE(kPositivePostIndex), 1782 kPositivePostIndex}, 1783 {{al, r3, r7, plus, r5, ROR, 29, PostIndex}, 1784 "al r3 r7 plus r5 ROR 29 PostIndex", 1785 "PositivePostIndex_al_r3_r7_plus_r5_ROR_29_PostIndex", 1786 ARRAY_SIZE(kPositivePostIndex), 1787 kPositivePostIndex}, 1788 {{al, r1, r3, plus, r8, ROR, 12, PostIndex}, 1789 "al r1 r3 plus r8 ROR 12 PostIndex", 1790 "PositivePostIndex_al_r1_r3_plus_r8_ROR_12_PostIndex", 1791 ARRAY_SIZE(kPositivePostIndex), 1792 kPositivePostIndex}, 1793 {{al, r9, r11, plus, r3, ROR, 23, PostIndex}, 1794 "al r9 r11 plus r3 ROR 23 PostIndex", 1795 "PositivePostIndex_al_r9_r11_plus_r3_ROR_23_PostIndex", 1796 ARRAY_SIZE(kPositivePostIndex), 1797 kPositivePostIndex}, 1798 {{al, r11, r3, plus, r8, LSL, 20, PostIndex}, 1799 "al r11 r3 plus r8 LSL 20 PostIndex", 1800 "PositivePostIndex_al_r11_r3_plus_r8_LSL_20_PostIndex", 1801 ARRAY_SIZE(kPositivePostIndex), 1802 kPositivePostIndex}, 1803 {{al, r11, r2, plus, r10, LSL, 17, PostIndex}, 1804 "al r11 r2 plus r10 LSL 17 PostIndex", 1805 "PositivePostIndex_al_r11_r2_plus_r10_LSL_17_PostIndex", 1806 ARRAY_SIZE(kPositivePostIndex), 1807 kPositivePostIndex}, 1808 {{al, r2, r3, plus, r7, LSL, 5, PostIndex}, 1809 "al r2 r3 plus r7 LSL 5 PostIndex", 1810 "PositivePostIndex_al_r2_r3_plus_r7_LSL_5_PostIndex", 1811 ARRAY_SIZE(kPositivePostIndex), 1812 kPositivePostIndex}, 1813 {{al, r14, r2, plus, r12, ROR, 26, PostIndex}, 1814 "al r14 r2 plus r12 ROR 26 PostIndex", 1815 "PositivePostIndex_al_r14_r2_plus_r12_ROR_26_PostIndex", 1816 ARRAY_SIZE(kPositivePostIndex), 1817 kPositivePostIndex}, 1818 {{al, r12, r4, plus, r0, ROR, 18, PostIndex}, 1819 "al r12 r4 plus r0 ROR 18 PostIndex", 1820 "PositivePostIndex_al_r12_r4_plus_r0_ROR_18_PostIndex", 1821 ARRAY_SIZE(kPositivePostIndex), 1822 kPositivePostIndex}, 1823 {{al, r4, r8, plus, r14, LSL, 15, PostIndex}, 1824 "al r4 r8 plus r14 LSL 15 PostIndex", 1825 "PositivePostIndex_al_r4_r8_plus_r14_LSL_15_PostIndex", 1826 ARRAY_SIZE(kPositivePostIndex), 1827 kPositivePostIndex}, 1828 {{al, r6, r7, plus, r2, ROR, 25, PostIndex}, 1829 "al r6 r7 plus r2 ROR 25 PostIndex", 1830 "PositivePostIndex_al_r6_r7_plus_r2_ROR_25_PostIndex", 1831 ARRAY_SIZE(kPositivePostIndex), 1832 kPositivePostIndex}, 1833 {{al, r11, r4, minus, r2, ROR, 11, PostIndex}, 1834 "al r11 r4 minus r2 ROR 11 PostIndex", 1835 "NegativePostIndex_al_r11_r4_minus_r2_ROR_11_PostIndex", 1836 ARRAY_SIZE(kNegativePostIndex), 1837 kNegativePostIndex}, 1838 {{al, r5, r11, minus, r12, ROR, 8, PostIndex}, 1839 "al r5 r11 minus r12 ROR 8 PostIndex", 1840 "NegativePostIndex_al_r5_r11_minus_r12_ROR_8_PostIndex", 1841 ARRAY_SIZE(kNegativePostIndex), 1842 kNegativePostIndex}, 1843 {{al, r4, r6, minus, r0, ROR, 26, PostIndex}, 1844 "al r4 r6 minus r0 ROR 26 PostIndex", 1845 "NegativePostIndex_al_r4_r6_minus_r0_ROR_26_PostIndex", 1846 ARRAY_SIZE(kNegativePostIndex), 1847 kNegativePostIndex}, 1848 {{al, r11, r8, minus, r0, LSL, 12, PostIndex}, 1849 "al r11 r8 minus r0 LSL 12 PostIndex", 1850 "NegativePostIndex_al_r11_r8_minus_r0_LSL_12_PostIndex", 1851 ARRAY_SIZE(kNegativePostIndex), 1852 kNegativePostIndex}, 1853 {{al, r2, r7, minus, r3, ROR, 10, PostIndex}, 1854 "al r2 r7 minus r3 ROR 10 PostIndex", 1855 "NegativePostIndex_al_r2_r7_minus_r3_ROR_10_PostIndex", 1856 ARRAY_SIZE(kNegativePostIndex), 1857 kNegativePostIndex}, 1858 {{al, r2, r14, minus, r8, LSL, 19, PostIndex}, 1859 "al r2 r14 minus r8 LSL 19 PostIndex", 1860 "NegativePostIndex_al_r2_r14_minus_r8_LSL_19_PostIndex", 1861 ARRAY_SIZE(kNegativePostIndex), 1862 kNegativePostIndex}, 1863 {{al, r9, r3, minus, r6, ROR, 23, PostIndex}, 1864 "al r9 r3 minus r6 ROR 23 PostIndex", 1865 "NegativePostIndex_al_r9_r3_minus_r6_ROR_23_PostIndex", 1866 ARRAY_SIZE(kNegativePostIndex), 1867 kNegativePostIndex}, 1868 {{al, r6, r5, minus, r14, LSL, 18, PostIndex}, 1869 "al r6 r5 minus r14 LSL 18 PostIndex", 1870 "NegativePostIndex_al_r6_r5_minus_r14_LSL_18_PostIndex", 1871 ARRAY_SIZE(kNegativePostIndex), 1872 kNegativePostIndex}, 1873 {{al, r12, r0, minus, r9, ROR, 13, PostIndex}, 1874 "al r12 r0 minus r9 ROR 13 PostIndex", 1875 "NegativePostIndex_al_r12_r0_minus_r9_ROR_13_PostIndex", 1876 ARRAY_SIZE(kNegativePostIndex), 1877 kNegativePostIndex}, 1878 {{al, r3, r12, minus, r6, LSL, 30, PostIndex}, 1879 "al r3 r12 minus r6 LSL 30 PostIndex", 1880 "NegativePostIndex_al_r3_r12_minus_r6_LSL_30_PostIndex", 1881 ARRAY_SIZE(kNegativePostIndex), 1882 kNegativePostIndex}, 1883 {{al, r5, r9, minus, r3, LSL, 21, PostIndex}, 1884 "al r5 r9 minus r3 LSL 21 PostIndex", 1885 "NegativePostIndex_al_r5_r9_minus_r3_LSL_21_PostIndex", 1886 ARRAY_SIZE(kNegativePostIndex), 1887 kNegativePostIndex}, 1888 {{al, r8, r5, minus, r4, LSL, 28, PostIndex}, 1889 "al r8 r5 minus r4 LSL 28 PostIndex", 1890 "NegativePostIndex_al_r8_r5_minus_r4_LSL_28_PostIndex", 1891 ARRAY_SIZE(kNegativePostIndex), 1892 kNegativePostIndex}, 1893 {{al, r1, r6, minus, r2, ROR, 9, PostIndex}, 1894 "al r1 r6 minus r2 ROR 9 PostIndex", 1895 "NegativePostIndex_al_r1_r6_minus_r2_ROR_9_PostIndex", 1896 ARRAY_SIZE(kNegativePostIndex), 1897 kNegativePostIndex}, 1898 {{al, r14, r6, minus, r2, ROR, 24, PostIndex}, 1899 "al r14 r6 minus r2 ROR 24 PostIndex", 1900 "NegativePostIndex_al_r14_r6_minus_r2_ROR_24_PostIndex", 1901 ARRAY_SIZE(kNegativePostIndex), 1902 kNegativePostIndex}, 1903 {{al, r5, r12, minus, r11, ROR, 14, PostIndex}, 1904 "al r5 r12 minus r11 ROR 14 PostIndex", 1905 "NegativePostIndex_al_r5_r12_minus_r11_ROR_14_PostIndex", 1906 ARRAY_SIZE(kNegativePostIndex), 1907 kNegativePostIndex}, 1908 {{al, r0, r6, minus, r5, ROR, 20, PostIndex}, 1909 "al r0 r6 minus r5 ROR 20 PostIndex", 1910 "NegativePostIndex_al_r0_r6_minus_r5_ROR_20_PostIndex", 1911 ARRAY_SIZE(kNegativePostIndex), 1912 kNegativePostIndex}, 1913 {{al, r8, r3, minus, r7, ROR, 12, PostIndex}, 1914 "al r8 r3 minus r7 ROR 12 PostIndex", 1915 "NegativePostIndex_al_r8_r3_minus_r7_ROR_12_PostIndex", 1916 ARRAY_SIZE(kNegativePostIndex), 1917 kNegativePostIndex}, 1918 {{al, r6, r3, minus, r4, ROR, 16, PostIndex}, 1919 "al r6 r3 minus r4 ROR 16 PostIndex", 1920 "NegativePostIndex_al_r6_r3_minus_r4_ROR_16_PostIndex", 1921 ARRAY_SIZE(kNegativePostIndex), 1922 kNegativePostIndex}, 1923 {{al, r6, r10, minus, r5, ROR, 28, PostIndex}, 1924 "al r6 r10 minus r5 ROR 28 PostIndex", 1925 "NegativePostIndex_al_r6_r10_minus_r5_ROR_28_PostIndex", 1926 ARRAY_SIZE(kNegativePostIndex), 1927 kNegativePostIndex}, 1928 {{al, r0, r4, minus, r6, LSL, 25, PostIndex}, 1929 "al r0 r4 minus r6 LSL 25 PostIndex", 1930 "NegativePostIndex_al_r0_r4_minus_r6_LSL_25_PostIndex", 1931 ARRAY_SIZE(kNegativePostIndex), 1932 kNegativePostIndex}, 1933 {{al, r12, r1, minus, r9, ROR, 27, PostIndex}, 1934 "al r12 r1 minus r9 ROR 27 PostIndex", 1935 "NegativePostIndex_al_r12_r1_minus_r9_ROR_27_PostIndex", 1936 ARRAY_SIZE(kNegativePostIndex), 1937 kNegativePostIndex}, 1938 {{al, r12, r3, minus, r14, LSL, 30, PostIndex}, 1939 "al r12 r3 minus r14 LSL 30 PostIndex", 1940 "NegativePostIndex_al_r12_r3_minus_r14_LSL_30_PostIndex", 1941 ARRAY_SIZE(kNegativePostIndex), 1942 kNegativePostIndex}, 1943 {{al, r4, r0, minus, r2, LSL, 9, PostIndex}, 1944 "al r4 r0 minus r2 LSL 9 PostIndex", 1945 "NegativePostIndex_al_r4_r0_minus_r2_LSL_9_PostIndex", 1946 ARRAY_SIZE(kNegativePostIndex), 1947 kNegativePostIndex}, 1948 {{al, r12, r0, minus, r2, LSL, 20, PostIndex}, 1949 "al r12 r0 minus r2 LSL 20 PostIndex", 1950 "NegativePostIndex_al_r12_r0_minus_r2_LSL_20_PostIndex", 1951 ARRAY_SIZE(kNegativePostIndex), 1952 kNegativePostIndex}, 1953 {{al, r7, r3, minus, r5, ROR, 17, PostIndex}, 1954 "al r7 r3 minus r5 ROR 17 PostIndex", 1955 "NegativePostIndex_al_r7_r3_minus_r5_ROR_17_PostIndex", 1956 ARRAY_SIZE(kNegativePostIndex), 1957 kNegativePostIndex}, 1958 {{al, r11, r14, minus, r12, LSL, 13, PostIndex}, 1959 "al r11 r14 minus r12 LSL 13 PostIndex", 1960 "NegativePostIndex_al_r11_r14_minus_r12_LSL_13_PostIndex", 1961 ARRAY_SIZE(kNegativePostIndex), 1962 kNegativePostIndex}, 1963 {{al, r1, r8, minus, r10, LSL, 6, PostIndex}, 1964 "al r1 r8 minus r10 LSL 6 PostIndex", 1965 "NegativePostIndex_al_r1_r8_minus_r10_LSL_6_PostIndex", 1966 ARRAY_SIZE(kNegativePostIndex), 1967 kNegativePostIndex}, 1968 {{al, r3, r5, minus, r0, ROR, 20, PostIndex}, 1969 "al r3 r5 minus r0 ROR 20 PostIndex", 1970 "NegativePostIndex_al_r3_r5_minus_r0_ROR_20_PostIndex", 1971 ARRAY_SIZE(kNegativePostIndex), 1972 kNegativePostIndex}, 1973 {{al, r0, r10, minus, r7, LSL, 5, PostIndex}, 1974 "al r0 r10 minus r7 LSL 5 PostIndex", 1975 "NegativePostIndex_al_r0_r10_minus_r7_LSL_5_PostIndex", 1976 ARRAY_SIZE(kNegativePostIndex), 1977 kNegativePostIndex}, 1978 {{al, r11, r4, minus, r3, LSL, 21, PostIndex}, 1979 "al r11 r4 minus r3 LSL 21 PostIndex", 1980 "NegativePostIndex_al_r11_r4_minus_r3_LSL_21_PostIndex", 1981 ARRAY_SIZE(kNegativePostIndex), 1982 kNegativePostIndex}, 1983 {{al, r5, r0, minus, r4, ROR, 2, PostIndex}, 1984 "al r5 r0 minus r4 ROR 2 PostIndex", 1985 "NegativePostIndex_al_r5_r0_minus_r4_ROR_2_PostIndex", 1986 ARRAY_SIZE(kNegativePostIndex), 1987 kNegativePostIndex}, 1988 {{al, r2, r5, minus, r7, LSL, 4, PostIndex}, 1989 "al r2 r5 minus r7 LSL 4 PostIndex", 1990 "NegativePostIndex_al_r2_r5_minus_r7_LSL_4_PostIndex", 1991 ARRAY_SIZE(kNegativePostIndex), 1992 kNegativePostIndex}, 1993 {{al, r4, r8, minus, r2, LSL, 12, PostIndex}, 1994 "al r4 r8 minus r2 LSL 12 PostIndex", 1995 "NegativePostIndex_al_r4_r8_minus_r2_LSL_12_PostIndex", 1996 ARRAY_SIZE(kNegativePostIndex), 1997 kNegativePostIndex}, 1998 {{al, r4, r2, minus, r10, LSL, 12, PostIndex}, 1999 "al r4 r2 minus r10 LSL 12 PostIndex", 2000 "NegativePostIndex_al_r4_r2_minus_r10_LSL_12_PostIndex", 2001 ARRAY_SIZE(kNegativePostIndex), 2002 kNegativePostIndex}, 2003 {{al, r2, r1, minus, r4, LSL, 8, PostIndex}, 2004 "al r2 r1 minus r4 LSL 8 PostIndex", 2005 "NegativePostIndex_al_r2_r1_minus_r4_LSL_8_PostIndex", 2006 ARRAY_SIZE(kNegativePostIndex), 2007 kNegativePostIndex}, 2008 {{al, r1, r12, minus, r5, LSL, 18, PostIndex}, 2009 "al r1 r12 minus r5 LSL 18 PostIndex", 2010 "NegativePostIndex_al_r1_r12_minus_r5_LSL_18_PostIndex", 2011 ARRAY_SIZE(kNegativePostIndex), 2012 kNegativePostIndex}, 2013 {{al, r5, r12, minus, r3, LSL, 30, PostIndex}, 2014 "al r5 r12 minus r3 LSL 30 PostIndex", 2015 "NegativePostIndex_al_r5_r12_minus_r3_LSL_30_PostIndex", 2016 ARRAY_SIZE(kNegativePostIndex), 2017 kNegativePostIndex}, 2018 {{al, r1, r8, minus, r12, LSL, 27, PostIndex}, 2019 "al r1 r8 minus r12 LSL 27 PostIndex", 2020 "NegativePostIndex_al_r1_r8_minus_r12_LSL_27_PostIndex", 2021 ARRAY_SIZE(kNegativePostIndex), 2022 kNegativePostIndex}, 2023 {{al, r12, r8, minus, r5, LSL, 17, PostIndex}, 2024 "al r12 r8 minus r5 LSL 17 PostIndex", 2025 "NegativePostIndex_al_r12_r8_minus_r5_LSL_17_PostIndex", 2026 ARRAY_SIZE(kNegativePostIndex), 2027 kNegativePostIndex}, 2028 {{al, r10, r8, minus, r9, LSL, 22, PostIndex}, 2029 "al r10 r8 minus r9 LSL 22 PostIndex", 2030 "NegativePostIndex_al_r10_r8_minus_r9_LSL_22_PostIndex", 2031 ARRAY_SIZE(kNegativePostIndex), 2032 kNegativePostIndex}, 2033 {{al, r4, r1, minus, r2, LSL, 5, PostIndex}, 2034 "al r4 r1 minus r2 LSL 5 PostIndex", 2035 "NegativePostIndex_al_r4_r1_minus_r2_LSL_5_PostIndex", 2036 ARRAY_SIZE(kNegativePostIndex), 2037 kNegativePostIndex}, 2038 {{al, r6, r1, minus, r9, LSL, 21, PostIndex}, 2039 "al r6 r1 minus r9 LSL 21 PostIndex", 2040 "NegativePostIndex_al_r6_r1_minus_r9_LSL_21_PostIndex", 2041 ARRAY_SIZE(kNegativePostIndex), 2042 kNegativePostIndex}, 2043 {{al, r3, r1, minus, r12, LSL, 29, PostIndex}, 2044 "al r3 r1 minus r12 LSL 29 PostIndex", 2045 "NegativePostIndex_al_r3_r1_minus_r12_LSL_29_PostIndex", 2046 ARRAY_SIZE(kNegativePostIndex), 2047 kNegativePostIndex}, 2048 {{al, r0, r4, minus, r9, ROR, 19, PostIndex}, 2049 "al r0 r4 minus r9 ROR 19 PostIndex", 2050 "NegativePostIndex_al_r0_r4_minus_r9_ROR_19_PostIndex", 2051 ARRAY_SIZE(kNegativePostIndex), 2052 kNegativePostIndex}, 2053 {{al, r7, r14, minus, r1, ROR, 11, PostIndex}, 2054 "al r7 r14 minus r1 ROR 11 PostIndex", 2055 "NegativePostIndex_al_r7_r14_minus_r1_ROR_11_PostIndex", 2056 ARRAY_SIZE(kNegativePostIndex), 2057 kNegativePostIndex}, 2058 {{al, r4, r10, minus, r12, ROR, 1, PostIndex}, 2059 "al r4 r10 minus r12 ROR 1 PostIndex", 2060 "NegativePostIndex_al_r4_r10_minus_r12_ROR_1_PostIndex", 2061 ARRAY_SIZE(kNegativePostIndex), 2062 kNegativePostIndex}, 2063 {{al, r0, r11, minus, r5, LSL, 25, PostIndex}, 2064 "al r0 r11 minus r5 LSL 25 PostIndex", 2065 "NegativePostIndex_al_r0_r11_minus_r5_LSL_25_PostIndex", 2066 ARRAY_SIZE(kNegativePostIndex), 2067 kNegativePostIndex}, 2068 {{al, r6, r4, minus, r9, ROR, 5, PostIndex}, 2069 "al r6 r4 minus r9 ROR 5 PostIndex", 2070 "NegativePostIndex_al_r6_r4_minus_r9_ROR_5_PostIndex", 2071 ARRAY_SIZE(kNegativePostIndex), 2072 kNegativePostIndex}, 2073 {{al, r9, r6, minus, r4, ROR, 11, PostIndex}, 2074 "al r9 r6 minus r4 ROR 11 PostIndex", 2075 "NegativePostIndex_al_r9_r6_minus_r4_ROR_11_PostIndex", 2076 ARRAY_SIZE(kNegativePostIndex), 2077 kNegativePostIndex}, 2078 {{al, r6, r12, minus, r4, LSL, 25, PostIndex}, 2079 "al r6 r12 minus r4 LSL 25 PostIndex", 2080 "NegativePostIndex_al_r6_r12_minus_r4_LSL_25_PostIndex", 2081 ARRAY_SIZE(kNegativePostIndex), 2082 kNegativePostIndex}, 2083 {{al, r7, r12, minus, r0, ROR, 27, PostIndex}, 2084 "al r7 r12 minus r0 ROR 27 PostIndex", 2085 "NegativePostIndex_al_r7_r12_minus_r0_ROR_27_PostIndex", 2086 ARRAY_SIZE(kNegativePostIndex), 2087 kNegativePostIndex}, 2088 {{al, r4, r14, minus, r11, LSL, 24, PostIndex}, 2089 "al r4 r14 minus r11 LSL 24 PostIndex", 2090 "NegativePostIndex_al_r4_r14_minus_r11_LSL_24_PostIndex", 2091 ARRAY_SIZE(kNegativePostIndex), 2092 kNegativePostIndex}, 2093 {{al, r7, r8, minus, r12, ROR, 4, PostIndex}, 2094 "al r7 r8 minus r12 ROR 4 PostIndex", 2095 "NegativePostIndex_al_r7_r8_minus_r12_ROR_4_PostIndex", 2096 ARRAY_SIZE(kNegativePostIndex), 2097 kNegativePostIndex}, 2098 {{al, r2, r10, minus, r6, ROR, 1, PostIndex}, 2099 "al r2 r10 minus r6 ROR 1 PostIndex", 2100 "NegativePostIndex_al_r2_r10_minus_r6_ROR_1_PostIndex", 2101 ARRAY_SIZE(kNegativePostIndex), 2102 kNegativePostIndex}, 2103 {{al, r14, r8, minus, r7, LSL, 4, PostIndex}, 2104 "al r14 r8 minus r7 LSL 4 PostIndex", 2105 "NegativePostIndex_al_r14_r8_minus_r7_LSL_4_PostIndex", 2106 ARRAY_SIZE(kNegativePostIndex), 2107 kNegativePostIndex}, 2108 {{al, r12, r6, minus, r14, ROR, 8, PostIndex}, 2109 "al r12 r6 minus r14 ROR 8 PostIndex", 2110 "NegativePostIndex_al_r12_r6_minus_r14_ROR_8_PostIndex", 2111 ARRAY_SIZE(kNegativePostIndex), 2112 kNegativePostIndex}, 2113 {{al, r7, r8, minus, r5, ROR, 27, PostIndex}, 2114 "al r7 r8 minus r5 ROR 27 PostIndex", 2115 "NegativePostIndex_al_r7_r8_minus_r5_ROR_27_PostIndex", 2116 ARRAY_SIZE(kNegativePostIndex), 2117 kNegativePostIndex}, 2118 {{al, r3, r2, minus, r10, LSL, 8, PostIndex}, 2119 "al r3 r2 minus r10 LSL 8 PostIndex", 2120 "NegativePostIndex_al_r3_r2_minus_r10_LSL_8_PostIndex", 2121 ARRAY_SIZE(kNegativePostIndex), 2122 kNegativePostIndex}, 2123 {{al, r4, r9, minus, r3, ROR, 11, PostIndex}, 2124 "al r4 r9 minus r3 ROR 11 PostIndex", 2125 "NegativePostIndex_al_r4_r9_minus_r3_ROR_11_PostIndex", 2126 ARRAY_SIZE(kNegativePostIndex), 2127 kNegativePostIndex}, 2128 {{al, r11, r1, minus, r4, LSL, 9, PostIndex}, 2129 "al r11 r1 minus r4 LSL 9 PostIndex", 2130 "NegativePostIndex_al_r11_r1_minus_r4_LSL_9_PostIndex", 2131 ARRAY_SIZE(kNegativePostIndex), 2132 kNegativePostIndex}, 2133 {{al, r8, r5, minus, r7, ROR, 17, PostIndex}, 2134 "al r8 r5 minus r7 ROR 17 PostIndex", 2135 "NegativePostIndex_al_r8_r5_minus_r7_ROR_17_PostIndex", 2136 ARRAY_SIZE(kNegativePostIndex), 2137 kNegativePostIndex}, 2138 {{al, r6, r5, minus, r8, LSL, 18, PostIndex}, 2139 "al r6 r5 minus r8 LSL 18 PostIndex", 2140 "NegativePostIndex_al_r6_r5_minus_r8_LSL_18_PostIndex", 2141 ARRAY_SIZE(kNegativePostIndex), 2142 kNegativePostIndex}, 2143 {{al, r4, r7, minus, r6, LSL, 16, PostIndex}, 2144 "al r4 r7 minus r6 LSL 16 PostIndex", 2145 "NegativePostIndex_al_r4_r7_minus_r6_LSL_16_PostIndex", 2146 ARRAY_SIZE(kNegativePostIndex), 2147 kNegativePostIndex}, 2148 {{al, r8, r12, minus, r10, LSL, 29, PostIndex}, 2149 "al r8 r12 minus r10 LSL 29 PostIndex", 2150 "NegativePostIndex_al_r8_r12_minus_r10_LSL_29_PostIndex", 2151 ARRAY_SIZE(kNegativePostIndex), 2152 kNegativePostIndex}, 2153 {{al, r14, r7, minus, r2, ROR, 18, PostIndex}, 2154 "al r14 r7 minus r2 ROR 18 PostIndex", 2155 "NegativePostIndex_al_r14_r7_minus_r2_ROR_18_PostIndex", 2156 ARRAY_SIZE(kNegativePostIndex), 2157 kNegativePostIndex}, 2158 {{al, r14, r3, minus, r9, ROR, 8, PostIndex}, 2159 "al r14 r3 minus r9 ROR 8 PostIndex", 2160 "NegativePostIndex_al_r14_r3_minus_r9_ROR_8_PostIndex", 2161 ARRAY_SIZE(kNegativePostIndex), 2162 kNegativePostIndex}, 2163 {{al, r1, r14, minus, r9, LSL, 5, PostIndex}, 2164 "al r1 r14 minus r9 LSL 5 PostIndex", 2165 "NegativePostIndex_al_r1_r14_minus_r9_LSL_5_PostIndex", 2166 ARRAY_SIZE(kNegativePostIndex), 2167 kNegativePostIndex}, 2168 {{al, r3, r2, minus, r10, LSL, 23, PostIndex}, 2169 "al r3 r2 minus r10 LSL 23 PostIndex", 2170 "NegativePostIndex_al_r3_r2_minus_r10_LSL_23_PostIndex", 2171 ARRAY_SIZE(kNegativePostIndex), 2172 kNegativePostIndex}, 2173 {{al, r7, r3, minus, r5, ROR, 27, PostIndex}, 2174 "al r7 r3 minus r5 ROR 27 PostIndex", 2175 "NegativePostIndex_al_r7_r3_minus_r5_ROR_27_PostIndex", 2176 ARRAY_SIZE(kNegativePostIndex), 2177 kNegativePostIndex}, 2178 {{al, r11, r14, minus, r6, ROR, 3, PostIndex}, 2179 "al r11 r14 minus r6 ROR 3 PostIndex", 2180 "NegativePostIndex_al_r11_r14_minus_r6_ROR_3_PostIndex", 2181 ARRAY_SIZE(kNegativePostIndex), 2182 kNegativePostIndex}, 2183 {{al, r11, r2, minus, r14, LSL, 19, PostIndex}, 2184 "al r11 r2 minus r14 LSL 19 PostIndex", 2185 "NegativePostIndex_al_r11_r2_minus_r14_LSL_19_PostIndex", 2186 ARRAY_SIZE(kNegativePostIndex), 2187 kNegativePostIndex}, 2188 {{al, r11, r1, minus, r10, LSL, 25, PostIndex}, 2189 "al r11 r1 minus r10 LSL 25 PostIndex", 2190 "NegativePostIndex_al_r11_r1_minus_r10_LSL_25_PostIndex", 2191 ARRAY_SIZE(kNegativePostIndex), 2192 kNegativePostIndex}, 2193 {{al, r14, r7, minus, r4, ROR, 15, PostIndex}, 2194 "al r14 r7 minus r4 ROR 15 PostIndex", 2195 "NegativePostIndex_al_r14_r7_minus_r4_ROR_15_PostIndex", 2196 ARRAY_SIZE(kNegativePostIndex), 2197 kNegativePostIndex}, 2198 {{al, r12, r14, minus, r7, ROR, 24, PostIndex}, 2199 "al r12 r14 minus r7 ROR 24 PostIndex", 2200 "NegativePostIndex_al_r12_r14_minus_r7_ROR_24_PostIndex", 2201 ARRAY_SIZE(kNegativePostIndex), 2202 kNegativePostIndex}, 2203 {{al, r6, r10, minus, r5, ROR, 8, PostIndex}, 2204 "al r6 r10 minus r5 ROR 8 PostIndex", 2205 "NegativePostIndex_al_r6_r10_minus_r5_ROR_8_PostIndex", 2206 ARRAY_SIZE(kNegativePostIndex), 2207 kNegativePostIndex}, 2208 {{al, r1, r5, minus, r9, ROR, 3, PostIndex}, 2209 "al r1 r5 minus r9 ROR 3 PostIndex", 2210 "NegativePostIndex_al_r1_r5_minus_r9_ROR_3_PostIndex", 2211 ARRAY_SIZE(kNegativePostIndex), 2212 kNegativePostIndex}, 2213 {{al, r2, r9, minus, r1, LSL, 28, PostIndex}, 2214 "al r2 r9 minus r1 LSL 28 PostIndex", 2215 "NegativePostIndex_al_r2_r9_minus_r1_LSL_28_PostIndex", 2216 ARRAY_SIZE(kNegativePostIndex), 2217 kNegativePostIndex}, 2218 {{al, r9, r4, minus, r0, LSL, 16, PostIndex}, 2219 "al r9 r4 minus r0 LSL 16 PostIndex", 2220 "NegativePostIndex_al_r9_r4_minus_r0_LSL_16_PostIndex", 2221 ARRAY_SIZE(kNegativePostIndex), 2222 kNegativePostIndex}, 2223 {{al, r5, r3, minus, r4, ROR, 21, PostIndex}, 2224 "al r5 r3 minus r4 ROR 21 PostIndex", 2225 "NegativePostIndex_al_r5_r3_minus_r4_ROR_21_PostIndex", 2226 ARRAY_SIZE(kNegativePostIndex), 2227 kNegativePostIndex}, 2228 {{al, r4, r0, minus, r11, LSL, 30, PostIndex}, 2229 "al r4 r0 minus r11 LSL 30 PostIndex", 2230 "NegativePostIndex_al_r4_r0_minus_r11_LSL_30_PostIndex", 2231 ARRAY_SIZE(kNegativePostIndex), 2232 kNegativePostIndex}, 2233 {{al, r4, r3, minus, r12, LSL, 1, PostIndex}, 2234 "al r4 r3 minus r12 LSL 1 PostIndex", 2235 "NegativePostIndex_al_r4_r3_minus_r12_LSL_1_PostIndex", 2236 ARRAY_SIZE(kNegativePostIndex), 2237 kNegativePostIndex}, 2238 {{al, r12, r11, minus, r7, LSL, 6, PostIndex}, 2239 "al r12 r11 minus r7 LSL 6 PostIndex", 2240 "NegativePostIndex_al_r12_r11_minus_r7_LSL_6_PostIndex", 2241 ARRAY_SIZE(kNegativePostIndex), 2242 kNegativePostIndex}, 2243 {{al, r10, r2, minus, r6, ROR, 3, PostIndex}, 2244 "al r10 r2 minus r6 ROR 3 PostIndex", 2245 "NegativePostIndex_al_r10_r2_minus_r6_ROR_3_PostIndex", 2246 ARRAY_SIZE(kNegativePostIndex), 2247 kNegativePostIndex}, 2248 {{al, r5, r12, minus, r14, LSL, 25, PostIndex}, 2249 "al r5 r12 minus r14 LSL 25 PostIndex", 2250 "NegativePostIndex_al_r5_r12_minus_r14_LSL_25_PostIndex", 2251 ARRAY_SIZE(kNegativePostIndex), 2252 kNegativePostIndex}, 2253 {{al, r3, r9, minus, r5, ROR, 20, PostIndex}, 2254 "al r3 r9 minus r5 ROR 20 PostIndex", 2255 "NegativePostIndex_al_r3_r9_minus_r5_ROR_20_PostIndex", 2256 ARRAY_SIZE(kNegativePostIndex), 2257 kNegativePostIndex}, 2258 {{al, r8, r2, minus, r11, LSL, 20, PostIndex}, 2259 "al r8 r2 minus r11 LSL 20 PostIndex", 2260 "NegativePostIndex_al_r8_r2_minus_r11_LSL_20_PostIndex", 2261 ARRAY_SIZE(kNegativePostIndex), 2262 kNegativePostIndex}, 2263 {{al, r7, r1, minus, r12, LSL, 22, PostIndex}, 2264 "al r7 r1 minus r12 LSL 22 PostIndex", 2265 "NegativePostIndex_al_r7_r1_minus_r12_LSL_22_PostIndex", 2266 ARRAY_SIZE(kNegativePostIndex), 2267 kNegativePostIndex}, 2268 {{al, r7, r12, minus, r4, ROR, 21, PostIndex}, 2269 "al r7 r12 minus r4 ROR 21 PostIndex", 2270 "NegativePostIndex_al_r7_r12_minus_r4_ROR_21_PostIndex", 2271 ARRAY_SIZE(kNegativePostIndex), 2272 kNegativePostIndex}, 2273 {{al, r8, r4, minus, r0, LSL, 25, PostIndex}, 2274 "al r8 r4 minus r0 LSL 25 PostIndex", 2275 "NegativePostIndex_al_r8_r4_minus_r0_LSL_25_PostIndex", 2276 ARRAY_SIZE(kNegativePostIndex), 2277 kNegativePostIndex}, 2278 {{al, r2, r10, minus, r6, LSL, 1, PostIndex}, 2279 "al r2 r10 minus r6 LSL 1 PostIndex", 2280 "NegativePostIndex_al_r2_r10_minus_r6_LSL_1_PostIndex", 2281 ARRAY_SIZE(kNegativePostIndex), 2282 kNegativePostIndex}, 2283 {{al, r11, r14, minus, r1, LSL, 9, PostIndex}, 2284 "al r11 r14 minus r1 LSL 9 PostIndex", 2285 "NegativePostIndex_al_r11_r14_minus_r1_LSL_9_PostIndex", 2286 ARRAY_SIZE(kNegativePostIndex), 2287 kNegativePostIndex}, 2288 {{al, r7, r8, minus, r3, ROR, 19, PostIndex}, 2289 "al r7 r8 minus r3 ROR 19 PostIndex", 2290 "NegativePostIndex_al_r7_r8_minus_r3_ROR_19_PostIndex", 2291 ARRAY_SIZE(kNegativePostIndex), 2292 kNegativePostIndex}, 2293 {{al, r7, r4, minus, r3, LSL, 3, PostIndex}, 2294 "al r7 r4 minus r3 LSL 3 PostIndex", 2295 "NegativePostIndex_al_r7_r4_minus_r3_LSL_3_PostIndex", 2296 ARRAY_SIZE(kNegativePostIndex), 2297 kNegativePostIndex}, 2298 {{al, r6, r3, minus, r5, LSL, 5, PostIndex}, 2299 "al r6 r3 minus r5 LSL 5 PostIndex", 2300 "NegativePostIndex_al_r6_r3_minus_r5_LSL_5_PostIndex", 2301 ARRAY_SIZE(kNegativePostIndex), 2302 kNegativePostIndex}, 2303 {{al, r7, r12, minus, r1, ROR, 26, PostIndex}, 2304 "al r7 r12 minus r1 ROR 26 PostIndex", 2305 "NegativePostIndex_al_r7_r12_minus_r1_ROR_26_PostIndex", 2306 ARRAY_SIZE(kNegativePostIndex), 2307 kNegativePostIndex}, 2308 {{al, r1, r14, minus, r3, ROR, 5, PostIndex}, 2309 "al r1 r14 minus r3 ROR 5 PostIndex", 2310 "NegativePostIndex_al_r1_r14_minus_r3_ROR_5_PostIndex", 2311 ARRAY_SIZE(kNegativePostIndex), 2312 kNegativePostIndex}, 2313 {{al, r3, r14, minus, r8, LSL, 10, PostIndex}, 2314 "al r3 r14 minus r8 LSL 10 PostIndex", 2315 "NegativePostIndex_al_r3_r14_minus_r8_LSL_10_PostIndex", 2316 ARRAY_SIZE(kNegativePostIndex), 2317 kNegativePostIndex}, 2318 {{al, r2, r6, minus, r3, ROR, 19, PostIndex}, 2319 "al r2 r6 minus r3 ROR 19 PostIndex", 2320 "NegativePostIndex_al_r2_r6_minus_r3_ROR_19_PostIndex", 2321 ARRAY_SIZE(kNegativePostIndex), 2322 kNegativePostIndex}, 2323 {{al, r3, r5, minus, r6, ROR, 30, PostIndex}, 2324 "al r3 r5 minus r6 ROR 30 PostIndex", 2325 "NegativePostIndex_al_r3_r5_minus_r6_ROR_30_PostIndex", 2326 ARRAY_SIZE(kNegativePostIndex), 2327 kNegativePostIndex}, 2328 {{al, r2, r9, minus, r12, LSL, 24, PostIndex}, 2329 "al r2 r9 minus r12 LSL 24 PostIndex", 2330 "NegativePostIndex_al_r2_r9_minus_r12_LSL_24_PostIndex", 2331 ARRAY_SIZE(kNegativePostIndex), 2332 kNegativePostIndex}, 2333 {{al, r4, r9, plus, r3, LSL, 2, PreIndex}, 2334 "al r4 r9 plus r3 LSL 2 PreIndex", 2335 "PositivePreIndex_al_r4_r9_plus_r3_LSL_2_PreIndex", 2336 ARRAY_SIZE(kPositivePreIndex), 2337 kPositivePreIndex}, 2338 {{al, r1, r9, plus, r10, LSL, 25, PreIndex}, 2339 "al r1 r9 plus r10 LSL 25 PreIndex", 2340 "PositivePreIndex_al_r1_r9_plus_r10_LSL_25_PreIndex", 2341 ARRAY_SIZE(kPositivePreIndex), 2342 kPositivePreIndex}, 2343 {{al, r14, r1, plus, r12, ROR, 24, PreIndex}, 2344 "al r14 r1 plus r12 ROR 24 PreIndex", 2345 "PositivePreIndex_al_r14_r1_plus_r12_ROR_24_PreIndex", 2346 ARRAY_SIZE(kPositivePreIndex), 2347 kPositivePreIndex}, 2348 {{al, r3, r10, plus, r14, LSL, 24, PreIndex}, 2349 "al r3 r10 plus r14 LSL 24 PreIndex", 2350 "PositivePreIndex_al_r3_r10_plus_r14_LSL_24_PreIndex", 2351 ARRAY_SIZE(kPositivePreIndex), 2352 kPositivePreIndex}, 2353 {{al, r10, r5, plus, r0, LSL, 17, PreIndex}, 2354 "al r10 r5 plus r0 LSL 17 PreIndex", 2355 "PositivePreIndex_al_r10_r5_plus_r0_LSL_17_PreIndex", 2356 ARRAY_SIZE(kPositivePreIndex), 2357 kPositivePreIndex}, 2358 {{al, r1, r7, plus, r8, LSL, 20, PreIndex}, 2359 "al r1 r7 plus r8 LSL 20 PreIndex", 2360 "PositivePreIndex_al_r1_r7_plus_r8_LSL_20_PreIndex", 2361 ARRAY_SIZE(kPositivePreIndex), 2362 kPositivePreIndex}, 2363 {{al, r5, r6, plus, r2, LSL, 3, PreIndex}, 2364 "al r5 r6 plus r2 LSL 3 PreIndex", 2365 "PositivePreIndex_al_r5_r6_plus_r2_LSL_3_PreIndex", 2366 ARRAY_SIZE(kPositivePreIndex), 2367 kPositivePreIndex}, 2368 {{al, r4, r6, plus, r2, ROR, 9, PreIndex}, 2369 "al r4 r6 plus r2 ROR 9 PreIndex", 2370 "PositivePreIndex_al_r4_r6_plus_r2_ROR_9_PreIndex", 2371 ARRAY_SIZE(kPositivePreIndex), 2372 kPositivePreIndex}, 2373 {{al, r0, r11, plus, r12, LSL, 7, PreIndex}, 2374 "al r0 r11 plus r12 LSL 7 PreIndex", 2375 "PositivePreIndex_al_r0_r11_plus_r12_LSL_7_PreIndex", 2376 ARRAY_SIZE(kPositivePreIndex), 2377 kPositivePreIndex}, 2378 {{al, r2, r14, plus, r11, ROR, 4, PreIndex}, 2379 "al r2 r14 plus r11 ROR 4 PreIndex", 2380 "PositivePreIndex_al_r2_r14_plus_r11_ROR_4_PreIndex", 2381 ARRAY_SIZE(kPositivePreIndex), 2382 kPositivePreIndex}, 2383 {{al, r8, r6, plus, r1, LSL, 13, PreIndex}, 2384 "al r8 r6 plus r1 LSL 13 PreIndex", 2385 "PositivePreIndex_al_r8_r6_plus_r1_LSL_13_PreIndex", 2386 ARRAY_SIZE(kPositivePreIndex), 2387 kPositivePreIndex}, 2388 {{al, r9, r8, plus, r5, ROR, 5, PreIndex}, 2389 "al r9 r8 plus r5 ROR 5 PreIndex", 2390 "PositivePreIndex_al_r9_r8_plus_r5_ROR_5_PreIndex", 2391 ARRAY_SIZE(kPositivePreIndex), 2392 kPositivePreIndex}, 2393 {{al, r4, r5, plus, r14, LSL, 9, PreIndex}, 2394 "al r4 r5 plus r14 LSL 9 PreIndex", 2395 "PositivePreIndex_al_r4_r5_plus_r14_LSL_9_PreIndex", 2396 ARRAY_SIZE(kPositivePreIndex), 2397 kPositivePreIndex}, 2398 {{al, r2, r10, plus, r14, LSL, 2, PreIndex}, 2399 "al r2 r10 plus r14 LSL 2 PreIndex", 2400 "PositivePreIndex_al_r2_r10_plus_r14_LSL_2_PreIndex", 2401 ARRAY_SIZE(kPositivePreIndex), 2402 kPositivePreIndex}, 2403 {{al, r0, r10, plus, r2, LSL, 16, PreIndex}, 2404 "al r0 r10 plus r2 LSL 16 PreIndex", 2405 "PositivePreIndex_al_r0_r10_plus_r2_LSL_16_PreIndex", 2406 ARRAY_SIZE(kPositivePreIndex), 2407 kPositivePreIndex}, 2408 {{al, r11, r12, plus, r2, LSL, 17, PreIndex}, 2409 "al r11 r12 plus r2 LSL 17 PreIndex", 2410 "PositivePreIndex_al_r11_r12_plus_r2_LSL_17_PreIndex", 2411 ARRAY_SIZE(kPositivePreIndex), 2412 kPositivePreIndex}, 2413 {{al, r10, r5, plus, r8, LSL, 24, PreIndex}, 2414 "al r10 r5 plus r8 LSL 24 PreIndex", 2415 "PositivePreIndex_al_r10_r5_plus_r8_LSL_24_PreIndex", 2416 ARRAY_SIZE(kPositivePreIndex), 2417 kPositivePreIndex}, 2418 {{al, r11, r3, plus, r7, ROR, 6, PreIndex}, 2419 "al r11 r3 plus r7 ROR 6 PreIndex", 2420 "PositivePreIndex_al_r11_r3_plus_r7_ROR_6_PreIndex", 2421 ARRAY_SIZE(kPositivePreIndex), 2422 kPositivePreIndex}, 2423 {{al, r12, r0, plus, r11, ROR, 13, PreIndex}, 2424 "al r12 r0 plus r11 ROR 13 PreIndex", 2425 "PositivePreIndex_al_r12_r0_plus_r11_ROR_13_PreIndex", 2426 ARRAY_SIZE(kPositivePreIndex), 2427 kPositivePreIndex}, 2428 {{al, r14, r5, plus, r2, LSL, 2, PreIndex}, 2429 "al r14 r5 plus r2 LSL 2 PreIndex", 2430 "PositivePreIndex_al_r14_r5_plus_r2_LSL_2_PreIndex", 2431 ARRAY_SIZE(kPositivePreIndex), 2432 kPositivePreIndex}, 2433 {{al, r14, r7, plus, r8, ROR, 28, PreIndex}, 2434 "al r14 r7 plus r8 ROR 28 PreIndex", 2435 "PositivePreIndex_al_r14_r7_plus_r8_ROR_28_PreIndex", 2436 ARRAY_SIZE(kPositivePreIndex), 2437 kPositivePreIndex}, 2438 {{al, r12, r2, plus, r7, LSL, 22, PreIndex}, 2439 "al r12 r2 plus r7 LSL 22 PreIndex", 2440 "PositivePreIndex_al_r12_r2_plus_r7_LSL_22_PreIndex", 2441 ARRAY_SIZE(kPositivePreIndex), 2442 kPositivePreIndex}, 2443 {{al, r6, r5, plus, r12, ROR, 16, PreIndex}, 2444 "al r6 r5 plus r12 ROR 16 PreIndex", 2445 "PositivePreIndex_al_r6_r5_plus_r12_ROR_16_PreIndex", 2446 ARRAY_SIZE(kPositivePreIndex), 2447 kPositivePreIndex}, 2448 {{al, r1, r14, plus, r4, LSL, 9, PreIndex}, 2449 "al r1 r14 plus r4 LSL 9 PreIndex", 2450 "PositivePreIndex_al_r1_r14_plus_r4_LSL_9_PreIndex", 2451 ARRAY_SIZE(kPositivePreIndex), 2452 kPositivePreIndex}, 2453 {{al, r9, r2, plus, r11, ROR, 9, PreIndex}, 2454 "al r9 r2 plus r11 ROR 9 PreIndex", 2455 "PositivePreIndex_al_r9_r2_plus_r11_ROR_9_PreIndex", 2456 ARRAY_SIZE(kPositivePreIndex), 2457 kPositivePreIndex}, 2458 {{al, r6, r8, plus, r9, LSL, 2, PreIndex}, 2459 "al r6 r8 plus r9 LSL 2 PreIndex", 2460 "PositivePreIndex_al_r6_r8_plus_r9_LSL_2_PreIndex", 2461 ARRAY_SIZE(kPositivePreIndex), 2462 kPositivePreIndex}, 2463 {{al, r8, r1, plus, r0, LSL, 30, PreIndex}, 2464 "al r8 r1 plus r0 LSL 30 PreIndex", 2465 "PositivePreIndex_al_r8_r1_plus_r0_LSL_30_PreIndex", 2466 ARRAY_SIZE(kPositivePreIndex), 2467 kPositivePreIndex}, 2468 {{al, r14, r0, plus, r6, ROR, 5, PreIndex}, 2469 "al r14 r0 plus r6 ROR 5 PreIndex", 2470 "PositivePreIndex_al_r14_r0_plus_r6_ROR_5_PreIndex", 2471 ARRAY_SIZE(kPositivePreIndex), 2472 kPositivePreIndex}, 2473 {{al, r1, r6, plus, r2, LSL, 9, PreIndex}, 2474 "al r1 r6 plus r2 LSL 9 PreIndex", 2475 "PositivePreIndex_al_r1_r6_plus_r2_LSL_9_PreIndex", 2476 ARRAY_SIZE(kPositivePreIndex), 2477 kPositivePreIndex}, 2478 {{al, r12, r4, plus, r9, ROR, 28, PreIndex}, 2479 "al r12 r4 plus r9 ROR 28 PreIndex", 2480 "PositivePreIndex_al_r12_r4_plus_r9_ROR_28_PreIndex", 2481 ARRAY_SIZE(kPositivePreIndex), 2482 kPositivePreIndex}, 2483 {{al, r5, r1, plus, r10, ROR, 21, PreIndex}, 2484 "al r5 r1 plus r10 ROR 21 PreIndex", 2485 "PositivePreIndex_al_r5_r1_plus_r10_ROR_21_PreIndex", 2486 ARRAY_SIZE(kPositivePreIndex), 2487 kPositivePreIndex}, 2488 {{al, r6, r14, plus, r12, ROR, 31, PreIndex}, 2489 "al r6 r14 plus r12 ROR 31 PreIndex", 2490 "PositivePreIndex_al_r6_r14_plus_r12_ROR_31_PreIndex", 2491 ARRAY_SIZE(kPositivePreIndex), 2492 kPositivePreIndex}, 2493 {{al, r0, r3, plus, r5, ROR, 10, PreIndex}, 2494 "al r0 r3 plus r5 ROR 10 PreIndex", 2495 "PositivePreIndex_al_r0_r3_plus_r5_ROR_10_PreIndex", 2496 ARRAY_SIZE(kPositivePreIndex), 2497 kPositivePreIndex}, 2498 {{al, r2, r11, plus, r3, LSL, 29, PreIndex}, 2499 "al r2 r11 plus r3 LSL 29 PreIndex", 2500 "PositivePreIndex_al_r2_r11_plus_r3_LSL_29_PreIndex", 2501 ARRAY_SIZE(kPositivePreIndex), 2502 kPositivePreIndex}, 2503 {{al, r3, r4, plus, r9, LSL, 16, PreIndex}, 2504 "al r3 r4 plus r9 LSL 16 PreIndex", 2505 "PositivePreIndex_al_r3_r4_plus_r9_LSL_16_PreIndex", 2506 ARRAY_SIZE(kPositivePreIndex), 2507 kPositivePreIndex}, 2508 {{al, r6, r11, plus, r5, ROR, 14, PreIndex}, 2509 "al r6 r11 plus r5 ROR 14 PreIndex", 2510 "PositivePreIndex_al_r6_r11_plus_r5_ROR_14_PreIndex", 2511 ARRAY_SIZE(kPositivePreIndex), 2512 kPositivePreIndex}, 2513 {{al, r4, r12, plus, r0, ROR, 28, PreIndex}, 2514 "al r4 r12 plus r0 ROR 28 PreIndex", 2515 "PositivePreIndex_al_r4_r12_plus_r0_ROR_28_PreIndex", 2516 ARRAY_SIZE(kPositivePreIndex), 2517 kPositivePreIndex}, 2518 {{al, r4, r6, plus, r1, LSL, 7, PreIndex}, 2519 "al r4 r6 plus r1 LSL 7 PreIndex", 2520 "PositivePreIndex_al_r4_r6_plus_r1_LSL_7_PreIndex", 2521 ARRAY_SIZE(kPositivePreIndex), 2522 kPositivePreIndex}, 2523 {{al, r5, r2, plus, r6, ROR, 20, PreIndex}, 2524 "al r5 r2 plus r6 ROR 20 PreIndex", 2525 "PositivePreIndex_al_r5_r2_plus_r6_ROR_20_PreIndex", 2526 ARRAY_SIZE(kPositivePreIndex), 2527 kPositivePreIndex}, 2528 {{al, r9, r6, plus, r5, LSL, 2, PreIndex}, 2529 "al r9 r6 plus r5 LSL 2 PreIndex", 2530 "PositivePreIndex_al_r9_r6_plus_r5_LSL_2_PreIndex", 2531 ARRAY_SIZE(kPositivePreIndex), 2532 kPositivePreIndex}, 2533 {{al, r4, r3, plus, r6, ROR, 6, PreIndex}, 2534 "al r4 r3 plus r6 ROR 6 PreIndex", 2535 "PositivePreIndex_al_r4_r3_plus_r6_ROR_6_PreIndex", 2536 ARRAY_SIZE(kPositivePreIndex), 2537 kPositivePreIndex}, 2538 {{al, r6, r0, plus, r9, ROR, 8, PreIndex}, 2539 "al r6 r0 plus r9 ROR 8 PreIndex", 2540 "PositivePreIndex_al_r6_r0_plus_r9_ROR_8_PreIndex", 2541 ARRAY_SIZE(kPositivePreIndex), 2542 kPositivePreIndex}, 2543 {{al, r10, r14, plus, r2, LSL, 29, PreIndex}, 2544 "al r10 r14 plus r2 LSL 29 PreIndex", 2545 "PositivePreIndex_al_r10_r14_plus_r2_LSL_29_PreIndex", 2546 ARRAY_SIZE(kPositivePreIndex), 2547 kPositivePreIndex}, 2548 {{al, r1, r10, plus, r3, ROR, 21, PreIndex}, 2549 "al r1 r10 plus r3 ROR 21 PreIndex", 2550 "PositivePreIndex_al_r1_r10_plus_r3_ROR_21_PreIndex", 2551 ARRAY_SIZE(kPositivePreIndex), 2552 kPositivePreIndex}, 2553 {{al, r6, r10, plus, r1, LSL, 1, PreIndex}, 2554 "al r6 r10 plus r1 LSL 1 PreIndex", 2555 "PositivePreIndex_al_r6_r10_plus_r1_LSL_1_PreIndex", 2556 ARRAY_SIZE(kPositivePreIndex), 2557 kPositivePreIndex}, 2558 {{al, r5, r1, plus, r14, LSL, 23, PreIndex}, 2559 "al r5 r1 plus r14 LSL 23 PreIndex", 2560 "PositivePreIndex_al_r5_r1_plus_r14_LSL_23_PreIndex", 2561 ARRAY_SIZE(kPositivePreIndex), 2562 kPositivePreIndex}, 2563 {{al, r6, r12, plus, r10, LSL, 27, PreIndex}, 2564 "al r6 r12 plus r10 LSL 27 PreIndex", 2565 "PositivePreIndex_al_r6_r12_plus_r10_LSL_27_PreIndex", 2566 ARRAY_SIZE(kPositivePreIndex), 2567 kPositivePreIndex}, 2568 {{al, r10, r5, plus, r8, LSL, 30, PreIndex}, 2569 "al r10 r5 plus r8 LSL 30 PreIndex", 2570 "PositivePreIndex_al_r10_r5_plus_r8_LSL_30_PreIndex", 2571 ARRAY_SIZE(kPositivePreIndex), 2572 kPositivePreIndex}, 2573 {{al, r12, r8, plus, r5, LSL, 12, PreIndex}, 2574 "al r12 r8 plus r5 LSL 12 PreIndex", 2575 "PositivePreIndex_al_r12_r8_plus_r5_LSL_12_PreIndex", 2576 ARRAY_SIZE(kPositivePreIndex), 2577 kPositivePreIndex}, 2578 {{al, r14, r6, plus, r3, ROR, 23, PreIndex}, 2579 "al r14 r6 plus r3 ROR 23 PreIndex", 2580 "PositivePreIndex_al_r14_r6_plus_r3_ROR_23_PreIndex", 2581 ARRAY_SIZE(kPositivePreIndex), 2582 kPositivePreIndex}, 2583 {{al, r5, r8, plus, r6, ROR, 26, PreIndex}, 2584 "al r5 r8 plus r6 ROR 26 PreIndex", 2585 "PositivePreIndex_al_r5_r8_plus_r6_ROR_26_PreIndex", 2586 ARRAY_SIZE(kPositivePreIndex), 2587 kPositivePreIndex}, 2588 {{al, r1, r4, plus, r10, ROR, 21, PreIndex}, 2589 "al r1 r4 plus r10 ROR 21 PreIndex", 2590 "PositivePreIndex_al_r1_r4_plus_r10_ROR_21_PreIndex", 2591 ARRAY_SIZE(kPositivePreIndex), 2592 kPositivePreIndex}, 2593 {{al, r8, r9, plus, r1, LSL, 24, PreIndex}, 2594 "al r8 r9 plus r1 LSL 24 PreIndex", 2595 "PositivePreIndex_al_r8_r9_plus_r1_LSL_24_PreIndex", 2596 ARRAY_SIZE(kPositivePreIndex), 2597 kPositivePreIndex}, 2598 {{al, r0, r2, plus, r6, ROR, 6, PreIndex}, 2599 "al r0 r2 plus r6 ROR 6 PreIndex", 2600 "PositivePreIndex_al_r0_r2_plus_r6_ROR_6_PreIndex", 2601 ARRAY_SIZE(kPositivePreIndex), 2602 kPositivePreIndex}, 2603 {{al, r5, r1, plus, r0, ROR, 6, PreIndex}, 2604 "al r5 r1 plus r0 ROR 6 PreIndex", 2605 "PositivePreIndex_al_r5_r1_plus_r0_ROR_6_PreIndex", 2606 ARRAY_SIZE(kPositivePreIndex), 2607 kPositivePreIndex}, 2608 {{al, r4, r6, plus, r0, LSL, 25, PreIndex}, 2609 "al r4 r6 plus r0 LSL 25 PreIndex", 2610 "PositivePreIndex_al_r4_r6_plus_r0_LSL_25_PreIndex", 2611 ARRAY_SIZE(kPositivePreIndex), 2612 kPositivePreIndex}, 2613 {{al, r7, r6, plus, r4, LSL, 15, PreIndex}, 2614 "al r7 r6 plus r4 LSL 15 PreIndex", 2615 "PositivePreIndex_al_r7_r6_plus_r4_LSL_15_PreIndex", 2616 ARRAY_SIZE(kPositivePreIndex), 2617 kPositivePreIndex}, 2618 {{al, r3, r10, plus, r4, ROR, 12, PreIndex}, 2619 "al r3 r10 plus r4 ROR 12 PreIndex", 2620 "PositivePreIndex_al_r3_r10_plus_r4_ROR_12_PreIndex", 2621 ARRAY_SIZE(kPositivePreIndex), 2622 kPositivePreIndex}, 2623 {{al, r11, r10, plus, r12, ROR, 30, PreIndex}, 2624 "al r11 r10 plus r12 ROR 30 PreIndex", 2625 "PositivePreIndex_al_r11_r10_plus_r12_ROR_30_PreIndex", 2626 ARRAY_SIZE(kPositivePreIndex), 2627 kPositivePreIndex}, 2628 {{al, r12, r9, plus, r1, ROR, 28, PreIndex}, 2629 "al r12 r9 plus r1 ROR 28 PreIndex", 2630 "PositivePreIndex_al_r12_r9_plus_r1_ROR_28_PreIndex", 2631 ARRAY_SIZE(kPositivePreIndex), 2632 kPositivePreIndex}, 2633 {{al, r1, r4, plus, r11, ROR, 31, PreIndex}, 2634 "al r1 r4 plus r11 ROR 31 PreIndex", 2635 "PositivePreIndex_al_r1_r4_plus_r11_ROR_31_PreIndex", 2636 ARRAY_SIZE(kPositivePreIndex), 2637 kPositivePreIndex}, 2638 {{al, r14, r5, plus, r7, ROR, 2, PreIndex}, 2639 "al r14 r5 plus r7 ROR 2 PreIndex", 2640 "PositivePreIndex_al_r14_r5_plus_r7_ROR_2_PreIndex", 2641 ARRAY_SIZE(kPositivePreIndex), 2642 kPositivePreIndex}, 2643 {{al, r8, r10, plus, r14, ROR, 4, PreIndex}, 2644 "al r8 r10 plus r14 ROR 4 PreIndex", 2645 "PositivePreIndex_al_r8_r10_plus_r14_ROR_4_PreIndex", 2646 ARRAY_SIZE(kPositivePreIndex), 2647 kPositivePreIndex}, 2648 {{al, r4, r9, plus, r10, LSL, 24, PreIndex}, 2649 "al r4 r9 plus r10 LSL 24 PreIndex", 2650 "PositivePreIndex_al_r4_r9_plus_r10_LSL_24_PreIndex", 2651 ARRAY_SIZE(kPositivePreIndex), 2652 kPositivePreIndex}, 2653 {{al, r3, r1, plus, r14, ROR, 21, PreIndex}, 2654 "al r3 r1 plus r14 ROR 21 PreIndex", 2655 "PositivePreIndex_al_r3_r1_plus_r14_ROR_21_PreIndex", 2656 ARRAY_SIZE(kPositivePreIndex), 2657 kPositivePreIndex}, 2658 {{al, r7, r11, plus, r8, ROR, 14, PreIndex}, 2659 "al r7 r11 plus r8 ROR 14 PreIndex", 2660 "PositivePreIndex_al_r7_r11_plus_r8_ROR_14_PreIndex", 2661 ARRAY_SIZE(kPositivePreIndex), 2662 kPositivePreIndex}, 2663 {{al, r2, r0, plus, r9, LSL, 18, PreIndex}, 2664 "al r2 r0 plus r9 LSL 18 PreIndex", 2665 "PositivePreIndex_al_r2_r0_plus_r9_LSL_18_PreIndex", 2666 ARRAY_SIZE(kPositivePreIndex), 2667 kPositivePreIndex}, 2668 {{al, r7, r8, plus, r6, ROR, 21, PreIndex}, 2669 "al r7 r8 plus r6 ROR 21 PreIndex", 2670 "PositivePreIndex_al_r7_r8_plus_r6_ROR_21_PreIndex", 2671 ARRAY_SIZE(kPositivePreIndex), 2672 kPositivePreIndex}, 2673 {{al, r2, r1, plus, r10, LSL, 1, PreIndex}, 2674 "al r2 r1 plus r10 LSL 1 PreIndex", 2675 "PositivePreIndex_al_r2_r1_plus_r10_LSL_1_PreIndex", 2676 ARRAY_SIZE(kPositivePreIndex), 2677 kPositivePreIndex}, 2678 {{al, r4, r7, plus, r2, ROR, 13, PreIndex}, 2679 "al r4 r7 plus r2 ROR 13 PreIndex", 2680 "PositivePreIndex_al_r4_r7_plus_r2_ROR_13_PreIndex", 2681 ARRAY_SIZE(kPositivePreIndex), 2682 kPositivePreIndex}, 2683 {{al, r9, r4, plus, r0, LSL, 18, PreIndex}, 2684 "al r9 r4 plus r0 LSL 18 PreIndex", 2685 "PositivePreIndex_al_r9_r4_plus_r0_LSL_18_PreIndex", 2686 ARRAY_SIZE(kPositivePreIndex), 2687 kPositivePreIndex}, 2688 {{al, r3, r10, plus, r5, ROR, 30, PreIndex}, 2689 "al r3 r10 plus r5 ROR 30 PreIndex", 2690 "PositivePreIndex_al_r3_r10_plus_r5_ROR_30_PreIndex", 2691 ARRAY_SIZE(kPositivePreIndex), 2692 kPositivePreIndex}, 2693 {{al, r3, r2, plus, r6, LSL, 22, PreIndex}, 2694 "al r3 r2 plus r6 LSL 22 PreIndex", 2695 "PositivePreIndex_al_r3_r2_plus_r6_LSL_22_PreIndex", 2696 ARRAY_SIZE(kPositivePreIndex), 2697 kPositivePreIndex}, 2698 {{al, r9, r14, plus, r6, LSL, 29, PreIndex}, 2699 "al r9 r14 plus r6 LSL 29 PreIndex", 2700 "PositivePreIndex_al_r9_r14_plus_r6_LSL_29_PreIndex", 2701 ARRAY_SIZE(kPositivePreIndex), 2702 kPositivePreIndex}, 2703 {{al, r14, r3, plus, r1, ROR, 5, PreIndex}, 2704 "al r14 r3 plus r1 ROR 5 PreIndex", 2705 "PositivePreIndex_al_r14_r3_plus_r1_ROR_5_PreIndex", 2706 ARRAY_SIZE(kPositivePreIndex), 2707 kPositivePreIndex}, 2708 {{al, r14, r3, plus, r4, ROR, 18, PreIndex}, 2709 "al r14 r3 plus r4 ROR 18 PreIndex", 2710 "PositivePreIndex_al_r14_r3_plus_r4_ROR_18_PreIndex", 2711 ARRAY_SIZE(kPositivePreIndex), 2712 kPositivePreIndex}, 2713 {{al, r1, r12, plus, r3, LSL, 16, PreIndex}, 2714 "al r1 r12 plus r3 LSL 16 PreIndex", 2715 "PositivePreIndex_al_r1_r12_plus_r3_LSL_16_PreIndex", 2716 ARRAY_SIZE(kPositivePreIndex), 2717 kPositivePreIndex}, 2718 {{al, r1, r5, plus, r7, ROR, 17, PreIndex}, 2719 "al r1 r5 plus r7 ROR 17 PreIndex", 2720 "PositivePreIndex_al_r1_r5_plus_r7_ROR_17_PreIndex", 2721 ARRAY_SIZE(kPositivePreIndex), 2722 kPositivePreIndex}, 2723 {{al, r6, r10, plus, r8, LSL, 4, PreIndex}, 2724 "al r6 r10 plus r8 LSL 4 PreIndex", 2725 "PositivePreIndex_al_r6_r10_plus_r8_LSL_4_PreIndex", 2726 ARRAY_SIZE(kPositivePreIndex), 2727 kPositivePreIndex}, 2728 {{al, r11, r1, plus, r4, ROR, 16, PreIndex}, 2729 "al r11 r1 plus r4 ROR 16 PreIndex", 2730 "PositivePreIndex_al_r11_r1_plus_r4_ROR_16_PreIndex", 2731 ARRAY_SIZE(kPositivePreIndex), 2732 kPositivePreIndex}, 2733 {{al, r14, r0, plus, r12, LSL, 21, PreIndex}, 2734 "al r14 r0 plus r12 LSL 21 PreIndex", 2735 "PositivePreIndex_al_r14_r0_plus_r12_LSL_21_PreIndex", 2736 ARRAY_SIZE(kPositivePreIndex), 2737 kPositivePreIndex}, 2738 {{al, r10, r14, plus, r1, LSL, 29, PreIndex}, 2739 "al r10 r14 plus r1 LSL 29 PreIndex", 2740 "PositivePreIndex_al_r10_r14_plus_r1_LSL_29_PreIndex", 2741 ARRAY_SIZE(kPositivePreIndex), 2742 kPositivePreIndex}, 2743 {{al, r14, r7, plus, r0, LSL, 27, PreIndex}, 2744 "al r14 r7 plus r0 LSL 27 PreIndex", 2745 "PositivePreIndex_al_r14_r7_plus_r0_LSL_27_PreIndex", 2746 ARRAY_SIZE(kPositivePreIndex), 2747 kPositivePreIndex}, 2748 {{al, r4, r9, plus, r6, LSL, 19, PreIndex}, 2749 "al r4 r9 plus r6 LSL 19 PreIndex", 2750 "PositivePreIndex_al_r4_r9_plus_r6_LSL_19_PreIndex", 2751 ARRAY_SIZE(kPositivePreIndex), 2752 kPositivePreIndex}, 2753 {{al, r3, r11, plus, r12, ROR, 23, PreIndex}, 2754 "al r3 r11 plus r12 ROR 23 PreIndex", 2755 "PositivePreIndex_al_r3_r11_plus_r12_ROR_23_PreIndex", 2756 ARRAY_SIZE(kPositivePreIndex), 2757 kPositivePreIndex}, 2758 {{al, r3, r1, plus, r11, ROR, 22, PreIndex}, 2759 "al r3 r1 plus r11 ROR 22 PreIndex", 2760 "PositivePreIndex_al_r3_r1_plus_r11_ROR_22_PreIndex", 2761 ARRAY_SIZE(kPositivePreIndex), 2762 kPositivePreIndex}, 2763 {{al, r1, r12, plus, r10, ROR, 28, PreIndex}, 2764 "al r1 r12 plus r10 ROR 28 PreIndex", 2765 "PositivePreIndex_al_r1_r12_plus_r10_ROR_28_PreIndex", 2766 ARRAY_SIZE(kPositivePreIndex), 2767 kPositivePreIndex}, 2768 {{al, r14, r8, plus, r12, LSL, 30, PreIndex}, 2769 "al r14 r8 plus r12 LSL 30 PreIndex", 2770 "PositivePreIndex_al_r14_r8_plus_r12_LSL_30_PreIndex", 2771 ARRAY_SIZE(kPositivePreIndex), 2772 kPositivePreIndex}, 2773 {{al, r0, r5, plus, r4, LSL, 15, PreIndex}, 2774 "al r0 r5 plus r4 LSL 15 PreIndex", 2775 "PositivePreIndex_al_r0_r5_plus_r4_LSL_15_PreIndex", 2776 ARRAY_SIZE(kPositivePreIndex), 2777 kPositivePreIndex}, 2778 {{al, r11, r9, plus, r7, LSL, 14, PreIndex}, 2779 "al r11 r9 plus r7 LSL 14 PreIndex", 2780 "PositivePreIndex_al_r11_r9_plus_r7_LSL_14_PreIndex", 2781 ARRAY_SIZE(kPositivePreIndex), 2782 kPositivePreIndex}, 2783 {{al, r11, r5, plus, r0, LSL, 5, PreIndex}, 2784 "al r11 r5 plus r0 LSL 5 PreIndex", 2785 "PositivePreIndex_al_r11_r5_plus_r0_LSL_5_PreIndex", 2786 ARRAY_SIZE(kPositivePreIndex), 2787 kPositivePreIndex}, 2788 {{al, r8, r9, plus, r11, LSL, 6, PreIndex}, 2789 "al r8 r9 plus r11 LSL 6 PreIndex", 2790 "PositivePreIndex_al_r8_r9_plus_r11_LSL_6_PreIndex", 2791 ARRAY_SIZE(kPositivePreIndex), 2792 kPositivePreIndex}, 2793 {{al, r5, r2, plus, r8, ROR, 12, PreIndex}, 2794 "al r5 r2 plus r8 ROR 12 PreIndex", 2795 "PositivePreIndex_al_r5_r2_plus_r8_ROR_12_PreIndex", 2796 ARRAY_SIZE(kPositivePreIndex), 2797 kPositivePreIndex}, 2798 {{al, r8, r0, plus, r6, ROR, 2, PreIndex}, 2799 "al r8 r0 plus r6 ROR 2 PreIndex", 2800 "PositivePreIndex_al_r8_r0_plus_r6_ROR_2_PreIndex", 2801 ARRAY_SIZE(kPositivePreIndex), 2802 kPositivePreIndex}, 2803 {{al, r0, r10, plus, r5, LSL, 28, PreIndex}, 2804 "al r0 r10 plus r5 LSL 28 PreIndex", 2805 "PositivePreIndex_al_r0_r10_plus_r5_LSL_28_PreIndex", 2806 ARRAY_SIZE(kPositivePreIndex), 2807 kPositivePreIndex}, 2808 {{al, r8, r12, plus, r3, ROR, 29, PreIndex}, 2809 "al r8 r12 plus r3 ROR 29 PreIndex", 2810 "PositivePreIndex_al_r8_r12_plus_r3_ROR_29_PreIndex", 2811 ARRAY_SIZE(kPositivePreIndex), 2812 kPositivePreIndex}, 2813 {{al, r9, r2, plus, r8, LSL, 21, PreIndex}, 2814 "al r9 r2 plus r8 LSL 21 PreIndex", 2815 "PositivePreIndex_al_r9_r2_plus_r8_LSL_21_PreIndex", 2816 ARRAY_SIZE(kPositivePreIndex), 2817 kPositivePreIndex}, 2818 {{al, r12, r3, plus, r8, ROR, 27, PreIndex}, 2819 "al r12 r3 plus r8 ROR 27 PreIndex", 2820 "PositivePreIndex_al_r12_r3_plus_r8_ROR_27_PreIndex", 2821 ARRAY_SIZE(kPositivePreIndex), 2822 kPositivePreIndex}, 2823 {{al, r12, r6, plus, r11, LSL, 17, PreIndex}, 2824 "al r12 r6 plus r11 LSL 17 PreIndex", 2825 "PositivePreIndex_al_r12_r6_plus_r11_LSL_17_PreIndex", 2826 ARRAY_SIZE(kPositivePreIndex), 2827 kPositivePreIndex}, 2828 {{al, r4, r2, plus, r0, ROR, 14, PreIndex}, 2829 "al r4 r2 plus r0 ROR 14 PreIndex", 2830 "PositivePreIndex_al_r4_r2_plus_r0_ROR_14_PreIndex", 2831 ARRAY_SIZE(kPositivePreIndex), 2832 kPositivePreIndex}, 2833 {{al, r4, r10, minus, r7, LSL, 3, PreIndex}, 2834 "al r4 r10 minus r7 LSL 3 PreIndex", 2835 "NegativePreIndex_al_r4_r10_minus_r7_LSL_3_PreIndex", 2836 ARRAY_SIZE(kNegativePreIndex), 2837 kNegativePreIndex}, 2838 {{al, r9, r4, minus, r10, LSL, 20, PreIndex}, 2839 "al r9 r4 minus r10 LSL 20 PreIndex", 2840 "NegativePreIndex_al_r9_r4_minus_r10_LSL_20_PreIndex", 2841 ARRAY_SIZE(kNegativePreIndex), 2842 kNegativePreIndex}, 2843 {{al, r3, r2, minus, r14, LSL, 23, PreIndex}, 2844 "al r3 r2 minus r14 LSL 23 PreIndex", 2845 "NegativePreIndex_al_r3_r2_minus_r14_LSL_23_PreIndex", 2846 ARRAY_SIZE(kNegativePreIndex), 2847 kNegativePreIndex}, 2848 {{al, r1, r6, minus, r8, ROR, 22, PreIndex}, 2849 "al r1 r6 minus r8 ROR 22 PreIndex", 2850 "NegativePreIndex_al_r1_r6_minus_r8_ROR_22_PreIndex", 2851 ARRAY_SIZE(kNegativePreIndex), 2852 kNegativePreIndex}, 2853 {{al, r0, r11, minus, r1, ROR, 24, PreIndex}, 2854 "al r0 r11 minus r1 ROR 24 PreIndex", 2855 "NegativePreIndex_al_r0_r11_minus_r1_ROR_24_PreIndex", 2856 ARRAY_SIZE(kNegativePreIndex), 2857 kNegativePreIndex}, 2858 {{al, r6, r11, minus, r12, ROR, 2, PreIndex}, 2859 "al r6 r11 minus r12 ROR 2 PreIndex", 2860 "NegativePreIndex_al_r6_r11_minus_r12_ROR_2_PreIndex", 2861 ARRAY_SIZE(kNegativePreIndex), 2862 kNegativePreIndex}, 2863 {{al, r12, r2, minus, r9, ROR, 28, PreIndex}, 2864 "al r12 r2 minus r9 ROR 28 PreIndex", 2865 "NegativePreIndex_al_r12_r2_minus_r9_ROR_28_PreIndex", 2866 ARRAY_SIZE(kNegativePreIndex), 2867 kNegativePreIndex}, 2868 {{al, r6, r4, minus, r5, ROR, 16, PreIndex}, 2869 "al r6 r4 minus r5 ROR 16 PreIndex", 2870 "NegativePreIndex_al_r6_r4_minus_r5_ROR_16_PreIndex", 2871 ARRAY_SIZE(kNegativePreIndex), 2872 kNegativePreIndex}, 2873 {{al, r0, r2, minus, r12, LSL, 23, PreIndex}, 2874 "al r0 r2 minus r12 LSL 23 PreIndex", 2875 "NegativePreIndex_al_r0_r2_minus_r12_LSL_23_PreIndex", 2876 ARRAY_SIZE(kNegativePreIndex), 2877 kNegativePreIndex}, 2878 {{al, r2, r10, minus, r11, LSL, 3, PreIndex}, 2879 "al r2 r10 minus r11 LSL 3 PreIndex", 2880 "NegativePreIndex_al_r2_r10_minus_r11_LSL_3_PreIndex", 2881 ARRAY_SIZE(kNegativePreIndex), 2882 kNegativePreIndex}, 2883 {{al, r6, r2, minus, r5, LSL, 18, PreIndex}, 2884 "al r6 r2 minus r5 LSL 18 PreIndex", 2885 "NegativePreIndex_al_r6_r2_minus_r5_LSL_18_PreIndex", 2886 ARRAY_SIZE(kNegativePreIndex), 2887 kNegativePreIndex}, 2888 {{al, r10, r7, minus, r3, LSL, 18, PreIndex}, 2889 "al r10 r7 minus r3 LSL 18 PreIndex", 2890 "NegativePreIndex_al_r10_r7_minus_r3_LSL_18_PreIndex", 2891 ARRAY_SIZE(kNegativePreIndex), 2892 kNegativePreIndex}, 2893 {{al, r9, r10, minus, r2, ROR, 5, PreIndex}, 2894 "al r9 r10 minus r2 ROR 5 PreIndex", 2895 "NegativePreIndex_al_r9_r10_minus_r2_ROR_5_PreIndex", 2896 ARRAY_SIZE(kNegativePreIndex), 2897 kNegativePreIndex}, 2898 {{al, r1, r14, minus, r5, LSL, 20, PreIndex}, 2899 "al r1 r14 minus r5 LSL 20 PreIndex", 2900 "NegativePreIndex_al_r1_r14_minus_r5_LSL_20_PreIndex", 2901 ARRAY_SIZE(kNegativePreIndex), 2902 kNegativePreIndex}, 2903 {{al, r11, r1, minus, r14, LSL, 2, PreIndex}, 2904 "al r11 r1 minus r14 LSL 2 PreIndex", 2905 "NegativePreIndex_al_r11_r1_minus_r14_LSL_2_PreIndex", 2906 ARRAY_SIZE(kNegativePreIndex), 2907 kNegativePreIndex}, 2908 {{al, r12, r14, minus, r6, LSL, 16, PreIndex}, 2909 "al r12 r14 minus r6 LSL 16 PreIndex", 2910 "NegativePreIndex_al_r12_r14_minus_r6_LSL_16_PreIndex", 2911 ARRAY_SIZE(kNegativePreIndex), 2912 kNegativePreIndex}, 2913 {{al, r2, r0, minus, r5, LSL, 30, PreIndex}, 2914 "al r2 r0 minus r5 LSL 30 PreIndex", 2915 "NegativePreIndex_al_r2_r0_minus_r5_LSL_30_PreIndex", 2916 ARRAY_SIZE(kNegativePreIndex), 2917 kNegativePreIndex}, 2918 {{al, r12, r14, minus, r10, LSL, 28, PreIndex}, 2919 "al r12 r14 minus r10 LSL 28 PreIndex", 2920 "NegativePreIndex_al_r12_r14_minus_r10_LSL_28_PreIndex", 2921 ARRAY_SIZE(kNegativePreIndex), 2922 kNegativePreIndex}, 2923 {{al, r7, r14, minus, r9, LSL, 26, PreIndex}, 2924 "al r7 r14 minus r9 LSL 26 PreIndex", 2925 "NegativePreIndex_al_r7_r14_minus_r9_LSL_26_PreIndex", 2926 ARRAY_SIZE(kNegativePreIndex), 2927 kNegativePreIndex}, 2928 {{al, r11, r9, minus, r2, ROR, 28, PreIndex}, 2929 "al r11 r9 minus r2 ROR 28 PreIndex", 2930 "NegativePreIndex_al_r11_r9_minus_r2_ROR_28_PreIndex", 2931 ARRAY_SIZE(kNegativePreIndex), 2932 kNegativePreIndex}, 2933 {{al, r5, r4, minus, r6, ROR, 18, PreIndex}, 2934 "al r5 r4 minus r6 ROR 18 PreIndex", 2935 "NegativePreIndex_al_r5_r4_minus_r6_ROR_18_PreIndex", 2936 ARRAY_SIZE(kNegativePreIndex), 2937 kNegativePreIndex}, 2938 {{al, r2, r0, minus, r4, LSL, 1, PreIndex}, 2939 "al r2 r0 minus r4 LSL 1 PreIndex", 2940 "NegativePreIndex_al_r2_r0_minus_r4_LSL_1_PreIndex", 2941 ARRAY_SIZE(kNegativePreIndex), 2942 kNegativePreIndex}, 2943 {{al, r0, r14, minus, r11, ROR, 25, PreIndex}, 2944 "al r0 r14 minus r11 ROR 25 PreIndex", 2945 "NegativePreIndex_al_r0_r14_minus_r11_ROR_25_PreIndex", 2946 ARRAY_SIZE(kNegativePreIndex), 2947 kNegativePreIndex}, 2948 {{al, r12, r4, minus, r2, LSL, 16, PreIndex}, 2949 "al r12 r4 minus r2 LSL 16 PreIndex", 2950 "NegativePreIndex_al_r12_r4_minus_r2_LSL_16_PreIndex", 2951 ARRAY_SIZE(kNegativePreIndex), 2952 kNegativePreIndex}, 2953 {{al, r2, r12, minus, r1, LSL, 26, PreIndex}, 2954 "al r2 r12 minus r1 LSL 26 PreIndex", 2955 "NegativePreIndex_al_r2_r12_minus_r1_LSL_26_PreIndex", 2956 ARRAY_SIZE(kNegativePreIndex), 2957 kNegativePreIndex}, 2958 {{al, r9, r2, minus, r14, LSL, 23, PreIndex}, 2959 "al r9 r2 minus r14 LSL 23 PreIndex", 2960 "NegativePreIndex_al_r9_r2_minus_r14_LSL_23_PreIndex", 2961 ARRAY_SIZE(kNegativePreIndex), 2962 kNegativePreIndex}, 2963 {{al, r0, r8, minus, r2, ROR, 20, PreIndex}, 2964 "al r0 r8 minus r2 ROR 20 PreIndex", 2965 "NegativePreIndex_al_r0_r8_minus_r2_ROR_20_PreIndex", 2966 ARRAY_SIZE(kNegativePreIndex), 2967 kNegativePreIndex}, 2968 {{al, r7, r11, minus, r12, LSL, 27, PreIndex}, 2969 "al r7 r11 minus r12 LSL 27 PreIndex", 2970 "NegativePreIndex_al_r7_r11_minus_r12_LSL_27_PreIndex", 2971 ARRAY_SIZE(kNegativePreIndex), 2972 kNegativePreIndex}, 2973 {{al, r5, r2, minus, r11, ROR, 16, PreIndex}, 2974 "al r5 r2 minus r11 ROR 16 PreIndex", 2975 "NegativePreIndex_al_r5_r2_minus_r11_ROR_16_PreIndex", 2976 ARRAY_SIZE(kNegativePreIndex), 2977 kNegativePreIndex}, 2978 {{al, r9, r4, minus, r0, ROR, 9, PreIndex}, 2979 "al r9 r4 minus r0 ROR 9 PreIndex", 2980 "NegativePreIndex_al_r9_r4_minus_r0_ROR_9_PreIndex", 2981 ARRAY_SIZE(kNegativePreIndex), 2982 kNegativePreIndex}, 2983 {{al, r0, r8, minus, r1, LSL, 6, PreIndex}, 2984 "al r0 r8 minus r1 LSL 6 PreIndex", 2985 "NegativePreIndex_al_r0_r8_minus_r1_LSL_6_PreIndex", 2986 ARRAY_SIZE(kNegativePreIndex), 2987 kNegativePreIndex}, 2988 {{al, r9, r14, minus, r5, LSL, 28, PreIndex}, 2989 "al r9 r14 minus r5 LSL 28 PreIndex", 2990 "NegativePreIndex_al_r9_r14_minus_r5_LSL_28_PreIndex", 2991 ARRAY_SIZE(kNegativePreIndex), 2992 kNegativePreIndex}, 2993 {{al, r12, r3, minus, r7, ROR, 30, PreIndex}, 2994 "al r12 r3 minus r7 ROR 30 PreIndex", 2995 "NegativePreIndex_al_r12_r3_minus_r7_ROR_30_PreIndex", 2996 ARRAY_SIZE(kNegativePreIndex), 2997 kNegativePreIndex}, 2998 {{al, r3, r5, minus, r0, LSL, 21, PreIndex}, 2999 "al r3 r5 minus r0 LSL 21 PreIndex", 3000 "NegativePreIndex_al_r3_r5_minus_r0_LSL_21_PreIndex", 3001 ARRAY_SIZE(kNegativePreIndex), 3002 kNegativePreIndex}, 3003 {{al, r8, r14, minus, r11, LSL, 15, PreIndex}, 3004 "al r8 r14 minus r11 LSL 15 PreIndex", 3005 "NegativePreIndex_al_r8_r14_minus_r11_LSL_15_PreIndex", 3006 ARRAY_SIZE(kNegativePreIndex), 3007 kNegativePreIndex}, 3008 {{al, r7, r9, minus, r14, ROR, 6, PreIndex}, 3009 "al r7 r9 minus r14 ROR 6 PreIndex", 3010 "NegativePreIndex_al_r7_r9_minus_r14_ROR_6_PreIndex", 3011 ARRAY_SIZE(kNegativePreIndex), 3012 kNegativePreIndex}, 3013 {{al, r1, r14, minus, r0, LSL, 15, PreIndex}, 3014 "al r1 r14 minus r0 LSL 15 PreIndex", 3015 "NegativePreIndex_al_r1_r14_minus_r0_LSL_15_PreIndex", 3016 ARRAY_SIZE(kNegativePreIndex), 3017 kNegativePreIndex}, 3018 {{al, r6, r12, minus, r5, LSL, 24, PreIndex}, 3019 "al r6 r12 minus r5 LSL 24 PreIndex", 3020 "NegativePreIndex_al_r6_r12_minus_r5_LSL_24_PreIndex", 3021 ARRAY_SIZE(kNegativePreIndex), 3022 kNegativePreIndex}, 3023 {{al, r5, r14, minus, r9, LSL, 5, PreIndex}, 3024 "al r5 r14 minus r9 LSL 5 PreIndex", 3025 "NegativePreIndex_al_r5_r14_minus_r9_LSL_5_PreIndex", 3026 ARRAY_SIZE(kNegativePreIndex), 3027 kNegativePreIndex}, 3028 {{al, r4, r3, minus, r7, ROR, 19, PreIndex}, 3029 "al r4 r3 minus r7 ROR 19 PreIndex", 3030 "NegativePreIndex_al_r4_r3_minus_r7_ROR_19_PreIndex", 3031 ARRAY_SIZE(kNegativePreIndex), 3032 kNegativePreIndex}, 3033 {{al, r8, r7, minus, r11, LSL, 31, PreIndex}, 3034 "al r8 r7 minus r11 LSL 31 PreIndex", 3035 "NegativePreIndex_al_r8_r7_minus_r11_LSL_31_PreIndex", 3036 ARRAY_SIZE(kNegativePreIndex), 3037 kNegativePreIndex}, 3038 {{al, r2, r11, minus, r5, LSL, 8, PreIndex}, 3039 "al r2 r11 minus r5 LSL 8 PreIndex", 3040 "NegativePreIndex_al_r2_r11_minus_r5_LSL_8_PreIndex", 3041 ARRAY_SIZE(kNegativePreIndex), 3042 kNegativePreIndex}, 3043 {{al, r0, r7, minus, r9, ROR, 16, PreIndex}, 3044 "al r0 r7 minus r9 ROR 16 PreIndex", 3045 "NegativePreIndex_al_r0_r7_minus_r9_ROR_16_PreIndex", 3046 ARRAY_SIZE(kNegativePreIndex), 3047 kNegativePreIndex}, 3048 {{al, r11, r8, minus, r0, ROR, 11, PreIndex}, 3049 "al r11 r8 minus r0 ROR 11 PreIndex", 3050 "NegativePreIndex_al_r11_r8_minus_r0_ROR_11_PreIndex", 3051 ARRAY_SIZE(kNegativePreIndex), 3052 kNegativePreIndex}, 3053 {{al, r10, r1, minus, r0, ROR, 10, PreIndex}, 3054 "al r10 r1 minus r0 ROR 10 PreIndex", 3055 "NegativePreIndex_al_r10_r1_minus_r0_ROR_10_PreIndex", 3056 ARRAY_SIZE(kNegativePreIndex), 3057 kNegativePreIndex}, 3058 {{al, r1, r5, minus, r6, ROR, 21, PreIndex}, 3059 "al r1 r5 minus r6 ROR 21 PreIndex", 3060 "NegativePreIndex_al_r1_r5_minus_r6_ROR_21_PreIndex", 3061 ARRAY_SIZE(kNegativePreIndex), 3062 kNegativePreIndex}, 3063 {{al, r7, r1, minus, r2, LSL, 1, PreIndex}, 3064 "al r7 r1 minus r2 LSL 1 PreIndex", 3065 "NegativePreIndex_al_r7_r1_minus_r2_LSL_1_PreIndex", 3066 ARRAY_SIZE(kNegativePreIndex), 3067 kNegativePreIndex}, 3068 {{al, r14, r1, minus, r4, LSL, 10, PreIndex}, 3069 "al r14 r1 minus r4 LSL 10 PreIndex", 3070 "NegativePreIndex_al_r14_r1_minus_r4_LSL_10_PreIndex", 3071 ARRAY_SIZE(kNegativePreIndex), 3072 kNegativePreIndex}, 3073 {{al, r0, r12, minus, r5, ROR, 27, PreIndex}, 3074 "al r0 r12 minus r5 ROR 27 PreIndex", 3075 "NegativePreIndex_al_r0_r12_minus_r5_ROR_27_PreIndex", 3076 ARRAY_SIZE(kNegativePreIndex), 3077 kNegativePreIndex}, 3078 {{al, r2, r11, minus, r9, ROR, 31, PreIndex}, 3079 "al r2 r11 minus r9 ROR 31 PreIndex", 3080 "NegativePreIndex_al_r2_r11_minus_r9_ROR_31_PreIndex", 3081 ARRAY_SIZE(kNegativePreIndex), 3082 kNegativePreIndex}, 3083 {{al, r7, r12, minus, r0, LSL, 6, PreIndex}, 3084 "al r7 r12 minus r0 LSL 6 PreIndex", 3085 "NegativePreIndex_al_r7_r12_minus_r0_LSL_6_PreIndex", 3086 ARRAY_SIZE(kNegativePreIndex), 3087 kNegativePreIndex}, 3088 {{al, r12, r14, minus, r9, ROR, 13, PreIndex}, 3089 "al r12 r14 minus r9 ROR 13 PreIndex", 3090 "NegativePreIndex_al_r12_r14_minus_r9_ROR_13_PreIndex", 3091 ARRAY_SIZE(kNegativePreIndex), 3092 kNegativePreIndex}, 3093 {{al, r2, r6, minus, r11, LSL, 28, PreIndex}, 3094 "al r2 r6 minus r11 LSL 28 PreIndex", 3095 "NegativePreIndex_al_r2_r6_minus_r11_LSL_28_PreIndex", 3096 ARRAY_SIZE(kNegativePreIndex), 3097 kNegativePreIndex}, 3098 {{al, r14, r1, minus, r0, ROR, 18, PreIndex}, 3099 "al r14 r1 minus r0 ROR 18 PreIndex", 3100 "NegativePreIndex_al_r14_r1_minus_r0_ROR_18_PreIndex", 3101 ARRAY_SIZE(kNegativePreIndex), 3102 kNegativePreIndex}, 3103 {{al, r9, r1, minus, r6, LSL, 12, PreIndex}, 3104 "al r9 r1 minus r6 LSL 12 PreIndex", 3105 "NegativePreIndex_al_r9_r1_minus_r6_LSL_12_PreIndex", 3106 ARRAY_SIZE(kNegativePreIndex), 3107 kNegativePreIndex}, 3108 {{al, r7, r4, minus, r0, LSL, 14, PreIndex}, 3109 "al r7 r4 minus r0 LSL 14 PreIndex", 3110 "NegativePreIndex_al_r7_r4_minus_r0_LSL_14_PreIndex", 3111 ARRAY_SIZE(kNegativePreIndex), 3112 kNegativePreIndex}, 3113 {{al, r10, r11, minus, r9, ROR, 31, PreIndex}, 3114 "al r10 r11 minus r9 ROR 31 PreIndex", 3115 "NegativePreIndex_al_r10_r11_minus_r9_ROR_31_PreIndex", 3116 ARRAY_SIZE(kNegativePreIndex), 3117 kNegativePreIndex}, 3118 {{al, r9, r1, minus, r14, LSL, 7, PreIndex}, 3119 "al r9 r1 minus r14 LSL 7 PreIndex", 3120 "NegativePreIndex_al_r9_r1_minus_r14_LSL_7_PreIndex", 3121 ARRAY_SIZE(kNegativePreIndex), 3122 kNegativePreIndex}, 3123 {{al, r9, r5, minus, r11, ROR, 1, PreIndex}, 3124 "al r9 r5 minus r11 ROR 1 PreIndex", 3125 "NegativePreIndex_al_r9_r5_minus_r11_ROR_1_PreIndex", 3126 ARRAY_SIZE(kNegativePreIndex), 3127 kNegativePreIndex}, 3128 {{al, r1, r14, minus, r11, LSL, 14, PreIndex}, 3129 "al r1 r14 minus r11 LSL 14 PreIndex", 3130 "NegativePreIndex_al_r1_r14_minus_r11_LSL_14_PreIndex", 3131 ARRAY_SIZE(kNegativePreIndex), 3132 kNegativePreIndex}, 3133 {{al, r10, r12, minus, r8, LSL, 2, PreIndex}, 3134 "al r10 r12 minus r8 LSL 2 PreIndex", 3135 "NegativePreIndex_al_r10_r12_minus_r8_LSL_2_PreIndex", 3136 ARRAY_SIZE(kNegativePreIndex), 3137 kNegativePreIndex}, 3138 {{al, r5, r8, minus, r3, ROR, 4, PreIndex}, 3139 "al r5 r8 minus r3 ROR 4 PreIndex", 3140 "NegativePreIndex_al_r5_r8_minus_r3_ROR_4_PreIndex", 3141 ARRAY_SIZE(kNegativePreIndex), 3142 kNegativePreIndex}, 3143 {{al, r3, r0, minus, r1, ROR, 20, PreIndex}, 3144 "al r3 r0 minus r1 ROR 20 PreIndex", 3145 "NegativePreIndex_al_r3_r0_minus_r1_ROR_20_PreIndex", 3146 ARRAY_SIZE(kNegativePreIndex), 3147 kNegativePreIndex}, 3148 {{al, r5, r2, minus, r11, ROR, 5, PreIndex}, 3149 "al r5 r2 minus r11 ROR 5 PreIndex", 3150 "NegativePreIndex_al_r5_r2_minus_r11_ROR_5_PreIndex", 3151 ARRAY_SIZE(kNegativePreIndex), 3152 kNegativePreIndex}, 3153 {{al, r3, r7, minus, r9, LSL, 14, PreIndex}, 3154 "al r3 r7 minus r9 LSL 14 PreIndex", 3155 "NegativePreIndex_al_r3_r7_minus_r9_LSL_14_PreIndex", 3156 ARRAY_SIZE(kNegativePreIndex), 3157 kNegativePreIndex}, 3158 {{al, r3, r0, minus, r5, ROR, 20, PreIndex}, 3159 "al r3 r0 minus r5 ROR 20 PreIndex", 3160 "NegativePreIndex_al_r3_r0_minus_r5_ROR_20_PreIndex", 3161 ARRAY_SIZE(kNegativePreIndex), 3162 kNegativePreIndex}, 3163 {{al, r2, r8, minus, r5, ROR, 17, PreIndex}, 3164 "al r2 r8 minus r5 ROR 17 PreIndex", 3165 "NegativePreIndex_al_r2_r8_minus_r5_ROR_17_PreIndex", 3166 ARRAY_SIZE(kNegativePreIndex), 3167 kNegativePreIndex}, 3168 {{al, r1, r2, minus, r14, ROR, 2, PreIndex}, 3169 "al r1 r2 minus r14 ROR 2 PreIndex", 3170 "NegativePreIndex_al_r1_r2_minus_r14_ROR_2_PreIndex", 3171 ARRAY_SIZE(kNegativePreIndex), 3172 kNegativePreIndex}, 3173 {{al, r8, r4, minus, r2, ROR, 10, PreIndex}, 3174 "al r8 r4 minus r2 ROR 10 PreIndex", 3175 "NegativePreIndex_al_r8_r4_minus_r2_ROR_10_PreIndex", 3176 ARRAY_SIZE(kNegativePreIndex), 3177 kNegativePreIndex}, 3178 {{al, r0, r12, minus, r6, LSL, 28, PreIndex}, 3179 "al r0 r12 minus r6 LSL 28 PreIndex", 3180 "NegativePreIndex_al_r0_r12_minus_r6_LSL_28_PreIndex", 3181 ARRAY_SIZE(kNegativePreIndex), 3182 kNegativePreIndex}, 3183 {{al, r7, r4, minus, r12, LSL, 22, PreIndex}, 3184 "al r7 r4 minus r12 LSL 22 PreIndex", 3185 "NegativePreIndex_al_r7_r4_minus_r12_LSL_22_PreIndex", 3186 ARRAY_SIZE(kNegativePreIndex), 3187 kNegativePreIndex}, 3188 {{al, r3, r6, minus, r5, ROR, 7, PreIndex}, 3189 "al r3 r6 minus r5 ROR 7 PreIndex", 3190 "NegativePreIndex_al_r3_r6_minus_r5_ROR_7_PreIndex", 3191 ARRAY_SIZE(kNegativePreIndex), 3192 kNegativePreIndex}, 3193 {{al, r6, r14, minus, r5, ROR, 28, PreIndex}, 3194 "al r6 r14 minus r5 ROR 28 PreIndex", 3195 "NegativePreIndex_al_r6_r14_minus_r5_ROR_28_PreIndex", 3196 ARRAY_SIZE(kNegativePreIndex), 3197 kNegativePreIndex}, 3198 {{al, r4, r2, minus, r8, ROR, 5, PreIndex}, 3199 "al r4 r2 minus r8 ROR 5 PreIndex", 3200 "NegativePreIndex_al_r4_r2_minus_r8_ROR_5_PreIndex", 3201 ARRAY_SIZE(kNegativePreIndex), 3202 kNegativePreIndex}, 3203 {{al, r8, r9, minus, r3, ROR, 7, PreIndex}, 3204 "al r8 r9 minus r3 ROR 7 PreIndex", 3205 "NegativePreIndex_al_r8_r9_minus_r3_ROR_7_PreIndex", 3206 ARRAY_SIZE(kNegativePreIndex), 3207 kNegativePreIndex}, 3208 {{al, r8, r14, minus, r11, LSL, 11, PreIndex}, 3209 "al r8 r14 minus r11 LSL 11 PreIndex", 3210 "NegativePreIndex_al_r8_r14_minus_r11_LSL_11_PreIndex", 3211 ARRAY_SIZE(kNegativePreIndex), 3212 kNegativePreIndex}, 3213 {{al, r7, r6, minus, r4, LSL, 28, PreIndex}, 3214 "al r7 r6 minus r4 LSL 28 PreIndex", 3215 "NegativePreIndex_al_r7_r6_minus_r4_LSL_28_PreIndex", 3216 ARRAY_SIZE(kNegativePreIndex), 3217 kNegativePreIndex}, 3218 {{al, r12, r9, minus, r8, ROR, 28, PreIndex}, 3219 "al r12 r9 minus r8 ROR 28 PreIndex", 3220 "NegativePreIndex_al_r12_r9_minus_r8_ROR_28_PreIndex", 3221 ARRAY_SIZE(kNegativePreIndex), 3222 kNegativePreIndex}, 3223 {{al, r7, r14, minus, r10, ROR, 1, PreIndex}, 3224 "al r7 r14 minus r10 ROR 1 PreIndex", 3225 "NegativePreIndex_al_r7_r14_minus_r10_ROR_1_PreIndex", 3226 ARRAY_SIZE(kNegativePreIndex), 3227 kNegativePreIndex}, 3228 {{al, r2, r1, minus, r0, ROR, 11, PreIndex}, 3229 "al r2 r1 minus r0 ROR 11 PreIndex", 3230 "NegativePreIndex_al_r2_r1_minus_r0_ROR_11_PreIndex", 3231 ARRAY_SIZE(kNegativePreIndex), 3232 kNegativePreIndex}, 3233 {{al, r3, r9, minus, r6, ROR, 13, PreIndex}, 3234 "al r3 r9 minus r6 ROR 13 PreIndex", 3235 "NegativePreIndex_al_r3_r9_minus_r6_ROR_13_PreIndex", 3236 ARRAY_SIZE(kNegativePreIndex), 3237 kNegativePreIndex}, 3238 {{al, r7, r11, minus, r3, ROR, 28, PreIndex}, 3239 "al r7 r11 minus r3 ROR 28 PreIndex", 3240 "NegativePreIndex_al_r7_r11_minus_r3_ROR_28_PreIndex", 3241 ARRAY_SIZE(kNegativePreIndex), 3242 kNegativePreIndex}, 3243 {{al, r12, r4, minus, r3, LSL, 17, PreIndex}, 3244 "al r12 r4 minus r3 LSL 17 PreIndex", 3245 "NegativePreIndex_al_r12_r4_minus_r3_LSL_17_PreIndex", 3246 ARRAY_SIZE(kNegativePreIndex), 3247 kNegativePreIndex}, 3248 {{al, r12, r3, minus, r5, LSL, 4, PreIndex}, 3249 "al r12 r3 minus r5 LSL 4 PreIndex", 3250 "NegativePreIndex_al_r12_r3_minus_r5_LSL_4_PreIndex", 3251 ARRAY_SIZE(kNegativePreIndex), 3252 kNegativePreIndex}, 3253 {{al, r9, r1, minus, r7, LSL, 19, PreIndex}, 3254 "al r9 r1 minus r7 LSL 19 PreIndex", 3255 "NegativePreIndex_al_r9_r1_minus_r7_LSL_19_PreIndex", 3256 ARRAY_SIZE(kNegativePreIndex), 3257 kNegativePreIndex}, 3258 {{al, r2, r11, minus, r7, ROR, 5, PreIndex}, 3259 "al r2 r11 minus r7 ROR 5 PreIndex", 3260 "NegativePreIndex_al_r2_r11_minus_r7_ROR_5_PreIndex", 3261 ARRAY_SIZE(kNegativePreIndex), 3262 kNegativePreIndex}, 3263 {{al, r5, r9, minus, r6, LSL, 11, PreIndex}, 3264 "al r5 r9 minus r6 LSL 11 PreIndex", 3265 "NegativePreIndex_al_r5_r9_minus_r6_LSL_11_PreIndex", 3266 ARRAY_SIZE(kNegativePreIndex), 3267 kNegativePreIndex}, 3268 {{al, r3, r7, minus, r2, LSL, 12, PreIndex}, 3269 "al r3 r7 minus r2 LSL 12 PreIndex", 3270 "NegativePreIndex_al_r3_r7_minus_r2_LSL_12_PreIndex", 3271 ARRAY_SIZE(kNegativePreIndex), 3272 kNegativePreIndex}, 3273 {{al, r4, r8, minus, r0, LSL, 3, PreIndex}, 3274 "al r4 r8 minus r0 LSL 3 PreIndex", 3275 "NegativePreIndex_al_r4_r8_minus_r0_LSL_3_PreIndex", 3276 ARRAY_SIZE(kNegativePreIndex), 3277 kNegativePreIndex}, 3278 {{al, r8, r10, minus, r5, ROR, 8, PreIndex}, 3279 "al r8 r10 minus r5 ROR 8 PreIndex", 3280 "NegativePreIndex_al_r8_r10_minus_r5_ROR_8_PreIndex", 3281 ARRAY_SIZE(kNegativePreIndex), 3282 kNegativePreIndex}, 3283 {{al, r11, r14, minus, r0, LSL, 17, PreIndex}, 3284 "al r11 r14 minus r0 LSL 17 PreIndex", 3285 "NegativePreIndex_al_r11_r14_minus_r0_LSL_17_PreIndex", 3286 ARRAY_SIZE(kNegativePreIndex), 3287 kNegativePreIndex}, 3288 {{al, r7, r0, minus, r3, ROR, 10, PreIndex}, 3289 "al r7 r0 minus r3 ROR 10 PreIndex", 3290 "NegativePreIndex_al_r7_r0_minus_r3_ROR_10_PreIndex", 3291 ARRAY_SIZE(kNegativePreIndex), 3292 kNegativePreIndex}, 3293 {{al, r4, r12, minus, r1, LSL, 20, PreIndex}, 3294 "al r4 r12 minus r1 LSL 20 PreIndex", 3295 "NegativePreIndex_al_r4_r12_minus_r1_LSL_20_PreIndex", 3296 ARRAY_SIZE(kNegativePreIndex), 3297 kNegativePreIndex}, 3298 {{al, r3, r2, minus, r4, LSL, 14, PreIndex}, 3299 "al r3 r2 minus r4 LSL 14 PreIndex", 3300 "NegativePreIndex_al_r3_r2_minus_r4_LSL_14_PreIndex", 3301 ARRAY_SIZE(kNegativePreIndex), 3302 kNegativePreIndex}, 3303 {{al, r4, r6, minus, r11, LSL, 24, PreIndex}, 3304 "al r4 r6 minus r11 LSL 24 PreIndex", 3305 "NegativePreIndex_al_r4_r6_minus_r11_LSL_24_PreIndex", 3306 ARRAY_SIZE(kNegativePreIndex), 3307 kNegativePreIndex}, 3308 {{al, r3, r6, minus, r10, LSL, 8, PreIndex}, 3309 "al r3 r6 minus r10 LSL 8 PreIndex", 3310 "NegativePreIndex_al_r3_r6_minus_r10_LSL_8_PreIndex", 3311 ARRAY_SIZE(kNegativePreIndex), 3312 kNegativePreIndex}, 3313 {{al, r12, r3, minus, r9, LSL, 7, PreIndex}, 3314 "al r12 r3 minus r9 LSL 7 PreIndex", 3315 "NegativePreIndex_al_r12_r3_minus_r9_LSL_7_PreIndex", 3316 ARRAY_SIZE(kNegativePreIndex), 3317 kNegativePreIndex}, 3318 {{al, r2, r1, minus, r14, ROR, 17, PreIndex}, 3319 "al r2 r1 minus r14 ROR 17 PreIndex", 3320 "NegativePreIndex_al_r2_r1_minus_r14_ROR_17_PreIndex", 3321 ARRAY_SIZE(kNegativePreIndex), 3322 kNegativePreIndex}, 3323 {{al, r12, r10, minus, r6, ROR, 5, PreIndex}, 3324 "al r12 r10 minus r6 ROR 5 PreIndex", 3325 "NegativePreIndex_al_r12_r10_minus_r6_ROR_5_PreIndex", 3326 ARRAY_SIZE(kNegativePreIndex), 3327 kNegativePreIndex}, 3328 {{al, r7, r1, minus, r5, ROR, 20, PreIndex}, 3329 "al r7 r1 minus r5 ROR 20 PreIndex", 3330 "NegativePreIndex_al_r7_r1_minus_r5_ROR_20_PreIndex", 3331 ARRAY_SIZE(kNegativePreIndex), 3332 kNegativePreIndex}}; 3333 3334// We record all inputs to the instructions as outputs. This way, we also check 3335// that what shouldn't change didn't change. 3336struct TestResult { 3337 size_t output_size; 3338 const Inputs* outputs; 3339}; 3340 3341// These headers each contain an array of `TestResult` with the reference output 3342// values. The reference arrays are names `kReference{mnemonic}`. 3343#include "aarch32/traces/simulator-cond-rd-memop-rs-shift-amount-1to31-ldr-a32.h" 3344#include "aarch32/traces/simulator-cond-rd-memop-rs-shift-amount-1to31-ldrb-a32.h" 3345#include "aarch32/traces/simulator-cond-rd-memop-rs-shift-amount-1to31-str-a32.h" 3346#include "aarch32/traces/simulator-cond-rd-memop-rs-shift-amount-1to31-strb-a32.h" 3347 3348 3349// The maximum number of errors to report in detail for each test. 3350const unsigned kErrorReportLimit = 8; 3351 3352typedef void (MacroAssembler::*Fn)(Condition cond, 3353 Register rd, 3354 const MemOperand& memop); 3355 3356void TestHelper(Fn instruction, 3357 const char* mnemonic, 3358 const TestResult reference[]) { 3359 SETUP(); 3360 masm.UseA32(); 3361 START(); 3362 3363 // Data to compare to `reference`. 3364 TestResult* results[ARRAY_SIZE(kTests)]; 3365 3366 // Test cases for memory bound instructions may allocate a buffer and save its 3367 // address in this array. 3368 byte* scratch_memory_buffers[ARRAY_SIZE(kTests)]; 3369 3370 // Generate a loop for each element in `kTests`. Each loop tests one specific 3371 // instruction. 3372 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) { 3373 // Allocate results on the heap for this test. 3374 results[i] = new TestResult; 3375 results[i]->outputs = new Inputs[kTests[i].input_size]; 3376 results[i]->output_size = kTests[i].input_size; 3377 3378 size_t input_stride = sizeof(kTests[i].inputs[0]) * kTests[i].input_size; 3379 VIXL_ASSERT(IsUint32(input_stride)); 3380 3381 scratch_memory_buffers[i] = NULL; 3382 3383 Label loop; 3384 UseScratchRegisterScope scratch_registers(&masm); 3385 // Include all registers from r0 ro r12. 3386 scratch_registers.Include(RegisterList(0x1fff)); 3387 3388 // Values to pass to the macro-assembler. 3389 Condition cond = kTests[i].operands.cond; 3390 Register rd = kTests[i].operands.rd; 3391 Register rn = kTests[i].operands.rn; 3392 Sign sign = kTests[i].operands.sign; 3393 Register rm = kTests[i].operands.rm; 3394 ShiftType shift = kTests[i].operands.shift; 3395 uint32_t amount = kTests[i].operands.amount; 3396 AddrMode addr_mode = kTests[i].operands.addr_mode; 3397 MemOperand memop(rn, sign, rm, shift, amount, addr_mode); 3398 scratch_registers.Exclude(rd); 3399 scratch_registers.Exclude(rn); 3400 scratch_registers.Exclude(rm); 3401 3402 // Allocate reserved registers for our own use. 3403 Register input_ptr = scratch_registers.Acquire(); 3404 Register input_end = scratch_registers.Acquire(); 3405 Register result_ptr = scratch_registers.Acquire(); 3406 3407 // Initialize `input_ptr` to the first element and `input_end` the address 3408 // after the array. 3409 __ Mov(input_ptr, Operand::From(kTests[i].inputs)); 3410 __ Add(input_end, input_ptr, static_cast<uint32_t>(input_stride)); 3411 __ Mov(result_ptr, Operand::From(results[i]->outputs)); 3412 __ Bind(&loop); 3413 3414 { 3415 UseScratchRegisterScope temp_registers(&masm); 3416 Register nzcv_bits = temp_registers.Acquire(); 3417 Register saved_q_bit = temp_registers.Acquire(); 3418 // Save the `Q` bit flag. 3419 __ Mrs(saved_q_bit, APSR); 3420 __ And(saved_q_bit, saved_q_bit, QFlag); 3421 // Set the `NZCV` and `Q` flags together. 3422 __ Ldr(nzcv_bits, MemOperand(input_ptr, offsetof(Inputs, apsr))); 3423 __ Orr(nzcv_bits, nzcv_bits, saved_q_bit); 3424 __ Msr(APSR_nzcvq, nzcv_bits); 3425 } 3426 __ Ldr(rd, MemOperand(input_ptr, offsetof(Inputs, rd))); 3427 __ Ldr(rm, MemOperand(input_ptr, offsetof(Inputs, rm))); 3428 // Allocate 4 bytes for the instruction to work with. 3429 scratch_memory_buffers[i] = new byte[4]; 3430 { 3431 UseScratchRegisterScope temp_registers(&masm); 3432 3433 Register memop_tmp = temp_registers.Acquire(); 3434 Register base_register = memop.GetBaseRegister(); 3435 3436 // Write the expected data into the scratch buffer. 3437 __ Mov(base_register, Operand::From(scratch_memory_buffers[i])); 3438 __ Ldr(memop_tmp, MemOperand(input_ptr, offsetof(Inputs, memop) + 4)); 3439 __ Str(memop_tmp, MemOperand(base_register)); 3440 3441 // Compute the address to put into the base register so that the 3442 // `MemOperand` points to the right location. 3443 // TODO: Support more kinds of `MemOperand`. 3444 if (!memop.IsPostIndex()) { 3445 if (memop.IsImmediate()) { 3446 if (memop.GetSign().IsPlus()) { 3447 __ Mov(memop_tmp, memop.GetOffsetImmediate()); 3448 __ Sub(base_register, base_register, memop_tmp); 3449 } else { 3450 __ Mov(memop_tmp, -memop.GetOffsetImmediate()); 3451 __ Add(base_register, base_register, memop_tmp); 3452 } 3453 } else if (memop.IsShiftedRegister()) { 3454 __ Mov(memop_tmp, 3455 Operand(memop.GetOffsetRegister(), 3456 memop.GetShift(), 3457 memop.GetShiftAmount())); 3458 if (memop.GetSign().IsPlus()) { 3459 __ Sub(base_register, base_register, memop_tmp); 3460 } else { 3461 __ Add(base_register, base_register, memop_tmp); 3462 } 3463 } 3464 } 3465 } 3466 3467 3468 (masm.*instruction)(cond, rd, memop); 3469 3470 { 3471 UseScratchRegisterScope temp_registers(&masm); 3472 Register nzcv_bits = temp_registers.Acquire(); 3473 __ Mrs(nzcv_bits, APSR); 3474 // Only record the NZCV bits. 3475 __ And(nzcv_bits, nzcv_bits, NZCVFlag); 3476 __ Str(nzcv_bits, MemOperand(result_ptr, offsetof(Inputs, apsr))); 3477 } 3478 __ Str(rd, MemOperand(result_ptr, offsetof(Inputs, rd))); 3479 __ Str(rm, MemOperand(result_ptr, offsetof(Inputs, rm))); 3480 { 3481 UseScratchRegisterScope temp_registers(&masm); 3482 Register memop_tmp = temp_registers.Acquire(); 3483 Register base_register = memop.GetBaseRegister(); 3484 3485 // Compute the address of the scratch buffer by from the base register. If 3486 // the instruction has updated the base register, we will be able to 3487 // record it. 3488 if (!memop.IsPostIndex()) { 3489 if (memop.IsImmediate()) { 3490 if (memop.GetSign().IsPlus()) { 3491 __ Mov(memop_tmp, memop.GetOffsetImmediate()); 3492 __ Add(base_register, base_register, memop_tmp); 3493 } else { 3494 __ Mov(memop_tmp, -memop.GetOffsetImmediate()); 3495 __ Sub(base_register, base_register, memop_tmp); 3496 } 3497 } else if (memop.IsShiftedRegister()) { 3498 __ Mov(memop_tmp, 3499 Operand(memop.GetOffsetRegister(), 3500 memop.GetShift(), 3501 memop.GetShiftAmount())); 3502 if (memop.GetSign().IsPlus()) { 3503 __ Add(base_register, base_register, memop_tmp); 3504 } else { 3505 __ Sub(base_register, base_register, memop_tmp); 3506 } 3507 } 3508 } 3509 3510 // Record the value of the base register, as an offset from the scratch 3511 // buffer's address. 3512 __ Mov(memop_tmp, Operand::From(scratch_memory_buffers[i])); 3513 __ Sub(base_register, base_register, memop_tmp); 3514 __ Str(base_register, MemOperand(result_ptr, offsetof(Inputs, memop))); 3515 3516 // Record the 32 bit word from memory. 3517 __ Ldr(memop_tmp, MemOperand(memop_tmp)); 3518 __ Str(memop_tmp, MemOperand(result_ptr, offsetof(Inputs, memop) + 4)); 3519 } 3520 3521 3522 // Advance the result pointer. 3523 __ Add(result_ptr, result_ptr, Operand::From(sizeof(kTests[i].inputs[0]))); 3524 // Loop back until `input_ptr` is lower than `input_base`. 3525 __ Add(input_ptr, input_ptr, Operand::From(sizeof(kTests[i].inputs[0]))); 3526 __ Cmp(input_ptr, input_end); 3527 __ B(ne, &loop); 3528 } 3529 3530 END(); 3531 3532 RUN(); 3533 3534 if (Test::generate_test_trace()) { 3535 // Print the results. 3536 for (size_t i = 0; i < ARRAY_SIZE(kTests); i++) { 3537 printf("const Inputs kOutputs_%s_%s[] = {\n", 3538 mnemonic, 3539 kTests[i].identifier); 3540 for (size_t j = 0; j < results[i]->output_size; j++) { 3541 printf(" { "); 3542 printf("0x%08" PRIx32, results[i]->outputs[j].apsr); 3543 printf(", "); 3544 printf("0x%08" PRIx32, results[i]->outputs[j].rd); 3545 printf(", "); 3546 printf("0x%08" PRIx32, results[i]->outputs[j].rm); 3547 printf(", "); 3548 printf("{0x%08" PRIx32 ", 0x%08" PRIx32 "}", 3549 results[i]->outputs[j].memop[0], 3550 results[i]->outputs[j].memop[1]); 3551 printf(" },\n"); 3552 } 3553 printf("};\n"); 3554 } 3555 printf("const TestResult kReference%s[] = {\n", mnemonic); 3556 for (size_t i = 0; i < ARRAY_SIZE(kTests); i++) { 3557 printf(" {\n"); 3558 printf(" ARRAY_SIZE(kOutputs_%s_%s),\n", 3559 mnemonic, 3560 kTests[i].identifier); 3561 printf(" kOutputs_%s_%s,\n", mnemonic, kTests[i].identifier); 3562 printf(" },\n"); 3563 } 3564 printf("};\n"); 3565 } else if (kCheckSimulatorTestResults) { 3566 // Check the results. 3567 unsigned total_error_count = 0; 3568 for (size_t i = 0; i < ARRAY_SIZE(kTests); i++) { 3569 bool instruction_has_errors = false; 3570 for (size_t j = 0; j < kTests[i].input_size; j++) { 3571 uint32_t apsr = results[i]->outputs[j].apsr; 3572 uint32_t rd = results[i]->outputs[j].rd; 3573 uint32_t rm = results[i]->outputs[j].rm; 3574 uint32_t memop[2] = {results[i]->outputs[j].memop[0], 3575 results[i]->outputs[j].memop[1]}; 3576 3577 uint32_t apsr_input = kTests[i].inputs[j].apsr; 3578 uint32_t rd_input = kTests[i].inputs[j].rd; 3579 uint32_t rm_input = kTests[i].inputs[j].rm; 3580 uint32_t memop_input[2] = {kTests[i].inputs[j].memop[0], 3581 kTests[i].inputs[j].memop[1]}; 3582 3583 uint32_t apsr_ref = reference[i].outputs[j].apsr; 3584 uint32_t rd_ref = reference[i].outputs[j].rd; 3585 uint32_t rm_ref = reference[i].outputs[j].rm; 3586 uint32_t memop_ref[2] = {results[i]->outputs[j].memop[0], 3587 results[i]->outputs[j].memop[1]}; 3588 3589 3590 if (((apsr != apsr_ref) || (rd != rd_ref) || (rm != rm_ref) || 3591 ((memop[0] != memop_ref[0]) && (memop[1] != memop_ref[1]))) && 3592 (++total_error_count <= kErrorReportLimit)) { 3593 // Print the instruction once even if it triggered multiple failures. 3594 if (!instruction_has_errors) { 3595 printf("Error(s) when testing \"%s %s\":\n", 3596 mnemonic, 3597 kTests[i].operands_description); 3598 instruction_has_errors = true; 3599 } 3600 // Print subsequent errors. 3601 printf(" Input: "); 3602 printf("0x%08" PRIx32, apsr_input); 3603 printf(", "); 3604 printf("0x%08" PRIx32, rd_input); 3605 printf(", "); 3606 printf("0x%08" PRIx32, rm_input); 3607 printf(", "); 3608 printf("{0x%08" PRIx32 ", 0x%08" PRIx32 "}", 3609 memop_input[0], 3610 memop_input[1]); 3611 printf("\n"); 3612 printf(" Expected: "); 3613 printf("0x%08" PRIx32, apsr_ref); 3614 printf(", "); 3615 printf("0x%08" PRIx32, rd_ref); 3616 printf(", "); 3617 printf("0x%08" PRIx32, rm_ref); 3618 printf(", "); 3619 printf("{0x%08" PRIx32 ", 0x%08" PRIx32 "}", 3620 memop_ref[0], 3621 memop_ref[1]); 3622 printf("\n"); 3623 printf(" Found: "); 3624 printf("0x%08" PRIx32, apsr); 3625 printf(", "); 3626 printf("0x%08" PRIx32, rd); 3627 printf(", "); 3628 printf("0x%08" PRIx32, rm); 3629 printf(", "); 3630 printf("{0x%08" PRIx32 ", 0x%08" PRIx32 "}", memop[0], memop[1]); 3631 printf("\n\n"); 3632 } 3633 } 3634 } 3635 3636 if (total_error_count > kErrorReportLimit) { 3637 printf("%u other errors follow.\n", 3638 total_error_count - kErrorReportLimit); 3639 } 3640 VIXL_CHECK(total_error_count == 0); 3641 } else { 3642 VIXL_WARNING("Assembled the code, but did not run anything.\n"); 3643 } 3644 3645 for (size_t i = 0; i < ARRAY_SIZE(kTests); i++) { 3646 delete[] results[i]->outputs; 3647 delete results[i]; 3648 delete[] scratch_memory_buffers[i]; 3649 } 3650} 3651 3652// Instantiate tests for each instruction in the list. 3653// TODO: Remove this limitation by having a sandboxing mechanism. 3654#if defined(VIXL_HOST_POINTER_32) 3655#define TEST(mnemonic) \ 3656 void Test_##mnemonic() { \ 3657 TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic); \ 3658 } \ 3659 Test test_##mnemonic( \ 3660 "AARCH32_SIMULATOR_COND_RD_MEMOP_RS_SHIFT_AMOUNT_1TO31_" #mnemonic \ 3661 "_A32", \ 3662 &Test_##mnemonic); 3663#else 3664#define TEST(mnemonic) \ 3665 void Test_##mnemonic() { \ 3666 VIXL_WARNING("This test can only run on a 32-bit host.\n"); \ 3667 USE(TestHelper); \ 3668 } \ 3669 Test test_##mnemonic( \ 3670 "AARCH32_SIMULATOR_COND_RD_MEMOP_RS_SHIFT_AMOUNT_1TO31_" #mnemonic \ 3671 "_A32", \ 3672 &Test_##mnemonic); 3673#endif 3674 3675FOREACH_INSTRUCTION(TEST) 3676#undef TEST 3677 3678} // namespace 3679#endif 3680 3681} // namespace aarch32 3682} // namespace vixl 3683