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 uint32_t immediate; 89 }; 90 91 // This structure contains all data needed to test one specific 92 // instruction. 93 struct TestData { 94 // The `operands` field represents what to pass to the assembler to 95 // produce the instruction. 96 Operands operands; 97 // True if we need to generate an IT instruction for this test to be valid. 98 bool in_it_block; 99 // The condition to give the IT instruction, this will be set to "al" by 100 // default. 101 Condition it_condition; 102 // Description of the operands, used for error reporting. 103 const char* operands_description; 104 // Unique identifier, used for generating traces. 105 const char* identifier; 106 }; 107 108 struct TestResult { 109 size_t size; 110 const byte* encoding; 111 }; 112 113 // Each element of this array produce one instruction encoding. 114 const TestData kTests[] = {{{le, r9, r4, 0x03fc0000}, 115 false, 116 al, 117 "le r9 r4 0x03fc0000", 118 "le_r9_r4_0x03fc0000"}, 119 {{pl, r14, r3, 0x0003fc00}, 120 false, 121 al, 122 "pl r14 r3 0x0003fc00", 123 "pl_r14_r3_0x0003fc00"}, 124 {{cc, r1, r6, 0x3fc00000}, 125 false, 126 al, 127 "cc r1 r6 0x3fc00000", 128 "cc_r1_r6_0x3fc00000"}, 129 {{cc, r5, r1, 0x02ac0000}, 130 false, 131 al, 132 "cc r5 r1 0x02ac0000", 133 "cc_r5_r1_0x02ac0000"}, 134 {{pl, r14, r4, 0xb000000a}, 135 false, 136 al, 137 "pl r14 r4 0xb000000a", 138 "pl_r14_r4_0xb000000a"}, 139 {{cs, r2, r13, 0x0003fc00}, 140 false, 141 al, 142 "cs r2 r13 0x0003fc00", 143 "cs_r2_r13_0x0003fc00"}, 144 {{mi, r13, r0, 0x2ac00000}, 145 false, 146 al, 147 "mi r13 r0 0x2ac00000", 148 "mi_r13_r0_0x2ac00000"}, 149 {{vc, r0, r0, 0x000ff000}, 150 false, 151 al, 152 "vc r0 r0 0x000ff000", 153 "vc_r0_r0_0x000ff000"}, 154 {{vs, r2, r9, 0x00000ff0}, 155 false, 156 al, 157 "vs r2 r9 0x00000ff0", 158 "vs_r2_r9_0x00000ff0"}, 159 {{cc, r15, r7, 0x000000ff}, 160 false, 161 al, 162 "cc r15 r7 0x000000ff", 163 "cc_r15_r7_0x000000ff"}, 164 {{ls, r4, r1, 0x0003fc00}, 165 false, 166 al, 167 "ls r4 r1 0x0003fc00", 168 "ls_r4_r1_0x0003fc00"}, 169 {{gt, r13, r11, 0x3fc00000}, 170 false, 171 al, 172 "gt r13 r11 0x3fc00000", 173 "gt_r13_r11_0x3fc00000"}, 174 {{hi, r3, r15, 0x2ac00000}, 175 false, 176 al, 177 "hi r3 r15 0x2ac00000", 178 "hi_r3_r15_0x2ac00000"}, 179 {{ls, r7, r12, 0x02ac0000}, 180 false, 181 al, 182 "ls r7 r12 0x02ac0000", 183 "ls_r7_r12_0x02ac0000"}, 184 {{cc, r10, r11, 0x00ab0000}, 185 false, 186 al, 187 "cc r10 r11 0x00ab0000", 188 "cc_r10_r11_0x00ab0000"}, 189 {{mi, r3, r9, 0x03fc0000}, 190 false, 191 al, 192 "mi r3 r9 0x03fc0000", 193 "mi_r3_r9_0x03fc0000"}, 194 {{gt, r8, r7, 0x000ff000}, 195 false, 196 al, 197 "gt r8 r7 0x000ff000", 198 "gt_r8_r7_0x000ff000"}, 199 {{ls, r1, r2, 0x00ab0000}, 200 false, 201 al, 202 "ls r1 r2 0x00ab0000", 203 "ls_r1_r2_0x00ab0000"}, 204 {{al, r12, r5, 0x00002ac0}, 205 false, 206 al, 207 "al r12 r5 0x00002ac0", 208 "al_r12_r5_0x00002ac0"}, 209 {{eq, r15, r5, 0x000003fc}, 210 false, 211 al, 212 "eq r15 r5 0x000003fc", 213 "eq_r15_r5_0x000003fc"}, 214 {{hi, r11, r9, 0x000000ab}, 215 false, 216 al, 217 "hi r11 r9 0x000000ab", 218 "hi_r11_r9_0x000000ab"}, 219 {{cs, r10, r7, 0x00ab0000}, 220 false, 221 al, 222 "cs r10 r7 0x00ab0000", 223 "cs_r10_r7_0x00ab0000"}, 224 {{gt, r3, r7, 0x02ac0000}, 225 false, 226 al, 227 "gt r3 r7 0x02ac0000", 228 "gt_r3_r7_0x02ac0000"}, 229 {{le, r0, r0, 0x00ab0000}, 230 false, 231 al, 232 "le r0 r0 0x00ab0000", 233 "le_r0_r0_0x00ab0000"}, 234 {{hi, r15, r4, 0x000000ab}, 235 false, 236 al, 237 "hi r15 r4 0x000000ab", 238 "hi_r15_r4_0x000000ab"}, 239 {{cc, r4, r13, 0xab000000}, 240 false, 241 al, 242 "cc r4 r13 0xab000000", 243 "cc_r4_r13_0xab000000"}, 244 {{al, r12, r2, 0x0ab00000}, 245 false, 246 al, 247 "al r12 r2 0x0ab00000", 248 "al_r12_r2_0x0ab00000"}, 249 {{cc, r8, r1, 0x000ff000}, 250 false, 251 al, 252 "cc r8 r1 0x000ff000", 253 "cc_r8_r1_0x000ff000"}, 254 {{le, r1, r1, 0x000ff000}, 255 false, 256 al, 257 "le r1 r1 0x000ff000", 258 "le_r1_r1_0x000ff000"}, 259 {{gt, r3, r1, 0xff000000}, 260 false, 261 al, 262 "gt r3 r1 0xff000000", 263 "gt_r3_r1_0xff000000"}, 264 {{ge, r4, r2, 0x3fc00000}, 265 false, 266 al, 267 "ge r4 r2 0x3fc00000", 268 "ge_r4_r2_0x3fc00000"}, 269 {{cc, r8, r7, 0xac000002}, 270 false, 271 al, 272 "cc r8 r7 0xac000002", 273 "cc_r8_r7_0xac000002"}, 274 {{vs, r9, r4, 0xb000000a}, 275 false, 276 al, 277 "vs r9 r4 0xb000000a", 278 "vs_r9_r4_0xb000000a"}, 279 {{cs, r11, r5, 0x000000ab}, 280 false, 281 al, 282 "cs r11 r5 0x000000ab", 283 "cs_r11_r5_0x000000ab"}, 284 {{eq, r4, r2, 0xb000000a}, 285 false, 286 al, 287 "eq r4 r2 0xb000000a", 288 "eq_r4_r2_0xb000000a"}, 289 {{lt, r5, r14, 0x000000ab}, 290 false, 291 al, 292 "lt r5 r14 0x000000ab", 293 "lt_r5_r14_0x000000ab"}, 294 {{cs, r2, r4, 0x0000ab00}, 295 false, 296 al, 297 "cs r2 r4 0x0000ab00", 298 "cs_r2_r4_0x0000ab00"}, 299 {{hi, r5, r9, 0x003fc000}, 300 false, 301 al, 302 "hi r5 r9 0x003fc000", 303 "hi_r5_r9_0x003fc000"}, 304 {{al, r0, r2, 0xb000000a}, 305 false, 306 al, 307 "al r0 r2 0xb000000a", 308 "al_r0_r2_0xb000000a"}, 309 {{le, r13, r0, 0x0ff00000}, 310 false, 311 al, 312 "le r13 r0 0x0ff00000", 313 "le_r13_r0_0x0ff00000"}, 314 {{eq, r9, r5, 0xb000000a}, 315 false, 316 al, 317 "eq r9 r5 0xb000000a", 318 "eq_r9_r5_0xb000000a"}, 319 {{cc, r15, r8, 0x00ab0000}, 320 false, 321 al, 322 "cc r15 r8 0x00ab0000", 323 "cc_r15_r8_0x00ab0000"}, 324 {{ge, r4, r3, 0x003fc000}, 325 false, 326 al, 327 "ge r4 r3 0x003fc000", 328 "ge_r4_r3_0x003fc000"}, 329 {{hi, r15, r1, 0x000002ac}, 330 false, 331 al, 332 "hi r15 r1 0x000002ac", 333 "hi_r15_r1_0x000002ac"}, 334 {{al, r10, r8, 0x000002ac}, 335 false, 336 al, 337 "al r10 r8 0x000002ac", 338 "al_r10_r8_0x000002ac"}, 339 {{al, r3, r5, 0xc000003f}, 340 false, 341 al, 342 "al r3 r5 0xc000003f", 343 "al_r3_r5_0xc000003f"}, 344 {{cc, r1, r8, 0x000000ff}, 345 false, 346 al, 347 "cc r1 r8 0x000000ff", 348 "cc_r1_r8_0x000000ff"}, 349 {{vs, r8, r4, 0x003fc000}, 350 false, 351 al, 352 "vs r8 r4 0x003fc000", 353 "vs_r8_r4_0x003fc000"}, 354 {{vc, r2, r2, 0x003fc000}, 355 false, 356 al, 357 "vc r2 r2 0x003fc000", 358 "vc_r2_r2_0x003fc000"}, 359 {{hi, r1, r1, 0x03fc0000}, 360 false, 361 al, 362 "hi r1 r1 0x03fc0000", 363 "hi_r1_r1_0x03fc0000"}, 364 {{cc, r6, r12, 0x00000000}, 365 false, 366 al, 367 "cc r6 r12 0x00000000", 368 "cc_r6_r12_0x00000000"}, 369 {{hi, r8, r1, 0xc000002a}, 370 false, 371 al, 372 "hi r8 r1 0xc000002a", 373 "hi_r8_r1_0xc000002a"}, 374 {{ge, r7, r12, 0x003fc000}, 375 false, 376 al, 377 "ge r7 r12 0x003fc000", 378 "ge_r7_r12_0x003fc000"}, 379 {{gt, r1, r14, 0x02ac0000}, 380 false, 381 al, 382 "gt r1 r14 0x02ac0000", 383 "gt_r1_r14_0x02ac0000"}, 384 {{eq, r4, r0, 0x0ff00000}, 385 false, 386 al, 387 "eq r4 r0 0x0ff00000", 388 "eq_r4_r0_0x0ff00000"}, 389 {{vs, r6, r10, 0x00000ab0}, 390 false, 391 al, 392 "vs r6 r10 0x00000ab0", 393 "vs_r6_r10_0x00000ab0"}, 394 {{eq, r4, r8, 0x03fc0000}, 395 false, 396 al, 397 "eq r4 r8 0x03fc0000", 398 "eq_r4_r8_0x03fc0000"}, 399 {{lt, r8, r13, 0x002ac000}, 400 false, 401 al, 402 "lt r8 r13 0x002ac000", 403 "lt_r8_r13_0x002ac000"}, 404 {{mi, r1, r5, 0x000003fc}, 405 false, 406 al, 407 "mi r1 r5 0x000003fc", 408 "mi_r1_r5_0x000003fc"}, 409 {{ge, r8, r1, 0x00ab0000}, 410 false, 411 al, 412 "ge r8 r1 0x00ab0000", 413 "ge_r8_r1_0x00ab0000"}, 414 {{al, r0, r8, 0xb000000a}, 415 false, 416 al, 417 "al r0 r8 0xb000000a", 418 "al_r0_r8_0xb000000a"}, 419 {{cs, r3, r0, 0x0000ff00}, 420 false, 421 al, 422 "cs r3 r0 0x0000ff00", 423 "cs_r3_r0_0x0000ff00"}, 424 {{le, r14, r6, 0x03fc0000}, 425 false, 426 al, 427 "le r14 r6 0x03fc0000", 428 "le_r14_r6_0x03fc0000"}, 429 {{lt, r13, r7, 0xab000000}, 430 false, 431 al, 432 "lt r13 r7 0xab000000", 433 "lt_r13_r7_0xab000000"}, 434 {{vc, r7, r7, 0x00ff0000}, 435 false, 436 al, 437 "vc r7 r7 0x00ff0000", 438 "vc_r7_r7_0x00ff0000"}, 439 {{ls, r8, r1, 0x0ab00000}, 440 false, 441 al, 442 "ls r8 r1 0x0ab00000", 443 "ls_r8_r1_0x0ab00000"}, 444 {{lt, r10, r12, 0x000002ac}, 445 false, 446 al, 447 "lt r10 r12 0x000002ac", 448 "lt_r10_r12_0x000002ac"}, 449 {{ls, r11, r0, 0x3fc00000}, 450 false, 451 al, 452 "ls r11 r0 0x3fc00000", 453 "ls_r11_r0_0x3fc00000"}, 454 {{ge, r9, r8, 0x002ac000}, 455 false, 456 al, 457 "ge r9 r8 0x002ac000", 458 "ge_r9_r8_0x002ac000"}, 459 {{vc, r5, r2, 0x02ac0000}, 460 false, 461 al, 462 "vc r5 r2 0x02ac0000", 463 "vc_r5_r2_0x02ac0000"}, 464 {{gt, r2, r9, 0x0ff00000}, 465 false, 466 al, 467 "gt r2 r9 0x0ff00000", 468 "gt_r2_r9_0x0ff00000"}, 469 {{eq, r10, r6, 0x2ac00000}, 470 false, 471 al, 472 "eq r10 r6 0x2ac00000", 473 "eq_r10_r6_0x2ac00000"}, 474 {{ls, r0, r9, 0xfc000003}, 475 false, 476 al, 477 "ls r0 r9 0xfc000003", 478 "ls_r0_r9_0xfc000003"}, 479 {{eq, r15, r12, 0x02ac0000}, 480 false, 481 al, 482 "eq r15 r12 0x02ac0000", 483 "eq_r15_r12_0x02ac0000"}, 484 {{mi, r3, r1, 0xfc000003}, 485 false, 486 al, 487 "mi r3 r1 0xfc000003", 488 "mi_r3_r1_0xfc000003"}, 489 {{lt, r0, r0, 0xb000000a}, 490 false, 491 al, 492 "lt r0 r0 0xb000000a", 493 "lt_r0_r0_0xb000000a"}, 494 {{cs, r14, r8, 0xff000000}, 495 false, 496 al, 497 "cs r14 r8 0xff000000", 498 "cs_r14_r8_0xff000000"}, 499 {{lt, r7, r1, 0x00003fc0}, 500 false, 501 al, 502 "lt r7 r1 0x00003fc0", 503 "lt_r7_r1_0x00003fc0"}, 504 {{ls, r8, r1, 0x00000ff0}, 505 false, 506 al, 507 "ls r8 r1 0x00000ff0", 508 "ls_r8_r1_0x00000ff0"}, 509 {{cc, r15, r3, 0x0002ac00}, 510 false, 511 al, 512 "cc r15 r3 0x0002ac00", 513 "cc_r15_r3_0x0002ac00"}, 514 {{cs, r15, r0, 0xc000003f}, 515 false, 516 al, 517 "cs r15 r0 0xc000003f", 518 "cs_r15_r0_0xc000003f"}, 519 {{hi, r4, r2, 0x0002ac00}, 520 false, 521 al, 522 "hi r4 r2 0x0002ac00", 523 "hi_r4_r2_0x0002ac00"}, 524 {{ne, r10, r12, 0x0003fc00}, 525 false, 526 al, 527 "ne r10 r12 0x0003fc00", 528 "ne_r10_r12_0x0003fc00"}, 529 {{gt, r7, r13, 0x00003fc0}, 530 false, 531 al, 532 "gt r7 r13 0x00003fc0", 533 "gt_r7_r13_0x00003fc0"}, 534 {{vc, r14, r4, 0xac000002}, 535 false, 536 al, 537 "vc r14 r4 0xac000002", 538 "vc_r14_r4_0xac000002"}, 539 {{le, r13, r7, 0x00000000}, 540 false, 541 al, 542 "le r13 r7 0x00000000", 543 "le_r13_r7_0x00000000"}, 544 {{pl, r5, r15, 0x00000ab0}, 545 false, 546 al, 547 "pl r5 r15 0x00000ab0", 548 "pl_r5_r15_0x00000ab0"}, 549 {{vs, r1, r1, 0x03fc0000}, 550 false, 551 al, 552 "vs r1 r1 0x03fc0000", 553 "vs_r1_r1_0x03fc0000"}, 554 {{le, r4, r4, 0xab000000}, 555 false, 556 al, 557 "le r4 r4 0xab000000", 558 "le_r4_r4_0xab000000"}, 559 {{gt, r11, r4, 0x0ff00000}, 560 false, 561 al, 562 "gt r11 r4 0x0ff00000", 563 "gt_r11_r4_0x0ff00000"}, 564 {{cc, r1, r3, 0x0000ab00}, 565 false, 566 al, 567 "cc r1 r3 0x0000ab00", 568 "cc_r1_r3_0x0000ab00"}, 569 {{cs, r10, r9, 0x0000ab00}, 570 false, 571 al, 572 "cs r10 r9 0x0000ab00", 573 "cs_r10_r9_0x0000ab00"}, 574 {{vc, r7, r5, 0x00ab0000}, 575 false, 576 al, 577 "vc r7 r5 0x00ab0000", 578 "vc_r7_r5_0x00ab0000"}, 579 {{cc, r4, r1, 0x0000ab00}, 580 false, 581 al, 582 "cc r4 r1 0x0000ab00", 583 "cc_r4_r1_0x0000ab00"}, 584 {{hi, r4, r15, 0xfc000003}, 585 false, 586 al, 587 "hi r4 r15 0xfc000003", 588 "hi_r4_r15_0xfc000003"}, 589 {{eq, r11, r1, 0xff000000}, 590 false, 591 al, 592 "eq r11 r1 0xff000000", 593 "eq_r11_r1_0xff000000"}, 594 {{gt, r4, r2, 0x00002ac0}, 595 false, 596 al, 597 "gt r4 r2 0x00002ac0", 598 "gt_r4_r2_0x00002ac0"}, 599 {{ls, r10, r10, 0x000000ff}, 600 false, 601 al, 602 "ls r10 r10 0x000000ff", 603 "ls_r10_r10_0x000000ff"}, 604 {{gt, r11, r10, 0x00ff0000}, 605 false, 606 al, 607 "gt r11 r10 0x00ff0000", 608 "gt_r11_r10_0x00ff0000"}, 609 {{ls, r12, r6, 0x00000ff0}, 610 false, 611 al, 612 "ls r12 r6 0x00000ff0", 613 "ls_r12_r6_0x00000ff0"}, 614 {{vc, r9, r4, 0xb000000a}, 615 false, 616 al, 617 "vc r9 r4 0xb000000a", 618 "vc_r9_r4_0xb000000a"}, 619 {{hi, r10, r13, 0x00003fc0}, 620 false, 621 al, 622 "hi r10 r13 0x00003fc0", 623 "hi_r10_r13_0x00003fc0"}, 624 {{vc, r6, r4, 0xab000000}, 625 false, 626 al, 627 "vc r6 r4 0xab000000", 628 "vc_r6_r4_0xab000000"}, 629 {{gt, r1, r4, 0x0ff00000}, 630 false, 631 al, 632 "gt r1 r4 0x0ff00000", 633 "gt_r1_r4_0x0ff00000"}, 634 {{ne, r8, r0, 0x00003fc0}, 635 false, 636 al, 637 "ne r8 r0 0x00003fc0", 638 "ne_r8_r0_0x00003fc0"}, 639 {{ls, r13, r9, 0x0002ac00}, 640 false, 641 al, 642 "ls r13 r9 0x0002ac00", 643 "ls_r13_r9_0x0002ac00"}, 644 {{eq, r8, r8, 0xfc000003}, 645 false, 646 al, 647 "eq r8 r8 0xfc000003", 648 "eq_r8_r8_0xfc000003"}, 649 {{pl, r4, r3, 0x0002ac00}, 650 false, 651 al, 652 "pl r4 r3 0x0002ac00", 653 "pl_r4_r3_0x0002ac00"}, 654 {{cc, r3, r1, 0xab000000}, 655 false, 656 al, 657 "cc r3 r1 0xab000000", 658 "cc_r3_r1_0xab000000"}, 659 {{cc, r13, r3, 0xc000002a}, 660 false, 661 al, 662 "cc r13 r3 0xc000002a", 663 "cc_r13_r3_0xc000002a"}, 664 {{cc, r10, r14, 0x00000000}, 665 false, 666 al, 667 "cc r10 r14 0x00000000", 668 "cc_r10_r14_0x00000000"}, 669 {{hi, r13, r6, 0x000ff000}, 670 false, 671 al, 672 "hi r13 r6 0x000ff000", 673 "hi_r13_r6_0x000ff000"}, 674 {{ge, r7, r15, 0x0002ac00}, 675 false, 676 al, 677 "ge r7 r15 0x0002ac00", 678 "ge_r7_r15_0x0002ac00"}, 679 {{le, r1, r11, 0x0002ac00}, 680 false, 681 al, 682 "le r1 r11 0x0002ac00", 683 "le_r1_r11_0x0002ac00"}, 684 {{gt, r12, r1, 0x02ac0000}, 685 false, 686 al, 687 "gt r12 r1 0x02ac0000", 688 "gt_r12_r1_0x02ac0000"}, 689 {{hi, r0, r12, 0x00002ac0}, 690 false, 691 al, 692 "hi r0 r12 0x00002ac0", 693 "hi_r0_r12_0x00002ac0"}, 694 {{lt, r6, r9, 0xfc000003}, 695 false, 696 al, 697 "lt r6 r9 0xfc000003", 698 "lt_r6_r9_0xfc000003"}, 699 {{ls, r6, r6, 0x0002ac00}, 700 false, 701 al, 702 "ls r6 r6 0x0002ac00", 703 "ls_r6_r6_0x0002ac00"}, 704 {{vc, r12, r3, 0xab000000}, 705 false, 706 al, 707 "vc r12 r3 0xab000000", 708 "vc_r12_r3_0xab000000"}, 709 {{pl, r12, r10, 0x0ab00000}, 710 false, 711 al, 712 "pl r12 r10 0x0ab00000", 713 "pl_r12_r10_0x0ab00000"}, 714 {{lt, r9, r11, 0xff000000}, 715 false, 716 al, 717 "lt r9 r11 0xff000000", 718 "lt_r9_r11_0xff000000"}, 719 {{pl, r1, r11, 0x00000ff0}, 720 false, 721 al, 722 "pl r1 r11 0x00000ff0", 723 "pl_r1_r11_0x00000ff0"}, 724 {{cs, r10, r3, 0x00003fc0}, 725 false, 726 al, 727 "cs r10 r3 0x00003fc0", 728 "cs_r10_r3_0x00003fc0"}, 729 {{vs, r1, r12, 0x03fc0000}, 730 false, 731 al, 732 "vs r1 r12 0x03fc0000", 733 "vs_r1_r12_0x03fc0000"}, 734 {{ls, r2, r2, 0xf000000f}, 735 false, 736 al, 737 "ls r2 r2 0xf000000f", 738 "ls_r2_r2_0xf000000f"}, 739 {{pl, r11, r4, 0x0003fc00}, 740 false, 741 al, 742 "pl r11 r4 0x0003fc00", 743 "pl_r11_r4_0x0003fc00"}, 744 {{cc, r13, r7, 0x03fc0000}, 745 false, 746 al, 747 "cc r13 r7 0x03fc0000", 748 "cc_r13_r7_0x03fc0000"}, 749 {{hi, r5, r1, 0x00ab0000}, 750 false, 751 al, 752 "hi r5 r1 0x00ab0000", 753 "hi_r5_r1_0x00ab0000"}, 754 {{eq, r8, r5, 0x0ab00000}, 755 false, 756 al, 757 "eq r8 r5 0x0ab00000", 758 "eq_r8_r5_0x0ab00000"}, 759 {{ge, r6, r15, 0x0002ac00}, 760 false, 761 al, 762 "ge r6 r15 0x0002ac00", 763 "ge_r6_r15_0x0002ac00"}, 764 {{ls, r5, r6, 0x00000ff0}, 765 false, 766 al, 767 "ls r5 r6 0x00000ff0", 768 "ls_r5_r6_0x00000ff0"}, 769 {{gt, r13, r11, 0x000003fc}, 770 false, 771 al, 772 "gt r13 r11 0x000003fc", 773 "gt_r13_r11_0x000003fc"}, 774 {{vc, r8, r6, 0xc000002a}, 775 false, 776 al, 777 "vc r8 r6 0xc000002a", 778 "vc_r8_r6_0xc000002a"}, 779 {{ge, r10, r2, 0x000000ab}, 780 false, 781 al, 782 "ge r10 r2 0x000000ab", 783 "ge_r10_r2_0x000000ab"}, 784 {{pl, r7, r14, 0x000000ab}, 785 false, 786 al, 787 "pl r7 r14 0x000000ab", 788 "pl_r7_r14_0x000000ab"}, 789 {{vc, r11, r10, 0x3fc00000}, 790 false, 791 al, 792 "vc r11 r10 0x3fc00000", 793 "vc_r11_r10_0x3fc00000"}, 794 {{pl, r9, r0, 0x00003fc0}, 795 false, 796 al, 797 "pl r9 r0 0x00003fc0", 798 "pl_r9_r0_0x00003fc0"}, 799 {{hi, r15, r1, 0x000ab000}, 800 false, 801 al, 802 "hi r15 r1 0x000ab000", 803 "hi_r15_r1_0x000ab000"}, 804 {{gt, r3, r4, 0x00ab0000}, 805 false, 806 al, 807 "gt r3 r4 0x00ab0000", 808 "gt_r3_r4_0x00ab0000"}, 809 {{cs, r7, r12, 0x00000ab0}, 810 false, 811 al, 812 "cs r7 r12 0x00000ab0", 813 "cs_r7_r12_0x00000ab0"}, 814 {{vs, r3, r8, 0x0ff00000}, 815 false, 816 al, 817 "vs r3 r8 0x0ff00000", 818 "vs_r3_r8_0x0ff00000"}, 819 {{cc, r12, r8, 0x000000ff}, 820 false, 821 al, 822 "cc r12 r8 0x000000ff", 823 "cc_r12_r8_0x000000ff"}, 824 {{vc, r1, r5, 0x02ac0000}, 825 false, 826 al, 827 "vc r1 r5 0x02ac0000", 828 "vc_r1_r5_0x02ac0000"}, 829 {{cc, r7, r12, 0xf000000f}, 830 false, 831 al, 832 "cc r7 r12 0xf000000f", 833 "cc_r7_r12_0xf000000f"}, 834 {{gt, r9, r4, 0x0000ab00}, 835 false, 836 al, 837 "gt r9 r4 0x0000ab00", 838 "gt_r9_r4_0x0000ab00"}, 839 {{pl, r14, r8, 0x0ff00000}, 840 false, 841 al, 842 "pl r14 r8 0x0ff00000", 843 "pl_r14_r8_0x0ff00000"}, 844 {{vc, r8, r4, 0x000003fc}, 845 false, 846 al, 847 "vc r8 r4 0x000003fc", 848 "vc_r8_r4_0x000003fc"}, 849 {{cc, r1, r15, 0xb000000a}, 850 false, 851 al, 852 "cc r1 r15 0xb000000a", 853 "cc_r1_r15_0xb000000a"}, 854 {{al, r15, r11, 0x000ff000}, 855 false, 856 al, 857 "al r15 r11 0x000ff000", 858 "al_r15_r11_0x000ff000"}, 859 {{ls, r1, r13, 0x00002ac0}, 860 false, 861 al, 862 "ls r1 r13 0x00002ac0", 863 "ls_r1_r13_0x00002ac0"}, 864 {{le, r4, r10, 0x03fc0000}, 865 false, 866 al, 867 "le r4 r10 0x03fc0000", 868 "le_r4_r10_0x03fc0000"}, 869 {{mi, r2, r4, 0x00000ab0}, 870 false, 871 al, 872 "mi r2 r4 0x00000ab0", 873 "mi_r2_r4_0x00000ab0"}, 874 {{al, r13, r6, 0x02ac0000}, 875 false, 876 al, 877 "al r13 r6 0x02ac0000", 878 "al_r13_r6_0x02ac0000"}, 879 {{mi, r7, r9, 0x000002ac}, 880 false, 881 al, 882 "mi r7 r9 0x000002ac", 883 "mi_r7_r9_0x000002ac"}, 884 {{hi, r9, r7, 0x00002ac0}, 885 false, 886 al, 887 "hi r9 r7 0x00002ac0", 888 "hi_r9_r7_0x00002ac0"}, 889 {{vc, r15, r9, 0x0000ab00}, 890 false, 891 al, 892 "vc r15 r9 0x0000ab00", 893 "vc_r15_r9_0x0000ab00"}, 894 {{vc, r13, r0, 0xff000000}, 895 false, 896 al, 897 "vc r13 r0 0xff000000", 898 "vc_r13_r0_0xff000000"}, 899 {{cc, r15, r10, 0x00003fc0}, 900 false, 901 al, 902 "cc r15 r10 0x00003fc0", 903 "cc_r15_r10_0x00003fc0"}, 904 {{lt, r12, r2, 0x00000ab0}, 905 false, 906 al, 907 "lt r12 r2 0x00000ab0", 908 "lt_r12_r2_0x00000ab0"}, 909 {{le, r1, r3, 0xb000000a}, 910 false, 911 al, 912 "le r1 r3 0xb000000a", 913 "le_r1_r3_0xb000000a"}, 914 {{hi, r14, r12, 0xc000002a}, 915 false, 916 al, 917 "hi r14 r12 0xc000002a", 918 "hi_r14_r12_0xc000002a"}, 919 {{vc, r5, r8, 0x000ff000}, 920 false, 921 al, 922 "vc r5 r8 0x000ff000", 923 "vc_r5_r8_0x000ff000"}, 924 {{gt, r12, r9, 0x000000ab}, 925 false, 926 al, 927 "gt r12 r9 0x000000ab", 928 "gt_r12_r9_0x000000ab"}, 929 {{al, r13, r7, 0xf000000f}, 930 false, 931 al, 932 "al r13 r7 0xf000000f", 933 "al_r13_r7_0xf000000f"}, 934 {{ls, r3, r10, 0x000002ac}, 935 false, 936 al, 937 "ls r3 r10 0x000002ac", 938 "ls_r3_r10_0x000002ac"}, 939 {{ne, r13, r13, 0x00000ab0}, 940 false, 941 al, 942 "ne r13 r13 0x00000ab0", 943 "ne_r13_r13_0x00000ab0"}, 944 {{ge, r15, r3, 0xfc000003}, 945 false, 946 al, 947 "ge r15 r3 0xfc000003", 948 "ge_r15_r3_0xfc000003"}, 949 {{cc, r7, r0, 0x0003fc00}, 950 false, 951 al, 952 "cc r7 r0 0x0003fc00", 953 "cc_r7_r0_0x0003fc00"}, 954 {{eq, r3, r14, 0x2ac00000}, 955 false, 956 al, 957 "eq r3 r14 0x2ac00000", 958 "eq_r3_r14_0x2ac00000"}, 959 {{al, r11, r14, 0x003fc000}, 960 false, 961 al, 962 "al r11 r14 0x003fc000", 963 "al_r11_r14_0x003fc000"}, 964 {{gt, r3, r12, 0x02ac0000}, 965 false, 966 al, 967 "gt r3 r12 0x02ac0000", 968 "gt_r3_r12_0x02ac0000"}, 969 {{mi, r7, r15, 0xac000002}, 970 false, 971 al, 972 "mi r7 r15 0xac000002", 973 "mi_r7_r15_0xac000002"}, 974 {{al, r3, r2, 0x002ac000}, 975 false, 976 al, 977 "al r3 r2 0x002ac000", 978 "al_r3_r2_0x002ac000"}, 979 {{hi, r2, r6, 0x0002ac00}, 980 false, 981 al, 982 "hi r2 r6 0x0002ac00", 983 "hi_r2_r6_0x0002ac00"}, 984 {{eq, r8, r5, 0x03fc0000}, 985 false, 986 al, 987 "eq r8 r5 0x03fc0000", 988 "eq_r8_r5_0x03fc0000"}, 989 {{hi, r2, r13, 0x0002ac00}, 990 false, 991 al, 992 "hi r2 r13 0x0002ac00", 993 "hi_r2_r13_0x0002ac00"}, 994 {{lt, r10, r10, 0x00ab0000}, 995 false, 996 al, 997 "lt r10 r10 0x00ab0000", 998 "lt_r10_r10_0x00ab0000"}, 999 {{al, r12, r3, 0x0ab00000}, 1000 false, 1001 al, 1002 "al r12 r3 0x0ab00000", 1003 "al_r12_r3_0x0ab00000"}, 1004 {{ls, r1, r2, 0x003fc000}, 1005 false, 1006 al, 1007 "ls r1 r2 0x003fc000", 1008 "ls_r1_r2_0x003fc000"}, 1009 {{le, r9, r10, 0x000ff000}, 1010 false, 1011 al, 1012 "le r9 r10 0x000ff000", 1013 "le_r9_r10_0x000ff000"}, 1014 {{vc, r4, r12, 0x00000000}, 1015 false, 1016 al, 1017 "vc r4 r12 0x00000000", 1018 "vc_r4_r12_0x00000000"}, 1019 {{pl, r7, r7, 0x02ac0000}, 1020 false, 1021 al, 1022 "pl r7 r7 0x02ac0000", 1023 "pl_r7_r7_0x02ac0000"}, 1024 {{ge, r6, r11, 0x02ac0000}, 1025 false, 1026 al, 1027 "ge r6 r11 0x02ac0000", 1028 "ge_r6_r11_0x02ac0000"}, 1029 {{ls, r10, r4, 0x000000ff}, 1030 false, 1031 al, 1032 "ls r10 r4 0x000000ff", 1033 "ls_r10_r4_0x000000ff"}, 1034 {{cc, r12, r4, 0x00000ff0}, 1035 false, 1036 al, 1037 "cc r12 r4 0x00000ff0", 1038 "cc_r12_r4_0x00000ff0"}, 1039 {{gt, r6, r3, 0x0ff00000}, 1040 false, 1041 al, 1042 "gt r6 r3 0x0ff00000", 1043 "gt_r6_r3_0x0ff00000"}, 1044 {{cc, r3, r10, 0x00ab0000}, 1045 false, 1046 al, 1047 "cc r3 r10 0x00ab0000", 1048 "cc_r3_r10_0x00ab0000"}, 1049 {{eq, r6, r7, 0x00ab0000}, 1050 false, 1051 al, 1052 "eq r6 r7 0x00ab0000", 1053 "eq_r6_r7_0x00ab0000"}, 1054 {{le, r3, r3, 0x003fc000}, 1055 false, 1056 al, 1057 "le r3 r3 0x003fc000", 1058 "le_r3_r3_0x003fc000"}, 1059 {{lt, r11, r3, 0x3fc00000}, 1060 false, 1061 al, 1062 "lt r11 r3 0x3fc00000", 1063 "lt_r11_r3_0x3fc00000"}, 1064 {{vc, r11, r2, 0x00003fc0}, 1065 false, 1066 al, 1067 "vc r11 r2 0x00003fc0", 1068 "vc_r11_r2_0x00003fc0"}, 1069 {{ls, r11, r11, 0x000ff000}, 1070 false, 1071 al, 1072 "ls r11 r11 0x000ff000", 1073 "ls_r11_r11_0x000ff000"}, 1074 {{eq, r13, r2, 0x0000ff00}, 1075 false, 1076 al, 1077 "eq r13 r2 0x0000ff00", 1078 "eq_r13_r2_0x0000ff00"}, 1079 {{vc, r9, r1, 0x00002ac0}, 1080 false, 1081 al, 1082 "vc r9 r1 0x00002ac0", 1083 "vc_r9_r1_0x00002ac0"}, 1084 {{ne, r2, r14, 0xfc000003}, 1085 false, 1086 al, 1087 "ne r2 r14 0xfc000003", 1088 "ne_r2_r14_0xfc000003"}, 1089 {{vs, r10, r11, 0x00002ac0}, 1090 false, 1091 al, 1092 "vs r10 r11 0x00002ac0", 1093 "vs_r10_r11_0x00002ac0"}, 1094 {{cc, r9, r9, 0x000002ac}, 1095 false, 1096 al, 1097 "cc r9 r9 0x000002ac", 1098 "cc_r9_r9_0x000002ac"}, 1099 {{gt, r9, r3, 0x0000ab00}, 1100 false, 1101 al, 1102 "gt r9 r3 0x0000ab00", 1103 "gt_r9_r3_0x0000ab00"}, 1104 {{ge, r3, r0, 0x000000ab}, 1105 false, 1106 al, 1107 "ge r3 r0 0x000000ab", 1108 "ge_r3_r0_0x000000ab"}, 1109 {{pl, r6, r11, 0xb000000a}, 1110 false, 1111 al, 1112 "pl r6 r11 0xb000000a", 1113 "pl_r6_r11_0xb000000a"}, 1114 {{cs, r7, r3, 0xb000000a}, 1115 false, 1116 al, 1117 "cs r7 r3 0xb000000a", 1118 "cs_r7_r3_0xb000000a"}, 1119 {{ge, r0, r8, 0x00ff0000}, 1120 false, 1121 al, 1122 "ge r0 r8 0x00ff0000", 1123 "ge_r0_r8_0x00ff0000"}, 1124 {{lt, r9, r0, 0x00ab0000}, 1125 false, 1126 al, 1127 "lt r9 r0 0x00ab0000", 1128 "lt_r9_r0_0x00ab0000"}, 1129 {{cs, r8, r0, 0xc000003f}, 1130 false, 1131 al, 1132 "cs r8 r0 0xc000003f", 1133 "cs_r8_r0_0xc000003f"}, 1134 {{eq, r2, r5, 0x03fc0000}, 1135 false, 1136 al, 1137 "eq r2 r5 0x03fc0000", 1138 "eq_r2_r5_0x03fc0000"}, 1139 {{ls, r1, r9, 0x0000ab00}, 1140 false, 1141 al, 1142 "ls r1 r9 0x0000ab00", 1143 "ls_r1_r9_0x0000ab00"}, 1144 {{al, r3, r1, 0x00000ab0}, 1145 false, 1146 al, 1147 "al r3 r1 0x00000ab0", 1148 "al_r3_r1_0x00000ab0"}, 1149 {{gt, r11, r11, 0xfc000003}, 1150 false, 1151 al, 1152 "gt r11 r11 0xfc000003", 1153 "gt_r11_r11_0xfc000003"}, 1154 {{hi, r9, r8, 0x00000ab0}, 1155 false, 1156 al, 1157 "hi r9 r8 0x00000ab0", 1158 "hi_r9_r8_0x00000ab0"}, 1159 {{gt, r6, r10, 0xff000000}, 1160 false, 1161 al, 1162 "gt r6 r10 0xff000000", 1163 "gt_r6_r10_0xff000000"}, 1164 {{le, r9, r14, 0x00003fc0}, 1165 false, 1166 al, 1167 "le r9 r14 0x00003fc0", 1168 "le_r9_r14_0x00003fc0"}, 1169 {{cc, r11, r0, 0xf000000f}, 1170 false, 1171 al, 1172 "cc r11 r0 0xf000000f", 1173 "cc_r11_r0_0xf000000f"}, 1174 {{pl, r8, r5, 0x000002ac}, 1175 false, 1176 al, 1177 "pl r8 r5 0x000002ac", 1178 "pl_r8_r5_0x000002ac"}, 1179 {{gt, r1, r15, 0x000ff000}, 1180 false, 1181 al, 1182 "gt r1 r15 0x000ff000", 1183 "gt_r1_r15_0x000ff000"}, 1184 {{eq, r1, r2, 0x02ac0000}, 1185 false, 1186 al, 1187 "eq r1 r2 0x02ac0000", 1188 "eq_r1_r2_0x02ac0000"}, 1189 {{ge, r8, r7, 0x0ff00000}, 1190 false, 1191 al, 1192 "ge r8 r7 0x0ff00000", 1193 "ge_r8_r7_0x0ff00000"}, 1194 {{le, r15, r14, 0x0000ab00}, 1195 false, 1196 al, 1197 "le r15 r14 0x0000ab00", 1198 "le_r15_r14_0x0000ab00"}, 1199 {{al, r15, r11, 0x00002ac0}, 1200 false, 1201 al, 1202 "al r15 r11 0x00002ac0", 1203 "al_r15_r11_0x00002ac0"}, 1204 {{al, r11, r4, 0x000002ac}, 1205 false, 1206 al, 1207 "al r11 r4 0x000002ac", 1208 "al_r11_r4_0x000002ac"}, 1209 {{le, r13, r12, 0x000003fc}, 1210 false, 1211 al, 1212 "le r13 r12 0x000003fc", 1213 "le_r13_r12_0x000003fc"}, 1214 {{al, r15, r8, 0x000ff000}, 1215 false, 1216 al, 1217 "al r15 r8 0x000ff000", 1218 "al_r15_r8_0x000ff000"}, 1219 {{eq, r4, r2, 0x0002ac00}, 1220 false, 1221 al, 1222 "eq r4 r2 0x0002ac00", 1223 "eq_r4_r2_0x0002ac00"}, 1224 {{ge, r1, r9, 0x002ac000}, 1225 false, 1226 al, 1227 "ge r1 r9 0x002ac000", 1228 "ge_r1_r9_0x002ac000"}, 1229 {{lt, r12, r5, 0x00000000}, 1230 false, 1231 al, 1232 "lt r12 r5 0x00000000", 1233 "lt_r12_r5_0x00000000"}, 1234 {{pl, r10, r8, 0x00000ff0}, 1235 false, 1236 al, 1237 "pl r10 r8 0x00000ff0", 1238 "pl_r10_r8_0x00000ff0"}, 1239 {{ge, r13, r12, 0x00ff0000}, 1240 false, 1241 al, 1242 "ge r13 r12 0x00ff0000", 1243 "ge_r13_r12_0x00ff0000"}, 1244 {{al, r9, r7, 0x00000ff0}, 1245 false, 1246 al, 1247 "al r9 r7 0x00000ff0", 1248 "al_r9_r7_0x00000ff0"}, 1249 {{ls, r6, r3, 0x00000000}, 1250 false, 1251 al, 1252 "ls r6 r3 0x00000000", 1253 "ls_r6_r3_0x00000000"}, 1254 {{al, r1, r2, 0x00002ac0}, 1255 false, 1256 al, 1257 "al r1 r2 0x00002ac0", 1258 "al_r1_r2_0x00002ac0"}, 1259 {{le, r4, r12, 0x0002ac00}, 1260 false, 1261 al, 1262 "le r4 r12 0x0002ac00", 1263 "le_r4_r12_0x0002ac00"}, 1264 {{ge, r7, r1, 0x0000ff00}, 1265 false, 1266 al, 1267 "ge r7 r1 0x0000ff00", 1268 "ge_r7_r1_0x0000ff00"}, 1269 {{le, r10, r14, 0x3fc00000}, 1270 false, 1271 al, 1272 "le r10 r14 0x3fc00000", 1273 "le_r10_r14_0x3fc00000"}, 1274 {{al, r7, r9, 0x000000ab}, 1275 false, 1276 al, 1277 "al r7 r9 0x000000ab", 1278 "al_r7_r9_0x000000ab"}, 1279 {{hi, r6, r3, 0x000003fc}, 1280 false, 1281 al, 1282 "hi r6 r3 0x000003fc", 1283 "hi_r6_r3_0x000003fc"}, 1284 {{cs, r14, r11, 0x000000ff}, 1285 false, 1286 al, 1287 "cs r14 r11 0x000000ff", 1288 "cs_r14_r11_0x000000ff"}, 1289 {{le, r0, r15, 0xab000000}, 1290 false, 1291 al, 1292 "le r0 r15 0xab000000", 1293 "le_r0_r15_0xab000000"}, 1294 {{ls, r0, r3, 0xc000002a}, 1295 false, 1296 al, 1297 "ls r0 r3 0xc000002a", 1298 "ls_r0_r3_0xc000002a"}, 1299 {{le, r5, r6, 0x000002ac}, 1300 false, 1301 al, 1302 "le r5 r6 0x000002ac", 1303 "le_r5_r6_0x000002ac"}, 1304 {{eq, r5, r9, 0xb000000a}, 1305 false, 1306 al, 1307 "eq r5 r9 0xb000000a", 1308 "eq_r5_r9_0xb000000a"}, 1309 {{al, r12, r6, 0x000002ac}, 1310 false, 1311 al, 1312 "al r12 r6 0x000002ac", 1313 "al_r12_r6_0x000002ac"}, 1314 {{vs, r11, r10, 0x0003fc00}, 1315 false, 1316 al, 1317 "vs r11 r10 0x0003fc00", 1318 "vs_r11_r10_0x0003fc00"}, 1319 {{gt, r8, r5, 0x0003fc00}, 1320 false, 1321 al, 1322 "gt r8 r5 0x0003fc00", 1323 "gt_r8_r5_0x0003fc00"}, 1324 {{eq, r1, r9, 0x00000000}, 1325 false, 1326 al, 1327 "eq r1 r9 0x00000000", 1328 "eq_r1_r9_0x00000000"}, 1329 {{ge, r2, r9, 0x3fc00000}, 1330 false, 1331 al, 1332 "ge r2 r9 0x3fc00000", 1333 "ge_r2_r9_0x3fc00000"}, 1334 {{cs, r4, r13, 0x00ab0000}, 1335 false, 1336 al, 1337 "cs r4 r13 0x00ab0000", 1338 "cs_r4_r13_0x00ab0000"}, 1339 {{hi, r4, r12, 0x00ab0000}, 1340 false, 1341 al, 1342 "hi r4 r12 0x00ab0000", 1343 "hi_r4_r12_0x00ab0000"}, 1344 {{ne, r2, r3, 0x003fc000}, 1345 false, 1346 al, 1347 "ne r2 r3 0x003fc000", 1348 "ne_r2_r3_0x003fc000"}, 1349 {{vs, r0, r11, 0xfc000003}, 1350 false, 1351 al, 1352 "vs r0 r11 0xfc000003", 1353 "vs_r0_r11_0xfc000003"}, 1354 {{hi, r14, r9, 0x003fc000}, 1355 false, 1356 al, 1357 "hi r14 r9 0x003fc000", 1358 "hi_r14_r9_0x003fc000"}, 1359 {{vc, r7, r5, 0xab000000}, 1360 false, 1361 al, 1362 "vc r7 r5 0xab000000", 1363 "vc_r7_r5_0xab000000"}, 1364 {{lt, r15, r8, 0x002ac000}, 1365 false, 1366 al, 1367 "lt r15 r8 0x002ac000", 1368 "lt_r15_r8_0x002ac000"}, 1369 {{cs, r3, r7, 0x0003fc00}, 1370 false, 1371 al, 1372 "cs r3 r7 0x0003fc00", 1373 "cs_r3_r7_0x0003fc00"}, 1374 {{cs, r7, r11, 0xb000000a}, 1375 false, 1376 al, 1377 "cs r7 r11 0xb000000a", 1378 "cs_r7_r11_0xb000000a"}, 1379 {{ge, r0, r11, 0xb000000a}, 1380 false, 1381 al, 1382 "ge r0 r11 0xb000000a", 1383 "ge_r0_r11_0xb000000a"}, 1384 {{vs, r6, r5, 0x0ab00000}, 1385 false, 1386 al, 1387 "vs r6 r5 0x0ab00000", 1388 "vs_r6_r5_0x0ab00000"}, 1389 {{le, r10, r1, 0xfc000003}, 1390 false, 1391 al, 1392 "le r10 r1 0xfc000003", 1393 "le_r10_r1_0xfc000003"}, 1394 {{cc, r3, r6, 0x3fc00000}, 1395 false, 1396 al, 1397 "cc r3 r6 0x3fc00000", 1398 "cc_r3_r6_0x3fc00000"}, 1399 {{le, r12, r14, 0x00000ab0}, 1400 false, 1401 al, 1402 "le r12 r14 0x00000ab0", 1403 "le_r12_r14_0x00000ab0"}, 1404 {{al, r15, r12, 0x00003fc0}, 1405 false, 1406 al, 1407 "al r15 r12 0x00003fc0", 1408 "al_r15_r12_0x00003fc0"}, 1409 {{gt, r12, r10, 0x0000ab00}, 1410 false, 1411 al, 1412 "gt r12 r10 0x0000ab00", 1413 "gt_r12_r10_0x0000ab00"}, 1414 {{ls, r6, r15, 0x0ff00000}, 1415 false, 1416 al, 1417 "ls r6 r15 0x0ff00000", 1418 "ls_r6_r15_0x0ff00000"}, 1419 {{mi, r4, r4, 0x00003fc0}, 1420 false, 1421 al, 1422 "mi r4 r4 0x00003fc0", 1423 "mi_r4_r4_0x00003fc0"}, 1424 {{gt, r8, r9, 0xc000002a}, 1425 false, 1426 al, 1427 "gt r8 r9 0xc000002a", 1428 "gt_r8_r9_0xc000002a"}, 1429 {{le, r10, r4, 0x000002ac}, 1430 false, 1431 al, 1432 "le r10 r4 0x000002ac", 1433 "le_r10_r4_0x000002ac"}, 1434 {{vs, r0, r1, 0x000003fc}, 1435 false, 1436 al, 1437 "vs r0 r1 0x000003fc", 1438 "vs_r0_r1_0x000003fc"}, 1439 {{al, r1, r5, 0x0ff00000}, 1440 false, 1441 al, 1442 "al r1 r5 0x0ff00000", 1443 "al_r1_r5_0x0ff00000"}, 1444 {{cc, r11, r5, 0xc000002a}, 1445 false, 1446 al, 1447 "cc r11 r5 0xc000002a", 1448 "cc_r11_r5_0xc000002a"}, 1449 {{vc, r6, r13, 0x003fc000}, 1450 false, 1451 al, 1452 "vc r6 r13 0x003fc000", 1453 "vc_r6_r13_0x003fc000"}, 1454 {{eq, r1, r15, 0x00003fc0}, 1455 false, 1456 al, 1457 "eq r1 r15 0x00003fc0", 1458 "eq_r1_r15_0x00003fc0"}, 1459 {{lt, r15, r10, 0x000002ac}, 1460 false, 1461 al, 1462 "lt r15 r10 0x000002ac", 1463 "lt_r15_r10_0x000002ac"}, 1464 {{ne, r13, r13, 0x003fc000}, 1465 false, 1466 al, 1467 "ne r13 r13 0x003fc000", 1468 "ne_r13_r13_0x003fc000"}, 1469 {{mi, r11, r7, 0xc000002a}, 1470 false, 1471 al, 1472 "mi r11 r7 0xc000002a", 1473 "mi_r11_r7_0xc000002a"}, 1474 {{cc, r6, r2, 0x00ff0000}, 1475 false, 1476 al, 1477 "cc r6 r2 0x00ff0000", 1478 "cc_r6_r2_0x00ff0000"}, 1479 {{gt, r9, r1, 0x0000ab00}, 1480 false, 1481 al, 1482 "gt r9 r1 0x0000ab00", 1483 "gt_r9_r1_0x0000ab00"}, 1484 {{le, r11, r7, 0x000000ff}, 1485 false, 1486 al, 1487 "le r11 r7 0x000000ff", 1488 "le_r11_r7_0x000000ff"}, 1489 {{hi, r9, r8, 0x0002ac00}, 1490 false, 1491 al, 1492 "hi r9 r8 0x0002ac00", 1493 "hi_r9_r8_0x0002ac00"}, 1494 {{vs, r6, r8, 0xff000000}, 1495 false, 1496 al, 1497 "vs r6 r8 0xff000000", 1498 "vs_r6_r8_0xff000000"}, 1499 {{mi, r10, r4, 0x000ab000}, 1500 false, 1501 al, 1502 "mi r10 r4 0x000ab000", 1503 "mi_r10_r4_0x000ab000"}, 1504 {{ls, r7, r10, 0xab000000}, 1505 false, 1506 al, 1507 "ls r7 r10 0xab000000", 1508 "ls_r7_r10_0xab000000"}, 1509 {{lt, r1, r0, 0x00000000}, 1510 false, 1511 al, 1512 "lt r1 r0 0x00000000", 1513 "lt_r1_r0_0x00000000"}, 1514 {{eq, r2, r13, 0x00002ac0}, 1515 false, 1516 al, 1517 "eq r2 r13 0x00002ac0", 1518 "eq_r2_r13_0x00002ac0"}, 1519 {{cc, r14, r13, 0x00003fc0}, 1520 false, 1521 al, 1522 "cc r14 r13 0x00003fc0", 1523 "cc_r14_r13_0x00003fc0"}, 1524 {{le, r9, r4, 0x0ab00000}, 1525 false, 1526 al, 1527 "le r9 r4 0x0ab00000", 1528 "le_r9_r4_0x0ab00000"}, 1529 {{gt, r4, r7, 0x00000ab0}, 1530 false, 1531 al, 1532 "gt r4 r7 0x00000ab0", 1533 "gt_r4_r7_0x00000ab0"}, 1534 {{eq, r5, r4, 0xc000003f}, 1535 false, 1536 al, 1537 "eq r5 r4 0xc000003f", 1538 "eq_r5_r4_0xc000003f"}, 1539 {{al, r2, r13, 0xb000000a}, 1540 false, 1541 al, 1542 "al r2 r13 0xb000000a", 1543 "al_r2_r13_0xb000000a"}, 1544 {{le, r13, r11, 0x2ac00000}, 1545 false, 1546 al, 1547 "le r13 r11 0x2ac00000", 1548 "le_r13_r11_0x2ac00000"}, 1549 {{gt, r5, r14, 0xac000002}, 1550 false, 1551 al, 1552 "gt r5 r14 0xac000002", 1553 "gt_r5_r14_0xac000002"}, 1554 {{vs, r2, r7, 0x000000ab}, 1555 false, 1556 al, 1557 "vs r2 r7 0x000000ab", 1558 "vs_r2_r7_0x000000ab"}, 1559 {{ne, r6, r1, 0x0ab00000}, 1560 false, 1561 al, 1562 "ne r6 r1 0x0ab00000", 1563 "ne_r6_r1_0x0ab00000"}, 1564 {{eq, r4, r7, 0x0000ff00}, 1565 false, 1566 al, 1567 "eq r4 r7 0x0000ff00", 1568 "eq_r4_r7_0x0000ff00"}, 1569 {{cc, r11, r12, 0xc000003f}, 1570 false, 1571 al, 1572 "cc r11 r12 0xc000003f", 1573 "cc_r11_r12_0xc000003f"}, 1574 {{pl, r7, r9, 0x02ac0000}, 1575 false, 1576 al, 1577 "pl r7 r9 0x02ac0000", 1578 "pl_r7_r9_0x02ac0000"}, 1579 {{vc, r5, r4, 0x00000000}, 1580 false, 1581 al, 1582 "vc r5 r4 0x00000000", 1583 "vc_r5_r4_0x00000000"}, 1584 {{le, r7, r1, 0xc000002a}, 1585 false, 1586 al, 1587 "le r7 r1 0xc000002a", 1588 "le_r7_r1_0xc000002a"}, 1589 {{cs, r3, r10, 0x2ac00000}, 1590 false, 1591 al, 1592 "cs r3 r10 0x2ac00000", 1593 "cs_r3_r10_0x2ac00000"}, 1594 {{le, r11, r13, 0x00003fc0}, 1595 false, 1596 al, 1597 "le r11 r13 0x00003fc0", 1598 "le_r11_r13_0x00003fc0"}, 1599 {{pl, r2, r11, 0x000000ff}, 1600 false, 1601 al, 1602 "pl r2 r11 0x000000ff", 1603 "pl_r2_r11_0x000000ff"}, 1604 {{cs, r14, r11, 0x00000000}, 1605 false, 1606 al, 1607 "cs r14 r11 0x00000000", 1608 "cs_r14_r11_0x00000000"}, 1609 {{ls, r6, r8, 0x003fc000}, 1610 false, 1611 al, 1612 "ls r6 r8 0x003fc000", 1613 "ls_r6_r8_0x003fc000"}, 1614 {{al, r6, r8, 0xab000000}, 1615 false, 1616 al, 1617 "al r6 r8 0xab000000", 1618 "al_r6_r8_0xab000000"}, 1619 {{cc, r4, r2, 0x002ac000}, 1620 false, 1621 al, 1622 "cc r4 r2 0x002ac000", 1623 "cc_r4_r2_0x002ac000"}, 1624 {{lt, r3, r13, 0x003fc000}, 1625 false, 1626 al, 1627 "lt r3 r13 0x003fc000", 1628 "lt_r3_r13_0x003fc000"}, 1629 {{lt, r7, r3, 0x02ac0000}, 1630 false, 1631 al, 1632 "lt r7 r3 0x02ac0000", 1633 "lt_r7_r3_0x02ac0000"}, 1634 {{gt, r12, r1, 0x0000ff00}, 1635 false, 1636 al, 1637 "gt r12 r1 0x0000ff00", 1638 "gt_r12_r1_0x0000ff00"}, 1639 {{mi, r13, r11, 0x02ac0000}, 1640 false, 1641 al, 1642 "mi r13 r11 0x02ac0000", 1643 "mi_r13_r11_0x02ac0000"}, 1644 {{al, r9, r0, 0xc000003f}, 1645 false, 1646 al, 1647 "al r9 r0 0xc000003f", 1648 "al_r9_r0_0xc000003f"}, 1649 {{mi, r12, r9, 0x00003fc0}, 1650 false, 1651 al, 1652 "mi r12 r9 0x00003fc0", 1653 "mi_r12_r9_0x00003fc0"}, 1654 {{ge, r5, r2, 0x3fc00000}, 1655 false, 1656 al, 1657 "ge r5 r2 0x3fc00000", 1658 "ge_r5_r2_0x3fc00000"}, 1659 {{gt, r4, r2, 0x002ac000}, 1660 false, 1661 al, 1662 "gt r4 r2 0x002ac000", 1663 "gt_r4_r2_0x002ac000"}, 1664 {{cs, r6, r13, 0x00003fc0}, 1665 false, 1666 al, 1667 "cs r6 r13 0x00003fc0", 1668 "cs_r6_r13_0x00003fc0"}, 1669 {{ne, r14, r0, 0xff000000}, 1670 false, 1671 al, 1672 "ne r14 r0 0xff000000", 1673 "ne_r14_r0_0xff000000"}, 1674 {{ls, r5, r11, 0xc000002a}, 1675 false, 1676 al, 1677 "ls r5 r11 0xc000002a", 1678 "ls_r5_r11_0xc000002a"}, 1679 {{gt, r11, r6, 0xf000000f}, 1680 false, 1681 al, 1682 "gt r11 r6 0xf000000f", 1683 "gt_r11_r6_0xf000000f"}, 1684 {{ne, r11, r5, 0x000000ff}, 1685 false, 1686 al, 1687 "ne r11 r5 0x000000ff", 1688 "ne_r11_r5_0x000000ff"}, 1689 {{eq, r9, r14, 0x0ab00000}, 1690 false, 1691 al, 1692 "eq r9 r14 0x0ab00000", 1693 "eq_r9_r14_0x0ab00000"}, 1694 {{cs, r0, r10, 0x0002ac00}, 1695 false, 1696 al, 1697 "cs r0 r10 0x0002ac00", 1698 "cs_r0_r10_0x0002ac00"}, 1699 {{ls, r15, r15, 0x00003fc0}, 1700 false, 1701 al, 1702 "ls r15 r15 0x00003fc0", 1703 "ls_r15_r15_0x00003fc0"}, 1704 {{eq, r2, r2, 0xc000003f}, 1705 false, 1706 al, 1707 "eq r2 r2 0xc000003f", 1708 "eq_r2_r2_0xc000003f"}, 1709 {{ls, r10, r3, 0xfc000003}, 1710 false, 1711 al, 1712 "ls r10 r3 0xfc000003", 1713 "ls_r10_r3_0xfc000003"}, 1714 {{gt, r9, r2, 0x000ab000}, 1715 false, 1716 al, 1717 "gt r9 r2 0x000ab000", 1718 "gt_r9_r2_0x000ab000"}, 1719 {{vc, r7, r6, 0xb000000a}, 1720 false, 1721 al, 1722 "vc r7 r6 0xb000000a", 1723 "vc_r7_r6_0xb000000a"}, 1724 {{vs, r9, r0, 0x002ac000}, 1725 false, 1726 al, 1727 "vs r9 r0 0x002ac000", 1728 "vs_r9_r0_0x002ac000"}, 1729 {{hi, r10, r8, 0x2ac00000}, 1730 false, 1731 al, 1732 "hi r10 r8 0x2ac00000", 1733 "hi_r10_r8_0x2ac00000"}, 1734 {{vs, r15, r6, 0x003fc000}, 1735 false, 1736 al, 1737 "vs r15 r6 0x003fc000", 1738 "vs_r15_r6_0x003fc000"}, 1739 {{cc, r1, r8, 0x2ac00000}, 1740 false, 1741 al, 1742 "cc r1 r8 0x2ac00000", 1743 "cc_r1_r8_0x2ac00000"}, 1744 {{gt, r5, r14, 0x000ab000}, 1745 false, 1746 al, 1747 "gt r5 r14 0x000ab000", 1748 "gt_r5_r14_0x000ab000"}, 1749 {{ls, r2, r9, 0xc000003f}, 1750 false, 1751 al, 1752 "ls r2 r9 0xc000003f", 1753 "ls_r2_r9_0xc000003f"}, 1754 {{vs, r1, r10, 0x00000000}, 1755 false, 1756 al, 1757 "vs r1 r10 0x00000000", 1758 "vs_r1_r10_0x00000000"}, 1759 {{lt, r8, r12, 0x0ff00000}, 1760 false, 1761 al, 1762 "lt r8 r12 0x0ff00000", 1763 "lt_r8_r12_0x0ff00000"}, 1764 {{cc, r13, r14, 0x00002ac0}, 1765 false, 1766 al, 1767 "cc r13 r14 0x00002ac0", 1768 "cc_r13_r14_0x00002ac0"}, 1769 {{gt, r0, r3, 0x00003fc0}, 1770 false, 1771 al, 1772 "gt r0 r3 0x00003fc0", 1773 "gt_r0_r3_0x00003fc0"}, 1774 {{le, r0, r0, 0xc000003f}, 1775 false, 1776 al, 1777 "le r0 r0 0xc000003f", 1778 "le_r0_r0_0xc000003f"}, 1779 {{vc, r8, r8, 0xff000000}, 1780 false, 1781 al, 1782 "vc r8 r8 0xff000000", 1783 "vc_r8_r8_0xff000000"}, 1784 {{vc, r0, r5, 0x00002ac0}, 1785 false, 1786 al, 1787 "vc r0 r5 0x00002ac0", 1788 "vc_r0_r5_0x00002ac0"}, 1789 {{ls, r3, r10, 0x00ff0000}, 1790 false, 1791 al, 1792 "ls r3 r10 0x00ff0000", 1793 "ls_r3_r10_0x00ff0000"}, 1794 {{cc, r5, r2, 0x03fc0000}, 1795 false, 1796 al, 1797 "cc r5 r2 0x03fc0000", 1798 "cc_r5_r2_0x03fc0000"}, 1799 {{ls, r13, r8, 0xc000002a}, 1800 false, 1801 al, 1802 "ls r13 r8 0xc000002a", 1803 "ls_r13_r8_0xc000002a"}, 1804 {{vc, r14, r4, 0x3fc00000}, 1805 false, 1806 al, 1807 "vc r14 r4 0x3fc00000", 1808 "vc_r14_r4_0x3fc00000"}, 1809 {{eq, r7, r8, 0xac000002}, 1810 false, 1811 al, 1812 "eq r7 r8 0xac000002", 1813 "eq_r7_r8_0xac000002"}, 1814 {{al, r13, r13, 0x002ac000}, 1815 false, 1816 al, 1817 "al r13 r13 0x002ac000", 1818 "al_r13_r13_0x002ac000"}, 1819 {{vc, r0, r10, 0x000ff000}, 1820 false, 1821 al, 1822 "vc r0 r10 0x000ff000", 1823 "vc_r0_r10_0x000ff000"}, 1824 {{vc, r11, r12, 0x00002ac0}, 1825 false, 1826 al, 1827 "vc r11 r12 0x00002ac0", 1828 "vc_r11_r12_0x00002ac0"}, 1829 {{mi, r15, r4, 0x000ff000}, 1830 false, 1831 al, 1832 "mi r15 r4 0x000ff000", 1833 "mi_r15_r4_0x000ff000"}, 1834 {{eq, r3, r0, 0xfc000003}, 1835 false, 1836 al, 1837 "eq r3 r0 0xfc000003", 1838 "eq_r3_r0_0xfc000003"}, 1839 {{mi, r9, r8, 0xab000000}, 1840 false, 1841 al, 1842 "mi r9 r8 0xab000000", 1843 "mi_r9_r8_0xab000000"}, 1844 {{cc, r5, r7, 0xc000003f}, 1845 false, 1846 al, 1847 "cc r5 r7 0xc000003f", 1848 "cc_r5_r7_0xc000003f"}, 1849 {{eq, r9, r15, 0x002ac000}, 1850 false, 1851 al, 1852 "eq r9 r15 0x002ac000", 1853 "eq_r9_r15_0x002ac000"}, 1854 {{ne, r7, r5, 0x00000ab0}, 1855 false, 1856 al, 1857 "ne r7 r5 0x00000ab0", 1858 "ne_r7_r5_0x00000ab0"}, 1859 {{eq, r15, r12, 0x000002ac}, 1860 false, 1861 al, 1862 "eq r15 r12 0x000002ac", 1863 "eq_r15_r12_0x000002ac"}, 1864 {{cs, r0, r13, 0x00003fc0}, 1865 false, 1866 al, 1867 "cs r0 r13 0x00003fc0", 1868 "cs_r0_r13_0x00003fc0"}, 1869 {{gt, r13, r11, 0xac000002}, 1870 false, 1871 al, 1872 "gt r13 r11 0xac000002", 1873 "gt_r13_r11_0xac000002"}, 1874 {{pl, r4, r10, 0x2ac00000}, 1875 false, 1876 al, 1877 "pl r4 r10 0x2ac00000", 1878 "pl_r4_r10_0x2ac00000"}, 1879 {{ne, r3, r13, 0xac000002}, 1880 false, 1881 al, 1882 "ne r3 r13 0xac000002", 1883 "ne_r3_r13_0xac000002"}, 1884 {{eq, r8, r7, 0x000002ac}, 1885 false, 1886 al, 1887 "eq r8 r7 0x000002ac", 1888 "eq_r8_r7_0x000002ac"}, 1889 {{vs, r7, r6, 0xab000000}, 1890 false, 1891 al, 1892 "vs r7 r6 0xab000000", 1893 "vs_r7_r6_0xab000000"}, 1894 {{le, r14, r3, 0x00003fc0}, 1895 false, 1896 al, 1897 "le r14 r3 0x00003fc0", 1898 "le_r14_r3_0x00003fc0"}, 1899 {{mi, r3, r5, 0x0ab00000}, 1900 false, 1901 al, 1902 "mi r3 r5 0x0ab00000", 1903 "mi_r3_r5_0x0ab00000"}, 1904 {{lt, r9, r1, 0x000000ff}, 1905 false, 1906 al, 1907 "lt r9 r1 0x000000ff", 1908 "lt_r9_r1_0x000000ff"}, 1909 {{vc, r6, r2, 0xff000000}, 1910 false, 1911 al, 1912 "vc r6 r2 0xff000000", 1913 "vc_r6_r2_0xff000000"}, 1914 {{mi, r8, r3, 0xfc000003}, 1915 false, 1916 al, 1917 "mi r8 r3 0xfc000003", 1918 "mi_r8_r3_0xfc000003"}, 1919 {{gt, r14, r11, 0x000000ab}, 1920 false, 1921 al, 1922 "gt r14 r11 0x000000ab", 1923 "gt_r14_r11_0x000000ab"}, 1924 {{eq, r8, r14, 0x0000ff00}, 1925 false, 1926 al, 1927 "eq r8 r14 0x0000ff00", 1928 "eq_r8_r14_0x0000ff00"}, 1929 {{vs, r0, r5, 0x000002ac}, 1930 false, 1931 al, 1932 "vs r0 r5 0x000002ac", 1933 "vs_r0_r5_0x000002ac"}, 1934 {{cs, r15, r15, 0x00000ff0}, 1935 false, 1936 al, 1937 "cs r15 r15 0x00000ff0", 1938 "cs_r15_r15_0x00000ff0"}, 1939 {{le, r3, r0, 0x000000ff}, 1940 false, 1941 al, 1942 "le r3 r0 0x000000ff", 1943 "le_r3_r0_0x000000ff"}, 1944 {{vc, r3, r12, 0x000002ac}, 1945 false, 1946 al, 1947 "vc r3 r12 0x000002ac", 1948 "vc_r3_r12_0x000002ac"}, 1949 {{ne, r15, r9, 0x03fc0000}, 1950 false, 1951 al, 1952 "ne r15 r9 0x03fc0000", 1953 "ne_r15_r9_0x03fc0000"}, 1954 {{ls, r8, r14, 0x000002ac}, 1955 false, 1956 al, 1957 "ls r8 r14 0x000002ac", 1958 "ls_r8_r14_0x000002ac"}, 1959 {{eq, r7, r10, 0x03fc0000}, 1960 false, 1961 al, 1962 "eq r7 r10 0x03fc0000", 1963 "eq_r7_r10_0x03fc0000"}, 1964 {{vc, r0, r7, 0xab000000}, 1965 false, 1966 al, 1967 "vc r0 r7 0xab000000", 1968 "vc_r0_r7_0xab000000"}, 1969 {{vc, r3, r11, 0xff000000}, 1970 false, 1971 al, 1972 "vc r3 r11 0xff000000", 1973 "vc_r3_r11_0xff000000"}, 1974 {{cs, r14, r2, 0xfc000003}, 1975 false, 1976 al, 1977 "cs r14 r2 0xfc000003", 1978 "cs_r14_r2_0xfc000003"}, 1979 {{pl, r3, r11, 0x00ff0000}, 1980 false, 1981 al, 1982 "pl r3 r11 0x00ff0000", 1983 "pl_r3_r11_0x00ff0000"}, 1984 {{lt, r6, r1, 0x0002ac00}, 1985 false, 1986 al, 1987 "lt r6 r1 0x0002ac00", 1988 "lt_r6_r1_0x0002ac00"}, 1989 {{al, r15, r1, 0xf000000f}, 1990 false, 1991 al, 1992 "al r15 r1 0xf000000f", 1993 "al_r15_r1_0xf000000f"}, 1994 {{mi, r12, r7, 0x002ac000}, 1995 false, 1996 al, 1997 "mi r12 r7 0x002ac000", 1998 "mi_r12_r7_0x002ac000"}, 1999 {{vs, r9, r3, 0x000003fc}, 2000 false, 2001 al, 2002 "vs r9 r3 0x000003fc", 2003 "vs_r9_r3_0x000003fc"}, 2004 {{cc, r9, r14, 0x000000ff}, 2005 false, 2006 al, 2007 "cc r9 r14 0x000000ff", 2008 "cc_r9_r14_0x000000ff"}, 2009 {{ls, r9, r12, 0xac000002}, 2010 false, 2011 al, 2012 "ls r9 r12 0xac000002", 2013 "ls_r9_r12_0xac000002"}, 2014 {{al, r13, r13, 0xfc000003}, 2015 false, 2016 al, 2017 "al r13 r13 0xfc000003", 2018 "al_r13_r13_0xfc000003"}, 2019 {{lt, r14, r1, 0x02ac0000}, 2020 false, 2021 al, 2022 "lt r14 r1 0x02ac0000", 2023 "lt_r14_r1_0x02ac0000"}, 2024 {{le, r8, r15, 0x2ac00000}, 2025 false, 2026 al, 2027 "le r8 r15 0x2ac00000", 2028 "le_r8_r15_0x2ac00000"}, 2029 {{al, r10, r8, 0x0ab00000}, 2030 false, 2031 al, 2032 "al r10 r8 0x0ab00000", 2033 "al_r10_r8_0x0ab00000"}, 2034 {{eq, r3, r6, 0x0000ab00}, 2035 false, 2036 al, 2037 "eq r3 r6 0x0000ab00", 2038 "eq_r3_r6_0x0000ab00"}, 2039 {{cs, r6, r9, 0xab000000}, 2040 false, 2041 al, 2042 "cs r6 r9 0xab000000", 2043 "cs_r6_r9_0xab000000"}, 2044 {{al, r13, r1, 0xfc000003}, 2045 false, 2046 al, 2047 "al r13 r1 0xfc000003", 2048 "al_r13_r1_0xfc000003"}, 2049 {{ls, r4, r15, 0x000002ac}, 2050 false, 2051 al, 2052 "ls r4 r15 0x000002ac", 2053 "ls_r4_r15_0x000002ac"}, 2054 {{cs, r4, r10, 0x003fc000}, 2055 false, 2056 al, 2057 "cs r4 r10 0x003fc000", 2058 "cs_r4_r10_0x003fc000"}, 2059 {{eq, r2, r8, 0x000ab000}, 2060 false, 2061 al, 2062 "eq r2 r8 0x000ab000", 2063 "eq_r2_r8_0x000ab000"}, 2064 {{eq, r12, r2, 0x0003fc00}, 2065 false, 2066 al, 2067 "eq r12 r2 0x0003fc00", 2068 "eq_r12_r2_0x0003fc00"}, 2069 {{vs, r12, r10, 0x003fc000}, 2070 false, 2071 al, 2072 "vs r12 r10 0x003fc000", 2073 "vs_r12_r10_0x003fc000"}, 2074 {{eq, r9, r2, 0xab000000}, 2075 false, 2076 al, 2077 "eq r9 r2 0xab000000", 2078 "eq_r9_r2_0xab000000"}, 2079 {{cc, r6, r7, 0x0003fc00}, 2080 false, 2081 al, 2082 "cc r6 r7 0x0003fc00", 2083 "cc_r6_r7_0x0003fc00"}, 2084 {{mi, r8, r15, 0x0000ff00}, 2085 false, 2086 al, 2087 "mi r8 r15 0x0000ff00", 2088 "mi_r8_r15_0x0000ff00"}, 2089 {{ls, r2, r1, 0x0ff00000}, 2090 false, 2091 al, 2092 "ls r2 r1 0x0ff00000", 2093 "ls_r2_r1_0x0ff00000"}, 2094 {{cs, r12, r12, 0x00002ac0}, 2095 false, 2096 al, 2097 "cs r12 r12 0x00002ac0", 2098 "cs_r12_r12_0x00002ac0"}, 2099 {{hi, r1, r12, 0x000003fc}, 2100 false, 2101 al, 2102 "hi r1 r12 0x000003fc", 2103 "hi_r1_r12_0x000003fc"}, 2104 {{ls, r9, r0, 0x000003fc}, 2105 false, 2106 al, 2107 "ls r9 r0 0x000003fc", 2108 "ls_r9_r0_0x000003fc"}, 2109 {{ne, r6, r9, 0x00ff0000}, 2110 false, 2111 al, 2112 "ne r6 r9 0x00ff0000", 2113 "ne_r6_r9_0x00ff0000"}, 2114 {{al, r10, r5, 0x000000ff}, 2115 false, 2116 al, 2117 "al r10 r5 0x000000ff", 2118 "al_r10_r5_0x000000ff"}, 2119 {{pl, r10, r4, 0xf000000f}, 2120 false, 2121 al, 2122 "pl r10 r4 0xf000000f", 2123 "pl_r10_r4_0xf000000f"}, 2124 {{hi, r0, r11, 0x03fc0000}, 2125 false, 2126 al, 2127 "hi r0 r11 0x03fc0000", 2128 "hi_r0_r11_0x03fc0000"}, 2129 {{al, r6, r3, 0x00002ac0}, 2130 false, 2131 al, 2132 "al r6 r3 0x00002ac0", 2133 "al_r6_r3_0x00002ac0"}, 2134 {{ne, r12, r13, 0x0000ab00}, 2135 false, 2136 al, 2137 "ne r12 r13 0x0000ab00", 2138 "ne_r12_r13_0x0000ab00"}, 2139 {{mi, r13, r8, 0x00002ac0}, 2140 false, 2141 al, 2142 "mi r13 r8 0x00002ac0", 2143 "mi_r13_r8_0x00002ac0"}, 2144 {{ge, r13, r2, 0x003fc000}, 2145 false, 2146 al, 2147 "ge r13 r2 0x003fc000", 2148 "ge_r13_r2_0x003fc000"}, 2149 {{pl, r10, r15, 0x00ff0000}, 2150 false, 2151 al, 2152 "pl r10 r15 0x00ff0000", 2153 "pl_r10_r15_0x00ff0000"}, 2154 {{vs, r12, r7, 0xff000000}, 2155 false, 2156 al, 2157 "vs r12 r7 0xff000000", 2158 "vs_r12_r7_0xff000000"}, 2159 {{cs, r1, r3, 0xfc000003}, 2160 false, 2161 al, 2162 "cs r1 r3 0xfc000003", 2163 "cs_r1_r3_0xfc000003"}, 2164 {{ne, r9, r4, 0x000002ac}, 2165 false, 2166 al, 2167 "ne r9 r4 0x000002ac", 2168 "ne_r9_r4_0x000002ac"}, 2169 {{vs, r14, r3, 0x02ac0000}, 2170 false, 2171 al, 2172 "vs r14 r3 0x02ac0000", 2173 "vs_r14_r3_0x02ac0000"}, 2174 {{vs, r0, r2, 0x0ff00000}, 2175 false, 2176 al, 2177 "vs r0 r2 0x0ff00000", 2178 "vs_r0_r2_0x0ff00000"}, 2179 {{ne, r15, r5, 0x000000ab}, 2180 false, 2181 al, 2182 "ne r15 r5 0x000000ab", 2183 "ne_r15_r5_0x000000ab"}, 2184 {{vs, r9, r13, 0x000000ab}, 2185 false, 2186 al, 2187 "vs r9 r13 0x000000ab", 2188 "vs_r9_r13_0x000000ab"}, 2189 {{al, r3, r9, 0x0000ff00}, 2190 false, 2191 al, 2192 "al r3 r9 0x0000ff00", 2193 "al_r3_r9_0x0000ff00"}, 2194 {{cc, r5, r8, 0xac000002}, 2195 false, 2196 al, 2197 "cc r5 r8 0xac000002", 2198 "cc_r5_r8_0xac000002"}, 2199 {{ne, r0, r13, 0x00ab0000}, 2200 false, 2201 al, 2202 "ne r0 r13 0x00ab0000", 2203 "ne_r0_r13_0x00ab0000"}, 2204 {{vs, r3, r12, 0x000ff000}, 2205 false, 2206 al, 2207 "vs r3 r12 0x000ff000", 2208 "vs_r3_r12_0x000ff000"}, 2209 {{gt, r3, r12, 0x000003fc}, 2210 false, 2211 al, 2212 "gt r3 r12 0x000003fc", 2213 "gt_r3_r12_0x000003fc"}, 2214 {{ls, r1, r1, 0x002ac000}, 2215 false, 2216 al, 2217 "ls r1 r1 0x002ac000", 2218 "ls_r1_r1_0x002ac000"}, 2219 {{lt, r9, r10, 0x2ac00000}, 2220 false, 2221 al, 2222 "lt r9 r10 0x2ac00000", 2223 "lt_r9_r10_0x2ac00000"}, 2224 {{hi, r1, r9, 0x00003fc0}, 2225 false, 2226 al, 2227 "hi r1 r9 0x00003fc0", 2228 "hi_r1_r9_0x00003fc0"}, 2229 {{ge, r2, r13, 0x00002ac0}, 2230 false, 2231 al, 2232 "ge r2 r13 0x00002ac0", 2233 "ge_r2_r13_0x00002ac0"}, 2234 {{ls, r2, r7, 0xc000003f}, 2235 false, 2236 al, 2237 "ls r2 r7 0xc000003f", 2238 "ls_r2_r7_0xc000003f"}, 2239 {{eq, r0, r11, 0x3fc00000}, 2240 false, 2241 al, 2242 "eq r0 r11 0x3fc00000", 2243 "eq_r0_r11_0x3fc00000"}, 2244 {{vc, r13, r7, 0x0000ab00}, 2245 false, 2246 al, 2247 "vc r13 r7 0x0000ab00", 2248 "vc_r13_r7_0x0000ab00"}, 2249 {{le, r3, r6, 0x00002ac0}, 2250 false, 2251 al, 2252 "le r3 r6 0x00002ac0", 2253 "le_r3_r6_0x00002ac0"}, 2254 {{cc, r3, r11, 0x0ab00000}, 2255 false, 2256 al, 2257 "cc r3 r11 0x0ab00000", 2258 "cc_r3_r11_0x0ab00000"}, 2259 {{ls, r9, r11, 0x000002ac}, 2260 false, 2261 al, 2262 "ls r9 r11 0x000002ac", 2263 "ls_r9_r11_0x000002ac"}, 2264 {{ne, r11, r4, 0x00000ff0}, 2265 false, 2266 al, 2267 "ne r11 r4 0x00000ff0", 2268 "ne_r11_r4_0x00000ff0"}, 2269 {{cc, r3, r15, 0xfc000003}, 2270 false, 2271 al, 2272 "cc r3 r15 0xfc000003", 2273 "cc_r3_r15_0xfc000003"}, 2274 {{ne, r8, r3, 0x00003fc0}, 2275 false, 2276 al, 2277 "ne r8 r3 0x00003fc0", 2278 "ne_r8_r3_0x00003fc0"}, 2279 {{vs, r3, r10, 0xff000000}, 2280 false, 2281 al, 2282 "vs r3 r10 0xff000000", 2283 "vs_r3_r10_0xff000000"}, 2284 {{mi, r9, r0, 0x000002ac}, 2285 false, 2286 al, 2287 "mi r9 r0 0x000002ac", 2288 "mi_r9_r0_0x000002ac"}, 2289 {{cc, r6, r3, 0x0003fc00}, 2290 false, 2291 al, 2292 "cc r6 r3 0x0003fc00", 2293 "cc_r6_r3_0x0003fc00"}, 2294 {{ge, r11, r11, 0xac000002}, 2295 false, 2296 al, 2297 "ge r11 r11 0xac000002", 2298 "ge_r11_r11_0xac000002"}, 2299 {{eq, r3, r13, 0x003fc000}, 2300 false, 2301 al, 2302 "eq r3 r13 0x003fc000", 2303 "eq_r3_r13_0x003fc000"}, 2304 {{le, r15, r4, 0x2ac00000}, 2305 false, 2306 al, 2307 "le r15 r4 0x2ac00000", 2308 "le_r15_r4_0x2ac00000"}, 2309 {{le, r15, r4, 0x03fc0000}, 2310 false, 2311 al, 2312 "le r15 r4 0x03fc0000", 2313 "le_r15_r4_0x03fc0000"}, 2314 {{hi, r4, r15, 0xc000002a}, 2315 false, 2316 al, 2317 "hi r4 r15 0xc000002a", 2318 "hi_r4_r15_0xc000002a"}, 2319 {{ge, r8, r15, 0xac000002}, 2320 false, 2321 al, 2322 "ge r8 r15 0xac000002", 2323 "ge_r8_r15_0xac000002"}, 2324 {{pl, r10, r7, 0x002ac000}, 2325 false, 2326 al, 2327 "pl r10 r7 0x002ac000", 2328 "pl_r10_r7_0x002ac000"}, 2329 {{vs, r14, r1, 0x000000ff}, 2330 false, 2331 al, 2332 "vs r14 r1 0x000000ff", 2333 "vs_r14_r1_0x000000ff"}, 2334 {{hi, r4, r4, 0x00000ab0}, 2335 false, 2336 al, 2337 "hi r4 r4 0x00000ab0", 2338 "hi_r4_r4_0x00000ab0"}, 2339 {{gt, r0, r2, 0xac000002}, 2340 false, 2341 al, 2342 "gt r0 r2 0xac000002", 2343 "gt_r0_r2_0xac000002"}, 2344 {{ls, r10, r1, 0x000ab000}, 2345 false, 2346 al, 2347 "ls r10 r1 0x000ab000", 2348 "ls_r10_r1_0x000ab000"}, 2349 {{ge, r9, r4, 0xc000003f}, 2350 false, 2351 al, 2352 "ge r9 r4 0xc000003f", 2353 "ge_r9_r4_0xc000003f"}, 2354 {{eq, r12, r13, 0x000ab000}, 2355 false, 2356 al, 2357 "eq r12 r13 0x000ab000", 2358 "eq_r12_r13_0x000ab000"}, 2359 {{eq, r8, r5, 0x0003fc00}, 2360 false, 2361 al, 2362 "eq r8 r5 0x0003fc00", 2363 "eq_r8_r5_0x0003fc00"}, 2364 {{lt, r1, r1, 0x0002ac00}, 2365 false, 2366 al, 2367 "lt r1 r1 0x0002ac00", 2368 "lt_r1_r1_0x0002ac00"}, 2369 {{lt, r14, r14, 0x00000ff0}, 2370 false, 2371 al, 2372 "lt r14 r14 0x00000ff0", 2373 "lt_r14_r14_0x00000ff0"}, 2374 {{gt, r0, r7, 0x000ff000}, 2375 false, 2376 al, 2377 "gt r0 r7 0x000ff000", 2378 "gt_r0_r7_0x000ff000"}, 2379 {{eq, r7, r13, 0x0002ac00}, 2380 false, 2381 al, 2382 "eq r7 r13 0x0002ac00", 2383 "eq_r7_r13_0x0002ac00"}, 2384 {{le, r4, r9, 0x0000ff00}, 2385 false, 2386 al, 2387 "le r4 r9 0x0000ff00", 2388 "le_r4_r9_0x0000ff00"}, 2389 {{le, r4, r12, 0xab000000}, 2390 false, 2391 al, 2392 "le r4 r12 0xab000000", 2393 "le_r4_r12_0xab000000"}, 2394 {{mi, r1, r8, 0x02ac0000}, 2395 false, 2396 al, 2397 "mi r1 r8 0x02ac0000", 2398 "mi_r1_r8_0x02ac0000"}, 2399 {{al, r9, r11, 0xc000003f}, 2400 false, 2401 al, 2402 "al r9 r11 0xc000003f", 2403 "al_r9_r11_0xc000003f"}, 2404 {{cs, r13, r4, 0x0ff00000}, 2405 false, 2406 al, 2407 "cs r13 r4 0x0ff00000", 2408 "cs_r13_r4_0x0ff00000"}, 2409 {{lt, r14, r11, 0x0000ff00}, 2410 false, 2411 al, 2412 "lt r14 r11 0x0000ff00", 2413 "lt_r14_r11_0x0000ff00"}, 2414 {{cc, r2, r13, 0x3fc00000}, 2415 false, 2416 al, 2417 "cc r2 r13 0x3fc00000", 2418 "cc_r2_r13_0x3fc00000"}, 2419 {{lt, r4, r2, 0xc000002a}, 2420 false, 2421 al, 2422 "lt r4 r2 0xc000002a", 2423 "lt_r4_r2_0xc000002a"}, 2424 {{vs, r9, r14, 0x00002ac0}, 2425 false, 2426 al, 2427 "vs r9 r14 0x00002ac0", 2428 "vs_r9_r14_0x00002ac0"}, 2429 {{eq, r1, r5, 0xc000002a}, 2430 false, 2431 al, 2432 "eq r1 r5 0xc000002a", 2433 "eq_r1_r5_0xc000002a"}, 2434 {{vc, r12, r5, 0x000003fc}, 2435 false, 2436 al, 2437 "vc r12 r5 0x000003fc", 2438 "vc_r12_r5_0x000003fc"}, 2439 {{mi, r12, r4, 0xfc000003}, 2440 false, 2441 al, 2442 "mi r12 r4 0xfc000003", 2443 "mi_r12_r4_0xfc000003"}, 2444 {{cc, r4, r15, 0x02ac0000}, 2445 false, 2446 al, 2447 "cc r4 r15 0x02ac0000", 2448 "cc_r4_r15_0x02ac0000"}, 2449 {{ls, r5, r10, 0x0000ab00}, 2450 false, 2451 al, 2452 "ls r5 r10 0x0000ab00", 2453 "ls_r5_r10_0x0000ab00"}, 2454 {{cc, r9, r9, 0x000003fc}, 2455 false, 2456 al, 2457 "cc r9 r9 0x000003fc", 2458 "cc_r9_r9_0x000003fc"}, 2459 {{pl, r5, r13, 0xff000000}, 2460 false, 2461 al, 2462 "pl r5 r13 0xff000000", 2463 "pl_r5_r13_0xff000000"}, 2464 {{al, r0, r1, 0xac000002}, 2465 false, 2466 al, 2467 "al r0 r1 0xac000002", 2468 "al_r0_r1_0xac000002"}, 2469 {{al, r12, r13, 0x00ff0000}, 2470 false, 2471 al, 2472 "al r12 r13 0x00ff0000", 2473 "al_r12_r13_0x00ff0000"}, 2474 {{hi, r6, r2, 0x000ff000}, 2475 false, 2476 al, 2477 "hi r6 r2 0x000ff000", 2478 "hi_r6_r2_0x000ff000"}, 2479 {{gt, r13, r9, 0x000000ab}, 2480 false, 2481 al, 2482 "gt r13 r9 0x000000ab", 2483 "gt_r13_r9_0x000000ab"}, 2484 {{hi, r14, r7, 0x0002ac00}, 2485 false, 2486 al, 2487 "hi r14 r7 0x0002ac00", 2488 "hi_r14_r7_0x0002ac00"}, 2489 {{lt, r4, r10, 0xb000000a}, 2490 false, 2491 al, 2492 "lt r4 r10 0xb000000a", 2493 "lt_r4_r10_0xb000000a"}, 2494 {{cs, r1, r14, 0x00000ff0}, 2495 false, 2496 al, 2497 "cs r1 r14 0x00000ff0", 2498 "cs_r1_r14_0x00000ff0"}, 2499 {{hi, r15, r8, 0x0002ac00}, 2500 false, 2501 al, 2502 "hi r15 r8 0x0002ac00", 2503 "hi_r15_r8_0x0002ac00"}, 2504 {{cs, r4, r10, 0x000000ab}, 2505 false, 2506 al, 2507 "cs r4 r10 0x000000ab", 2508 "cs_r4_r10_0x000000ab"}, 2509 {{gt, r0, r9, 0x2ac00000}, 2510 false, 2511 al, 2512 "gt r0 r9 0x2ac00000", 2513 "gt_r0_r9_0x2ac00000"}, 2514 {{cc, r2, r6, 0x0000ab00}, 2515 false, 2516 al, 2517 "cc r2 r6 0x0000ab00", 2518 "cc_r2_r6_0x0000ab00"}, 2519 {{mi, r3, r9, 0x0000ff00}, 2520 false, 2521 al, 2522 "mi r3 r9 0x0000ff00", 2523 "mi_r3_r9_0x0000ff00"}, 2524 {{lt, r6, r13, 0xc000002a}, 2525 false, 2526 al, 2527 "lt r6 r13 0xc000002a", 2528 "lt_r6_r13_0xc000002a"}, 2529 {{pl, r7, r7, 0x003fc000}, 2530 false, 2531 al, 2532 "pl r7 r7 0x003fc000", 2533 "pl_r7_r7_0x003fc000"}, 2534 {{cc, r1, r6, 0x003fc000}, 2535 false, 2536 al, 2537 "cc r1 r6 0x003fc000", 2538 "cc_r1_r6_0x003fc000"}, 2539 {{le, r9, r11, 0x000ff000}, 2540 false, 2541 al, 2542 "le r9 r11 0x000ff000", 2543 "le_r9_r11_0x000ff000"}, 2544 {{pl, r4, r7, 0xb000000a}, 2545 false, 2546 al, 2547 "pl r4 r7 0xb000000a", 2548 "pl_r4_r7_0xb000000a"}, 2549 {{al, r15, r5, 0x0000ff00}, 2550 false, 2551 al, 2552 "al r15 r5 0x0000ff00", 2553 "al_r15_r5_0x0000ff00"}, 2554 {{al, r11, r10, 0x00ff0000}, 2555 false, 2556 al, 2557 "al r11 r10 0x00ff0000", 2558 "al_r11_r10_0x00ff0000"}, 2559 {{pl, r9, r5, 0x00003fc0}, 2560 false, 2561 al, 2562 "pl r9 r5 0x00003fc0", 2563 "pl_r9_r5_0x00003fc0"}, 2564 {{ls, r6, r11, 0xc000003f}, 2565 false, 2566 al, 2567 "ls r6 r11 0xc000003f", 2568 "ls_r6_r11_0xc000003f"}, 2569 {{ge, r9, r15, 0x0ab00000}, 2570 false, 2571 al, 2572 "ge r9 r15 0x0ab00000", 2573 "ge_r9_r15_0x0ab00000"}, 2574 {{le, r9, r10, 0x2ac00000}, 2575 false, 2576 al, 2577 "le r9 r10 0x2ac00000", 2578 "le_r9_r10_0x2ac00000"}, 2579 {{ne, r0, r3, 0x00002ac0}, 2580 false, 2581 al, 2582 "ne r0 r3 0x00002ac0", 2583 "ne_r0_r3_0x00002ac0"}, 2584 {{gt, r13, r15, 0x00003fc0}, 2585 false, 2586 al, 2587 "gt r13 r15 0x00003fc0", 2588 "gt_r13_r15_0x00003fc0"}, 2589 {{ls, r4, r4, 0x00000000}, 2590 false, 2591 al, 2592 "ls r4 r4 0x00000000", 2593 "ls_r4_r4_0x00000000"}, 2594 {{hi, r6, r8, 0xff000000}, 2595 false, 2596 al, 2597 "hi r6 r8 0xff000000", 2598 "hi_r6_r8_0xff000000"}, 2599 {{cc, r11, r5, 0x0003fc00}, 2600 false, 2601 al, 2602 "cc r11 r5 0x0003fc00", 2603 "cc_r11_r5_0x0003fc00"}, 2604 {{vs, r5, r0, 0x00002ac0}, 2605 false, 2606 al, 2607 "vs r5 r0 0x00002ac0", 2608 "vs_r5_r0_0x00002ac0"}, 2609 {{vs, r1, r12, 0x0000ff00}, 2610 false, 2611 al, 2612 "vs r1 r12 0x0000ff00", 2613 "vs_r1_r12_0x0000ff00"}}; 2614 2615 // These headers each contain an array of `TestResult` with the reference output 2616 // values. The reference arrays are names `kReference{mnemonic}`. 2617 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-adc-a32.h" 2618 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-adcs-a32.h" 2619 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-add-a32.h" 2620 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-adds-a32.h" 2621 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-and-a32.h" 2622 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-ands-a32.h" 2623 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-bic-a32.h" 2624 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-bics-a32.h" 2625 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-eor-a32.h" 2626 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-eors-a32.h" 2627 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-orr-a32.h" 2628 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-orrs-a32.h" 2629 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-rsb-a32.h" 2630 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-rsbs-a32.h" 2631 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-rsc-a32.h" 2632 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-rscs-a32.h" 2633 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-sbc-a32.h" 2634 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-sbcs-a32.h" 2635 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-sub-a32.h" 2636 #include "aarch32/traces/assembler-cond-rd-rn-operand-const-subs-a32.h" 2637 2638 2639 // The maximum number of errors to report in detail for each test. 2640 const unsigned kErrorReportLimit = 8; 2641 2642 typedef void (MacroAssembler::*Fn)(Condition cond, 2643 Register rd, 2644 Register rn, 2645 const Operand& op); 2646 2647 void TestHelper(Fn instruction, 2648 const char* mnemonic, 2649 const TestResult reference[]) { 2650 unsigned total_error_count = 0; 2651 MacroAssembler masm(BUF_SIZE); 2652 2653 masm.UseA32(); 2654 2655 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) { 2656 // Values to pass to the macro-assembler. 2657 Condition cond = kTests[i].operands.cond; 2658 Register rd = kTests[i].operands.rd; 2659 Register rn = kTests[i].operands.rn; 2660 uint32_t immediate = kTests[i].operands.immediate; 2661 Operand op(immediate); 2662 2663 int32_t start = masm.GetCursorOffset(); 2664 { 2665 // We never generate more that 4 bytes, as IT instructions are only 2666 // allowed for narrow encodings. 2667 ExactAssemblyScope scope(&masm, 4, ExactAssemblyScope::kMaximumSize); 2668 if (kTests[i].in_it_block) { 2669 masm.it(kTests[i].it_condition); 2670 } 2671 (masm.*instruction)(cond, rd, rn, op); 2672 } 2673 int32_t end = masm.GetCursorOffset(); 2674 2675 const byte* result_ptr = 2676 masm.GetBuffer()->GetOffsetAddress<const byte*>(start); 2677 VIXL_ASSERT(start < end); 2678 uint32_t result_size = end - start; 2679 2680 if (Test::generate_test_trace()) { 2681 // Print the result bytes. 2682 printf("const byte kInstruction_%s_%s[] = {\n", 2683 mnemonic, 2684 kTests[i].identifier); 2685 for (uint32_t j = 0; j < result_size; j++) { 2686 if (j == 0) { 2687 printf(" 0x%02" PRIx8, result_ptr[j]); 2688 } else { 2689 printf(", 0x%02" PRIx8, result_ptr[j]); 2690 } 2691 } 2692 // This comment is meant to be used by external tools to validate 2693 // the encoding. We can parse the comment to figure out what 2694 // instruction this corresponds to. 2695 if (kTests[i].in_it_block) { 2696 printf(" // It %s; %s %s\n};\n", 2697 kTests[i].it_condition.GetName(), 2698 mnemonic, 2699 kTests[i].operands_description); 2700 } else { 2701 printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description); 2702 } 2703 } else { 2704 // Check we've emitted the exact same encoding as present in the 2705 // trace file. Only print up to `kErrorReportLimit` errors. 2706 if (((result_size != reference[i].size) || 2707 (memcmp(result_ptr, reference[i].encoding, reference[i].size) != 2708 0)) && 2709 (++total_error_count <= kErrorReportLimit)) { 2710 printf("Error when testing \"%s\" with operands \"%s\":\n", 2711 mnemonic, 2712 kTests[i].operands_description); 2713 printf(" Expected: "); 2714 for (uint32_t j = 0; j < reference[i].size; j++) { 2715 if (j == 0) { 2716 printf("0x%02" PRIx8, reference[i].encoding[j]); 2717 } else { 2718 printf(", 0x%02" PRIx8, reference[i].encoding[j]); 2719 } 2720 } 2721 printf("\n"); 2722 printf(" Found: "); 2723 for (uint32_t j = 0; j < result_size; j++) { 2724 if (j == 0) { 2725 printf("0x%02" PRIx8, result_ptr[j]); 2726 } else { 2727 printf(", 0x%02" PRIx8, result_ptr[j]); 2728 } 2729 } 2730 printf("\n"); 2731 } 2732 } 2733 } 2734 2735 masm.FinalizeCode(); 2736 2737 if (Test::generate_test_trace()) { 2738 // Finalize the trace file by writing the final `TestResult` array 2739 // which links all generated instruction encodings. 2740 printf("const TestResult kReference%s[] = {\n", mnemonic); 2741 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) { 2742 printf(" {\n"); 2743 printf(" ARRAY_SIZE(kInstruction_%s_%s),\n", 2744 mnemonic, 2745 kTests[i].identifier); 2746 printf(" kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier); 2747 printf(" },\n"); 2748 } 2749 printf("};\n"); 2750 } else { 2751 if (total_error_count > kErrorReportLimit) { 2752 printf("%u other errors follow.\n", 2753 total_error_count - kErrorReportLimit); 2754 } 2755 // Crash if the test failed. 2756 VIXL_CHECK(total_error_count == 0); 2757 } 2758 } 2759 2760 // Instantiate tests for each instruction in the list. 2761 #define TEST(mnemonic) \ 2762 void Test_##mnemonic() { \ 2763 TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic); \ 2764 } \ 2765 Test test_##mnemonic("AARCH32_ASSEMBLER_COND_RD_RN_OPERAND_CONST_" #mnemonic \ 2766 "_A32", \ 2767 &Test_##mnemonic); 2768 FOREACH_INSTRUCTION(TEST) 2769 #undef TEST 2770 2771 } // namespace 2772 #endif 2773 2774 } // namespace aarch32 2775 } // namespace vixl 2776