1 // Copyright 2016, VIXL authors 2 // All rights reserved. 3 // 4 // Redistribution and use in source and binary forms, with or without 5 // modification, are permitted provided that the following conditions are met: 6 // 7 // * Redistributions of source code must retain the above copyright notice, 8 // this list of conditions and the following disclaimer. 9 // * Redistributions in binary form must reproduce the above copyright notice, 10 // this list of conditions and the following disclaimer in the documentation 11 // and/or other materials provided with the distribution. 12 // * Neither the name of ARM Limited nor the names of its contributors may be 13 // used to endorse or promote products derived from this software without 14 // specific prior written permission. 15 // 16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND 17 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE 20 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 23 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24 // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 27 28 // ----------------------------------------------------------------------------- 29 // This file is auto generated from the 30 // test/aarch32/config/template-assembler-aarch32.cc.in template file using 31 // tools/generate_tests.py. 32 // 33 // PLEASE DO NOT EDIT. 34 // ----------------------------------------------------------------------------- 35 36 37 #include "test-runner.h" 38 39 #include "test-utils.h" 40 #include "test-utils-aarch32.h" 41 42 #include "aarch32/assembler-aarch32.h" 43 #include "aarch32/macro-assembler-aarch32.h" 44 45 #define BUF_SIZE (4096) 46 47 namespace vixl { 48 namespace aarch32 { 49 50 // List of instruction mnemonics. 51 #define FOREACH_INSTRUCTION(M) \ 52 M(adc) \ 53 M(adcs) \ 54 M(add) \ 55 M(adds) \ 56 M(and_) \ 57 M(ands) \ 58 M(bic) \ 59 M(bics) \ 60 M(eor) \ 61 M(eors) \ 62 M(orr) \ 63 M(orrs) \ 64 M(rsb) \ 65 M(rsbs) \ 66 M(rsc) \ 67 M(rscs) \ 68 M(sbc) \ 69 M(sbcs) \ 70 M(sub) \ 71 M(subs) 72 73 74 // The following definitions are defined again in each generated test, therefore 75 // we need to place them in an anomymous namespace. It expresses that they are 76 // local to this file only, and the compiler is not allowed to share these types 77 // across test files during template instantiation. Specifically, `Operands` has 78 // various layouts across generated tests so it absolutely cannot be shared. 79 80 #ifdef VIXL_INCLUDE_TARGET_A32 81 namespace { 82 83 // Values to be passed to the assembler to produce the instruction under test. 84 struct Operands { 85 Condition cond; 86 Register rd; 87 Register rn; 88 Register rm; 89 ShiftType shift; 90 uint32_t amount; 91 }; 92 93 // This structure contains all data needed to test one specific 94 // instruction. 95 struct TestData { 96 // The `operands` field represents what to pass to the assembler to 97 // produce the instruction. 98 Operands operands; 99 // True if we need to generate an IT instruction for this test to be valid. 100 bool in_it_block; 101 // The condition to give the IT instruction, this will be set to "al" by 102 // default. 103 Condition it_condition; 104 // Description of the operands, used for error reporting. 105 const char* operands_description; 106 // Unique identifier, used for generating traces. 107 const char* identifier; 108 }; 109 110 struct TestResult { 111 size_t size; 112 const byte* encoding; 113 }; 114 115 // Each element of this array produce one instruction encoding. 116 const TestData kTests[] = {{{eq, r13, r13, r0, LSL, 5}, 117 false, 118 al, 119 "eq r13 r13 r0 LSL 5", 120 "eq_r13_r13_r0_LSL_5"}, 121 {{mi, r10, r14, r13, LSL, 10}, 122 false, 123 al, 124 "mi r10 r14 r13 LSL 10", 125 "mi_r10_r14_r13_LSL_10"}, 126 {{hi, r6, r2, r13, LSL, 4}, 127 false, 128 al, 129 "hi r6 r2 r13 LSL 4", 130 "hi_r6_r2_r13_LSL_4"}, 131 {{ge, r3, r5, r13, LSL, 2}, 132 false, 133 al, 134 "ge r3 r5 r13 LSL 2", 135 "ge_r3_r5_r13_LSL_2"}, 136 {{cc, r10, r5, r1, ROR, 10}, 137 false, 138 al, 139 "cc r10 r5 r1 ROR 10", 140 "cc_r10_r5_r1_ROR_10"}, 141 {{ge, r3, r14, r7, ROR, 7}, 142 false, 143 al, 144 "ge r3 r14 r7 ROR 7", 145 "ge_r3_r14_r7_ROR_7"}, 146 {{pl, r11, r1, r7, LSL, 23}, 147 false, 148 al, 149 "pl r11 r1 r7 LSL 23", 150 "pl_r11_r1_r7_LSL_23"}, 151 {{le, r8, r6, r4, LSL, 21}, 152 false, 153 al, 154 "le r8 r6 r4 LSL 21", 155 "le_r8_r6_r4_LSL_21"}, 156 {{ne, r2, r9, r2, LSL, 3}, 157 false, 158 al, 159 "ne r2 r9 r2 LSL 3", 160 "ne_r2_r9_r2_LSL_3"}, 161 {{ge, r14, r14, r8, LSL, 4}, 162 false, 163 al, 164 "ge r14 r14 r8 LSL 4", 165 "ge_r14_r14_r8_LSL_4"}, 166 {{vs, r1, r5, r14, LSL, 15}, 167 false, 168 al, 169 "vs r1 r5 r14 LSL 15", 170 "vs_r1_r5_r14_LSL_15"}, 171 {{cs, r12, r3, r0, ROR, 20}, 172 false, 173 al, 174 "cs r12 r3 r0 ROR 20", 175 "cs_r12_r3_r0_ROR_20"}, 176 {{vs, r1, r6, r9, ROR, 14}, 177 false, 178 al, 179 "vs r1 r6 r9 ROR 14", 180 "vs_r1_r6_r9_ROR_14"}, 181 {{cs, r9, r10, r12, LSL, 27}, 182 false, 183 al, 184 "cs r9 r10 r12 LSL 27", 185 "cs_r9_r10_r12_LSL_27"}, 186 {{vc, r14, r13, r10, ROR, 7}, 187 false, 188 al, 189 "vc r14 r13 r10 ROR 7", 190 "vc_r14_r13_r10_ROR_7"}, 191 {{ge, r12, r0, r6, ROR, 4}, 192 false, 193 al, 194 "ge r12 r0 r6 ROR 4", 195 "ge_r12_r0_r6_ROR_4"}, 196 {{cc, r13, r0, r3, LSL, 14}, 197 false, 198 al, 199 "cc r13 r0 r3 LSL 14", 200 "cc_r13_r0_r3_LSL_14"}, 201 {{gt, r1, r4, r7, ROR, 10}, 202 false, 203 al, 204 "gt r1 r4 r7 ROR 10", 205 "gt_r1_r4_r7_ROR_10"}, 206 {{ne, r8, r11, r14, ROR, 19}, 207 false, 208 al, 209 "ne r8 r11 r14 ROR 19", 210 "ne_r8_r11_r14_ROR_19"}, 211 {{vc, r4, r11, r5, ROR, 15}, 212 false, 213 al, 214 "vc r4 r11 r5 ROR 15", 215 "vc_r4_r11_r5_ROR_15"}, 216 {{pl, r5, r5, r2, LSL, 28}, 217 false, 218 al, 219 "pl r5 r5 r2 LSL 28", 220 "pl_r5_r5_r2_LSL_28"}, 221 {{pl, r13, r12, r9, ROR, 25}, 222 false, 223 al, 224 "pl r13 r12 r9 ROR 25", 225 "pl_r13_r12_r9_ROR_25"}, 226 {{gt, r11, r11, r8, LSL, 16}, 227 false, 228 al, 229 "gt r11 r11 r8 LSL 16", 230 "gt_r11_r11_r8_LSL_16"}, 231 {{eq, r8, r14, r0, LSL, 26}, 232 false, 233 al, 234 "eq r8 r14 r0 LSL 26", 235 "eq_r8_r14_r0_LSL_26"}, 236 {{cs, r11, r14, r7, ROR, 3}, 237 false, 238 al, 239 "cs r11 r14 r7 ROR 3", 240 "cs_r11_r14_r7_ROR_3"}, 241 {{lt, r13, r4, r11, ROR, 8}, 242 false, 243 al, 244 "lt r13 r4 r11 ROR 8", 245 "lt_r13_r4_r11_ROR_8"}, 246 {{eq, r14, r10, r9, ROR, 5}, 247 false, 248 al, 249 "eq r14 r10 r9 ROR 5", 250 "eq_r14_r10_r9_ROR_5"}, 251 {{vs, r7, r12, r3, LSL, 23}, 252 false, 253 al, 254 "vs r7 r12 r3 LSL 23", 255 "vs_r7_r12_r3_LSL_23"}, 256 {{le, r14, r8, r0, ROR, 22}, 257 false, 258 al, 259 "le r14 r8 r0 ROR 22", 260 "le_r14_r8_r0_ROR_22"}, 261 {{ne, r7, r14, r12, LSL, 25}, 262 false, 263 al, 264 "ne r7 r14 r12 LSL 25", 265 "ne_r7_r14_r12_LSL_25"}, 266 {{hi, r9, r12, r1, LSL, 16}, 267 false, 268 al, 269 "hi r9 r12 r1 LSL 16", 270 "hi_r9_r12_r1_LSL_16"}, 271 {{cs, r9, r11, r3, ROR, 23}, 272 false, 273 al, 274 "cs r9 r11 r3 ROR 23", 275 "cs_r9_r11_r3_ROR_23"}, 276 {{vc, r7, r2, r6, ROR, 16}, 277 false, 278 al, 279 "vc r7 r2 r6 ROR 16", 280 "vc_r7_r2_r6_ROR_16"}, 281 {{lt, r12, r7, r6, LSL, 2}, 282 false, 283 al, 284 "lt r12 r7 r6 LSL 2", 285 "lt_r12_r7_r6_LSL_2"}, 286 {{gt, r1, r9, r4, LSL, 29}, 287 false, 288 al, 289 "gt r1 r9 r4 LSL 29", 290 "gt_r1_r9_r4_LSL_29"}, 291 {{mi, r11, r0, r5, LSL, 22}, 292 false, 293 al, 294 "mi r11 r0 r5 LSL 22", 295 "mi_r11_r0_r5_LSL_22"}, 296 {{ls, r13, r10, r0, ROR, 14}, 297 false, 298 al, 299 "ls r13 r10 r0 ROR 14", 300 "ls_r13_r10_r0_ROR_14"}, 301 {{ge, r0, r7, r14, LSL, 15}, 302 false, 303 al, 304 "ge r0 r7 r14 LSL 15", 305 "ge_r0_r7_r14_LSL_15"}, 306 {{vs, r12, r13, r3, ROR, 1}, 307 false, 308 al, 309 "vs r12 r13 r3 ROR 1", 310 "vs_r12_r13_r3_ROR_1"}, 311 {{pl, r1, r0, r3, ROR, 31}, 312 false, 313 al, 314 "pl r1 r0 r3 ROR 31", 315 "pl_r1_r0_r3_ROR_31"}, 316 {{mi, r13, r3, r9, ROR, 4}, 317 false, 318 al, 319 "mi r13 r3 r9 ROR 4", 320 "mi_r13_r3_r9_ROR_4"}, 321 {{ge, r1, r14, r0, LSL, 25}, 322 false, 323 al, 324 "ge r1 r14 r0 LSL 25", 325 "ge_r1_r14_r0_LSL_25"}, 326 {{ne, r6, r0, r9, LSL, 16}, 327 false, 328 al, 329 "ne r6 r0 r9 LSL 16", 330 "ne_r6_r0_r9_LSL_16"}, 331 {{vc, r8, r11, r3, ROR, 2}, 332 false, 333 al, 334 "vc r8 r11 r3 ROR 2", 335 "vc_r8_r11_r3_ROR_2"}, 336 {{cc, r10, r9, r0, ROR, 31}, 337 false, 338 al, 339 "cc r10 r9 r0 ROR 31", 340 "cc_r10_r9_r0_ROR_31"}, 341 {{hi, r9, r6, r7, LSL, 13}, 342 false, 343 al, 344 "hi r9 r6 r7 LSL 13", 345 "hi_r9_r6_r7_LSL_13"}, 346 {{cs, r10, r14, r9, LSL, 3}, 347 false, 348 al, 349 "cs r10 r14 r9 LSL 3", 350 "cs_r10_r14_r9_LSL_3"}, 351 {{al, r5, r12, r5, LSL, 10}, 352 false, 353 al, 354 "al r5 r12 r5 LSL 10", 355 "al_r5_r12_r5_LSL_10"}, 356 {{mi, r3, r11, r3, ROR, 6}, 357 false, 358 al, 359 "mi r3 r11 r3 ROR 6", 360 "mi_r3_r11_r3_ROR_6"}, 361 {{vc, r6, r8, r1, LSL, 25}, 362 false, 363 al, 364 "vc r6 r8 r1 LSL 25", 365 "vc_r6_r8_r1_LSL_25"}, 366 {{cs, r3, r5, r5, ROR, 17}, 367 false, 368 al, 369 "cs r3 r5 r5 ROR 17", 370 "cs_r3_r5_r5_ROR_17"}, 371 {{gt, r14, r14, r8, ROR, 22}, 372 false, 373 al, 374 "gt r14 r14 r8 ROR 22", 375 "gt_r14_r14_r8_ROR_22"}, 376 {{vc, r5, r0, r7, LSL, 19}, 377 false, 378 al, 379 "vc r5 r0 r7 LSL 19", 380 "vc_r5_r0_r7_LSL_19"}, 381 {{vs, r6, r10, r11, LSL, 31}, 382 false, 383 al, 384 "vs r6 r10 r11 LSL 31", 385 "vs_r6_r10_r11_LSL_31"}, 386 {{ge, r6, r1, r8, ROR, 13}, 387 false, 388 al, 389 "ge r6 r1 r8 ROR 13", 390 "ge_r6_r1_r8_ROR_13"}, 391 {{cs, r6, r3, r9, LSL, 24}, 392 false, 393 al, 394 "cs r6 r3 r9 LSL 24", 395 "cs_r6_r3_r9_LSL_24"}, 396 {{le, r9, r13, r0, LSL, 20}, 397 false, 398 al, 399 "le r9 r13 r0 LSL 20", 400 "le_r9_r13_r0_LSL_20"}, 401 {{le, r10, r11, r0, ROR, 20}, 402 false, 403 al, 404 "le r10 r11 r0 ROR 20", 405 "le_r10_r11_r0_ROR_20"}, 406 {{al, r4, r13, r12, ROR, 4}, 407 false, 408 al, 409 "al r4 r13 r12 ROR 4", 410 "al_r4_r13_r12_ROR_4"}, 411 {{cc, r10, r10, r10, LSL, 19}, 412 false, 413 al, 414 "cc r10 r10 r10 LSL 19", 415 "cc_r10_r10_r10_LSL_19"}, 416 {{ge, r11, r12, r13, ROR, 19}, 417 false, 418 al, 419 "ge r11 r12 r13 ROR 19", 420 "ge_r11_r12_r13_ROR_19"}, 421 {{gt, r9, r5, r6, ROR, 12}, 422 false, 423 al, 424 "gt r9 r5 r6 ROR 12", 425 "gt_r9_r5_r6_ROR_12"}, 426 {{cs, r1, r5, r1, ROR, 20}, 427 false, 428 al, 429 "cs r1 r5 r1 ROR 20", 430 "cs_r1_r5_r1_ROR_20"}, 431 {{pl, r8, r13, r8, LSL, 9}, 432 false, 433 al, 434 "pl r8 r13 r8 LSL 9", 435 "pl_r8_r13_r8_LSL_9"}, 436 {{pl, r11, r7, r14, LSL, 31}, 437 false, 438 al, 439 "pl r11 r7 r14 LSL 31", 440 "pl_r11_r7_r14_LSL_31"}, 441 {{hi, r2, r4, r5, LSL, 8}, 442 false, 443 al, 444 "hi r2 r4 r5 LSL 8", 445 "hi_r2_r4_r5_LSL_8"}, 446 {{ne, r1, r5, r3, LSL, 29}, 447 false, 448 al, 449 "ne r1 r5 r3 LSL 29", 450 "ne_r1_r5_r3_LSL_29"}, 451 {{ls, r12, r11, r14, ROR, 27}, 452 false, 453 al, 454 "ls r12 r11 r14 ROR 27", 455 "ls_r12_r11_r14_ROR_27"}, 456 {{al, r12, r2, r11, ROR, 17}, 457 false, 458 al, 459 "al r12 r2 r11 ROR 17", 460 "al_r12_r2_r11_ROR_17"}, 461 {{vc, r5, r6, r9, ROR, 7}, 462 false, 463 al, 464 "vc r5 r6 r9 ROR 7", 465 "vc_r5_r6_r9_ROR_7"}, 466 {{vc, r4, r1, r6, ROR, 3}, 467 false, 468 al, 469 "vc r4 r1 r6 ROR 3", 470 "vc_r4_r1_r6_ROR_3"}, 471 {{al, r9, r13, r13, LSL, 4}, 472 false, 473 al, 474 "al r9 r13 r13 LSL 4", 475 "al_r9_r13_r13_LSL_4"}, 476 {{vs, r6, r12, r1, ROR, 2}, 477 false, 478 al, 479 "vs r6 r12 r1 ROR 2", 480 "vs_r6_r12_r1_ROR_2"}, 481 {{ls, r4, r14, r9, ROR, 21}, 482 false, 483 al, 484 "ls r4 r14 r9 ROR 21", 485 "ls_r4_r14_r9_ROR_21"}, 486 {{le, r8, r14, r4, LSL, 7}, 487 false, 488 al, 489 "le r8 r14 r4 LSL 7", 490 "le_r8_r14_r4_LSL_7"}, 491 {{cs, r1, r4, r10, ROR, 10}, 492 false, 493 al, 494 "cs r1 r4 r10 ROR 10", 495 "cs_r1_r4_r10_ROR_10"}, 496 {{cc, r3, r3, r7, ROR, 4}, 497 false, 498 al, 499 "cc r3 r3 r7 ROR 4", 500 "cc_r3_r3_r7_ROR_4"}, 501 {{lt, r2, r2, r3, LSL, 1}, 502 false, 503 al, 504 "lt r2 r2 r3 LSL 1", 505 "lt_r2_r2_r3_LSL_1"}, 506 {{eq, r2, r10, r8, LSL, 12}, 507 false, 508 al, 509 "eq r2 r10 r8 LSL 12", 510 "eq_r2_r10_r8_LSL_12"}, 511 {{ge, r9, r14, r0, LSL, 15}, 512 false, 513 al, 514 "ge r9 r14 r0 LSL 15", 515 "ge_r9_r14_r0_LSL_15"}, 516 {{vc, r4, r12, r8, LSL, 2}, 517 false, 518 al, 519 "vc r4 r12 r8 LSL 2", 520 "vc_r4_r12_r8_LSL_2"}, 521 {{hi, r11, r11, r8, ROR, 12}, 522 false, 523 al, 524 "hi r11 r11 r8 ROR 12", 525 "hi_r11_r11_r8_ROR_12"}, 526 {{ne, r0, r3, r14, ROR, 18}, 527 false, 528 al, 529 "ne r0 r3 r14 ROR 18", 530 "ne_r0_r3_r14_ROR_18"}, 531 {{lt, r5, r3, r1, ROR, 8}, 532 false, 533 al, 534 "lt r5 r3 r1 ROR 8", 535 "lt_r5_r3_r1_ROR_8"}, 536 {{pl, r10, r11, r2, ROR, 18}, 537 false, 538 al, 539 "pl r10 r11 r2 ROR 18", 540 "pl_r10_r11_r2_ROR_18"}, 541 {{ne, r8, r9, r13, ROR, 5}, 542 false, 543 al, 544 "ne r8 r9 r13 ROR 5", 545 "ne_r8_r9_r13_ROR_5"}, 546 {{vc, r1, r9, r7, LSL, 26}, 547 false, 548 al, 549 "vc r1 r9 r7 LSL 26", 550 "vc_r1_r9_r7_LSL_26"}, 551 {{mi, r6, r0, r9, LSL, 5}, 552 false, 553 al, 554 "mi r6 r0 r9 LSL 5", 555 "mi_r6_r0_r9_LSL_5"}, 556 {{cc, r1, r1, r9, LSL, 5}, 557 false, 558 al, 559 "cc r1 r1 r9 LSL 5", 560 "cc_r1_r1_r9_LSL_5"}, 561 {{cc, r13, r4, r9, LSL, 2}, 562 false, 563 al, 564 "cc r13 r4 r9 LSL 2", 565 "cc_r13_r4_r9_LSL_2"}, 566 {{cc, r13, r4, r7, LSL, 27}, 567 false, 568 al, 569 "cc r13 r4 r7 LSL 27", 570 "cc_r13_r4_r7_LSL_27"}, 571 {{al, r7, r2, r1, ROR, 28}, 572 false, 573 al, 574 "al r7 r2 r1 ROR 28", 575 "al_r7_r2_r1_ROR_28"}, 576 {{eq, r3, r7, r7, ROR, 10}, 577 false, 578 al, 579 "eq r3 r7 r7 ROR 10", 580 "eq_r3_r7_r7_ROR_10"}, 581 {{lt, r1, r4, r0, ROR, 29}, 582 false, 583 al, 584 "lt r1 r4 r0 ROR 29", 585 "lt_r1_r4_r0_ROR_29"}, 586 {{gt, r4, r9, r5, LSL, 17}, 587 false, 588 al, 589 "gt r4 r9 r5 LSL 17", 590 "gt_r4_r9_r5_LSL_17"}, 591 {{cs, r14, r7, r12, LSL, 28}, 592 false, 593 al, 594 "cs r14 r7 r12 LSL 28", 595 "cs_r14_r7_r12_LSL_28"}, 596 {{lt, r0, r6, r12, ROR, 22}, 597 false, 598 al, 599 "lt r0 r6 r12 ROR 22", 600 "lt_r0_r6_r12_ROR_22"}, 601 {{pl, r10, r2, r4, LSL, 19}, 602 false, 603 al, 604 "pl r10 r2 r4 LSL 19", 605 "pl_r10_r2_r4_LSL_19"}, 606 {{eq, r3, r0, r2, LSL, 4}, 607 false, 608 al, 609 "eq r3 r0 r2 LSL 4", 610 "eq_r3_r0_r2_LSL_4"}, 611 {{ne, r6, r3, r12, ROR, 20}, 612 false, 613 al, 614 "ne r6 r3 r12 ROR 20", 615 "ne_r6_r3_r12_ROR_20"}, 616 {{al, r7, r2, r9, LSL, 1}, 617 false, 618 al, 619 "al r7 r2 r9 LSL 1", 620 "al_r7_r2_r9_LSL_1"}, 621 {{al, r7, r8, r9, ROR, 22}, 622 false, 623 al, 624 "al r7 r8 r9 ROR 22", 625 "al_r7_r8_r9_ROR_22"}, 626 {{eq, r9, r13, r12, LSL, 2}, 627 false, 628 al, 629 "eq r9 r13 r12 LSL 2", 630 "eq_r9_r13_r12_LSL_2"}, 631 {{mi, r4, r9, r13, ROR, 2}, 632 false, 633 al, 634 "mi r4 r9 r13 ROR 2", 635 "mi_r4_r9_r13_ROR_2"}, 636 {{vc, r10, r1, r0, LSL, 7}, 637 false, 638 al, 639 "vc r10 r1 r0 LSL 7", 640 "vc_r10_r1_r0_LSL_7"}, 641 {{pl, r9, r4, r8, ROR, 14}, 642 false, 643 al, 644 "pl r9 r4 r8 ROR 14", 645 "pl_r9_r4_r8_ROR_14"}, 646 {{le, r0, r7, r0, LSL, 2}, 647 false, 648 al, 649 "le r0 r7 r0 LSL 2", 650 "le_r0_r7_r0_LSL_2"}, 651 {{mi, r2, r14, r11, LSL, 18}, 652 false, 653 al, 654 "mi r2 r14 r11 LSL 18", 655 "mi_r2_r14_r11_LSL_18"}, 656 {{ne, r11, r9, r1, LSL, 12}, 657 false, 658 al, 659 "ne r11 r9 r1 LSL 12", 660 "ne_r11_r9_r1_LSL_12"}, 661 {{ls, r6, r0, r5, ROR, 2}, 662 false, 663 al, 664 "ls r6 r0 r5 ROR 2", 665 "ls_r6_r0_r5_ROR_2"}, 666 {{eq, r14, r2, r7, ROR, 16}, 667 false, 668 al, 669 "eq r14 r2 r7 ROR 16", 670 "eq_r14_r2_r7_ROR_16"}, 671 {{pl, r0, r5, r8, ROR, 17}, 672 false, 673 al, 674 "pl r0 r5 r8 ROR 17", 675 "pl_r0_r5_r8_ROR_17"}, 676 {{ne, r0, r6, r1, LSL, 6}, 677 false, 678 al, 679 "ne r0 r6 r1 LSL 6", 680 "ne_r0_r6_r1_LSL_6"}, 681 {{mi, r12, r11, r8, LSL, 12}, 682 false, 683 al, 684 "mi r12 r11 r8 LSL 12", 685 "mi_r12_r11_r8_LSL_12"}, 686 {{hi, r3, r14, r4, LSL, 2}, 687 false, 688 al, 689 "hi r3 r14 r4 LSL 2", 690 "hi_r3_r14_r4_LSL_2"}, 691 {{pl, r12, r13, r11, LSL, 24}, 692 false, 693 al, 694 "pl r12 r13 r11 LSL 24", 695 "pl_r12_r13_r11_LSL_24"}, 696 {{al, r4, r1, r8, LSL, 2}, 697 false, 698 al, 699 "al r4 r1 r8 LSL 2", 700 "al_r4_r1_r8_LSL_2"}, 701 {{gt, r9, r14, r5, LSL, 20}, 702 false, 703 al, 704 "gt r9 r14 r5 LSL 20", 705 "gt_r9_r14_r5_LSL_20"}, 706 {{eq, r9, r5, r0, ROR, 24}, 707 false, 708 al, 709 "eq r9 r5 r0 ROR 24", 710 "eq_r9_r5_r0_ROR_24"}, 711 {{ge, r12, r2, r8, ROR, 25}, 712 false, 713 al, 714 "ge r12 r2 r8 ROR 25", 715 "ge_r12_r2_r8_ROR_25"}, 716 {{al, r7, r13, r14, ROR, 28}, 717 false, 718 al, 719 "al r7 r13 r14 ROR 28", 720 "al_r7_r13_r14_ROR_28"}, 721 {{gt, r3, r12, r4, ROR, 10}, 722 false, 723 al, 724 "gt r3 r12 r4 ROR 10", 725 "gt_r3_r12_r4_ROR_10"}, 726 {{cc, r3, r13, r2, LSL, 13}, 727 false, 728 al, 729 "cc r3 r13 r2 LSL 13", 730 "cc_r3_r13_r2_LSL_13"}, 731 {{ne, r8, r13, r12, LSL, 26}, 732 false, 733 al, 734 "ne r8 r13 r12 LSL 26", 735 "ne_r8_r13_r12_LSL_26"}, 736 {{eq, r11, r13, r9, ROR, 18}, 737 false, 738 al, 739 "eq r11 r13 r9 ROR 18", 740 "eq_r11_r13_r9_ROR_18"}, 741 {{al, r10, r13, r4, LSL, 20}, 742 false, 743 al, 744 "al r10 r13 r4 LSL 20", 745 "al_r10_r13_r4_LSL_20"}, 746 {{pl, r3, r9, r5, LSL, 19}, 747 false, 748 al, 749 "pl r3 r9 r5 LSL 19", 750 "pl_r3_r9_r5_LSL_19"}, 751 {{eq, r14, r9, r3, LSL, 4}, 752 false, 753 al, 754 "eq r14 r9 r3 LSL 4", 755 "eq_r14_r9_r3_LSL_4"}, 756 {{hi, r12, r0, r1, LSL, 31}, 757 false, 758 al, 759 "hi r12 r0 r1 LSL 31", 760 "hi_r12_r0_r1_LSL_31"}, 761 {{le, r5, r11, r13, LSL, 4}, 762 false, 763 al, 764 "le r5 r11 r13 LSL 4", 765 "le_r5_r11_r13_LSL_4"}, 766 {{ls, r4, r11, r7, ROR, 8}, 767 false, 768 al, 769 "ls r4 r11 r7 ROR 8", 770 "ls_r4_r11_r7_ROR_8"}, 771 {{cc, r1, r14, r8, LSL, 20}, 772 false, 773 al, 774 "cc r1 r14 r8 LSL 20", 775 "cc_r1_r14_r8_LSL_20"}, 776 {{hi, r7, r5, r5, LSL, 7}, 777 false, 778 al, 779 "hi r7 r5 r5 LSL 7", 780 "hi_r7_r5_r5_LSL_7"}, 781 {{hi, r14, r8, r6, ROR, 24}, 782 false, 783 al, 784 "hi r14 r8 r6 ROR 24", 785 "hi_r14_r8_r6_ROR_24"}, 786 {{le, r14, r7, r3, LSL, 13}, 787 false, 788 al, 789 "le r14 r7 r3 LSL 13", 790 "le_r14_r7_r3_LSL_13"}, 791 {{le, r1, r3, r1, ROR, 21}, 792 false, 793 al, 794 "le r1 r3 r1 ROR 21", 795 "le_r1_r3_r1_ROR_21"}, 796 {{ls, r9, r7, r6, LSL, 19}, 797 false, 798 al, 799 "ls r9 r7 r6 LSL 19", 800 "ls_r9_r7_r6_LSL_19"}, 801 {{pl, r0, r4, r7, ROR, 8}, 802 false, 803 al, 804 "pl r0 r4 r7 ROR 8", 805 "pl_r0_r4_r7_ROR_8"}, 806 {{al, r14, r9, r8, ROR, 11}, 807 false, 808 al, 809 "al r14 r9 r8 ROR 11", 810 "al_r14_r9_r8_ROR_11"}, 811 {{cc, r2, r2, r3, LSL, 20}, 812 false, 813 al, 814 "cc r2 r2 r3 LSL 20", 815 "cc_r2_r2_r3_LSL_20"}, 816 {{mi, r2, r1, r13, LSL, 19}, 817 false, 818 al, 819 "mi r2 r1 r13 LSL 19", 820 "mi_r2_r1_r13_LSL_19"}, 821 {{cs, r8, r12, r9, ROR, 29}, 822 false, 823 al, 824 "cs r8 r12 r9 ROR 29", 825 "cs_r8_r12_r9_ROR_29"}, 826 {{le, r0, r8, r8, LSL, 31}, 827 false, 828 al, 829 "le r0 r8 r8 LSL 31", 830 "le_r0_r8_r8_LSL_31"}, 831 {{cc, r2, r9, r13, ROR, 23}, 832 false, 833 al, 834 "cc r2 r9 r13 ROR 23", 835 "cc_r2_r9_r13_ROR_23"}, 836 {{ne, r7, r0, r4, ROR, 1}, 837 false, 838 al, 839 "ne r7 r0 r4 ROR 1", 840 "ne_r7_r0_r4_ROR_1"}, 841 {{al, r14, r3, r1, LSL, 7}, 842 false, 843 al, 844 "al r14 r3 r1 LSL 7", 845 "al_r14_r3_r1_LSL_7"}, 846 {{le, r2, r2, r4, ROR, 5}, 847 false, 848 al, 849 "le r2 r2 r4 ROR 5", 850 "le_r2_r2_r4_ROR_5"}, 851 {{lt, r5, r13, r8, LSL, 3}, 852 false, 853 al, 854 "lt r5 r13 r8 LSL 3", 855 "lt_r5_r13_r8_LSL_3"}, 856 {{ne, r13, r3, r10, LSL, 26}, 857 false, 858 al, 859 "ne r13 r3 r10 LSL 26", 860 "ne_r13_r3_r10_LSL_26"}, 861 {{vs, r0, r3, r12, ROR, 2}, 862 false, 863 al, 864 "vs r0 r3 r12 ROR 2", 865 "vs_r0_r3_r12_ROR_2"}, 866 {{gt, r11, r8, r4, ROR, 10}, 867 false, 868 al, 869 "gt r11 r8 r4 ROR 10", 870 "gt_r11_r8_r4_ROR_10"}, 871 {{al, r3, r11, r7, LSL, 24}, 872 false, 873 al, 874 "al r3 r11 r7 LSL 24", 875 "al_r3_r11_r7_LSL_24"}, 876 {{al, r1, r2, r11, LSL, 9}, 877 false, 878 al, 879 "al r1 r2 r11 LSL 9", 880 "al_r1_r2_r11_LSL_9"}, 881 {{gt, r11, r1, r12, ROR, 19}, 882 false, 883 al, 884 "gt r11 r1 r12 ROR 19", 885 "gt_r11_r1_r12_ROR_19"}, 886 {{ge, r13, r9, r3, LSL, 25}, 887 false, 888 al, 889 "ge r13 r9 r3 LSL 25", 890 "ge_r13_r9_r3_LSL_25"}, 891 {{gt, r5, r5, r10, LSL, 19}, 892 false, 893 al, 894 "gt r5 r5 r10 LSL 19", 895 "gt_r5_r5_r10_LSL_19"}, 896 {{cc, r2, r3, r8, LSL, 9}, 897 false, 898 al, 899 "cc r2 r3 r8 LSL 9", 900 "cc_r2_r3_r8_LSL_9"}, 901 {{pl, r2, r13, r6, ROR, 15}, 902 false, 903 al, 904 "pl r2 r13 r6 ROR 15", 905 "pl_r2_r13_r6_ROR_15"}, 906 {{lt, r9, r8, r14, LSL, 24}, 907 false, 908 al, 909 "lt r9 r8 r14 LSL 24", 910 "lt_r9_r8_r14_LSL_24"}, 911 {{vs, r2, r1, r2, LSL, 13}, 912 false, 913 al, 914 "vs r2 r1 r2 LSL 13", 915 "vs_r2_r1_r2_LSL_13"}, 916 {{cs, r14, r11, r9, LSL, 20}, 917 false, 918 al, 919 "cs r14 r11 r9 LSL 20", 920 "cs_r14_r11_r9_LSL_20"}, 921 {{mi, r0, r6, r5, ROR, 24}, 922 false, 923 al, 924 "mi r0 r6 r5 ROR 24", 925 "mi_r0_r6_r5_ROR_24"}, 926 {{cs, r8, r12, r13, LSL, 31}, 927 false, 928 al, 929 "cs r8 r12 r13 LSL 31", 930 "cs_r8_r12_r13_LSL_31"}, 931 {{vc, r5, r8, r4, ROR, 18}, 932 false, 933 al, 934 "vc r5 r8 r4 ROR 18", 935 "vc_r5_r8_r4_ROR_18"}, 936 {{hi, r13, r4, r9, LSL, 5}, 937 false, 938 al, 939 "hi r13 r4 r9 LSL 5", 940 "hi_r13_r4_r9_LSL_5"}, 941 {{mi, r1, r13, r8, LSL, 1}, 942 false, 943 al, 944 "mi r1 r13 r8 LSL 1", 945 "mi_r1_r13_r8_LSL_1"}, 946 {{vs, r7, r8, r12, LSL, 27}, 947 false, 948 al, 949 "vs r7 r8 r12 LSL 27", 950 "vs_r7_r8_r12_LSL_27"}, 951 {{vs, r11, r2, r12, ROR, 7}, 952 false, 953 al, 954 "vs r11 r2 r12 ROR 7", 955 "vs_r11_r2_r12_ROR_7"}, 956 {{vs, r11, r3, r5, ROR, 27}, 957 false, 958 al, 959 "vs r11 r3 r5 ROR 27", 960 "vs_r11_r3_r5_ROR_27"}, 961 {{vc, r9, r1, r8, ROR, 29}, 962 false, 963 al, 964 "vc r9 r1 r8 ROR 29", 965 "vc_r9_r1_r8_ROR_29"}, 966 {{eq, r2, r1, r5, LSL, 24}, 967 false, 968 al, 969 "eq r2 r1 r5 LSL 24", 970 "eq_r2_r1_r5_LSL_24"}, 971 {{hi, r1, r14, r14, LSL, 13}, 972 false, 973 al, 974 "hi r1 r14 r14 LSL 13", 975 "hi_r1_r14_r14_LSL_13"}, 976 {{vc, r12, r13, r5, LSL, 9}, 977 false, 978 al, 979 "vc r12 r13 r5 LSL 9", 980 "vc_r12_r13_r5_LSL_9"}, 981 {{gt, r9, r10, r9, ROR, 12}, 982 false, 983 al, 984 "gt r9 r10 r9 ROR 12", 985 "gt_r9_r10_r9_ROR_12"}, 986 {{pl, r3, r7, r3, ROR, 12}, 987 false, 988 al, 989 "pl r3 r7 r3 ROR 12", 990 "pl_r3_r7_r3_ROR_12"}, 991 {{ls, r7, r14, r8, LSL, 24}, 992 false, 993 al, 994 "ls r7 r14 r8 LSL 24", 995 "ls_r7_r14_r8_LSL_24"}, 996 {{ge, r2, r11, r5, LSL, 26}, 997 false, 998 al, 999 "ge r2 r11 r5 LSL 26", 1000 "ge_r2_r11_r5_LSL_26"}, 1001 {{vc, r8, r11, r13, ROR, 13}, 1002 false, 1003 al, 1004 "vc r8 r11 r13 ROR 13", 1005 "vc_r8_r11_r13_ROR_13"}, 1006 {{le, r11, r5, r10, LSL, 16}, 1007 false, 1008 al, 1009 "le r11 r5 r10 LSL 16", 1010 "le_r11_r5_r10_LSL_16"}, 1011 {{vc, r10, r14, r4, ROR, 27}, 1012 false, 1013 al, 1014 "vc r10 r14 r4 ROR 27", 1015 "vc_r10_r14_r4_ROR_27"}, 1016 {{ge, r8, r6, r12, LSL, 11}, 1017 false, 1018 al, 1019 "ge r8 r6 r12 LSL 11", 1020 "ge_r8_r6_r12_LSL_11"}, 1021 {{gt, r13, r0, r14, LSL, 19}, 1022 false, 1023 al, 1024 "gt r13 r0 r14 LSL 19", 1025 "gt_r13_r0_r14_LSL_19"}, 1026 {{al, r10, r10, r5, LSL, 13}, 1027 false, 1028 al, 1029 "al r10 r10 r5 LSL 13", 1030 "al_r10_r10_r5_LSL_13"}, 1031 {{le, r11, r7, r8, ROR, 5}, 1032 false, 1033 al, 1034 "le r11 r7 r8 ROR 5", 1035 "le_r11_r7_r8_ROR_5"}, 1036 {{cc, r12, r14, r7, ROR, 31}, 1037 false, 1038 al, 1039 "cc r12 r14 r7 ROR 31", 1040 "cc_r12_r14_r7_ROR_31"}, 1041 {{eq, r11, r4, r12, LSL, 14}, 1042 false, 1043 al, 1044 "eq r11 r4 r12 LSL 14", 1045 "eq_r11_r4_r12_LSL_14"}, 1046 {{ne, r0, r7, r9, LSL, 5}, 1047 false, 1048 al, 1049 "ne r0 r7 r9 LSL 5", 1050 "ne_r0_r7_r9_LSL_5"}, 1051 {{mi, r11, r4, r8, ROR, 29}, 1052 false, 1053 al, 1054 "mi r11 r4 r8 ROR 29", 1055 "mi_r11_r4_r8_ROR_29"}, 1056 {{eq, r6, r14, r2, ROR, 6}, 1057 false, 1058 al, 1059 "eq r6 r14 r2 ROR 6", 1060 "eq_r6_r14_r2_ROR_6"}, 1061 {{hi, r6, r6, r4, ROR, 25}, 1062 false, 1063 al, 1064 "hi r6 r6 r4 ROR 25", 1065 "hi_r6_r6_r4_ROR_25"}, 1066 {{lt, r4, r8, r3, LSL, 25}, 1067 false, 1068 al, 1069 "lt r4 r8 r3 LSL 25", 1070 "lt_r4_r8_r3_LSL_25"}, 1071 {{cc, r7, r14, r2, LSL, 20}, 1072 false, 1073 al, 1074 "cc r7 r14 r2 LSL 20", 1075 "cc_r7_r14_r2_LSL_20"}, 1076 {{hi, r3, r12, r7, LSL, 3}, 1077 false, 1078 al, 1079 "hi r3 r12 r7 LSL 3", 1080 "hi_r3_r12_r7_LSL_3"}, 1081 {{le, r7, r14, r9, ROR, 17}, 1082 false, 1083 al, 1084 "le r7 r14 r9 ROR 17", 1085 "le_r7_r14_r9_ROR_17"}, 1086 {{mi, r4, r11, r13, LSL, 9}, 1087 false, 1088 al, 1089 "mi r4 r11 r13 LSL 9", 1090 "mi_r4_r11_r13_LSL_9"}, 1091 {{le, r10, r5, r13, ROR, 4}, 1092 false, 1093 al, 1094 "le r10 r5 r13 ROR 4", 1095 "le_r10_r5_r13_ROR_4"}, 1096 {{mi, r12, r12, r13, LSL, 11}, 1097 false, 1098 al, 1099 "mi r12 r12 r13 LSL 11", 1100 "mi_r12_r12_r13_LSL_11"}, 1101 {{eq, r5, r12, r1, LSL, 12}, 1102 false, 1103 al, 1104 "eq r5 r12 r1 LSL 12", 1105 "eq_r5_r12_r1_LSL_12"}, 1106 {{al, r9, r1, r9, LSL, 30}, 1107 false, 1108 al, 1109 "al r9 r1 r9 LSL 30", 1110 "al_r9_r1_r9_LSL_30"}, 1111 {{cc, r7, r13, r4, ROR, 14}, 1112 false, 1113 al, 1114 "cc r7 r13 r4 ROR 14", 1115 "cc_r7_r13_r4_ROR_14"}, 1116 {{lt, r2, r0, r2, LSL, 25}, 1117 false, 1118 al, 1119 "lt r2 r0 r2 LSL 25", 1120 "lt_r2_r0_r2_LSL_25"}, 1121 {{hi, r2, r13, r13, LSL, 5}, 1122 false, 1123 al, 1124 "hi r2 r13 r13 LSL 5", 1125 "hi_r2_r13_r13_LSL_5"}, 1126 {{ls, r9, r9, r11, ROR, 8}, 1127 false, 1128 al, 1129 "ls r9 r9 r11 ROR 8", 1130 "ls_r9_r9_r11_ROR_8"}, 1131 {{lt, r3, r9, r4, ROR, 25}, 1132 false, 1133 al, 1134 "lt r3 r9 r4 ROR 25", 1135 "lt_r3_r9_r4_ROR_25"}, 1136 {{gt, r12, r6, r1, ROR, 29}, 1137 false, 1138 al, 1139 "gt r12 r6 r1 ROR 29", 1140 "gt_r12_r6_r1_ROR_29"}, 1141 {{eq, r9, r11, r0, ROR, 8}, 1142 false, 1143 al, 1144 "eq r9 r11 r0 ROR 8", 1145 "eq_r9_r11_r0_ROR_8"}, 1146 {{eq, r14, r13, r12, ROR, 22}, 1147 false, 1148 al, 1149 "eq r14 r13 r12 ROR 22", 1150 "eq_r14_r13_r12_ROR_22"}, 1151 {{vs, r2, r13, r2, ROR, 22}, 1152 false, 1153 al, 1154 "vs r2 r13 r2 ROR 22", 1155 "vs_r2_r13_r2_ROR_22"}, 1156 {{al, r6, r9, r1, LSL, 13}, 1157 false, 1158 al, 1159 "al r6 r9 r1 LSL 13", 1160 "al_r6_r9_r1_LSL_13"}, 1161 {{cc, r9, r0, r10, LSL, 13}, 1162 false, 1163 al, 1164 "cc r9 r0 r10 LSL 13", 1165 "cc_r9_r0_r10_LSL_13"}, 1166 {{eq, r2, r14, r10, ROR, 16}, 1167 false, 1168 al, 1169 "eq r2 r14 r10 ROR 16", 1170 "eq_r2_r14_r10_ROR_16"}, 1171 {{vc, r0, r0, r14, LSL, 16}, 1172 false, 1173 al, 1174 "vc r0 r0 r14 LSL 16", 1175 "vc_r0_r0_r14_LSL_16"}, 1176 {{cc, r12, r5, r6, ROR, 12}, 1177 false, 1178 al, 1179 "cc r12 r5 r6 ROR 12", 1180 "cc_r12_r5_r6_ROR_12"}, 1181 {{ge, r4, r9, r14, LSL, 28}, 1182 false, 1183 al, 1184 "ge r4 r9 r14 LSL 28", 1185 "ge_r4_r9_r14_LSL_28"}, 1186 {{hi, r12, r10, r9, ROR, 26}, 1187 false, 1188 al, 1189 "hi r12 r10 r9 ROR 26", 1190 "hi_r12_r10_r9_ROR_26"}, 1191 {{cs, r6, r14, r8, ROR, 3}, 1192 false, 1193 al, 1194 "cs r6 r14 r8 ROR 3", 1195 "cs_r6_r14_r8_ROR_3"}, 1196 {{vs, r3, r8, r12, ROR, 8}, 1197 false, 1198 al, 1199 "vs r3 r8 r12 ROR 8", 1200 "vs_r3_r8_r12_ROR_8"}, 1201 {{gt, r0, r1, r5, ROR, 24}, 1202 false, 1203 al, 1204 "gt r0 r1 r5 ROR 24", 1205 "gt_r0_r1_r5_ROR_24"}, 1206 {{lt, r10, r9, r1, LSL, 17}, 1207 false, 1208 al, 1209 "lt r10 r9 r1 LSL 17", 1210 "lt_r10_r9_r1_LSL_17"}, 1211 {{al, r11, r10, r1, ROR, 23}, 1212 false, 1213 al, 1214 "al r11 r10 r1 ROR 23", 1215 "al_r11_r10_r1_ROR_23"}, 1216 {{cs, r8, r4, r2, LSL, 18}, 1217 false, 1218 al, 1219 "cs r8 r4 r2 LSL 18", 1220 "cs_r8_r4_r2_LSL_18"}, 1221 {{cc, r4, r4, r6, ROR, 4}, 1222 false, 1223 al, 1224 "cc r4 r4 r6 ROR 4", 1225 "cc_r4_r4_r6_ROR_4"}, 1226 {{eq, r7, r4, r10, ROR, 26}, 1227 false, 1228 al, 1229 "eq r7 r4 r10 ROR 26", 1230 "eq_r7_r4_r10_ROR_26"}, 1231 {{hi, r6, r12, r14, ROR, 18}, 1232 false, 1233 al, 1234 "hi r6 r12 r14 ROR 18", 1235 "hi_r6_r12_r14_ROR_18"}, 1236 {{cs, r14, r1, r4, ROR, 3}, 1237 false, 1238 al, 1239 "cs r14 r1 r4 ROR 3", 1240 "cs_r14_r1_r4_ROR_3"}, 1241 {{le, r1, r4, r2, ROR, 1}, 1242 false, 1243 al, 1244 "le r1 r4 r2 ROR 1", 1245 "le_r1_r4_r2_ROR_1"}, 1246 {{le, r5, r0, r12, LSL, 10}, 1247 false, 1248 al, 1249 "le r5 r0 r12 LSL 10", 1250 "le_r5_r0_r12_LSL_10"}, 1251 {{vs, r2, r6, r12, LSL, 5}, 1252 false, 1253 al, 1254 "vs r2 r6 r12 LSL 5", 1255 "vs_r2_r6_r12_LSL_5"}, 1256 {{hi, r6, r12, r10, ROR, 13}, 1257 false, 1258 al, 1259 "hi r6 r12 r10 ROR 13", 1260 "hi_r6_r12_r10_ROR_13"}, 1261 {{lt, r7, r9, r1, ROR, 22}, 1262 false, 1263 al, 1264 "lt r7 r9 r1 ROR 22", 1265 "lt_r7_r9_r1_ROR_22"}, 1266 {{mi, r13, r6, r4, LSL, 6}, 1267 false, 1268 al, 1269 "mi r13 r6 r4 LSL 6", 1270 "mi_r13_r6_r4_LSL_6"}, 1271 {{vs, r11, r11, r3, LSL, 27}, 1272 false, 1273 al, 1274 "vs r11 r11 r3 LSL 27", 1275 "vs_r11_r11_r3_LSL_27"}, 1276 {{ne, r3, r7, r14, LSL, 17}, 1277 false, 1278 al, 1279 "ne r3 r7 r14 LSL 17", 1280 "ne_r3_r7_r14_LSL_17"}, 1281 {{lt, r13, r13, r14, LSL, 17}, 1282 false, 1283 al, 1284 "lt r13 r13 r14 LSL 17", 1285 "lt_r13_r13_r14_LSL_17"}, 1286 {{pl, r7, r3, r2, LSL, 1}, 1287 false, 1288 al, 1289 "pl r7 r3 r2 LSL 1", 1290 "pl_r7_r3_r2_LSL_1"}, 1291 {{ls, r12, r11, r2, LSL, 24}, 1292 false, 1293 al, 1294 "ls r12 r11 r2 LSL 24", 1295 "ls_r12_r11_r2_LSL_24"}, 1296 {{al, r9, r7, r12, ROR, 17}, 1297 false, 1298 al, 1299 "al r9 r7 r12 ROR 17", 1300 "al_r9_r7_r12_ROR_17"}, 1301 {{cs, r4, r7, r13, LSL, 21}, 1302 false, 1303 al, 1304 "cs r4 r7 r13 LSL 21", 1305 "cs_r4_r7_r13_LSL_21"}, 1306 {{eq, r4, r14, r11, ROR, 12}, 1307 false, 1308 al, 1309 "eq r4 r14 r11 ROR 12", 1310 "eq_r4_r14_r11_ROR_12"}, 1311 {{pl, r3, r13, r11, LSL, 11}, 1312 false, 1313 al, 1314 "pl r3 r13 r11 LSL 11", 1315 "pl_r3_r13_r11_LSL_11"}, 1316 {{pl, r10, r12, r4, ROR, 8}, 1317 false, 1318 al, 1319 "pl r10 r12 r4 ROR 8", 1320 "pl_r10_r12_r4_ROR_8"}, 1321 {{gt, r8, r9, r8, ROR, 14}, 1322 false, 1323 al, 1324 "gt r8 r9 r8 ROR 14", 1325 "gt_r8_r9_r8_ROR_14"}, 1326 {{ne, r0, r0, r7, ROR, 12}, 1327 false, 1328 al, 1329 "ne r0 r0 r7 ROR 12", 1330 "ne_r0_r0_r7_ROR_12"}, 1331 {{cc, r8, r0, r5, ROR, 20}, 1332 false, 1333 al, 1334 "cc r8 r0 r5 ROR 20", 1335 "cc_r8_r0_r5_ROR_20"}, 1336 {{cc, r1, r2, r6, ROR, 1}, 1337 false, 1338 al, 1339 "cc r1 r2 r6 ROR 1", 1340 "cc_r1_r2_r6_ROR_1"}, 1341 {{al, r1, r3, r4, LSL, 30}, 1342 false, 1343 al, 1344 "al r1 r3 r4 LSL 30", 1345 "al_r1_r3_r4_LSL_30"}, 1346 {{cs, r5, r3, r7, LSL, 25}, 1347 false, 1348 al, 1349 "cs r5 r3 r7 LSL 25", 1350 "cs_r5_r3_r7_LSL_25"}, 1351 {{ne, r6, r10, r12, LSL, 12}, 1352 false, 1353 al, 1354 "ne r6 r10 r12 LSL 12", 1355 "ne_r6_r10_r12_LSL_12"}, 1356 {{gt, r14, r7, r9, LSL, 24}, 1357 false, 1358 al, 1359 "gt r14 r7 r9 LSL 24", 1360 "gt_r14_r7_r9_LSL_24"}, 1361 {{pl, r14, r0, r1, LSL, 24}, 1362 false, 1363 al, 1364 "pl r14 r0 r1 LSL 24", 1365 "pl_r14_r0_r1_LSL_24"}, 1366 {{cs, r7, r5, r13, LSL, 14}, 1367 false, 1368 al, 1369 "cs r7 r5 r13 LSL 14", 1370 "cs_r7_r5_r13_LSL_14"}, 1371 {{cc, r3, r2, r7, LSL, 4}, 1372 false, 1373 al, 1374 "cc r3 r2 r7 LSL 4", 1375 "cc_r3_r2_r7_LSL_4"}, 1376 {{vc, r9, r4, r11, ROR, 1}, 1377 false, 1378 al, 1379 "vc r9 r4 r11 ROR 1", 1380 "vc_r9_r4_r11_ROR_1"}, 1381 {{vc, r14, r11, r2, ROR, 9}, 1382 false, 1383 al, 1384 "vc r14 r11 r2 ROR 9", 1385 "vc_r14_r11_r2_ROR_9"}, 1386 {{mi, r5, r8, r13, LSL, 19}, 1387 false, 1388 al, 1389 "mi r5 r8 r13 LSL 19", 1390 "mi_r5_r8_r13_LSL_19"}, 1391 {{eq, r11, r8, r3, LSL, 12}, 1392 false, 1393 al, 1394 "eq r11 r8 r3 LSL 12", 1395 "eq_r11_r8_r3_LSL_12"}, 1396 {{vc, r9, r9, r5, LSL, 1}, 1397 false, 1398 al, 1399 "vc r9 r9 r5 LSL 1", 1400 "vc_r9_r9_r5_LSL_1"}, 1401 {{gt, r10, r10, r3, ROR, 30}, 1402 false, 1403 al, 1404 "gt r10 r10 r3 ROR 30", 1405 "gt_r10_r10_r3_ROR_30"}, 1406 {{mi, r8, r0, r12, ROR, 31}, 1407 false, 1408 al, 1409 "mi r8 r0 r12 ROR 31", 1410 "mi_r8_r0_r12_ROR_31"}, 1411 {{ge, r7, r12, r12, LSL, 6}, 1412 false, 1413 al, 1414 "ge r7 r12 r12 LSL 6", 1415 "ge_r7_r12_r12_LSL_6"}, 1416 {{ge, r5, r0, r12, LSL, 16}, 1417 false, 1418 al, 1419 "ge r5 r0 r12 LSL 16", 1420 "ge_r5_r0_r12_LSL_16"}, 1421 {{gt, r3, r5, r14, ROR, 8}, 1422 false, 1423 al, 1424 "gt r3 r5 r14 ROR 8", 1425 "gt_r3_r5_r14_ROR_8"}, 1426 {{ls, r0, r11, r9, ROR, 26}, 1427 false, 1428 al, 1429 "ls r0 r11 r9 ROR 26", 1430 "ls_r0_r11_r9_ROR_26"}, 1431 {{al, r1, r4, r6, LSL, 9}, 1432 false, 1433 al, 1434 "al r1 r4 r6 LSL 9", 1435 "al_r1_r4_r6_LSL_9"}, 1436 {{cs, r6, r5, r3, ROR, 10}, 1437 false, 1438 al, 1439 "cs r6 r5 r3 ROR 10", 1440 "cs_r6_r5_r3_ROR_10"}, 1441 {{mi, r10, r3, r3, LSL, 13}, 1442 false, 1443 al, 1444 "mi r10 r3 r3 LSL 13", 1445 "mi_r10_r3_r3_LSL_13"}, 1446 {{lt, r7, r12, r11, LSL, 12}, 1447 false, 1448 al, 1449 "lt r7 r12 r11 LSL 12", 1450 "lt_r7_r12_r11_LSL_12"}, 1451 {{cc, r10, r0, r9, ROR, 23}, 1452 false, 1453 al, 1454 "cc r10 r0 r9 ROR 23", 1455 "cc_r10_r0_r9_ROR_23"}, 1456 {{vc, r13, r11, r7, ROR, 26}, 1457 false, 1458 al, 1459 "vc r13 r11 r7 ROR 26", 1460 "vc_r13_r11_r7_ROR_26"}, 1461 {{pl, r1, r14, r11, LSL, 12}, 1462 false, 1463 al, 1464 "pl r1 r14 r11 LSL 12", 1465 "pl_r1_r14_r11_LSL_12"}, 1466 {{al, r9, r2, r5, LSL, 19}, 1467 false, 1468 al, 1469 "al r9 r2 r5 LSL 19", 1470 "al_r9_r2_r5_LSL_19"}, 1471 {{mi, r5, r0, r8, LSL, 8}, 1472 false, 1473 al, 1474 "mi r5 r0 r8 LSL 8", 1475 "mi_r5_r0_r8_LSL_8"}, 1476 {{ge, r11, r1, r0, LSL, 8}, 1477 false, 1478 al, 1479 "ge r11 r1 r0 LSL 8", 1480 "ge_r11_r1_r0_LSL_8"}, 1481 {{ls, r12, r8, r11, ROR, 4}, 1482 false, 1483 al, 1484 "ls r12 r8 r11 ROR 4", 1485 "ls_r12_r8_r11_ROR_4"}, 1486 {{ne, r7, r1, r2, ROR, 13}, 1487 false, 1488 al, 1489 "ne r7 r1 r2 ROR 13", 1490 "ne_r7_r1_r2_ROR_13"}, 1491 {{ge, r10, r1, r4, ROR, 4}, 1492 false, 1493 al, 1494 "ge r10 r1 r4 ROR 4", 1495 "ge_r10_r1_r4_ROR_4"}, 1496 {{cc, r4, r3, r3, ROR, 20}, 1497 false, 1498 al, 1499 "cc r4 r3 r3 ROR 20", 1500 "cc_r4_r3_r3_ROR_20"}, 1501 {{ne, r6, r14, r7, LSL, 30}, 1502 false, 1503 al, 1504 "ne r6 r14 r7 LSL 30", 1505 "ne_r6_r14_r7_LSL_30"}, 1506 {{vs, r14, r2, r8, ROR, 16}, 1507 false, 1508 al, 1509 "vs r14 r2 r8 ROR 16", 1510 "vs_r14_r2_r8_ROR_16"}, 1511 {{hi, r3, r13, r9, ROR, 10}, 1512 false, 1513 al, 1514 "hi r3 r13 r9 ROR 10", 1515 "hi_r3_r13_r9_ROR_10"}, 1516 {{gt, r10, r2, r11, LSL, 30}, 1517 false, 1518 al, 1519 "gt r10 r2 r11 LSL 30", 1520 "gt_r10_r2_r11_LSL_30"}, 1521 {{gt, r4, r7, r8, ROR, 8}, 1522 false, 1523 al, 1524 "gt r4 r7 r8 ROR 8", 1525 "gt_r4_r7_r8_ROR_8"}, 1526 {{pl, r1, r0, r12, LSL, 14}, 1527 false, 1528 al, 1529 "pl r1 r0 r12 LSL 14", 1530 "pl_r1_r0_r12_LSL_14"}, 1531 {{mi, r6, r14, r8, LSL, 11}, 1532 false, 1533 al, 1534 "mi r6 r14 r8 LSL 11", 1535 "mi_r6_r14_r8_LSL_11"}, 1536 {{vs, r9, r4, r13, ROR, 1}, 1537 false, 1538 al, 1539 "vs r9 r4 r13 ROR 1", 1540 "vs_r9_r4_r13_ROR_1"}, 1541 {{ls, r14, r7, r11, LSL, 14}, 1542 false, 1543 al, 1544 "ls r14 r7 r11 LSL 14", 1545 "ls_r14_r7_r11_LSL_14"}, 1546 {{al, r7, r14, r5, LSL, 3}, 1547 false, 1548 al, 1549 "al r7 r14 r5 LSL 3", 1550 "al_r7_r14_r5_LSL_3"}, 1551 {{ge, r1, r7, r3, LSL, 8}, 1552 false, 1553 al, 1554 "ge r1 r7 r3 LSL 8", 1555 "ge_r1_r7_r3_LSL_8"}, 1556 {{eq, r1, r11, r13, ROR, 21}, 1557 false, 1558 al, 1559 "eq r1 r11 r13 ROR 21", 1560 "eq_r1_r11_r13_ROR_21"}, 1561 {{mi, r2, r0, r5, ROR, 19}, 1562 false, 1563 al, 1564 "mi r2 r0 r5 ROR 19", 1565 "mi_r2_r0_r5_ROR_19"}, 1566 {{pl, r2, r9, r5, ROR, 24}, 1567 false, 1568 al, 1569 "pl r2 r9 r5 ROR 24", 1570 "pl_r2_r9_r5_ROR_24"}, 1571 {{mi, r4, r2, r9, ROR, 10}, 1572 false, 1573 al, 1574 "mi r4 r2 r9 ROR 10", 1575 "mi_r4_r2_r9_ROR_10"}, 1576 {{ge, r2, r13, r8, LSL, 26}, 1577 false, 1578 al, 1579 "ge r2 r13 r8 LSL 26", 1580 "ge_r2_r13_r8_LSL_26"}, 1581 {{cs, r2, r4, r3, ROR, 4}, 1582 false, 1583 al, 1584 "cs r2 r4 r3 ROR 4", 1585 "cs_r2_r4_r3_ROR_4"}, 1586 {{ge, r10, r9, r5, ROR, 31}, 1587 false, 1588 al, 1589 "ge r10 r9 r5 ROR 31", 1590 "ge_r10_r9_r5_ROR_31"}, 1591 {{cc, r9, r4, r3, LSL, 8}, 1592 false, 1593 al, 1594 "cc r9 r4 r3 LSL 8", 1595 "cc_r9_r4_r3_LSL_8"}, 1596 {{le, r8, r0, r10, ROR, 23}, 1597 false, 1598 al, 1599 "le r8 r0 r10 ROR 23", 1600 "le_r8_r0_r10_ROR_23"}, 1601 {{gt, r11, r5, r4, ROR, 3}, 1602 false, 1603 al, 1604 "gt r11 r5 r4 ROR 3", 1605 "gt_r11_r5_r4_ROR_3"}, 1606 {{ne, r0, r4, r0, ROR, 12}, 1607 false, 1608 al, 1609 "ne r0 r4 r0 ROR 12", 1610 "ne_r0_r4_r0_ROR_12"}, 1611 {{hi, r8, r10, r13, LSL, 3}, 1612 false, 1613 al, 1614 "hi r8 r10 r13 LSL 3", 1615 "hi_r8_r10_r13_LSL_3"}, 1616 {{ge, r2, r3, r3, ROR, 15}, 1617 false, 1618 al, 1619 "ge r2 r3 r3 ROR 15", 1620 "ge_r2_r3_r3_ROR_15"}, 1621 {{cc, r2, r10, r4, LSL, 17}, 1622 false, 1623 al, 1624 "cc r2 r10 r4 LSL 17", 1625 "cc_r2_r10_r4_LSL_17"}, 1626 {{cs, r5, r14, r10, ROR, 30}, 1627 false, 1628 al, 1629 "cs r5 r14 r10 ROR 30", 1630 "cs_r5_r14_r10_ROR_30"}, 1631 {{cs, r11, r13, r2, ROR, 22}, 1632 false, 1633 al, 1634 "cs r11 r13 r2 ROR 22", 1635 "cs_r11_r13_r2_ROR_22"}, 1636 {{eq, r12, r5, r9, ROR, 10}, 1637 false, 1638 al, 1639 "eq r12 r5 r9 ROR 10", 1640 "eq_r12_r5_r9_ROR_10"}, 1641 {{pl, r11, r2, r12, LSL, 29}, 1642 false, 1643 al, 1644 "pl r11 r2 r12 LSL 29", 1645 "pl_r11_r2_r12_LSL_29"}, 1646 {{vs, r5, r3, r7, LSL, 21}, 1647 false, 1648 al, 1649 "vs r5 r3 r7 LSL 21", 1650 "vs_r5_r3_r7_LSL_21"}, 1651 {{vs, r14, r0, r6, LSL, 27}, 1652 false, 1653 al, 1654 "vs r14 r0 r6 LSL 27", 1655 "vs_r14_r0_r6_LSL_27"}, 1656 {{mi, r4, r5, r0, ROR, 25}, 1657 false, 1658 al, 1659 "mi r4 r5 r0 ROR 25", 1660 "mi_r4_r5_r0_ROR_25"}, 1661 {{ls, r7, r6, r13, LSL, 3}, 1662 false, 1663 al, 1664 "ls r7 r6 r13 LSL 3", 1665 "ls_r7_r6_r13_LSL_3"}, 1666 {{pl, r9, r12, r8, ROR, 17}, 1667 false, 1668 al, 1669 "pl r9 r12 r8 ROR 17", 1670 "pl_r9_r12_r8_ROR_17"}, 1671 {{ge, r12, r0, r9, LSL, 20}, 1672 false, 1673 al, 1674 "ge r12 r0 r9 LSL 20", 1675 "ge_r12_r0_r9_LSL_20"}, 1676 {{pl, r4, r12, r11, LSL, 7}, 1677 false, 1678 al, 1679 "pl r4 r12 r11 LSL 7", 1680 "pl_r4_r12_r11_LSL_7"}, 1681 {{al, r12, r10, r2, ROR, 4}, 1682 false, 1683 al, 1684 "al r12 r10 r2 ROR 4", 1685 "al_r12_r10_r2_ROR_4"}, 1686 {{le, r10, r7, r14, ROR, 5}, 1687 false, 1688 al, 1689 "le r10 r7 r14 ROR 5", 1690 "le_r10_r7_r14_ROR_5"}, 1691 {{mi, r0, r2, r5, ROR, 24}, 1692 false, 1693 al, 1694 "mi r0 r2 r5 ROR 24", 1695 "mi_r0_r2_r5_ROR_24"}, 1696 {{pl, r10, r2, r6, ROR, 28}, 1697 false, 1698 al, 1699 "pl r10 r2 r6 ROR 28", 1700 "pl_r10_r2_r6_ROR_28"}, 1701 {{al, r0, r4, r9, LSL, 27}, 1702 false, 1703 al, 1704 "al r0 r4 r9 LSL 27", 1705 "al_r0_r4_r9_LSL_27"}, 1706 {{eq, r12, r0, r7, ROR, 7}, 1707 false, 1708 al, 1709 "eq r12 r0 r7 ROR 7", 1710 "eq_r12_r0_r7_ROR_7"}, 1711 {{ls, r8, r8, r0, LSL, 13}, 1712 false, 1713 al, 1714 "ls r8 r8 r0 LSL 13", 1715 "ls_r8_r8_r0_LSL_13"}, 1716 {{le, r1, r10, r7, LSL, 24}, 1717 false, 1718 al, 1719 "le r1 r10 r7 LSL 24", 1720 "le_r1_r10_r7_LSL_24"}, 1721 {{ne, r10, r4, r13, ROR, 26}, 1722 false, 1723 al, 1724 "ne r10 r4 r13 ROR 26", 1725 "ne_r10_r4_r13_ROR_26"}, 1726 {{gt, r2, r5, r2, LSL, 1}, 1727 false, 1728 al, 1729 "gt r2 r5 r2 LSL 1", 1730 "gt_r2_r5_r2_LSL_1"}, 1731 {{hi, r3, r4, r11, LSL, 26}, 1732 false, 1733 al, 1734 "hi r3 r4 r11 LSL 26", 1735 "hi_r3_r4_r11_LSL_26"}, 1736 {{vc, r0, r9, r6, ROR, 25}, 1737 false, 1738 al, 1739 "vc r0 r9 r6 ROR 25", 1740 "vc_r0_r9_r6_ROR_25"}, 1741 {{lt, r13, r5, r0, ROR, 4}, 1742 false, 1743 al, 1744 "lt r13 r5 r0 ROR 4", 1745 "lt_r13_r5_r0_ROR_4"}, 1746 {{lt, r9, r5, r0, ROR, 27}, 1747 false, 1748 al, 1749 "lt r9 r5 r0 ROR 27", 1750 "lt_r9_r5_r0_ROR_27"}, 1751 {{le, r8, r13, r0, LSL, 7}, 1752 false, 1753 al, 1754 "le r8 r13 r0 LSL 7", 1755 "le_r8_r13_r0_LSL_7"}, 1756 {{vc, r5, r7, r1, ROR, 10}, 1757 false, 1758 al, 1759 "vc r5 r7 r1 ROR 10", 1760 "vc_r5_r7_r1_ROR_10"}, 1761 {{lt, r8, r2, r12, ROR, 25}, 1762 false, 1763 al, 1764 "lt r8 r2 r12 ROR 25", 1765 "lt_r8_r2_r12_ROR_25"}, 1766 {{al, r14, r10, r2, LSL, 29}, 1767 false, 1768 al, 1769 "al r14 r10 r2 LSL 29", 1770 "al_r14_r10_r2_LSL_29"}, 1771 {{cs, r14, r5, r14, LSL, 12}, 1772 false, 1773 al, 1774 "cs r14 r5 r14 LSL 12", 1775 "cs_r14_r5_r14_LSL_12"}, 1776 {{cc, r1, r12, r14, ROR, 24}, 1777 false, 1778 al, 1779 "cc r1 r12 r14 ROR 24", 1780 "cc_r1_r12_r14_ROR_24"}, 1781 {{vc, r13, r13, r8, LSL, 23}, 1782 false, 1783 al, 1784 "vc r13 r13 r8 LSL 23", 1785 "vc_r13_r13_r8_LSL_23"}, 1786 {{mi, r2, r0, r8, LSL, 8}, 1787 false, 1788 al, 1789 "mi r2 r0 r8 LSL 8", 1790 "mi_r2_r0_r8_LSL_8"}, 1791 {{hi, r4, r10, r8, LSL, 11}, 1792 false, 1793 al, 1794 "hi r4 r10 r8 LSL 11", 1795 "hi_r4_r10_r8_LSL_11"}, 1796 {{eq, r10, r12, r4, ROR, 11}, 1797 false, 1798 al, 1799 "eq r10 r12 r4 ROR 11", 1800 "eq_r10_r12_r4_ROR_11"}, 1801 {{hi, r14, r1, r7, ROR, 2}, 1802 false, 1803 al, 1804 "hi r14 r1 r7 ROR 2", 1805 "hi_r14_r1_r7_ROR_2"}, 1806 {{le, r11, r5, r12, LSL, 23}, 1807 false, 1808 al, 1809 "le r11 r5 r12 LSL 23", 1810 "le_r11_r5_r12_LSL_23"}, 1811 {{vs, r13, r1, r1, ROR, 17}, 1812 false, 1813 al, 1814 "vs r13 r1 r1 ROR 17", 1815 "vs_r13_r1_r1_ROR_17"}, 1816 {{vc, r14, r14, r8, LSL, 9}, 1817 false, 1818 al, 1819 "vc r14 r14 r8 LSL 9", 1820 "vc_r14_r14_r8_LSL_9"}, 1821 {{pl, r0, r13, r11, ROR, 27}, 1822 false, 1823 al, 1824 "pl r0 r13 r11 ROR 27", 1825 "pl_r0_r13_r11_ROR_27"}, 1826 {{eq, r7, r0, r5, ROR, 5}, 1827 false, 1828 al, 1829 "eq r7 r0 r5 ROR 5", 1830 "eq_r7_r0_r5_ROR_5"}, 1831 {{al, r2, r5, r12, ROR, 18}, 1832 false, 1833 al, 1834 "al r2 r5 r12 ROR 18", 1835 "al_r2_r5_r12_ROR_18"}, 1836 {{le, r13, r7, r12, ROR, 26}, 1837 false, 1838 al, 1839 "le r13 r7 r12 ROR 26", 1840 "le_r13_r7_r12_ROR_26"}, 1841 {{ne, r12, r13, r12, LSL, 1}, 1842 false, 1843 al, 1844 "ne r12 r13 r12 LSL 1", 1845 "ne_r12_r13_r12_LSL_1"}, 1846 {{hi, r5, r10, r11, LSL, 29}, 1847 false, 1848 al, 1849 "hi r5 r10 r11 LSL 29", 1850 "hi_r5_r10_r11_LSL_29"}, 1851 {{cs, r3, r13, r9, LSL, 22}, 1852 false, 1853 al, 1854 "cs r3 r13 r9 LSL 22", 1855 "cs_r3_r13_r9_LSL_22"}, 1856 {{vc, r3, r13, r14, ROR, 31}, 1857 false, 1858 al, 1859 "vc r3 r13 r14 ROR 31", 1860 "vc_r3_r13_r14_ROR_31"}, 1861 {{le, r0, r10, r1, ROR, 27}, 1862 false, 1863 al, 1864 "le r0 r10 r1 ROR 27", 1865 "le_r0_r10_r1_ROR_27"}, 1866 {{cc, r11, r5, r2, ROR, 16}, 1867 false, 1868 al, 1869 "cc r11 r5 r2 ROR 16", 1870 "cc_r11_r5_r2_ROR_16"}, 1871 {{le, r7, r2, r1, LSL, 8}, 1872 false, 1873 al, 1874 "le r7 r2 r1 LSL 8", 1875 "le_r7_r2_r1_LSL_8"}, 1876 {{vs, r9, r6, r8, ROR, 13}, 1877 false, 1878 al, 1879 "vs r9 r6 r8 ROR 13", 1880 "vs_r9_r6_r8_ROR_13"}, 1881 {{le, r8, r4, r1, ROR, 31}, 1882 false, 1883 al, 1884 "le r8 r4 r1 ROR 31", 1885 "le_r8_r4_r1_ROR_31"}, 1886 {{le, r6, r7, r9, ROR, 29}, 1887 false, 1888 al, 1889 "le r6 r7 r9 ROR 29", 1890 "le_r6_r7_r9_ROR_29"}, 1891 {{ls, r6, r13, r11, ROR, 14}, 1892 false, 1893 al, 1894 "ls r6 r13 r11 ROR 14", 1895 "ls_r6_r13_r11_ROR_14"}, 1896 {{lt, r2, r7, r3, ROR, 20}, 1897 false, 1898 al, 1899 "lt r2 r7 r3 ROR 20", 1900 "lt_r2_r7_r3_ROR_20"}, 1901 {{ne, r3, r9, r5, LSL, 12}, 1902 false, 1903 al, 1904 "ne r3 r9 r5 LSL 12", 1905 "ne_r3_r9_r5_LSL_12"}, 1906 {{ge, r11, r0, r2, ROR, 31}, 1907 false, 1908 al, 1909 "ge r11 r0 r2 ROR 31", 1910 "ge_r11_r0_r2_ROR_31"}, 1911 {{eq, r14, r11, r0, LSL, 22}, 1912 false, 1913 al, 1914 "eq r14 r11 r0 LSL 22", 1915 "eq_r14_r11_r0_LSL_22"}, 1916 {{cs, r6, r3, r9, ROR, 6}, 1917 false, 1918 al, 1919 "cs r6 r3 r9 ROR 6", 1920 "cs_r6_r3_r9_ROR_6"}, 1921 {{mi, r6, r8, r5, LSL, 15}, 1922 false, 1923 al, 1924 "mi r6 r8 r5 LSL 15", 1925 "mi_r6_r8_r5_LSL_15"}, 1926 {{ne, r9, r12, r1, ROR, 13}, 1927 false, 1928 al, 1929 "ne r9 r12 r1 ROR 13", 1930 "ne_r9_r12_r1_ROR_13"}, 1931 {{al, r12, r2, r0, LSL, 4}, 1932 false, 1933 al, 1934 "al r12 r2 r0 LSL 4", 1935 "al_r12_r2_r0_LSL_4"}, 1936 {{vs, r0, r10, r9, LSL, 14}, 1937 false, 1938 al, 1939 "vs r0 r10 r9 LSL 14", 1940 "vs_r0_r10_r9_LSL_14"}, 1941 {{vc, r13, r2, r10, ROR, 4}, 1942 false, 1943 al, 1944 "vc r13 r2 r10 ROR 4", 1945 "vc_r13_r2_r10_ROR_4"}, 1946 {{le, r11, r3, r4, ROR, 4}, 1947 false, 1948 al, 1949 "le r11 r3 r4 ROR 4", 1950 "le_r11_r3_r4_ROR_4"}, 1951 {{cc, r3, r6, r14, ROR, 11}, 1952 false, 1953 al, 1954 "cc r3 r6 r14 ROR 11", 1955 "cc_r3_r6_r14_ROR_11"}, 1956 {{le, r7, r7, r0, LSL, 1}, 1957 false, 1958 al, 1959 "le r7 r7 r0 LSL 1", 1960 "le_r7_r7_r0_LSL_1"}, 1961 {{lt, r4, r4, r10, ROR, 10}, 1962 false, 1963 al, 1964 "lt r4 r4 r10 ROR 10", 1965 "lt_r4_r4_r10_ROR_10"}, 1966 {{cc, r6, r14, r6, LSL, 9}, 1967 false, 1968 al, 1969 "cc r6 r14 r6 LSL 9", 1970 "cc_r6_r14_r6_LSL_9"}, 1971 {{ne, r12, r9, r5, LSL, 18}, 1972 false, 1973 al, 1974 "ne r12 r9 r5 LSL 18", 1975 "ne_r12_r9_r5_LSL_18"}, 1976 {{hi, r2, r8, r0, ROR, 23}, 1977 false, 1978 al, 1979 "hi r2 r8 r0 ROR 23", 1980 "hi_r2_r8_r0_ROR_23"}, 1981 {{hi, r14, r13, r11, ROR, 3}, 1982 false, 1983 al, 1984 "hi r14 r13 r11 ROR 3", 1985 "hi_r14_r13_r11_ROR_3"}, 1986 {{al, r9, r6, r10, ROR, 20}, 1987 false, 1988 al, 1989 "al r9 r6 r10 ROR 20", 1990 "al_r9_r6_r10_ROR_20"}, 1991 {{vc, r8, r12, r11, ROR, 6}, 1992 false, 1993 al, 1994 "vc r8 r12 r11 ROR 6", 1995 "vc_r8_r12_r11_ROR_6"}, 1996 {{cc, r2, r1, r8, ROR, 5}, 1997 false, 1998 al, 1999 "cc r2 r1 r8 ROR 5", 2000 "cc_r2_r1_r8_ROR_5"}, 2001 {{ge, r0, r4, r10, LSL, 24}, 2002 false, 2003 al, 2004 "ge r0 r4 r10 LSL 24", 2005 "ge_r0_r4_r10_LSL_24"}, 2006 {{vc, r12, r7, r8, ROR, 27}, 2007 false, 2008 al, 2009 "vc r12 r7 r8 ROR 27", 2010 "vc_r12_r7_r8_ROR_27"}, 2011 {{le, r13, r6, r4, LSL, 11}, 2012 false, 2013 al, 2014 "le r13 r6 r4 LSL 11", 2015 "le_r13_r6_r4_LSL_11"}, 2016 {{le, r6, r5, r4, LSL, 25}, 2017 false, 2018 al, 2019 "le r6 r5 r4 LSL 25", 2020 "le_r6_r5_r4_LSL_25"}, 2021 {{eq, r9, r7, r7, LSL, 23}, 2022 false, 2023 al, 2024 "eq r9 r7 r7 LSL 23", 2025 "eq_r9_r7_r7_LSL_23"}, 2026 {{mi, r2, r6, r9, LSL, 23}, 2027 false, 2028 al, 2029 "mi r2 r6 r9 LSL 23", 2030 "mi_r2_r6_r9_LSL_23"}, 2031 {{pl, r0, r6, r13, ROR, 24}, 2032 false, 2033 al, 2034 "pl r0 r6 r13 ROR 24", 2035 "pl_r0_r6_r13_ROR_24"}, 2036 {{le, r13, r8, r4, LSL, 18}, 2037 false, 2038 al, 2039 "le r13 r8 r4 LSL 18", 2040 "le_r13_r8_r4_LSL_18"}, 2041 {{mi, r9, r6, r12, LSL, 10}, 2042 false, 2043 al, 2044 "mi r9 r6 r12 LSL 10", 2045 "mi_r9_r6_r12_LSL_10"}, 2046 {{al, r10, r3, r12, ROR, 2}, 2047 false, 2048 al, 2049 "al r10 r3 r12 ROR 2", 2050 "al_r10_r3_r12_ROR_2"}, 2051 {{ge, r9, r12, r4, LSL, 10}, 2052 false, 2053 al, 2054 "ge r9 r12 r4 LSL 10", 2055 "ge_r9_r12_r4_LSL_10"}, 2056 {{vs, r11, r1, r4, LSL, 17}, 2057 false, 2058 al, 2059 "vs r11 r1 r4 LSL 17", 2060 "vs_r11_r1_r4_LSL_17"}, 2061 {{gt, r14, r10, r0, LSL, 7}, 2062 false, 2063 al, 2064 "gt r14 r10 r0 LSL 7", 2065 "gt_r14_r10_r0_LSL_7"}, 2066 {{eq, r13, r14, r12, ROR, 30}, 2067 false, 2068 al, 2069 "eq r13 r14 r12 ROR 30", 2070 "eq_r13_r14_r12_ROR_30"}, 2071 {{eq, r14, r10, r11, ROR, 11}, 2072 false, 2073 al, 2074 "eq r14 r10 r11 ROR 11", 2075 "eq_r14_r10_r11_ROR_11"}, 2076 {{vs, r9, r0, r1, ROR, 30}, 2077 false, 2078 al, 2079 "vs r9 r0 r1 ROR 30", 2080 "vs_r9_r0_r1_ROR_30"}, 2081 {{vc, r7, r10, r6, LSL, 23}, 2082 false, 2083 al, 2084 "vc r7 r10 r6 LSL 23", 2085 "vc_r7_r10_r6_LSL_23"}, 2086 {{vc, r6, r1, r14, LSL, 10}, 2087 false, 2088 al, 2089 "vc r6 r1 r14 LSL 10", 2090 "vc_r6_r1_r14_LSL_10"}, 2091 {{pl, r7, r2, r4, LSL, 11}, 2092 false, 2093 al, 2094 "pl r7 r2 r4 LSL 11", 2095 "pl_r7_r2_r4_LSL_11"}, 2096 {{cc, r13, r5, r7, LSL, 5}, 2097 false, 2098 al, 2099 "cc r13 r5 r7 LSL 5", 2100 "cc_r13_r5_r7_LSL_5"}, 2101 {{pl, r14, r10, r3, LSL, 15}, 2102 false, 2103 al, 2104 "pl r14 r10 r3 LSL 15", 2105 "pl_r14_r10_r3_LSL_15"}, 2106 {{ge, r13, r6, r14, LSL, 31}, 2107 false, 2108 al, 2109 "ge r13 r6 r14 LSL 31", 2110 "ge_r13_r6_r14_LSL_31"}, 2111 {{mi, r4, r6, r10, LSL, 30}, 2112 false, 2113 al, 2114 "mi r4 r6 r10 LSL 30", 2115 "mi_r4_r6_r10_LSL_30"}, 2116 {{cs, r1, r0, r9, ROR, 12}, 2117 false, 2118 al, 2119 "cs r1 r0 r9 ROR 12", 2120 "cs_r1_r0_r9_ROR_12"}, 2121 {{vs, r4, r14, r13, ROR, 17}, 2122 false, 2123 al, 2124 "vs r4 r14 r13 ROR 17", 2125 "vs_r4_r14_r13_ROR_17"}, 2126 {{cs, r14, r7, r1, LSL, 22}, 2127 false, 2128 al, 2129 "cs r14 r7 r1 LSL 22", 2130 "cs_r14_r7_r1_LSL_22"}, 2131 {{vs, r8, r7, r11, LSL, 4}, 2132 false, 2133 al, 2134 "vs r8 r7 r11 LSL 4", 2135 "vs_r8_r7_r11_LSL_4"}, 2136 {{ge, r10, r2, r11, ROR, 2}, 2137 false, 2138 al, 2139 "ge r10 r2 r11 ROR 2", 2140 "ge_r10_r2_r11_ROR_2"}, 2141 {{hi, r12, r13, r0, LSL, 8}, 2142 false, 2143 al, 2144 "hi r12 r13 r0 LSL 8", 2145 "hi_r12_r13_r0_LSL_8"}, 2146 {{vc, r11, r1, r2, LSL, 29}, 2147 false, 2148 al, 2149 "vc r11 r1 r2 LSL 29", 2150 "vc_r11_r1_r2_LSL_29"}, 2151 {{ls, r11, r13, r13, LSL, 5}, 2152 false, 2153 al, 2154 "ls r11 r13 r13 LSL 5", 2155 "ls_r11_r13_r13_LSL_5"}, 2156 {{vs, r5, r1, r14, ROR, 12}, 2157 false, 2158 al, 2159 "vs r5 r1 r14 ROR 12", 2160 "vs_r5_r1_r14_ROR_12"}, 2161 {{mi, r12, r1, r8, LSL, 24}, 2162 false, 2163 al, 2164 "mi r12 r1 r8 LSL 24", 2165 "mi_r12_r1_r8_LSL_24"}, 2166 {{ne, r14, r6, r4, ROR, 29}, 2167 false, 2168 al, 2169 "ne r14 r6 r4 ROR 29", 2170 "ne_r14_r6_r4_ROR_29"}, 2171 {{eq, r5, r7, r13, LSL, 31}, 2172 false, 2173 al, 2174 "eq r5 r7 r13 LSL 31", 2175 "eq_r5_r7_r13_LSL_31"}, 2176 {{le, r14, r4, r12, ROR, 3}, 2177 false, 2178 al, 2179 "le r14 r4 r12 ROR 3", 2180 "le_r14_r4_r12_ROR_3"}, 2181 {{gt, r5, r11, r14, LSL, 27}, 2182 false, 2183 al, 2184 "gt r5 r11 r14 LSL 27", 2185 "gt_r5_r11_r14_LSL_27"}, 2186 {{pl, r8, r3, r2, ROR, 12}, 2187 false, 2188 al, 2189 "pl r8 r3 r2 ROR 12", 2190 "pl_r8_r3_r2_ROR_12"}, 2191 {{cc, r4, r7, r2, LSL, 5}, 2192 false, 2193 al, 2194 "cc r4 r7 r2 LSL 5", 2195 "cc_r4_r7_r2_LSL_5"}, 2196 {{gt, r8, r7, r1, ROR, 24}, 2197 false, 2198 al, 2199 "gt r8 r7 r1 ROR 24", 2200 "gt_r8_r7_r1_ROR_24"}, 2201 {{hi, r12, r14, r13, ROR, 8}, 2202 false, 2203 al, 2204 "hi r12 r14 r13 ROR 8", 2205 "hi_r12_r14_r13_ROR_8"}, 2206 {{cc, r13, r10, r5, LSL, 4}, 2207 false, 2208 al, 2209 "cc r13 r10 r5 LSL 4", 2210 "cc_r13_r10_r5_LSL_4"}, 2211 {{eq, r6, r7, r2, LSL, 29}, 2212 false, 2213 al, 2214 "eq r6 r7 r2 LSL 29", 2215 "eq_r6_r7_r2_LSL_29"}, 2216 {{eq, r7, r10, r1, ROR, 14}, 2217 false, 2218 al, 2219 "eq r7 r10 r1 ROR 14", 2220 "eq_r7_r10_r1_ROR_14"}, 2221 {{mi, r13, r1, r3, ROR, 26}, 2222 false, 2223 al, 2224 "mi r13 r1 r3 ROR 26", 2225 "mi_r13_r1_r3_ROR_26"}, 2226 {{ge, r6, r14, r14, ROR, 13}, 2227 false, 2228 al, 2229 "ge r6 r14 r14 ROR 13", 2230 "ge_r6_r14_r14_ROR_13"}, 2231 {{gt, r3, r8, r4, LSL, 31}, 2232 false, 2233 al, 2234 "gt r3 r8 r4 LSL 31", 2235 "gt_r3_r8_r4_LSL_31"}, 2236 {{mi, r13, r12, r2, ROR, 12}, 2237 false, 2238 al, 2239 "mi r13 r12 r2 ROR 12", 2240 "mi_r13_r12_r2_ROR_12"}, 2241 {{al, r12, r5, r1, ROR, 25}, 2242 false, 2243 al, 2244 "al r12 r5 r1 ROR 25", 2245 "al_r12_r5_r1_ROR_25"}, 2246 {{eq, r8, r13, r6, ROR, 8}, 2247 false, 2248 al, 2249 "eq r8 r13 r6 ROR 8", 2250 "eq_r8_r13_r6_ROR_8"}, 2251 {{ne, r10, r1, r11, ROR, 12}, 2252 false, 2253 al, 2254 "ne r10 r1 r11 ROR 12", 2255 "ne_r10_r1_r11_ROR_12"}, 2256 {{hi, r8, r7, r11, LSL, 30}, 2257 false, 2258 al, 2259 "hi r8 r7 r11 LSL 30", 2260 "hi_r8_r7_r11_LSL_30"}, 2261 {{gt, r2, r1, r7, LSL, 3}, 2262 false, 2263 al, 2264 "gt r2 r1 r7 LSL 3", 2265 "gt_r2_r1_r7_LSL_3"}, 2266 {{cs, r5, r4, r4, ROR, 2}, 2267 false, 2268 al, 2269 "cs r5 r4 r4 ROR 2", 2270 "cs_r5_r4_r4_ROR_2"}, 2271 {{cc, r5, r14, r10, ROR, 19}, 2272 false, 2273 al, 2274 "cc r5 r14 r10 ROR 19", 2275 "cc_r5_r14_r10_ROR_19"}, 2276 {{mi, r8, r3, r0, ROR, 26}, 2277 false, 2278 al, 2279 "mi r8 r3 r0 ROR 26", 2280 "mi_r8_r3_r0_ROR_26"}, 2281 {{eq, r7, r4, r8, ROR, 21}, 2282 false, 2283 al, 2284 "eq r7 r4 r8 ROR 21", 2285 "eq_r7_r4_r8_ROR_21"}, 2286 {{al, r9, r11, r12, ROR, 31}, 2287 false, 2288 al, 2289 "al r9 r11 r12 ROR 31", 2290 "al_r9_r11_r12_ROR_31"}, 2291 {{lt, r0, r1, r1, LSL, 29}, 2292 false, 2293 al, 2294 "lt r0 r1 r1 LSL 29", 2295 "lt_r0_r1_r1_LSL_29"}, 2296 {{le, r8, r0, r11, ROR, 16}, 2297 false, 2298 al, 2299 "le r8 r0 r11 ROR 16", 2300 "le_r8_r0_r11_ROR_16"}, 2301 {{le, r10, r2, r11, ROR, 31}, 2302 false, 2303 al, 2304 "le r10 r2 r11 ROR 31", 2305 "le_r10_r2_r11_ROR_31"}, 2306 {{vs, r4, r7, r2, ROR, 10}, 2307 false, 2308 al, 2309 "vs r4 r7 r2 ROR 10", 2310 "vs_r4_r7_r2_ROR_10"}, 2311 {{mi, r1, r8, r2, LSL, 16}, 2312 false, 2313 al, 2314 "mi r1 r8 r2 LSL 16", 2315 "mi_r1_r8_r2_LSL_16"}, 2316 {{mi, r3, r14, r2, LSL, 21}, 2317 false, 2318 al, 2319 "mi r3 r14 r2 LSL 21", 2320 "mi_r3_r14_r2_LSL_21"}, 2321 {{ne, r8, r13, r2, ROR, 25}, 2322 false, 2323 al, 2324 "ne r8 r13 r2 ROR 25", 2325 "ne_r8_r13_r2_ROR_25"}, 2326 {{ls, r4, r3, r3, LSL, 11}, 2327 false, 2328 al, 2329 "ls r4 r3 r3 LSL 11", 2330 "ls_r4_r3_r3_LSL_11"}, 2331 {{lt, r11, r9, r12, LSL, 7}, 2332 false, 2333 al, 2334 "lt r11 r9 r12 LSL 7", 2335 "lt_r11_r9_r12_LSL_7"}, 2336 {{ls, r10, r5, r6, ROR, 9}, 2337 false, 2338 al, 2339 "ls r10 r5 r6 ROR 9", 2340 "ls_r10_r5_r6_ROR_9"}, 2341 {{vs, r6, r12, r14, ROR, 30}, 2342 false, 2343 al, 2344 "vs r6 r12 r14 ROR 30", 2345 "vs_r6_r12_r14_ROR_30"}, 2346 {{ls, r0, r10, r5, LSL, 15}, 2347 false, 2348 al, 2349 "ls r0 r10 r5 LSL 15", 2350 "ls_r0_r10_r5_LSL_15"}, 2351 {{vc, r9, r1, r3, LSL, 21}, 2352 false, 2353 al, 2354 "vc r9 r1 r3 LSL 21", 2355 "vc_r9_r1_r3_LSL_21"}, 2356 {{mi, r0, r7, r14, ROR, 28}, 2357 false, 2358 al, 2359 "mi r0 r7 r14 ROR 28", 2360 "mi_r0_r7_r14_ROR_28"}, 2361 {{al, r10, r13, r8, LSL, 13}, 2362 false, 2363 al, 2364 "al r10 r13 r8 LSL 13", 2365 "al_r10_r13_r8_LSL_13"}, 2366 {{ge, r3, r0, r5, LSL, 24}, 2367 false, 2368 al, 2369 "ge r3 r0 r5 LSL 24", 2370 "ge_r3_r0_r5_LSL_24"}, 2371 {{pl, r14, r2, r8, ROR, 25}, 2372 false, 2373 al, 2374 "pl r14 r2 r8 ROR 25", 2375 "pl_r14_r2_r8_ROR_25"}, 2376 {{cc, r4, r2, r9, ROR, 10}, 2377 false, 2378 al, 2379 "cc r4 r2 r9 ROR 10", 2380 "cc_r4_r2_r9_ROR_10"}, 2381 {{hi, r1, r6, r1, LSL, 23}, 2382 false, 2383 al, 2384 "hi r1 r6 r1 LSL 23", 2385 "hi_r1_r6_r1_LSL_23"}, 2386 {{vs, r10, r11, r11, ROR, 22}, 2387 false, 2388 al, 2389 "vs r10 r11 r11 ROR 22", 2390 "vs_r10_r11_r11_ROR_22"}, 2391 {{vs, r0, r3, r12, LSL, 27}, 2392 false, 2393 al, 2394 "vs r0 r3 r12 LSL 27", 2395 "vs_r0_r3_r12_LSL_27"}, 2396 {{eq, r0, r0, r12, LSL, 2}, 2397 false, 2398 al, 2399 "eq r0 r0 r12 LSL 2", 2400 "eq_r0_r0_r12_LSL_2"}, 2401 {{lt, r7, r3, r5, LSL, 4}, 2402 false, 2403 al, 2404 "lt r7 r3 r5 LSL 4", 2405 "lt_r7_r3_r5_LSL_4"}, 2406 {{ls, r4, r4, r12, ROR, 11}, 2407 false, 2408 al, 2409 "ls r4 r4 r12 ROR 11", 2410 "ls_r4_r4_r12_ROR_11"}, 2411 {{vs, r14, r1, r11, LSL, 18}, 2412 false, 2413 al, 2414 "vs r14 r1 r11 LSL 18", 2415 "vs_r14_r1_r11_LSL_18"}, 2416 {{gt, r1, r14, r13, LSL, 12}, 2417 false, 2418 al, 2419 "gt r1 r14 r13 LSL 12", 2420 "gt_r1_r14_r13_LSL_12"}, 2421 {{ls, r3, r4, r11, ROR, 11}, 2422 false, 2423 al, 2424 "ls r3 r4 r11 ROR 11", 2425 "ls_r3_r4_r11_ROR_11"}, 2426 {{al, r7, r4, r6, LSL, 30}, 2427 false, 2428 al, 2429 "al r7 r4 r6 LSL 30", 2430 "al_r7_r4_r6_LSL_30"}, 2431 {{cc, r14, r12, r2, LSL, 27}, 2432 false, 2433 al, 2434 "cc r14 r12 r2 LSL 27", 2435 "cc_r14_r12_r2_LSL_27"}, 2436 {{pl, r14, r12, r3, ROR, 5}, 2437 false, 2438 al, 2439 "pl r14 r12 r3 ROR 5", 2440 "pl_r14_r12_r3_ROR_5"}, 2441 {{pl, r14, r14, r4, ROR, 14}, 2442 false, 2443 al, 2444 "pl r14 r14 r4 ROR 14", 2445 "pl_r14_r14_r4_ROR_14"}, 2446 {{le, r3, r0, r0, LSL, 25}, 2447 false, 2448 al, 2449 "le r3 r0 r0 LSL 25", 2450 "le_r3_r0_r0_LSL_25"}, 2451 {{al, r9, r5, r4, LSL, 7}, 2452 false, 2453 al, 2454 "al r9 r5 r4 LSL 7", 2455 "al_r9_r5_r4_LSL_7"}, 2456 {{eq, r0, r3, r6, ROR, 18}, 2457 false, 2458 al, 2459 "eq r0 r3 r6 ROR 18", 2460 "eq_r0_r3_r6_ROR_18"}, 2461 {{mi, r3, r11, r14, ROR, 30}, 2462 false, 2463 al, 2464 "mi r3 r11 r14 ROR 30", 2465 "mi_r3_r11_r14_ROR_30"}, 2466 {{hi, r6, r6, r6, LSL, 16}, 2467 false, 2468 al, 2469 "hi r6 r6 r6 LSL 16", 2470 "hi_r6_r6_r6_LSL_16"}, 2471 {{le, r6, r1, r5, ROR, 29}, 2472 false, 2473 al, 2474 "le r6 r1 r5 ROR 29", 2475 "le_r6_r1_r5_ROR_29"}, 2476 {{gt, r7, r11, r4, LSL, 23}, 2477 false, 2478 al, 2479 "gt r7 r11 r4 LSL 23", 2480 "gt_r7_r11_r4_LSL_23"}, 2481 {{gt, r2, r0, r2, LSL, 27}, 2482 false, 2483 al, 2484 "gt r2 r0 r2 LSL 27", 2485 "gt_r2_r0_r2_LSL_27"}, 2486 {{cs, r1, r0, r7, ROR, 7}, 2487 false, 2488 al, 2489 "cs r1 r0 r7 ROR 7", 2490 "cs_r1_r0_r7_ROR_7"}, 2491 {{gt, r3, r1, r12, ROR, 27}, 2492 false, 2493 al, 2494 "gt r3 r1 r12 ROR 27", 2495 "gt_r3_r1_r12_ROR_27"}, 2496 {{ls, r13, r4, r11, ROR, 8}, 2497 false, 2498 al, 2499 "ls r13 r4 r11 ROR 8", 2500 "ls_r13_r4_r11_ROR_8"}, 2501 {{hi, r11, r4, r7, LSL, 25}, 2502 false, 2503 al, 2504 "hi r11 r4 r7 LSL 25", 2505 "hi_r11_r4_r7_LSL_25"}, 2506 {{ls, r3, r0, r8, ROR, 4}, 2507 false, 2508 al, 2509 "ls r3 r0 r8 ROR 4", 2510 "ls_r3_r0_r8_ROR_4"}, 2511 {{cs, r2, r5, r13, ROR, 14}, 2512 false, 2513 al, 2514 "cs r2 r5 r13 ROR 14", 2515 "cs_r2_r5_r13_ROR_14"}, 2516 {{gt, r2, r7, r2, LSL, 20}, 2517 false, 2518 al, 2519 "gt r2 r7 r2 LSL 20", 2520 "gt_r2_r7_r2_LSL_20"}, 2521 {{gt, r9, r2, r14, LSL, 19}, 2522 false, 2523 al, 2524 "gt r9 r2 r14 LSL 19", 2525 "gt_r9_r2_r14_LSL_19"}, 2526 {{lt, r1, r0, r1, LSL, 26}, 2527 false, 2528 al, 2529 "lt r1 r0 r1 LSL 26", 2530 "lt_r1_r0_r1_LSL_26"}, 2531 {{hi, r8, r14, r3, ROR, 4}, 2532 false, 2533 al, 2534 "hi r8 r14 r3 ROR 4", 2535 "hi_r8_r14_r3_ROR_4"}, 2536 {{le, r6, r12, r13, ROR, 25}, 2537 false, 2538 al, 2539 "le r6 r12 r13 ROR 25", 2540 "le_r6_r12_r13_ROR_25"}, 2541 {{pl, r2, r5, r7, LSL, 29}, 2542 false, 2543 al, 2544 "pl r2 r5 r7 LSL 29", 2545 "pl_r2_r5_r7_LSL_29"}, 2546 {{gt, r13, r5, r3, LSL, 13}, 2547 false, 2548 al, 2549 "gt r13 r5 r3 LSL 13", 2550 "gt_r13_r5_r3_LSL_13"}, 2551 {{eq, r4, r8, r8, ROR, 10}, 2552 false, 2553 al, 2554 "eq r4 r8 r8 ROR 10", 2555 "eq_r4_r8_r8_ROR_10"}, 2556 {{vc, r1, r7, r5, ROR, 15}, 2557 false, 2558 al, 2559 "vc r1 r7 r5 ROR 15", 2560 "vc_r1_r7_r5_ROR_15"}, 2561 {{ge, r8, r2, r8, ROR, 9}, 2562 false, 2563 al, 2564 "ge r8 r2 r8 ROR 9", 2565 "ge_r8_r2_r8_ROR_9"}, 2566 {{vs, r9, r12, r6, ROR, 19}, 2567 false, 2568 al, 2569 "vs r9 r12 r6 ROR 19", 2570 "vs_r9_r12_r6_ROR_19"}, 2571 {{ne, r5, r1, r8, ROR, 29}, 2572 false, 2573 al, 2574 "ne r5 r1 r8 ROR 29", 2575 "ne_r5_r1_r8_ROR_29"}, 2576 {{cc, r10, r13, r3, ROR, 3}, 2577 false, 2578 al, 2579 "cc r10 r13 r3 ROR 3", 2580 "cc_r10_r13_r3_ROR_3"}, 2581 {{gt, r1, r6, r10, ROR, 22}, 2582 false, 2583 al, 2584 "gt r1 r6 r10 ROR 22", 2585 "gt_r1_r6_r10_ROR_22"}, 2586 {{al, r5, r2, r5, ROR, 19}, 2587 false, 2588 al, 2589 "al r5 r2 r5 ROR 19", 2590 "al_r5_r2_r5_ROR_19"}, 2591 {{cc, r13, r4, r4, LSL, 6}, 2592 false, 2593 al, 2594 "cc r13 r4 r4 LSL 6", 2595 "cc_r13_r4_r4_LSL_6"}, 2596 {{hi, r6, r7, r3, ROR, 6}, 2597 false, 2598 al, 2599 "hi r6 r7 r3 ROR 6", 2600 "hi_r6_r7_r3_ROR_6"}, 2601 {{ge, r4, r14, r9, LSL, 9}, 2602 false, 2603 al, 2604 "ge r4 r14 r9 LSL 9", 2605 "ge_r4_r14_r9_LSL_9"}, 2606 {{cs, r3, r13, r0, LSL, 26}, 2607 false, 2608 al, 2609 "cs r3 r13 r0 LSL 26", 2610 "cs_r3_r13_r0_LSL_26"}, 2611 {{lt, r9, r3, r4, ROR, 21}, 2612 false, 2613 al, 2614 "lt r9 r3 r4 ROR 21", 2615 "lt_r9_r3_r4_ROR_21"}}; 2616 2617 // These headers each contain an array of `TestResult` with the reference output 2618 // values. The reference arrays are names `kReference{mnemonic}`. 2619 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-adc-a32.h" 2620 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-adcs-a32.h" 2621 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-add-a32.h" 2622 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-adds-a32.h" 2623 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-and-a32.h" 2624 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-ands-a32.h" 2625 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-bic-a32.h" 2626 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-bics-a32.h" 2627 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-eor-a32.h" 2628 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-eors-a32.h" 2629 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-orr-a32.h" 2630 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-orrs-a32.h" 2631 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-rsb-a32.h" 2632 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-rsbs-a32.h" 2633 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-rsc-a32.h" 2634 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-rscs-a32.h" 2635 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-sbc-a32.h" 2636 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-sbcs-a32.h" 2637 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-sub-a32.h" 2638 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-amount-1to31-subs-a32.h" 2639 2640 2641 // The maximum number of errors to report in detail for each test. 2642 const unsigned kErrorReportLimit = 8; 2643 2644 typedef void (MacroAssembler::*Fn)(Condition cond, 2645 Register rd, 2646 Register rn, 2647 const Operand& op); 2648 2649 void TestHelper(Fn instruction, 2650 const char* mnemonic, 2651 const TestResult reference[]) { 2652 unsigned total_error_count = 0; 2653 MacroAssembler masm(BUF_SIZE); 2654 2655 masm.UseA32(); 2656 2657 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) { 2658 // Values to pass to the macro-assembler. 2659 Condition cond = kTests[i].operands.cond; 2660 Register rd = kTests[i].operands.rd; 2661 Register rn = kTests[i].operands.rn; 2662 Register rm = kTests[i].operands.rm; 2663 ShiftType shift = kTests[i].operands.shift; 2664 uint32_t amount = kTests[i].operands.amount; 2665 Operand op(rm, shift, amount); 2666 2667 int32_t start = masm.GetCursorOffset(); 2668 { 2669 // We never generate more that 4 bytes, as IT instructions are only 2670 // allowed for narrow encodings. 2671 ExactAssemblyScope scope(&masm, 4, ExactAssemblyScope::kMaximumSize); 2672 if (kTests[i].in_it_block) { 2673 masm.it(kTests[i].it_condition); 2674 } 2675 (masm.*instruction)(cond, rd, rn, op); 2676 } 2677 int32_t end = masm.GetCursorOffset(); 2678 2679 const byte* result_ptr = 2680 masm.GetBuffer()->GetOffsetAddress<const byte*>(start); 2681 VIXL_ASSERT(start < end); 2682 uint32_t result_size = end - start; 2683 2684 if (Test::generate_test_trace()) { 2685 // Print the result bytes. 2686 printf("const byte kInstruction_%s_%s[] = {\n", 2687 mnemonic, 2688 kTests[i].identifier); 2689 for (uint32_t j = 0; j < result_size; j++) { 2690 if (j == 0) { 2691 printf(" 0x%02" PRIx8, result_ptr[j]); 2692 } else { 2693 printf(", 0x%02" PRIx8, result_ptr[j]); 2694 } 2695 } 2696 // This comment is meant to be used by external tools to validate 2697 // the encoding. We can parse the comment to figure out what 2698 // instruction this corresponds to. 2699 if (kTests[i].in_it_block) { 2700 printf(" // It %s; %s %s\n};\n", 2701 kTests[i].it_condition.GetName(), 2702 mnemonic, 2703 kTests[i].operands_description); 2704 } else { 2705 printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description); 2706 } 2707 } else { 2708 // Check we've emitted the exact same encoding as present in the 2709 // trace file. Only print up to `kErrorReportLimit` errors. 2710 if (((result_size != reference[i].size) || 2711 (memcmp(result_ptr, reference[i].encoding, reference[i].size) != 2712 0)) && 2713 (++total_error_count <= kErrorReportLimit)) { 2714 printf("Error when testing \"%s\" with operands \"%s\":\n", 2715 mnemonic, 2716 kTests[i].operands_description); 2717 printf(" Expected: "); 2718 for (uint32_t j = 0; j < reference[i].size; j++) { 2719 if (j == 0) { 2720 printf("0x%02" PRIx8, reference[i].encoding[j]); 2721 } else { 2722 printf(", 0x%02" PRIx8, reference[i].encoding[j]); 2723 } 2724 } 2725 printf("\n"); 2726 printf(" Found: "); 2727 for (uint32_t j = 0; j < result_size; j++) { 2728 if (j == 0) { 2729 printf("0x%02" PRIx8, result_ptr[j]); 2730 } else { 2731 printf(", 0x%02" PRIx8, result_ptr[j]); 2732 } 2733 } 2734 printf("\n"); 2735 } 2736 } 2737 } 2738 2739 masm.FinalizeCode(); 2740 2741 if (Test::generate_test_trace()) { 2742 // Finalize the trace file by writing the final `TestResult` array 2743 // which links all generated instruction encodings. 2744 printf("const TestResult kReference%s[] = {\n", mnemonic); 2745 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) { 2746 printf(" {\n"); 2747 printf(" ARRAY_SIZE(kInstruction_%s_%s),\n", 2748 mnemonic, 2749 kTests[i].identifier); 2750 printf(" kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier); 2751 printf(" },\n"); 2752 } 2753 printf("};\n"); 2754 } else { 2755 if (total_error_count > kErrorReportLimit) { 2756 printf("%u other errors follow.\n", 2757 total_error_count - kErrorReportLimit); 2758 } 2759 // Crash if the test failed. 2760 VIXL_CHECK(total_error_count == 0); 2761 } 2762 } 2763 2764 // Instantiate tests for each instruction in the list. 2765 #define TEST(mnemonic) \ 2766 void Test_##mnemonic() { \ 2767 TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic); \ 2768 } \ 2769 Test test_##mnemonic( \ 2770 "AARCH32_ASSEMBLER_COND_RD_RN_OPERAND_RM_SHIFT_AMOUNT_1TO31_" #mnemonic \ 2771 "_A32", \ 2772 &Test_##mnemonic); 2773 FOREACH_INSTRUCTION(TEST) 2774 #undef TEST 2775 2776 } // namespace 2777 #endif 2778 2779 } // namespace aarch32 2780 } // namespace vixl 2781