test-assembler-cond-rd-rn-operand-const-t32.cc revision 919e3fe28a5024c53ede42922092bbc32e89dcb8
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 47namespace vixl { 48namespace 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(orn) \ 63 M(orns) \ 64 M(orr) \ 65 M(orrs) \ 66 M(rsb) \ 67 M(rsbs) \ 68 M(sbc) \ 69 M(sbcs) \ 70 M(sub) \ 71 M(subs) 72 73 74// Values to be passed to the assembler to produce the instruction under test. 75struct Operands { 76 Condition cond; 77 Register rd; 78 Register rn; 79 uint32_t immediate; 80}; 81 82// This structure contains all data needed to test one specific 83// instruction. 84struct TestData { 85 // The `operands` field represents what to pass to the assembler to 86 // produce the instruction. 87 Operands operands; 88 // True if we need to generate an IT instruction for this test to be valid. 89 bool in_it_block; 90 // The condition to give the IT instruction, this will be set to "al" by 91 // default. 92 Condition it_condition; 93 // Description of the operands, used for error reporting. 94 const char* operands_description; 95 // Unique identifier, used for generating traces. 96 const char* identifier; 97}; 98 99struct TestResult { 100 size_t size; 101 const byte* encoding; 102}; 103 104// Each element of this array produce one instruction encoding. 105static const TestData kTests[] = {{{al, r13, r14, 0x02ac0000}, 106 false, 107 al, 108 "al r13 r14 0x02ac0000", 109 "al_r13_r14_0x02ac0000"}, 110 {{al, r10, r1, 0x00156000}, 111 false, 112 al, 113 "al r10 r1 0x00156000", 114 "al_r10_r1_0x00156000"}, 115 {{al, r10, r0, 0x000003fc}, 116 false, 117 al, 118 "al r10 r0 0x000003fc", 119 "al_r10_r0_0x000003fc"}, 120 {{al, r1, r11, 0x2ac00000}, 121 false, 122 al, 123 "al r1 r11 0x2ac00000", 124 "al_r1_r11_0x2ac00000"}, 125 {{al, r8, r6, 0x00156000}, 126 false, 127 al, 128 "al r8 r6 0x00156000", 129 "al_r8_r6_0x00156000"}, 130 {{al, r7, r12, 0x00ff0000}, 131 false, 132 al, 133 "al r7 r12 0x00ff0000", 134 "al_r7_r12_0x00ff0000"}, 135 {{al, r12, r3, 0x00ff0000}, 136 false, 137 al, 138 "al r12 r3 0x00ff0000", 139 "al_r12_r3_0x00ff0000"}, 140 {{al, r4, r7, 0x0000ff00}, 141 false, 142 al, 143 "al r4 r7 0x0000ff00", 144 "al_r4_r7_0x0000ff00"}, 145 {{al, r11, r13, 0x0ab00000}, 146 false, 147 al, 148 "al r11 r13 0x0ab00000", 149 "al_r11_r13_0x0ab00000"}, 150 {{al, r6, r12, 0xff00ff00}, 151 false, 152 al, 153 "al r6 r12 0xff00ff00", 154 "al_r6_r12_0xff00ff00"}, 155 {{al, r12, r8, 0x003fc000}, 156 false, 157 al, 158 "al r12 r8 0x003fc000", 159 "al_r12_r8_0x003fc000"}, 160 {{al, r5, r12, 0x00ab00ab}, 161 false, 162 al, 163 "al r5 r12 0x00ab00ab", 164 "al_r5_r12_0x00ab00ab"}, 165 {{al, r7, r6, 0x00ab00ab}, 166 false, 167 al, 168 "al r7 r6 0x00ab00ab", 169 "al_r7_r6_0x00ab00ab"}, 170 {{al, r0, r1, 0x00ab00ab}, 171 false, 172 al, 173 "al r0 r1 0x00ab00ab", 174 "al_r0_r1_0x00ab00ab"}, 175 {{al, r9, r9, 0x000001fe}, 176 false, 177 al, 178 "al r9 r9 0x000001fe", 179 "al_r9_r9_0x000001fe"}, 180 {{al, r2, r8, 0xab00ab00}, 181 false, 182 al, 183 "al r2 r8 0xab00ab00", 184 "al_r2_r8_0xab00ab00"}, 185 {{al, r9, r10, 0x00ff0000}, 186 false, 187 al, 188 "al r9 r10 0x00ff0000", 189 "al_r9_r10_0x00ff0000"}, 190 {{al, r8, r8, 0x55800000}, 191 false, 192 al, 193 "al r8 r8 0x55800000", 194 "al_r8_r8_0x55800000"}, 195 {{al, r6, r7, 0x00ab00ab}, 196 false, 197 al, 198 "al r6 r7 0x00ab00ab", 199 "al_r6_r7_0x00ab00ab"}, 200 {{al, r5, r9, 0xff000000}, 201 false, 202 al, 203 "al r5 r9 0xff000000", 204 "al_r5_r9_0xff000000"}, 205 {{al, r8, r8, 0x00ab0000}, 206 false, 207 al, 208 "al r8 r8 0x00ab0000", 209 "al_r8_r8_0x00ab0000"}, 210 {{al, r5, r8, 0xab00ab00}, 211 false, 212 al, 213 "al r5 r8 0xab00ab00", 214 "al_r5_r8_0xab00ab00"}, 215 {{al, r0, r12, 0xab000000}, 216 false, 217 al, 218 "al r0 r12 0xab000000", 219 "al_r0_r12_0xab000000"}, 220 {{al, r13, r11, 0xab000000}, 221 false, 222 al, 223 "al r13 r11 0xab000000", 224 "al_r13_r11_0xab000000"}, 225 {{al, r14, r3, 0xab00ab00}, 226 false, 227 al, 228 "al r14 r3 0xab00ab00", 229 "al_r14_r3_0xab00ab00"}, 230 {{al, r0, r1, 0x0003fc00}, 231 false, 232 al, 233 "al r0 r1 0x0003fc00", 234 "al_r0_r1_0x0003fc00"}, 235 {{al, r14, r13, 0x0ab00000}, 236 false, 237 al, 238 "al r14 r13 0x0ab00000", 239 "al_r14_r13_0x0ab00000"}, 240 {{al, r6, r0, 0x0002ac00}, 241 false, 242 al, 243 "al r6 r0 0x0002ac00", 244 "al_r6_r0_0x0002ac00"}, 245 {{al, r6, r8, 0x55800000}, 246 false, 247 al, 248 "al r6 r8 0x55800000", 249 "al_r6_r8_0x55800000"}, 250 {{al, r2, r14, 0x01560000}, 251 false, 252 al, 253 "al r2 r14 0x01560000", 254 "al_r2_r14_0x01560000"}, 255 {{al, r5, r13, 0x03fc0000}, 256 false, 257 al, 258 "al r5 r13 0x03fc0000", 259 "al_r5_r13_0x03fc0000"}, 260 {{al, r7, r6, 0x00000ab0}, 261 false, 262 al, 263 "al r7 r6 0x00000ab0", 264 "al_r7_r6_0x00000ab0"}, 265 {{al, r3, r14, 0x007f8000}, 266 false, 267 al, 268 "al r3 r14 0x007f8000", 269 "al_r3_r14_0x007f8000"}, 270 {{al, r9, r4, 0x00558000}, 271 false, 272 al, 273 "al r9 r4 0x00558000", 274 "al_r9_r4_0x00558000"}, 275 {{al, r10, r11, 0x00002ac0}, 276 false, 277 al, 278 "al r10 r11 0x00002ac0", 279 "al_r10_r11_0x00002ac0"}, 280 {{al, r1, r5, 0x003fc000}, 281 false, 282 al, 283 "al r1 r5 0x003fc000", 284 "al_r1_r5_0x003fc000"}, 285 {{al, r7, r7, 0x00003fc0}, 286 false, 287 al, 288 "al r7 r7 0x00003fc0", 289 "al_r7_r7_0x00003fc0"}, 290 {{al, r5, r3, 0x000007f8}, 291 false, 292 al, 293 "al r5 r3 0x000007f8", 294 "al_r5_r3_0x000007f8"}, 295 {{al, r4, r3, 0x00001560}, 296 false, 297 al, 298 "al r4 r3 0x00001560", 299 "al_r4_r3_0x00001560"}, 300 {{al, r5, r3, 0x03fc0000}, 301 false, 302 al, 303 "al r5 r3 0x03fc0000", 304 "al_r5_r3_0x03fc0000"}, 305 {{al, r2, r6, 0x55800000}, 306 false, 307 al, 308 "al r2 r6 0x55800000", 309 "al_r2_r6_0x55800000"}, 310 {{al, r13, r5, 0x0000ab00}, 311 false, 312 al, 313 "al r13 r5 0x0000ab00", 314 "al_r13_r5_0x0000ab00"}, 315 {{al, r0, r11, 0xab00ab00}, 316 false, 317 al, 318 "al r0 r11 0xab00ab00", 319 "al_r0_r11_0xab00ab00"}, 320 {{al, r14, r12, 0x00ff00ff}, 321 false, 322 al, 323 "al r14 r12 0x00ff00ff", 324 "al_r14_r12_0x00ff00ff"}, 325 {{al, r13, r8, 0x7f800000}, 326 false, 327 al, 328 "al r13 r8 0x7f800000", 329 "al_r13_r8_0x7f800000"}, 330 {{al, r1, r2, 0x15600000}, 331 false, 332 al, 333 "al r1 r2 0x15600000", 334 "al_r1_r2_0x15600000"}, 335 {{al, r7, r6, 0xab000000}, 336 false, 337 al, 338 "al r7 r6 0xab000000", 339 "al_r7_r6_0xab000000"}, 340 {{al, r1, r9, 0x00000ff0}, 341 false, 342 al, 343 "al r1 r9 0x00000ff0", 344 "al_r1_r9_0x00000ff0"}, 345 {{al, r12, r8, 0x0007f800}, 346 false, 347 al, 348 "al r12 r8 0x0007f800", 349 "al_r12_r8_0x0007f800"}, 350 {{al, r0, r8, 0x00ab0000}, 351 false, 352 al, 353 "al r0 r8 0x00ab0000", 354 "al_r0_r8_0x00ab0000"}, 355 {{al, r11, r11, 0x000000ff}, 356 false, 357 al, 358 "al r11 r11 0x000000ff", 359 "al_r11_r11_0x000000ff"}, 360 {{al, r12, r13, 0xff000000}, 361 false, 362 al, 363 "al r12 r13 0xff000000", 364 "al_r12_r13_0xff000000"}, 365 {{al, r1, r3, 0x0ab00000}, 366 false, 367 al, 368 "al r1 r3 0x0ab00000", 369 "al_r1_r3_0x0ab00000"}, 370 {{al, r2, r10, 0x0001fe00}, 371 false, 372 al, 373 "al r2 r10 0x0001fe00", 374 "al_r2_r10_0x0001fe00"}, 375 {{al, r14, r2, 0x01fe0000}, 376 false, 377 al, 378 "al r14 r2 0x01fe0000", 379 "al_r14_r2_0x01fe0000"}, 380 {{al, r3, r4, 0x000000ff}, 381 false, 382 al, 383 "al r3 r4 0x000000ff", 384 "al_r3_r4_0x000000ff"}, 385 {{al, r3, r13, 0x00000558}, 386 false, 387 al, 388 "al r3 r13 0x00000558", 389 "al_r3_r13_0x00000558"}, 390 {{al, r13, r10, 0x00055800}, 391 false, 392 al, 393 "al r13 r10 0x00055800", 394 "al_r13_r10_0x00055800"}, 395 {{al, r1, r10, 0xff000000}, 396 false, 397 al, 398 "al r1 r10 0xff000000", 399 "al_r1_r10_0xff000000"}, 400 {{al, r0, r7, 0x2ac00000}, 401 false, 402 al, 403 "al r0 r7 0x2ac00000", 404 "al_r0_r7_0x2ac00000"}, 405 {{al, r12, r1, 0xab000000}, 406 false, 407 al, 408 "al r12 r1 0xab000000", 409 "al_r12_r1_0xab000000"}, 410 {{al, r9, r14, 0x00003fc0}, 411 false, 412 al, 413 "al r9 r14 0x00003fc0", 414 "al_r9_r14_0x00003fc0"}, 415 {{al, r7, r2, 0x2ac00000}, 416 false, 417 al, 418 "al r7 r2 0x2ac00000", 419 "al_r7_r2_0x2ac00000"}, 420 {{al, r14, r4, 0x00001fe0}, 421 false, 422 al, 423 "al r14 r4 0x00001fe0", 424 "al_r14_r4_0x00001fe0"}, 425 {{al, r12, r8, 0x00007f80}, 426 false, 427 al, 428 "al r12 r8 0x00007f80", 429 "al_r12_r8_0x00007f80"}, 430 {{al, r7, r10, 0x00000ab0}, 431 false, 432 al, 433 "al r7 r10 0x00000ab0", 434 "al_r7_r10_0x00000ab0"}, 435 {{al, r13, r6, 0x00ab0000}, 436 false, 437 al, 438 "al r13 r6 0x00ab0000", 439 "al_r13_r6_0x00ab0000"}, 440 {{al, r7, r9, 0x0000ff00}, 441 false, 442 al, 443 "al r7 r9 0x0000ff00", 444 "al_r7_r9_0x0000ff00"}, 445 {{al, r2, r12, 0xff00ff00}, 446 false, 447 al, 448 "al r2 r12 0xff00ff00", 449 "al_r2_r12_0xff00ff00"}, 450 {{al, r1, r6, 0x00000156}, 451 false, 452 al, 453 "al r1 r6 0x00000156", 454 "al_r1_r6_0x00000156"}, 455 {{al, r7, r5, 0x03fc0000}, 456 false, 457 al, 458 "al r7 r5 0x03fc0000", 459 "al_r7_r5_0x03fc0000"}, 460 {{al, r2, r9, 0x01fe0000}, 461 false, 462 al, 463 "al r2 r9 0x01fe0000", 464 "al_r2_r9_0x01fe0000"}, 465 {{al, r10, r12, 0x00002ac0}, 466 false, 467 al, 468 "al r10 r12 0x00002ac0", 469 "al_r10_r12_0x00002ac0"}, 470 {{al, r14, r10, 0x7f800000}, 471 false, 472 al, 473 "al r14 r10 0x7f800000", 474 "al_r14_r10_0x7f800000"}, 475 {{al, r2, r8, 0x02ac0000}, 476 false, 477 al, 478 "al r2 r8 0x02ac0000", 479 "al_r2_r8_0x02ac0000"}, 480 {{al, r4, r9, 0x000001fe}, 481 false, 482 al, 483 "al r4 r9 0x000001fe", 484 "al_r4_r9_0x000001fe"}, 485 {{al, r10, r10, 0x000001fe}, 486 false, 487 al, 488 "al r10 r10 0x000001fe", 489 "al_r10_r10_0x000001fe"}, 490 {{al, r6, r6, 0x3fc00000}, 491 false, 492 al, 493 "al r6 r6 0x3fc00000", 494 "al_r6_r6_0x3fc00000"}, 495 {{al, r4, r12, 0x000003fc}, 496 false, 497 al, 498 "al r4 r12 0x000003fc", 499 "al_r4_r12_0x000003fc"}, 500 {{al, r0, r2, 0x0000ff00}, 501 false, 502 al, 503 "al r0 r2 0x0000ff00", 504 "al_r0_r2_0x0000ff00"}, 505 {{al, r9, r0, 0x003fc000}, 506 false, 507 al, 508 "al r9 r0 0x003fc000", 509 "al_r9_r0_0x003fc000"}, 510 {{al, r7, r4, 0x000002ac}, 511 false, 512 al, 513 "al r7 r4 0x000002ac", 514 "al_r7_r4_0x000002ac"}, 515 {{al, r6, r6, 0x7f800000}, 516 false, 517 al, 518 "al r6 r6 0x7f800000", 519 "al_r6_r6_0x7f800000"}, 520 {{al, r6, r8, 0x00015600}, 521 false, 522 al, 523 "al r6 r8 0x00015600", 524 "al_r6_r8_0x00015600"}, 525 {{al, r10, r0, 0x00000ff0}, 526 false, 527 al, 528 "al r10 r0 0x00000ff0", 529 "al_r10_r0_0x00000ff0"}, 530 {{al, r8, r1, 0xffffffff}, 531 false, 532 al, 533 "al r8 r1 0xffffffff", 534 "al_r8_r1_0xffffffff"}, 535 {{al, r3, r7, 0x00ab00ab}, 536 false, 537 al, 538 "al r3 r7 0x00ab00ab", 539 "al_r3_r7_0x00ab00ab"}, 540 {{al, r8, r11, 0x01fe0000}, 541 false, 542 al, 543 "al r8 r11 0x01fe0000", 544 "al_r8_r11_0x01fe0000"}, 545 {{al, r3, r1, 0x00ff0000}, 546 false, 547 al, 548 "al r3 r1 0x00ff0000", 549 "al_r3_r1_0x00ff0000"}, 550 {{al, r5, r4, 0x000001fe}, 551 false, 552 al, 553 "al r5 r4 0x000001fe", 554 "al_r5_r4_0x000001fe"}, 555 {{al, r7, r10, 0x00000558}, 556 false, 557 al, 558 "al r7 r10 0x00000558", 559 "al_r7_r10_0x00000558"}, 560 {{al, r8, r13, 0x00001560}, 561 false, 562 al, 563 "al r8 r13 0x00001560", 564 "al_r8_r13_0x00001560"}, 565 {{al, r9, r4, 0x00002ac0}, 566 false, 567 al, 568 "al r9 r4 0x00002ac0", 569 "al_r9_r4_0x00002ac0"}, 570 {{al, r9, r7, 0x03fc0000}, 571 false, 572 al, 573 "al r9 r7 0x03fc0000", 574 "al_r9_r7_0x03fc0000"}, 575 {{al, r11, r12, 0x2ac00000}, 576 false, 577 al, 578 "al r11 r12 0x2ac00000", 579 "al_r11_r12_0x2ac00000"}, 580 {{al, r13, r10, 0x00001fe0}, 581 false, 582 al, 583 "al r13 r10 0x00001fe0", 584 "al_r13_r10_0x00001fe0"}, 585 {{al, r11, r10, 0x00558000}, 586 false, 587 al, 588 "al r11 r10 0x00558000", 589 "al_r11_r10_0x00558000"}, 590 {{al, r3, r2, 0x000000ab}, 591 false, 592 al, 593 "al r3 r2 0x000000ab", 594 "al_r3_r2_0x000000ab"}, 595 {{al, r0, r8, 0x00000ab0}, 596 false, 597 al, 598 "al r0 r8 0x00000ab0", 599 "al_r0_r8_0x00000ab0"}, 600 {{al, r9, r7, 0xab000000}, 601 false, 602 al, 603 "al r9 r7 0xab000000", 604 "al_r9_r7_0xab000000"}, 605 {{al, r11, r7, 0x0ff00000}, 606 false, 607 al, 608 "al r11 r7 0x0ff00000", 609 "al_r11_r7_0x0ff00000"}, 610 {{al, r10, r2, 0x7f800000}, 611 false, 612 al, 613 "al r10 r2 0x7f800000", 614 "al_r10_r2_0x7f800000"}, 615 {{al, r3, r1, 0x05580000}, 616 false, 617 al, 618 "al r3 r1 0x05580000", 619 "al_r3_r1_0x05580000"}, 620 {{al, r1, r4, 0x0ab00000}, 621 false, 622 al, 623 "al r1 r4 0x0ab00000", 624 "al_r1_r4_0x0ab00000"}, 625 {{al, r4, r9, 0x00005580}, 626 false, 627 al, 628 "al r4 r9 0x00005580", 629 "al_r4_r9_0x00005580"}, 630 {{al, r3, r2, 0x001fe000}, 631 false, 632 al, 633 "al r3 r2 0x001fe000", 634 "al_r3_r2_0x001fe000"}, 635 {{al, r14, r6, 0x00000156}, 636 false, 637 al, 638 "al r14 r6 0x00000156", 639 "al_r14_r6_0x00000156"}, 640 {{al, r14, r3, 0x00000ab0}, 641 false, 642 al, 643 "al r14 r3 0x00000ab0", 644 "al_r14_r3_0x00000ab0"}, 645 {{al, r12, r13, 0x000001fe}, 646 false, 647 al, 648 "al r12 r13 0x000001fe", 649 "al_r12_r13_0x000001fe"}, 650 {{al, r12, r10, 0x1fe00000}, 651 false, 652 al, 653 "al r12 r10 0x1fe00000", 654 "al_r12_r10_0x1fe00000"}, 655 {{al, r0, r9, 0x2ac00000}, 656 false, 657 al, 658 "al r0 r9 0x2ac00000", 659 "al_r0_r9_0x2ac00000"}, 660 {{al, r11, r6, 0x00000156}, 661 false, 662 al, 663 "al r11 r6 0x00000156", 664 "al_r11_r6_0x00000156"}, 665 {{al, r2, r4, 0x3fc00000}, 666 false, 667 al, 668 "al r2 r4 0x3fc00000", 669 "al_r2_r4_0x3fc00000"}, 670 {{al, r8, r13, 0x00002ac0}, 671 false, 672 al, 673 "al r8 r13 0x00002ac0", 674 "al_r8_r13_0x00002ac0"}, 675 {{al, r1, r5, 0x00ff00ff}, 676 false, 677 al, 678 "al r1 r5 0x00ff00ff", 679 "al_r1_r5_0x00ff00ff"}, 680 {{al, r6, r1, 0x0007f800}, 681 false, 682 al, 683 "al r6 r1 0x0007f800", 684 "al_r6_r1_0x0007f800"}, 685 {{al, r5, r1, 0x00001fe0}, 686 false, 687 al, 688 "al r5 r1 0x00001fe0", 689 "al_r5_r1_0x00001fe0"}, 690 {{al, r8, r11, 0xab00ab00}, 691 false, 692 al, 693 "al r8 r11 0xab00ab00", 694 "al_r8_r11_0xab00ab00"}, 695 {{al, r5, r0, 0xff00ff00}, 696 false, 697 al, 698 "al r5 r0 0xff00ff00", 699 "al_r5_r0_0xff00ff00"}, 700 {{al, r14, r13, 0x000000ab}, 701 false, 702 al, 703 "al r14 r13 0x000000ab", 704 "al_r14_r13_0x000000ab"}, 705 {{al, r2, r4, 0x05580000}, 706 false, 707 al, 708 "al r2 r4 0x05580000", 709 "al_r2_r4_0x05580000"}, 710 {{al, r14, r10, 0x07f80000}, 711 false, 712 al, 713 "al r14 r10 0x07f80000", 714 "al_r14_r10_0x07f80000"}, 715 {{al, r10, r3, 0x55800000}, 716 false, 717 al, 718 "al r10 r3 0x55800000", 719 "al_r10_r3_0x55800000"}, 720 {{al, r0, r11, 0x7f800000}, 721 false, 722 al, 723 "al r0 r11 0x7f800000", 724 "al_r0_r11_0x7f800000"}, 725 {{al, r3, r12, 0xffffffff}, 726 false, 727 al, 728 "al r3 r12 0xffffffff", 729 "al_r3_r12_0xffffffff"}, 730 {{al, r2, r3, 0x00000558}, 731 false, 732 al, 733 "al r2 r3 0x00000558", 734 "al_r2_r3_0x00000558"}, 735 {{al, r2, r2, 0x0003fc00}, 736 false, 737 al, 738 "al r2 r2 0x0003fc00", 739 "al_r2_r2_0x0003fc00"}, 740 {{al, r14, r10, 0x15600000}, 741 false, 742 al, 743 "al r14 r10 0x15600000", 744 "al_r14_r10_0x15600000"}, 745 {{al, r3, r13, 0x00000156}, 746 false, 747 al, 748 "al r3 r13 0x00000156", 749 "al_r3_r13_0x00000156"}, 750 {{al, r10, r5, 0x1fe00000}, 751 false, 752 al, 753 "al r10 r5 0x1fe00000", 754 "al_r10_r5_0x1fe00000"}, 755 {{al, r1, r5, 0x00055800}, 756 false, 757 al, 758 "al r1 r5 0x00055800", 759 "al_r1_r5_0x00055800"}, 760 {{al, r8, r6, 0xff000000}, 761 false, 762 al, 763 "al r8 r6 0xff000000", 764 "al_r8_r6_0xff000000"}, 765 {{al, r3, r7, 0x002ac000}, 766 false, 767 al, 768 "al r3 r7 0x002ac000", 769 "al_r3_r7_0x002ac000"}, 770 {{al, r6, r4, 0x00ff00ff}, 771 false, 772 al, 773 "al r6 r4 0x00ff00ff", 774 "al_r6_r4_0x00ff00ff"}, 775 {{al, r0, r8, 0x0007f800}, 776 false, 777 al, 778 "al r0 r8 0x0007f800", 779 "al_r0_r8_0x0007f800"}, 780 {{al, r0, r3, 0xff000000}, 781 false, 782 al, 783 "al r0 r3 0xff000000", 784 "al_r0_r3_0xff000000"}, 785 {{al, r11, r1, 0xabababab}, 786 false, 787 al, 788 "al r11 r1 0xabababab", 789 "al_r11_r1_0xabababab"}, 790 {{al, r14, r10, 0x000001fe}, 791 false, 792 al, 793 "al r14 r10 0x000001fe", 794 "al_r14_r10_0x000001fe"}, 795 {{al, r4, r11, 0x002ac000}, 796 false, 797 al, 798 "al r4 r11 0x002ac000", 799 "al_r4_r11_0x002ac000"}, 800 {{al, r11, r12, 0x000000ab}, 801 false, 802 al, 803 "al r11 r12 0x000000ab", 804 "al_r11_r12_0x000000ab"}, 805 {{al, r3, r4, 0x003fc000}, 806 false, 807 al, 808 "al r3 r4 0x003fc000", 809 "al_r3_r4_0x003fc000"}, 810 {{al, r3, r13, 0x0ff00000}, 811 false, 812 al, 813 "al r3 r13 0x0ff00000", 814 "al_r3_r13_0x0ff00000"}, 815 {{al, r5, r4, 0x00001fe0}, 816 false, 817 al, 818 "al r5 r4 0x00001fe0", 819 "al_r5_r4_0x00001fe0"}, 820 {{al, r6, r12, 0x002ac000}, 821 false, 822 al, 823 "al r6 r12 0x002ac000", 824 "al_r6_r12_0x002ac000"}, 825 {{al, r13, r13, 0x1fe00000}, 826 false, 827 al, 828 "al r13 r13 0x1fe00000", 829 "al_r13_r13_0x1fe00000"}, 830 {{al, r0, r8, 0x01560000}, 831 false, 832 al, 833 "al r0 r8 0x01560000", 834 "al_r0_r8_0x01560000"}, 835 {{al, r9, r7, 0x00055800}, 836 false, 837 al, 838 "al r9 r7 0x00055800", 839 "al_r9_r7_0x00055800"}, 840 {{al, r6, r0, 0x00000156}, 841 false, 842 al, 843 "al r6 r0 0x00000156", 844 "al_r6_r0_0x00000156"}, 845 {{al, r14, r12, 0x00055800}, 846 false, 847 al, 848 "al r14 r12 0x00055800", 849 "al_r14_r12_0x00055800"}, 850 {{al, r14, r0, 0xab00ab00}, 851 false, 852 al, 853 "al r14 r0 0xab00ab00", 854 "al_r14_r0_0xab00ab00"}, 855 {{al, r14, r2, 0x00ab0000}, 856 false, 857 al, 858 "al r14 r2 0x00ab0000", 859 "al_r14_r2_0x00ab0000"}, 860 {{al, r0, r3, 0x000000ab}, 861 false, 862 al, 863 "al r0 r3 0x000000ab", 864 "al_r0_r3_0x000000ab"}, 865 {{al, r13, r4, 0x003fc000}, 866 false, 867 al, 868 "al r13 r4 0x003fc000", 869 "al_r13_r4_0x003fc000"}, 870 {{al, r4, r2, 0x00001560}, 871 false, 872 al, 873 "al r4 r2 0x00001560", 874 "al_r4_r2_0x00001560"}, 875 {{al, r14, r4, 0x2ac00000}, 876 false, 877 al, 878 "al r14 r4 0x2ac00000", 879 "al_r14_r4_0x2ac00000"}, 880 {{al, r4, r11, 0x000003fc}, 881 false, 882 al, 883 "al r4 r11 0x000003fc", 884 "al_r4_r11_0x000003fc"}, 885 {{al, r6, r8, 0x001fe000}, 886 false, 887 al, 888 "al r6 r8 0x001fe000", 889 "al_r6_r8_0x001fe000"}, 890 {{al, r12, r14, 0x00000558}, 891 false, 892 al, 893 "al r12 r14 0x00000558", 894 "al_r12_r14_0x00000558"}, 895 {{al, r0, r13, 0x0ff00000}, 896 false, 897 al, 898 "al r0 r13 0x0ff00000", 899 "al_r0_r13_0x0ff00000"}, 900 {{al, r3, r11, 0xabababab}, 901 false, 902 al, 903 "al r3 r11 0xabababab", 904 "al_r3_r11_0xabababab"}, 905 {{al, r4, r1, 0x000001fe}, 906 false, 907 al, 908 "al r4 r1 0x000001fe", 909 "al_r4_r1_0x000001fe"}, 910 {{al, r0, r5, 0x000002ac}, 911 false, 912 al, 913 "al r0 r5 0x000002ac", 914 "al_r0_r5_0x000002ac"}, 915 {{al, r8, r5, 0x0003fc00}, 916 false, 917 al, 918 "al r8 r5 0x0003fc00", 919 "al_r8_r5_0x0003fc00"}, 920 {{al, r7, r13, 0x0002ac00}, 921 false, 922 al, 923 "al r7 r13 0x0002ac00", 924 "al_r7_r13_0x0002ac00"}, 925 {{al, r10, r6, 0x00015600}, 926 false, 927 al, 928 "al r10 r6 0x00015600", 929 "al_r10_r6_0x00015600"}, 930 {{al, r12, r10, 0x00ff0000}, 931 false, 932 al, 933 "al r12 r10 0x00ff0000", 934 "al_r12_r10_0x00ff0000"}, 935 {{al, r12, r12, 0x00005580}, 936 false, 937 al, 938 "al r12 r12 0x00005580", 939 "al_r12_r12_0x00005580"}, 940 {{al, r0, r4, 0x02ac0000}, 941 false, 942 al, 943 "al r0 r4 0x02ac0000", 944 "al_r0_r4_0x02ac0000"}, 945 {{al, r9, r9, 0x02ac0000}, 946 false, 947 al, 948 "al r9 r9 0x02ac0000", 949 "al_r9_r9_0x02ac0000"}, 950 {{al, r7, r4, 0x00000558}, 951 false, 952 al, 953 "al r7 r4 0x00000558", 954 "al_r7_r4_0x00000558"}, 955 {{al, r12, r14, 0x07f80000}, 956 false, 957 al, 958 "al r12 r14 0x07f80000", 959 "al_r12_r14_0x07f80000"}, 960 {{al, r7, r2, 0xab00ab00}, 961 false, 962 al, 963 "al r7 r2 0xab00ab00", 964 "al_r7_r2_0xab00ab00"}, 965 {{al, r1, r12, 0xff000000}, 966 false, 967 al, 968 "al r1 r12 0xff000000", 969 "al_r1_r12_0xff000000"}, 970 {{al, r8, r0, 0x7f800000}, 971 false, 972 al, 973 "al r8 r0 0x7f800000", 974 "al_r8_r0_0x7f800000"}, 975 {{al, r7, r0, 0x00000ab0}, 976 false, 977 al, 978 "al r7 r0 0x00000ab0", 979 "al_r7_r0_0x00000ab0"}, 980 {{al, r1, r0, 0x00005580}, 981 false, 982 al, 983 "al r1 r0 0x00005580", 984 "al_r1_r0_0x00005580"}, 985 {{al, r14, r1, 0x001fe000}, 986 false, 987 al, 988 "al r14 r1 0x001fe000", 989 "al_r14_r1_0x001fe000"}, 990 {{al, r13, r13, 0x0002ac00}, 991 false, 992 al, 993 "al r13 r13 0x0002ac00", 994 "al_r13_r13_0x0002ac00"}, 995 {{al, r8, r12, 0x0002ac00}, 996 false, 997 al, 998 "al r8 r12 0x0002ac00", 999 "al_r8_r12_0x0002ac00"}, 1000 {{al, r10, r10, 0x00ff00ff}, 1001 false, 1002 al, 1003 "al r10 r10 0x00ff00ff", 1004 "al_r10_r10_0x00ff00ff"}, 1005 {{al, r4, r4, 0x002ac000}, 1006 false, 1007 al, 1008 "al r4 r4 0x002ac000", 1009 "al_r4_r4_0x002ac000"}, 1010 {{al, r12, r5, 0x000ab000}, 1011 false, 1012 al, 1013 "al r12 r5 0x000ab000", 1014 "al_r12_r5_0x000ab000"}, 1015 {{al, r1, r2, 0x000003fc}, 1016 false, 1017 al, 1018 "al r1 r2 0x000003fc", 1019 "al_r1_r2_0x000003fc"}, 1020 {{al, r10, r11, 0x001fe000}, 1021 false, 1022 al, 1023 "al r10 r11 0x001fe000", 1024 "al_r10_r11_0x001fe000"}, 1025 {{al, r11, r2, 0x05580000}, 1026 false, 1027 al, 1028 "al r11 r2 0x05580000", 1029 "al_r11_r2_0x05580000"}, 1030 {{al, r2, r6, 0x000000ab}, 1031 false, 1032 al, 1033 "al r2 r6 0x000000ab", 1034 "al_r2_r6_0x000000ab"}, 1035 {{al, r6, r3, 0x0000ff00}, 1036 false, 1037 al, 1038 "al r6 r3 0x0000ff00", 1039 "al_r6_r3_0x0000ff00"}, 1040 {{al, r13, r0, 0x00156000}, 1041 false, 1042 al, 1043 "al r13 r0 0x00156000", 1044 "al_r13_r0_0x00156000"}, 1045 {{al, r2, r9, 0x00002ac0}, 1046 false, 1047 al, 1048 "al r2 r9 0x00002ac0", 1049 "al_r2_r9_0x00002ac0"}, 1050 {{al, r11, r7, 0x00055800}, 1051 false, 1052 al, 1053 "al r11 r7 0x00055800", 1054 "al_r11_r7_0x00055800"}, 1055 {{al, r10, r9, 0x00001fe0}, 1056 false, 1057 al, 1058 "al r10 r9 0x00001fe0", 1059 "al_r10_r9_0x00001fe0"}, 1060 {{al, r10, r11, 0x00156000}, 1061 false, 1062 al, 1063 "al r10 r11 0x00156000", 1064 "al_r10_r11_0x00156000"}, 1065 {{al, r12, r10, 0xff00ff00}, 1066 false, 1067 al, 1068 "al r12 r10 0xff00ff00", 1069 "al_r12_r10_0xff00ff00"}, 1070 {{al, r7, r14, 0x00ab00ab}, 1071 false, 1072 al, 1073 "al r7 r14 0x00ab00ab", 1074 "al_r7_r14_0x00ab00ab"}, 1075 {{al, r14, r7, 0x002ac000}, 1076 false, 1077 al, 1078 "al r14 r7 0x002ac000", 1079 "al_r14_r7_0x002ac000"}, 1080 {{al, r5, r6, 0x000ff000}, 1081 false, 1082 al, 1083 "al r5 r6 0x000ff000", 1084 "al_r5_r6_0x000ff000"}, 1085 {{al, r8, r1, 0xff000000}, 1086 false, 1087 al, 1088 "al r8 r1 0xff000000", 1089 "al_r8_r1_0xff000000"}, 1090 {{al, r8, r0, 0x000002ac}, 1091 false, 1092 al, 1093 "al r8 r0 0x000002ac", 1094 "al_r8_r0_0x000002ac"}, 1095 {{al, r12, r6, 0x00002ac0}, 1096 false, 1097 al, 1098 "al r12 r6 0x00002ac0", 1099 "al_r12_r6_0x00002ac0"}, 1100 {{al, r14, r2, 0x3fc00000}, 1101 false, 1102 al, 1103 "al r14 r2 0x3fc00000", 1104 "al_r14_r2_0x3fc00000"}, 1105 {{al, r3, r3, 0x01560000}, 1106 false, 1107 al, 1108 "al r3 r3 0x01560000", 1109 "al_r3_r3_0x01560000"}, 1110 {{al, r3, r12, 0x0001fe00}, 1111 false, 1112 al, 1113 "al r3 r12 0x0001fe00", 1114 "al_r3_r12_0x0001fe00"}, 1115 {{al, r8, r10, 0x000002ac}, 1116 false, 1117 al, 1118 "al r8 r10 0x000002ac", 1119 "al_r8_r10_0x000002ac"}, 1120 {{al, r9, r9, 0x002ac000}, 1121 false, 1122 al, 1123 "al r9 r9 0x002ac000", 1124 "al_r9_r9_0x002ac000"}, 1125 {{al, r0, r6, 0x00156000}, 1126 false, 1127 al, 1128 "al r0 r6 0x00156000", 1129 "al_r0_r6_0x00156000"}, 1130 {{al, r14, r7, 0x0ff00000}, 1131 false, 1132 al, 1133 "al r14 r7 0x0ff00000", 1134 "al_r14_r7_0x0ff00000"}, 1135 {{al, r1, r3, 0x00005580}, 1136 false, 1137 al, 1138 "al r1 r3 0x00005580", 1139 "al_r1_r3_0x00005580"}, 1140 {{al, r14, r7, 0x000001fe}, 1141 false, 1142 al, 1143 "al r14 r7 0x000001fe", 1144 "al_r14_r7_0x000001fe"}, 1145 {{al, r9, r5, 0x03fc0000}, 1146 false, 1147 al, 1148 "al r9 r5 0x03fc0000", 1149 "al_r9_r5_0x03fc0000"}, 1150 {{al, r7, r14, 0x002ac000}, 1151 false, 1152 al, 1153 "al r7 r14 0x002ac000", 1154 "al_r7_r14_0x002ac000"}, 1155 {{al, r8, r9, 0x00000558}, 1156 false, 1157 al, 1158 "al r8 r9 0x00000558", 1159 "al_r8_r9_0x00000558"}, 1160 {{al, r14, r1, 0x007f8000}, 1161 false, 1162 al, 1163 "al r14 r1 0x007f8000", 1164 "al_r14_r1_0x007f8000"}, 1165 {{al, r11, r0, 0xab00ab00}, 1166 false, 1167 al, 1168 "al r11 r0 0xab00ab00", 1169 "al_r11_r0_0xab00ab00"}, 1170 {{al, r11, r8, 0x00000156}, 1171 false, 1172 al, 1173 "al r11 r8 0x00000156", 1174 "al_r11_r8_0x00000156"}, 1175 {{al, r4, r10, 0x00055800}, 1176 false, 1177 al, 1178 "al r4 r10 0x00055800", 1179 "al_r4_r10_0x00055800"}, 1180 {{al, r2, r7, 0x00007f80}, 1181 false, 1182 al, 1183 "al r2 r7 0x00007f80", 1184 "al_r2_r7_0x00007f80"}, 1185 {{al, r0, r6, 0x00558000}, 1186 false, 1187 al, 1188 "al r0 r6 0x00558000", 1189 "al_r0_r6_0x00558000"}, 1190 {{al, r4, r2, 0x00558000}, 1191 false, 1192 al, 1193 "al r4 r2 0x00558000", 1194 "al_r4_r2_0x00558000"}, 1195 {{al, r2, r3, 0x0007f800}, 1196 false, 1197 al, 1198 "al r2 r3 0x0007f800", 1199 "al_r2_r3_0x0007f800"}, 1200 {{al, r14, r14, 0xab00ab00}, 1201 false, 1202 al, 1203 "al r14 r14 0xab00ab00", 1204 "al_r14_r14_0xab00ab00"}, 1205 {{al, r0, r13, 0x000000ff}, 1206 false, 1207 al, 1208 "al r0 r13 0x000000ff", 1209 "al_r0_r13_0x000000ff"}, 1210 {{al, r10, r9, 0xab00ab00}, 1211 false, 1212 al, 1213 "al r10 r9 0xab00ab00", 1214 "al_r10_r9_0xab00ab00"}, 1215 {{al, r1, r1, 0x3fc00000}, 1216 false, 1217 al, 1218 "al r1 r1 0x3fc00000", 1219 "al_r1_r1_0x3fc00000"}, 1220 {{al, r8, r6, 0x002ac000}, 1221 false, 1222 al, 1223 "al r8 r6 0x002ac000", 1224 "al_r8_r6_0x002ac000"}, 1225 {{al, r12, r4, 0x55800000}, 1226 false, 1227 al, 1228 "al r12 r4 0x55800000", 1229 "al_r12_r4_0x55800000"}, 1230 {{al, r6, r10, 0x2ac00000}, 1231 false, 1232 al, 1233 "al r6 r10 0x2ac00000", 1234 "al_r6_r10_0x2ac00000"}, 1235 {{al, r7, r9, 0x001fe000}, 1236 false, 1237 al, 1238 "al r7 r9 0x001fe000", 1239 "al_r7_r9_0x001fe000"}, 1240 {{al, r4, r12, 0x00005580}, 1241 false, 1242 al, 1243 "al r4 r12 0x00005580", 1244 "al_r4_r12_0x00005580"}, 1245 {{al, r9, r8, 0x0ab00000}, 1246 false, 1247 al, 1248 "al r9 r8 0x0ab00000", 1249 "al_r9_r8_0x0ab00000"}, 1250 {{al, r2, r4, 0xff00ff00}, 1251 false, 1252 al, 1253 "al r2 r4 0xff00ff00", 1254 "al_r2_r4_0xff00ff00"}, 1255 {{al, r8, r14, 0x00001fe0}, 1256 false, 1257 al, 1258 "al r8 r14 0x00001fe0", 1259 "al_r8_r14_0x00001fe0"}, 1260 {{al, r5, r3, 0x003fc000}, 1261 false, 1262 al, 1263 "al r5 r3 0x003fc000", 1264 "al_r5_r3_0x003fc000"}, 1265 {{al, r2, r10, 0x00ff00ff}, 1266 false, 1267 al, 1268 "al r2 r10 0x00ff00ff", 1269 "al_r2_r10_0x00ff00ff"}, 1270 {{al, r11, r12, 0x15600000}, 1271 false, 1272 al, 1273 "al r11 r12 0x15600000", 1274 "al_r11_r12_0x15600000"}, 1275 {{al, r1, r5, 0x00002ac0}, 1276 false, 1277 al, 1278 "al r1 r5 0x00002ac0", 1279 "al_r1_r5_0x00002ac0"}, 1280 {{al, r3, r7, 0x2ac00000}, 1281 false, 1282 al, 1283 "al r3 r7 0x2ac00000", 1284 "al_r3_r7_0x2ac00000"}, 1285 {{al, r5, r1, 0xffffffff}, 1286 false, 1287 al, 1288 "al r5 r1 0xffffffff", 1289 "al_r5_r1_0xffffffff"}, 1290 {{al, r4, r10, 0xff00ff00}, 1291 false, 1292 al, 1293 "al r4 r10 0xff00ff00", 1294 "al_r4_r10_0xff00ff00"}, 1295 {{al, r1, r2, 0x00001fe0}, 1296 false, 1297 al, 1298 "al r1 r2 0x00001fe0", 1299 "al_r1_r2_0x00001fe0"}, 1300 {{al, r5, r14, 0x000000ff}, 1301 false, 1302 al, 1303 "al r5 r14 0x000000ff", 1304 "al_r5_r14_0x000000ff"}, 1305 {{al, r14, r0, 0x000ab000}, 1306 false, 1307 al, 1308 "al r14 r0 0x000ab000", 1309 "al_r14_r0_0x000ab000"}, 1310 {{al, r10, r3, 0x00ab0000}, 1311 false, 1312 al, 1313 "al r10 r3 0x00ab0000", 1314 "al_r10_r3_0x00ab0000"}, 1315 {{al, r10, r12, 0x03fc0000}, 1316 false, 1317 al, 1318 "al r10 r12 0x03fc0000", 1319 "al_r10_r12_0x03fc0000"}, 1320 {{al, r8, r11, 0x0007f800}, 1321 false, 1322 al, 1323 "al r8 r11 0x0007f800", 1324 "al_r8_r11_0x0007f800"}, 1325 {{al, r9, r13, 0x0001fe00}, 1326 false, 1327 al, 1328 "al r9 r13 0x0001fe00", 1329 "al_r9_r13_0x0001fe00"}, 1330 {{al, r12, r13, 0x02ac0000}, 1331 false, 1332 al, 1333 "al r12 r13 0x02ac0000", 1334 "al_r12_r13_0x02ac0000"}, 1335 {{al, r3, r9, 0x00ab00ab}, 1336 false, 1337 al, 1338 "al r3 r9 0x00ab00ab", 1339 "al_r3_r9_0x00ab00ab"}, 1340 {{al, r10, r1, 0x3fc00000}, 1341 false, 1342 al, 1343 "al r10 r1 0x3fc00000", 1344 "al_r10_r1_0x3fc00000"}, 1345 {{al, r6, r8, 0x00000558}, 1346 false, 1347 al, 1348 "al r6 r8 0x00000558", 1349 "al_r6_r8_0x00000558"}, 1350 {{al, r6, r12, 0x0000ab00}, 1351 false, 1352 al, 1353 "al r6 r12 0x0000ab00", 1354 "al_r6_r12_0x0000ab00"}, 1355 {{al, r14, r13, 0x000ab000}, 1356 false, 1357 al, 1358 "al r14 r13 0x000ab000", 1359 "al_r14_r13_0x000ab000"}, 1360 {{al, r1, r5, 0x1fe00000}, 1361 false, 1362 al, 1363 "al r1 r5 0x1fe00000", 1364 "al_r1_r5_0x1fe00000"}, 1365 {{al, r11, r3, 0x02ac0000}, 1366 false, 1367 al, 1368 "al r11 r3 0x02ac0000", 1369 "al_r11_r3_0x02ac0000"}, 1370 {{al, r9, r5, 0x55800000}, 1371 false, 1372 al, 1373 "al r9 r5 0x55800000", 1374 "al_r9_r5_0x55800000"}, 1375 {{al, r5, r5, 0x000ab000}, 1376 false, 1377 al, 1378 "al r5 r5 0x000ab000", 1379 "al_r5_r5_0x000ab000"}, 1380 {{al, r0, r12, 0x003fc000}, 1381 false, 1382 al, 1383 "al r0 r12 0x003fc000", 1384 "al_r0_r12_0x003fc000"}, 1385 {{al, r10, r4, 0x0000ab00}, 1386 false, 1387 al, 1388 "al r10 r4 0x0000ab00", 1389 "al_r10_r4_0x0000ab00"}, 1390 {{al, r3, r2, 0x0000ff00}, 1391 false, 1392 al, 1393 "al r3 r2 0x0000ff00", 1394 "al_r3_r2_0x0000ff00"}, 1395 {{al, r14, r8, 0x3fc00000}, 1396 false, 1397 al, 1398 "al r14 r8 0x3fc00000", 1399 "al_r14_r8_0x3fc00000"}, 1400 {{al, r10, r13, 0x05580000}, 1401 false, 1402 al, 1403 "al r10 r13 0x05580000", 1404 "al_r10_r13_0x05580000"}, 1405 {{al, r4, r13, 0x00156000}, 1406 false, 1407 al, 1408 "al r4 r13 0x00156000", 1409 "al_r4_r13_0x00156000"}, 1410 {{al, r7, r2, 0x000002ac}, 1411 false, 1412 al, 1413 "al r7 r2 0x000002ac", 1414 "al_r7_r2_0x000002ac"}, 1415 {{al, r5, r10, 0x000002ac}, 1416 false, 1417 al, 1418 "al r5 r10 0x000002ac", 1419 "al_r5_r10_0x000002ac"}, 1420 {{al, r7, r0, 0xab000000}, 1421 false, 1422 al, 1423 "al r7 r0 0xab000000", 1424 "al_r7_r0_0xab000000"}, 1425 {{al, r1, r10, 0x000002ac}, 1426 false, 1427 al, 1428 "al r1 r10 0x000002ac", 1429 "al_r1_r10_0x000002ac"}, 1430 {{al, r11, r9, 0x00002ac0}, 1431 false, 1432 al, 1433 "al r11 r9 0x00002ac0", 1434 "al_r11_r9_0x00002ac0"}, 1435 {{al, r4, r0, 0x000001fe}, 1436 false, 1437 al, 1438 "al r4 r0 0x000001fe", 1439 "al_r4_r0_0x000001fe"}, 1440 {{al, r11, r9, 0x0003fc00}, 1441 false, 1442 al, 1443 "al r11 r9 0x0003fc00", 1444 "al_r11_r9_0x0003fc00"}, 1445 {{al, r8, r3, 0x00005580}, 1446 false, 1447 al, 1448 "al r8 r3 0x00005580", 1449 "al_r8_r3_0x00005580"}, 1450 {{al, r4, r4, 0xffffffff}, 1451 false, 1452 al, 1453 "al r4 r4 0xffffffff", 1454 "al_r4_r4_0xffffffff"}, 1455 {{al, r1, r9, 0x00000558}, 1456 false, 1457 al, 1458 "al r1 r9 0x00000558", 1459 "al_r1_r9_0x00000558"}, 1460 {{al, r9, r2, 0x00ab0000}, 1461 false, 1462 al, 1463 "al r9 r2 0x00ab0000", 1464 "al_r9_r2_0x00ab0000"}, 1465 {{al, r11, r6, 0x00003fc0}, 1466 false, 1467 al, 1468 "al r11 r6 0x00003fc0", 1469 "al_r11_r6_0x00003fc0"}, 1470 {{al, r11, r11, 0x01fe0000}, 1471 false, 1472 al, 1473 "al r11 r11 0x01fe0000", 1474 "al_r11_r11_0x01fe0000"}, 1475 {{al, r6, r10, 0x0001fe00}, 1476 false, 1477 al, 1478 "al r6 r10 0x0001fe00", 1479 "al_r6_r10_0x0001fe00"}, 1480 {{al, r8, r3, 0x00000156}, 1481 false, 1482 al, 1483 "al r8 r3 0x00000156", 1484 "al_r8_r3_0x00000156"}, 1485 {{al, r12, r12, 0x0002ac00}, 1486 false, 1487 al, 1488 "al r12 r12 0x0002ac00", 1489 "al_r12_r12_0x0002ac00"}, 1490 {{al, r8, r6, 0x7f800000}, 1491 false, 1492 al, 1493 "al r8 r6 0x7f800000", 1494 "al_r8_r6_0x7f800000"}, 1495 {{al, r5, r13, 0x000002ac}, 1496 false, 1497 al, 1498 "al r5 r13 0x000002ac", 1499 "al_r5_r13_0x000002ac"}, 1500 {{al, r5, r13, 0x15600000}, 1501 false, 1502 al, 1503 "al r5 r13 0x15600000", 1504 "al_r5_r13_0x15600000"}, 1505 {{al, r8, r8, 0x000000ab}, 1506 false, 1507 al, 1508 "al r8 r8 0x000000ab", 1509 "al_r8_r8_0x000000ab"}, 1510 {{al, r12, r14, 0x00156000}, 1511 false, 1512 al, 1513 "al r12 r14 0x00156000", 1514 "al_r12_r14_0x00156000"}, 1515 {{al, r1, r7, 0x003fc000}, 1516 false, 1517 al, 1518 "al r1 r7 0x003fc000", 1519 "al_r1_r7_0x003fc000"}, 1520 {{al, r8, r0, 0x00003fc0}, 1521 false, 1522 al, 1523 "al r8 r0 0x00003fc0", 1524 "al_r8_r0_0x00003fc0"}, 1525 {{al, r14, r11, 0x0007f800}, 1526 false, 1527 al, 1528 "al r14 r11 0x0007f800", 1529 "al_r14_r11_0x0007f800"}, 1530 {{al, r3, r8, 0x00ab00ab}, 1531 false, 1532 al, 1533 "al r3 r8 0x00ab00ab", 1534 "al_r3_r8_0x00ab00ab"}, 1535 {{al, r14, r8, 0x55800000}, 1536 false, 1537 al, 1538 "al r14 r8 0x55800000", 1539 "al_r14_r8_0x55800000"}, 1540 {{al, r7, r8, 0x000ff000}, 1541 false, 1542 al, 1543 "al r7 r8 0x000ff000", 1544 "al_r7_r8_0x000ff000"}, 1545 {{al, r4, r11, 0x01fe0000}, 1546 false, 1547 al, 1548 "al r4 r11 0x01fe0000", 1549 "al_r4_r11_0x01fe0000"}, 1550 {{al, r2, r4, 0x01560000}, 1551 false, 1552 al, 1553 "al r2 r4 0x01560000", 1554 "al_r2_r4_0x01560000"}, 1555 {{al, r4, r3, 0xffffffff}, 1556 false, 1557 al, 1558 "al r4 r3 0xffffffff", 1559 "al_r4_r3_0xffffffff"}, 1560 {{al, r7, r8, 0xab000000}, 1561 false, 1562 al, 1563 "al r7 r8 0xab000000", 1564 "al_r7_r8_0xab000000"}, 1565 {{al, r0, r13, 0x00000ab0}, 1566 false, 1567 al, 1568 "al r0 r13 0x00000ab0", 1569 "al_r0_r13_0x00000ab0"}, 1570 {{al, r1, r2, 0x000001fe}, 1571 false, 1572 al, 1573 "al r1 r2 0x000001fe", 1574 "al_r1_r2_0x000001fe"}, 1575 {{al, r8, r14, 0x02ac0000}, 1576 false, 1577 al, 1578 "al r8 r14 0x02ac0000", 1579 "al_r8_r14_0x02ac0000"}, 1580 {{al, r4, r5, 0x00558000}, 1581 false, 1582 al, 1583 "al r4 r5 0x00558000", 1584 "al_r4_r5_0x00558000"}, 1585 {{al, r6, r7, 0xff00ff00}, 1586 false, 1587 al, 1588 "al r6 r7 0xff00ff00", 1589 "al_r6_r7_0xff00ff00"}, 1590 {{al, r8, r12, 0x001fe000}, 1591 false, 1592 al, 1593 "al r8 r12 0x001fe000", 1594 "al_r8_r12_0x001fe000"}, 1595 {{al, r6, r4, 0x07f80000}, 1596 false, 1597 al, 1598 "al r6 r4 0x07f80000", 1599 "al_r6_r4_0x07f80000"}, 1600 {{al, r4, r0, 0x00001fe0}, 1601 false, 1602 al, 1603 "al r4 r0 0x00001fe0", 1604 "al_r4_r0_0x00001fe0"}, 1605 {{al, r14, r3, 0xff00ff00}, 1606 false, 1607 al, 1608 "al r14 r3 0xff00ff00", 1609 "al_r14_r3_0xff00ff00"}, 1610 {{al, r0, r6, 0xab000000}, 1611 false, 1612 al, 1613 "al r0 r6 0xab000000", 1614 "al_r0_r6_0xab000000"}, 1615 {{al, r12, r13, 0x00000ab0}, 1616 false, 1617 al, 1618 "al r12 r13 0x00000ab0", 1619 "al_r12_r13_0x00000ab0"}, 1620 {{al, r12, r8, 0x00000558}, 1621 false, 1622 al, 1623 "al r12 r8 0x00000558", 1624 "al_r12_r8_0x00000558"}, 1625 {{al, r3, r12, 0x0003fc00}, 1626 false, 1627 al, 1628 "al r3 r12 0x0003fc00", 1629 "al_r3_r12_0x0003fc00"}, 1630 {{al, r2, r11, 0x7f800000}, 1631 false, 1632 al, 1633 "al r2 r11 0x7f800000", 1634 "al_r2_r11_0x7f800000"}, 1635 {{al, r10, r4, 0x15600000}, 1636 false, 1637 al, 1638 "al r10 r4 0x15600000", 1639 "al_r10_r4_0x15600000"}, 1640 {{al, r8, r7, 0x0ab00000}, 1641 false, 1642 al, 1643 "al r8 r7 0x0ab00000", 1644 "al_r8_r7_0x0ab00000"}, 1645 {{al, r10, r6, 0x000000ff}, 1646 false, 1647 al, 1648 "al r10 r6 0x000000ff", 1649 "al_r10_r6_0x000000ff"}, 1650 {{al, r3, r4, 0xff00ff00}, 1651 false, 1652 al, 1653 "al r3 r4 0xff00ff00", 1654 "al_r3_r4_0xff00ff00"}, 1655 {{al, r14, r10, 0x00ab0000}, 1656 false, 1657 al, 1658 "al r14 r10 0x00ab0000", 1659 "al_r14_r10_0x00ab0000"}, 1660 {{al, r8, r3, 0x0002ac00}, 1661 false, 1662 al, 1663 "al r8 r3 0x0002ac00", 1664 "al_r8_r3_0x0002ac00"}, 1665 {{al, r8, r8, 0x00000558}, 1666 false, 1667 al, 1668 "al r8 r8 0x00000558", 1669 "al_r8_r8_0x00000558"}, 1670 {{al, r12, r4, 0x00015600}, 1671 false, 1672 al, 1673 "al r12 r4 0x00015600", 1674 "al_r12_r4_0x00015600"}, 1675 {{al, r8, r1, 0x002ac000}, 1676 false, 1677 al, 1678 "al r8 r1 0x002ac000", 1679 "al_r8_r1_0x002ac000"}, 1680 {{al, r8, r5, 0x000000ab}, 1681 false, 1682 al, 1683 "al r8 r5 0x000000ab", 1684 "al_r8_r5_0x000000ab"}, 1685 {{al, r6, r6, 0x000000ab}, 1686 false, 1687 al, 1688 "al r6 r6 0x000000ab", 1689 "al_r6_r6_0x000000ab"}, 1690 {{al, r5, r7, 0x00002ac0}, 1691 false, 1692 al, 1693 "al r5 r7 0x00002ac0", 1694 "al_r5_r7_0x00002ac0"}, 1695 {{al, r11, r4, 0x00000ff0}, 1696 false, 1697 al, 1698 "al r11 r4 0x00000ff0", 1699 "al_r11_r4_0x00000ff0"}, 1700 {{al, r9, r9, 0x00000ff0}, 1701 false, 1702 al, 1703 "al r9 r9 0x00000ff0", 1704 "al_r9_r9_0x00000ff0"}, 1705 {{al, r0, r8, 0x00ff0000}, 1706 false, 1707 al, 1708 "al r0 r8 0x00ff0000", 1709 "al_r0_r8_0x00ff0000"}, 1710 {{al, r9, r11, 0x000000ab}, 1711 false, 1712 al, 1713 "al r9 r11 0x000000ab", 1714 "al_r9_r11_0x000000ab"}, 1715 {{al, r7, r5, 0x000000ff}, 1716 false, 1717 al, 1718 "al r7 r5 0x000000ff", 1719 "al_r7_r5_0x000000ff"}, 1720 {{al, r14, r0, 0x15600000}, 1721 false, 1722 al, 1723 "al r14 r0 0x15600000", 1724 "al_r14_r0_0x15600000"}, 1725 {{al, r10, r9, 0x00000156}, 1726 false, 1727 al, 1728 "al r10 r9 0x00000156", 1729 "al_r10_r9_0x00000156"}, 1730 {{al, r3, r7, 0x00ff0000}, 1731 false, 1732 al, 1733 "al r3 r7 0x00ff0000", 1734 "al_r3_r7_0x00ff0000"}, 1735 {{al, r6, r11, 0xab00ab00}, 1736 false, 1737 al, 1738 "al r6 r11 0xab00ab00", 1739 "al_r6_r11_0xab00ab00"}, 1740 {{al, r5, r2, 0x002ac000}, 1741 false, 1742 al, 1743 "al r5 r2 0x002ac000", 1744 "al_r5_r2_0x002ac000"}, 1745 {{al, r9, r14, 0x55800000}, 1746 false, 1747 al, 1748 "al r9 r14 0x55800000", 1749 "al_r9_r14_0x55800000"}, 1750 {{al, r10, r13, 0x15600000}, 1751 false, 1752 al, 1753 "al r10 r13 0x15600000", 1754 "al_r10_r13_0x15600000"}, 1755 {{al, r13, r7, 0x0ff00000}, 1756 false, 1757 al, 1758 "al r13 r7 0x0ff00000", 1759 "al_r13_r7_0x0ff00000"}, 1760 {{al, r12, r5, 0xffffffff}, 1761 false, 1762 al, 1763 "al r12 r5 0xffffffff", 1764 "al_r12_r5_0xffffffff"}, 1765 {{al, r8, r10, 0x00000156}, 1766 false, 1767 al, 1768 "al r8 r10 0x00000156", 1769 "al_r8_r10_0x00000156"}, 1770 {{al, r7, r6, 0x00005580}, 1771 false, 1772 al, 1773 "al r7 r6 0x00005580", 1774 "al_r7_r6_0x00005580"}, 1775 {{al, r6, r6, 0x0ab00000}, 1776 false, 1777 al, 1778 "al r6 r6 0x0ab00000", 1779 "al_r6_r6_0x0ab00000"}, 1780 {{al, r3, r7, 0x01fe0000}, 1781 false, 1782 al, 1783 "al r3 r7 0x01fe0000", 1784 "al_r3_r7_0x01fe0000"}, 1785 {{al, r14, r9, 0x00558000}, 1786 false, 1787 al, 1788 "al r14 r9 0x00558000", 1789 "al_r14_r9_0x00558000"}, 1790 {{al, r3, r13, 0x000007f8}, 1791 false, 1792 al, 1793 "al r3 r13 0x000007f8", 1794 "al_r3_r13_0x000007f8"}, 1795 {{al, r10, r2, 0x00055800}, 1796 false, 1797 al, 1798 "al r10 r2 0x00055800", 1799 "al_r10_r2_0x00055800"}, 1800 {{al, r5, r14, 0x00005580}, 1801 false, 1802 al, 1803 "al r5 r14 0x00005580", 1804 "al_r5_r14_0x00005580"}, 1805 {{al, r9, r12, 0xab000000}, 1806 false, 1807 al, 1808 "al r9 r12 0xab000000", 1809 "al_r9_r12_0xab000000"}, 1810 {{al, r2, r14, 0x00000156}, 1811 false, 1812 al, 1813 "al r2 r14 0x00000156", 1814 "al_r2_r14_0x00000156"}, 1815 {{al, r6, r10, 0x000ff000}, 1816 false, 1817 al, 1818 "al r6 r10 0x000ff000", 1819 "al_r6_r10_0x000ff000"}, 1820 {{al, r6, r7, 0x000007f8}, 1821 false, 1822 al, 1823 "al r6 r7 0x000007f8", 1824 "al_r6_r7_0x000007f8"}, 1825 {{al, r8, r3, 0x7f800000}, 1826 false, 1827 al, 1828 "al r8 r3 0x7f800000", 1829 "al_r8_r3_0x7f800000"}, 1830 {{al, r0, r12, 0x15600000}, 1831 false, 1832 al, 1833 "al r0 r12 0x15600000", 1834 "al_r0_r12_0x15600000"}, 1835 {{al, r1, r6, 0x00558000}, 1836 false, 1837 al, 1838 "al r1 r6 0x00558000", 1839 "al_r1_r6_0x00558000"}, 1840 {{al, r3, r8, 0x55800000}, 1841 false, 1842 al, 1843 "al r3 r8 0x55800000", 1844 "al_r3_r8_0x55800000"}, 1845 {{al, r1, r14, 0x000003fc}, 1846 false, 1847 al, 1848 "al r1 r14 0x000003fc", 1849 "al_r1_r14_0x000003fc"}, 1850 {{al, r0, r2, 0x0ab00000}, 1851 false, 1852 al, 1853 "al r0 r2 0x0ab00000", 1854 "al_r0_r2_0x0ab00000"}, 1855 {{al, r10, r12, 0x00000156}, 1856 false, 1857 al, 1858 "al r10 r12 0x00000156", 1859 "al_r10_r12_0x00000156"}, 1860 {{al, r12, r14, 0x03fc0000}, 1861 false, 1862 al, 1863 "al r12 r14 0x03fc0000", 1864 "al_r12_r14_0x03fc0000"}, 1865 {{al, r2, r5, 0x0001fe00}, 1866 false, 1867 al, 1868 "al r2 r5 0x0001fe00", 1869 "al_r2_r5_0x0001fe00"}, 1870 {{al, r5, r11, 0x000ab000}, 1871 false, 1872 al, 1873 "al r5 r11 0x000ab000", 1874 "al_r5_r11_0x000ab000"}, 1875 {{al, r14, r14, 0x0001fe00}, 1876 false, 1877 al, 1878 "al r14 r14 0x0001fe00", 1879 "al_r14_r14_0x0001fe00"}, 1880 {{al, r13, r2, 0x00003fc0}, 1881 false, 1882 al, 1883 "al r13 r2 0x00003fc0", 1884 "al_r13_r2_0x00003fc0"}, 1885 {{al, r0, r8, 0xab000000}, 1886 false, 1887 al, 1888 "al r0 r8 0xab000000", 1889 "al_r0_r8_0xab000000"}, 1890 {{al, r12, r0, 0x000000ab}, 1891 false, 1892 al, 1893 "al r12 r0 0x000000ab", 1894 "al_r12_r0_0x000000ab"}, 1895 {{al, r11, r10, 0x002ac000}, 1896 false, 1897 al, 1898 "al r11 r10 0x002ac000", 1899 "al_r11_r10_0x002ac000"}, 1900 {{al, r12, r11, 0x00ab0000}, 1901 false, 1902 al, 1903 "al r12 r11 0x00ab0000", 1904 "al_r12_r11_0x00ab0000"}, 1905 {{al, r2, r9, 0x0ff00000}, 1906 false, 1907 al, 1908 "al r2 r9 0x0ff00000", 1909 "al_r2_r9_0x0ff00000"}, 1910 {{al, r7, r4, 0x000001fe}, 1911 false, 1912 al, 1913 "al r7 r4 0x000001fe", 1914 "al_r7_r4_0x000001fe"}, 1915 {{al, r7, r6, 0x0000ff00}, 1916 false, 1917 al, 1918 "al r7 r6 0x0000ff00", 1919 "al_r7_r6_0x0000ff00"}, 1920 {{al, r11, r14, 0x05580000}, 1921 false, 1922 al, 1923 "al r11 r14 0x05580000", 1924 "al_r11_r14_0x05580000"}, 1925 {{al, r6, r10, 0x00000558}, 1926 false, 1927 al, 1928 "al r6 r10 0x00000558", 1929 "al_r6_r10_0x00000558"}, 1930 {{al, r11, r6, 0x0001fe00}, 1931 false, 1932 al, 1933 "al r11 r6 0x0001fe00", 1934 "al_r11_r6_0x0001fe00"}, 1935 {{al, r11, r12, 0xab00ab00}, 1936 false, 1937 al, 1938 "al r11 r12 0xab00ab00", 1939 "al_r11_r12_0xab00ab00"}, 1940 {{al, r1, r8, 0x7f800000}, 1941 false, 1942 al, 1943 "al r1 r8 0x7f800000", 1944 "al_r1_r8_0x7f800000"}, 1945 {{al, r4, r3, 0x0000ff00}, 1946 false, 1947 al, 1948 "al r4 r3 0x0000ff00", 1949 "al_r4_r3_0x0000ff00"}, 1950 {{al, r5, r4, 0x00ff00ff}, 1951 false, 1952 al, 1953 "al r5 r4 0x00ff00ff", 1954 "al_r5_r4_0x00ff00ff"}, 1955 {{al, r12, r11, 0x2ac00000}, 1956 false, 1957 al, 1958 "al r12 r11 0x2ac00000", 1959 "al_r12_r11_0x2ac00000"}, 1960 {{al, r1, r6, 0xab00ab00}, 1961 false, 1962 al, 1963 "al r1 r6 0xab00ab00", 1964 "al_r1_r6_0xab00ab00"}, 1965 {{al, r6, r3, 0x000000ab}, 1966 false, 1967 al, 1968 "al r6 r3 0x000000ab", 1969 "al_r6_r3_0x000000ab"}, 1970 {{al, r2, r11, 0x0007f800}, 1971 false, 1972 al, 1973 "al r2 r11 0x0007f800", 1974 "al_r2_r11_0x0007f800"}, 1975 {{al, r3, r0, 0x00001560}, 1976 false, 1977 al, 1978 "al r3 r0 0x00001560", 1979 "al_r3_r0_0x00001560"}, 1980 {{al, r1, r14, 0x00000558}, 1981 false, 1982 al, 1983 "al r1 r14 0x00000558", 1984 "al_r1_r14_0x00000558"}, 1985 {{al, r10, r8, 0x00558000}, 1986 false, 1987 al, 1988 "al r10 r8 0x00558000", 1989 "al_r10_r8_0x00558000"}, 1990 {{al, r0, r8, 0x000ff000}, 1991 false, 1992 al, 1993 "al r0 r8 0x000ff000", 1994 "al_r0_r8_0x000ff000"}, 1995 {{al, r13, r6, 0x007f8000}, 1996 false, 1997 al, 1998 "al r13 r6 0x007f8000", 1999 "al_r13_r6_0x007f8000"}, 2000 {{al, r3, r10, 0x000002ac}, 2001 false, 2002 al, 2003 "al r3 r10 0x000002ac", 2004 "al_r3_r10_0x000002ac"}, 2005 {{al, r12, r2, 0x0003fc00}, 2006 false, 2007 al, 2008 "al r12 r2 0x0003fc00", 2009 "al_r12_r2_0x0003fc00"}, 2010 {{al, r5, r5, 0x02ac0000}, 2011 false, 2012 al, 2013 "al r5 r5 0x02ac0000", 2014 "al_r5_r5_0x02ac0000"}, 2015 {{al, r11, r12, 0x001fe000}, 2016 false, 2017 al, 2018 "al r11 r12 0x001fe000", 2019 "al_r11_r12_0x001fe000"}, 2020 {{al, r0, r14, 0x001fe000}, 2021 false, 2022 al, 2023 "al r0 r14 0x001fe000", 2024 "al_r0_r14_0x001fe000"}, 2025 {{al, r0, r14, 0x02ac0000}, 2026 false, 2027 al, 2028 "al r0 r14 0x02ac0000", 2029 "al_r0_r14_0x02ac0000"}, 2030 {{al, r6, r7, 0x0ff00000}, 2031 false, 2032 al, 2033 "al r6 r7 0x0ff00000", 2034 "al_r6_r7_0x0ff00000"}, 2035 {{al, r10, r13, 0x00000156}, 2036 false, 2037 al, 2038 "al r10 r13 0x00000156", 2039 "al_r10_r13_0x00000156"}, 2040 {{al, r3, r7, 0x000007f8}, 2041 false, 2042 al, 2043 "al r3 r7 0x000007f8", 2044 "al_r3_r7_0x000007f8"}, 2045 {{al, r4, r10, 0x000000ab}, 2046 false, 2047 al, 2048 "al r4 r10 0x000000ab", 2049 "al_r4_r10_0x000000ab"}, 2050 {{al, r0, r6, 0x00000558}, 2051 false, 2052 al, 2053 "al r0 r6 0x00000558", 2054 "al_r0_r6_0x00000558"}, 2055 {{al, r1, r1, 0x05580000}, 2056 false, 2057 al, 2058 "al r1 r1 0x05580000", 2059 "al_r1_r1_0x05580000"}, 2060 {{al, r8, r2, 0x00001560}, 2061 false, 2062 al, 2063 "al r8 r2 0x00001560", 2064 "al_r8_r2_0x00001560"}, 2065 {{al, r9, r5, 0x0001fe00}, 2066 false, 2067 al, 2068 "al r9 r5 0x0001fe00", 2069 "al_r9_r5_0x0001fe00"}, 2070 {{al, r13, r9, 0x0ab00000}, 2071 false, 2072 al, 2073 "al r13 r9 0x0ab00000", 2074 "al_r13_r9_0x0ab00000"}, 2075 {{al, r13, r9, 0x00007f80}, 2076 false, 2077 al, 2078 "al r13 r9 0x00007f80", 2079 "al_r13_r9_0x00007f80"}, 2080 {{al, r10, r5, 0x0000ab00}, 2081 false, 2082 al, 2083 "al r10 r5 0x0000ab00", 2084 "al_r10_r5_0x0000ab00"}, 2085 {{al, r6, r13, 0x007f8000}, 2086 false, 2087 al, 2088 "al r6 r13 0x007f8000", 2089 "al_r6_r13_0x007f8000"}, 2090 {{al, r5, r9, 0x000ab000}, 2091 false, 2092 al, 2093 "al r5 r9 0x000ab000", 2094 "al_r5_r9_0x000ab000"}, 2095 {{al, r4, r4, 0x000000ab}, 2096 false, 2097 al, 2098 "al r4 r4 0x000000ab", 2099 "al_r4_r4_0x000000ab"}, 2100 {{al, r13, r5, 0xab00ab00}, 2101 false, 2102 al, 2103 "al r13 r5 0xab00ab00", 2104 "al_r13_r5_0xab00ab00"}, 2105 {{al, r12, r3, 0x00005580}, 2106 false, 2107 al, 2108 "al r12 r3 0x00005580", 2109 "al_r12_r3_0x00005580"}, 2110 {{al, r0, r10, 0x55800000}, 2111 false, 2112 al, 2113 "al r0 r10 0x55800000", 2114 "al_r0_r10_0x55800000"}, 2115 {{al, r2, r8, 0x00ab00ab}, 2116 false, 2117 al, 2118 "al r2 r8 0x00ab00ab", 2119 "al_r2_r8_0x00ab00ab"}, 2120 {{al, r11, r5, 0x0003fc00}, 2121 false, 2122 al, 2123 "al r11 r5 0x0003fc00", 2124 "al_r11_r5_0x0003fc00"}, 2125 {{al, r11, r0, 0x00ab0000}, 2126 false, 2127 al, 2128 "al r11 r0 0x00ab0000", 2129 "al_r11_r0_0x00ab0000"}, 2130 {{al, r10, r2, 0x000002ac}, 2131 false, 2132 al, 2133 "al r10 r2 0x000002ac", 2134 "al_r10_r2_0x000002ac"}, 2135 {{al, r11, r12, 0x00055800}, 2136 false, 2137 al, 2138 "al r11 r12 0x00055800", 2139 "al_r11_r12_0x00055800"}, 2140 {{al, r5, r13, 0x00000ff0}, 2141 false, 2142 al, 2143 "al r5 r13 0x00000ff0", 2144 "al_r5_r13_0x00000ff0"}, 2145 {{al, r4, r14, 0x15600000}, 2146 false, 2147 al, 2148 "al r4 r14 0x15600000", 2149 "al_r4_r14_0x15600000"}, 2150 {{al, r10, r1, 0x00003fc0}, 2151 false, 2152 al, 2153 "al r10 r1 0x00003fc0", 2154 "al_r10_r1_0x00003fc0"}, 2155 {{al, r14, r8, 0xff000000}, 2156 false, 2157 al, 2158 "al r14 r8 0xff000000", 2159 "al_r14_r8_0xff000000"}, 2160 {{al, r12, r0, 0x00ff0000}, 2161 false, 2162 al, 2163 "al r12 r0 0x00ff0000", 2164 "al_r12_r0_0x00ff0000"}, 2165 {{al, r4, r5, 0x3fc00000}, 2166 false, 2167 al, 2168 "al r4 r5 0x3fc00000", 2169 "al_r4_r5_0x3fc00000"}, 2170 {{al, r14, r10, 0x3fc00000}, 2171 false, 2172 al, 2173 "al r14 r10 0x3fc00000", 2174 "al_r14_r10_0x3fc00000"}, 2175 {{al, r10, r1, 0x00015600}, 2176 false, 2177 al, 2178 "al r10 r1 0x00015600", 2179 "al_r10_r1_0x00015600"}, 2180 {{al, r4, r3, 0xff000000}, 2181 false, 2182 al, 2183 "al r4 r3 0xff000000", 2184 "al_r4_r3_0xff000000"}, 2185 {{al, r10, r10, 0x02ac0000}, 2186 false, 2187 al, 2188 "al r10 r10 0x02ac0000", 2189 "al_r10_r10_0x02ac0000"}, 2190 {{al, r9, r9, 0x000ff000}, 2191 false, 2192 al, 2193 "al r9 r9 0x000ff000", 2194 "al_r9_r9_0x000ff000"}, 2195 {{al, r13, r7, 0x0002ac00}, 2196 false, 2197 al, 2198 "al r13 r7 0x0002ac00", 2199 "al_r13_r7_0x0002ac00"}, 2200 {{al, r7, r8, 0x00001fe0}, 2201 false, 2202 al, 2203 "al r7 r8 0x00001fe0", 2204 "al_r7_r8_0x00001fe0"}, 2205 {{al, r2, r4, 0x00001560}, 2206 false, 2207 al, 2208 "al r2 r4 0x00001560", 2209 "al_r2_r4_0x00001560"}, 2210 {{al, r13, r7, 0x00156000}, 2211 false, 2212 al, 2213 "al r13 r7 0x00156000", 2214 "al_r13_r7_0x00156000"}, 2215 {{al, r9, r9, 0x000003fc}, 2216 false, 2217 al, 2218 "al r9 r9 0x000003fc", 2219 "al_r9_r9_0x000003fc"}, 2220 {{al, r0, r3, 0x000ab000}, 2221 false, 2222 al, 2223 "al r0 r3 0x000ab000", 2224 "al_r0_r3_0x000ab000"}, 2225 {{al, r10, r12, 0x0000ab00}, 2226 false, 2227 al, 2228 "al r10 r12 0x0000ab00", 2229 "al_r10_r12_0x0000ab00"}, 2230 {{al, r1, r13, 0x00002ac0}, 2231 false, 2232 al, 2233 "al r1 r13 0x00002ac0", 2234 "al_r1_r13_0x00002ac0"}, 2235 {{al, r3, r10, 0x001fe000}, 2236 false, 2237 al, 2238 "al r3 r10 0x001fe000", 2239 "al_r3_r10_0x001fe000"}, 2240 {{al, r4, r12, 0x00ff00ff}, 2241 false, 2242 al, 2243 "al r4 r12 0x00ff00ff", 2244 "al_r4_r12_0x00ff00ff"}, 2245 {{al, r12, r5, 0x003fc000}, 2246 false, 2247 al, 2248 "al r12 r5 0x003fc000", 2249 "al_r12_r5_0x003fc000"}, 2250 {{al, r11, r2, 0x0001fe00}, 2251 false, 2252 al, 2253 "al r11 r2 0x0001fe00", 2254 "al_r11_r2_0x0001fe00"}, 2255 {{al, r8, r6, 0x0007f800}, 2256 false, 2257 al, 2258 "al r8 r6 0x0007f800", 2259 "al_r8_r6_0x0007f800"}, 2260 {{al, r11, r1, 0x000000ff}, 2261 false, 2262 al, 2263 "al r11 r1 0x000000ff", 2264 "al_r11_r1_0x000000ff"}, 2265 {{al, r5, r2, 0x007f8000}, 2266 false, 2267 al, 2268 "al r5 r2 0x007f8000", 2269 "al_r5_r2_0x007f8000"}, 2270 {{al, r8, r10, 0xab000000}, 2271 false, 2272 al, 2273 "al r8 r10 0xab000000", 2274 "al_r8_r10_0xab000000"}, 2275 {{al, r10, r3, 0x000ff000}, 2276 false, 2277 al, 2278 "al r10 r3 0x000ff000", 2279 "al_r10_r3_0x000ff000"}, 2280 {{al, r6, r0, 0x00ff0000}, 2281 false, 2282 al, 2283 "al r6 r0 0x00ff0000", 2284 "al_r6_r0_0x00ff0000"}, 2285 {{al, r7, r14, 0x0ff00000}, 2286 false, 2287 al, 2288 "al r7 r14 0x0ff00000", 2289 "al_r7_r14_0x0ff00000"}, 2290 {{al, r8, r3, 0x00001560}, 2291 false, 2292 al, 2293 "al r8 r3 0x00001560", 2294 "al_r8_r3_0x00001560"}, 2295 {{al, r13, r9, 0x00000558}, 2296 false, 2297 al, 2298 "al r13 r9 0x00000558", 2299 "al_r13_r9_0x00000558"}, 2300 {{al, r8, r7, 0x00001fe0}, 2301 false, 2302 al, 2303 "al r8 r7 0x00001fe0", 2304 "al_r8_r7_0x00001fe0"}, 2305 {{al, r13, r3, 0x0003fc00}, 2306 false, 2307 al, 2308 "al r13 r3 0x0003fc00", 2309 "al_r13_r3_0x0003fc00"}, 2310 {{al, r4, r14, 0x000000ab}, 2311 false, 2312 al, 2313 "al r4 r14 0x000000ab", 2314 "al_r4_r14_0x000000ab"}, 2315 {{al, r14, r7, 0x000000ab}, 2316 false, 2317 al, 2318 "al r14 r7 0x000000ab", 2319 "al_r14_r7_0x000000ab"}, 2320 {{al, r11, r9, 0x00558000}, 2321 false, 2322 al, 2323 "al r11 r9 0x00558000", 2324 "al_r11_r9_0x00558000"}, 2325 {{al, r3, r10, 0x0000ff00}, 2326 false, 2327 al, 2328 "al r3 r10 0x0000ff00", 2329 "al_r3_r10_0x0000ff00"}, 2330 {{al, r4, r12, 0x003fc000}, 2331 false, 2332 al, 2333 "al r4 r12 0x003fc000", 2334 "al_r4_r12_0x003fc000"}, 2335 {{al, r11, r1, 0x002ac000}, 2336 false, 2337 al, 2338 "al r11 r1 0x002ac000", 2339 "al_r11_r1_0x002ac000"}, 2340 {{al, r12, r0, 0x7f800000}, 2341 false, 2342 al, 2343 "al r12 r0 0x7f800000", 2344 "al_r12_r0_0x7f800000"}, 2345 {{al, r3, r9, 0x00003fc0}, 2346 false, 2347 al, 2348 "al r3 r9 0x00003fc0", 2349 "al_r3_r9_0x00003fc0"}, 2350 {{al, r6, r6, 0x0ff00000}, 2351 false, 2352 al, 2353 "al r6 r6 0x0ff00000", 2354 "al_r6_r6_0x0ff00000"}, 2355 {{al, r1, r11, 0xff000000}, 2356 false, 2357 al, 2358 "al r1 r11 0xff000000", 2359 "al_r1_r11_0xff000000"}, 2360 {{al, r2, r10, 0x0007f800}, 2361 false, 2362 al, 2363 "al r2 r10 0x0007f800", 2364 "al_r2_r10_0x0007f800"}, 2365 {{al, r12, r10, 0x000002ac}, 2366 false, 2367 al, 2368 "al r12 r10 0x000002ac", 2369 "al_r12_r10_0x000002ac"}, 2370 {{al, r10, r8, 0x000003fc}, 2371 false, 2372 al, 2373 "al r10 r8 0x000003fc", 2374 "al_r10_r8_0x000003fc"}, 2375 {{al, r9, r0, 0x55800000}, 2376 false, 2377 al, 2378 "al r9 r0 0x55800000", 2379 "al_r9_r0_0x55800000"}, 2380 {{al, r8, r7, 0x1fe00000}, 2381 false, 2382 al, 2383 "al r8 r7 0x1fe00000", 2384 "al_r8_r7_0x1fe00000"}, 2385 {{al, r4, r0, 0x15600000}, 2386 false, 2387 al, 2388 "al r4 r0 0x15600000", 2389 "al_r4_r0_0x15600000"}, 2390 {{al, r4, r0, 0xff00ff00}, 2391 false, 2392 al, 2393 "al r4 r0 0xff00ff00", 2394 "al_r4_r0_0xff00ff00"}, 2395 {{al, r1, r14, 0x00007f80}, 2396 false, 2397 al, 2398 "al r1 r14 0x00007f80", 2399 "al_r1_r14_0x00007f80"}, 2400 {{al, r7, r3, 0x00ff00ff}, 2401 false, 2402 al, 2403 "al r7 r3 0x00ff00ff", 2404 "al_r7_r3_0x00ff00ff"}, 2405 {{al, r10, r2, 0x00001560}, 2406 false, 2407 al, 2408 "al r10 r2 0x00001560", 2409 "al_r10_r2_0x00001560"}, 2410 {{al, r0, r14, 0xabababab}, 2411 false, 2412 al, 2413 "al r0 r14 0xabababab", 2414 "al_r0_r14_0xabababab"}, 2415 {{al, r3, r4, 0x007f8000}, 2416 false, 2417 al, 2418 "al r3 r4 0x007f8000", 2419 "al_r3_r4_0x007f8000"}, 2420 {{al, r0, r2, 0x003fc000}, 2421 false, 2422 al, 2423 "al r0 r2 0x003fc000", 2424 "al_r0_r2_0x003fc000"}, 2425 {{al, r13, r6, 0x0002ac00}, 2426 false, 2427 al, 2428 "al r13 r6 0x0002ac00", 2429 "al_r13_r6_0x0002ac00"}, 2430 {{al, r11, r5, 0x00001fe0}, 2431 false, 2432 al, 2433 "al r11 r5 0x00001fe0", 2434 "al_r11_r5_0x00001fe0"}, 2435 {{al, r1, r13, 0x00005580}, 2436 false, 2437 al, 2438 "al r1 r13 0x00005580", 2439 "al_r1_r13_0x00005580"}, 2440 {{al, r13, r8, 0x000007f8}, 2441 false, 2442 al, 2443 "al r13 r8 0x000007f8", 2444 "al_r13_r8_0x000007f8"}, 2445 {{al, r6, r4, 0x0ab00000}, 2446 false, 2447 al, 2448 "al r6 r4 0x0ab00000", 2449 "al_r6_r4_0x0ab00000"}, 2450 {{al, r14, r10, 0x1fe00000}, 2451 false, 2452 al, 2453 "al r14 r10 0x1fe00000", 2454 "al_r14_r10_0x1fe00000"}, 2455 {{al, r7, r6, 0xff00ff00}, 2456 false, 2457 al, 2458 "al r7 r6 0xff00ff00", 2459 "al_r7_r6_0xff00ff00"}, 2460 {{al, r11, r5, 0xffffffff}, 2461 false, 2462 al, 2463 "al r11 r5 0xffffffff", 2464 "al_r11_r5_0xffffffff"}, 2465 {{al, r0, r12, 0xffffffff}, 2466 false, 2467 al, 2468 "al r0 r12 0xffffffff", 2469 "al_r0_r12_0xffffffff"}, 2470 {{al, r12, r2, 0x15600000}, 2471 false, 2472 al, 2473 "al r12 r2 0x15600000", 2474 "al_r12_r2_0x15600000"}, 2475 {{al, r3, r12, 0x000ff000}, 2476 false, 2477 al, 2478 "al r3 r12 0x000ff000", 2479 "al_r3_r12_0x000ff000"}, 2480 {{al, r6, r8, 0x00055800}, 2481 false, 2482 al, 2483 "al r6 r8 0x00055800", 2484 "al_r6_r8_0x00055800"}, 2485 {{al, r12, r7, 0x05580000}, 2486 false, 2487 al, 2488 "al r12 r7 0x05580000", 2489 "al_r12_r7_0x05580000"}, 2490 {{al, r8, r5, 0x007f8000}, 2491 false, 2492 al, 2493 "al r8 r5 0x007f8000", 2494 "al_r8_r5_0x007f8000"}, 2495 {{al, r4, r1, 0x000ab000}, 2496 false, 2497 al, 2498 "al r4 r1 0x000ab000", 2499 "al_r4_r1_0x000ab000"}, 2500 {{al, r13, r12, 0x02ac0000}, 2501 false, 2502 al, 2503 "al r13 r12 0x02ac0000", 2504 "al_r13_r12_0x02ac0000"}, 2505 {{al, r9, r8, 0x000000ff}, 2506 false, 2507 al, 2508 "al r9 r8 0x000000ff", 2509 "al_r9_r8_0x000000ff"}, 2510 {{al, r1, r11, 0x00005580}, 2511 false, 2512 al, 2513 "al r1 r11 0x00005580", 2514 "al_r1_r11_0x00005580"}, 2515 {{al, r10, r12, 0x02ac0000}, 2516 false, 2517 al, 2518 "al r10 r12 0x02ac0000", 2519 "al_r10_r12_0x02ac0000"}, 2520 {{al, r7, r9, 0x00ab00ab}, 2521 false, 2522 al, 2523 "al r7 r9 0x00ab00ab", 2524 "al_r7_r9_0x00ab00ab"}, 2525 {{al, r0, r5, 0x0000ab00}, 2526 false, 2527 al, 2528 "al r0 r5 0x0000ab00", 2529 "al_r0_r5_0x0000ab00"}, 2530 {{al, r13, r9, 0x00558000}, 2531 false, 2532 al, 2533 "al r13 r9 0x00558000", 2534 "al_r13_r9_0x00558000"}, 2535 {{al, r0, r1, 0x002ac000}, 2536 false, 2537 al, 2538 "al r0 r1 0x002ac000", 2539 "al_r0_r1_0x002ac000"}, 2540 {{al, r14, r1, 0x00000ab0}, 2541 false, 2542 al, 2543 "al r14 r1 0x00000ab0", 2544 "al_r14_r1_0x00000ab0"}, 2545 {{al, r2, r2, 0x00000558}, 2546 false, 2547 al, 2548 "al r2 r2 0x00000558", 2549 "al_r2_r2_0x00000558"}, 2550 {{al, r10, r13, 0x00ab00ab}, 2551 false, 2552 al, 2553 "al r10 r13 0x00ab00ab", 2554 "al_r10_r13_0x00ab00ab"}, 2555 {{al, r4, r6, 0x00001560}, 2556 false, 2557 al, 2558 "al r4 r6 0x00001560", 2559 "al_r4_r6_0x00001560"}, 2560 {{al, r10, r0, 0x00156000}, 2561 false, 2562 al, 2563 "al r10 r0 0x00156000", 2564 "al_r10_r0_0x00156000"}, 2565 {{al, r10, r13, 0x00156000}, 2566 false, 2567 al, 2568 "al r10 r13 0x00156000", 2569 "al_r10_r13_0x00156000"}, 2570 {{al, r11, r2, 0x001fe000}, 2571 false, 2572 al, 2573 "al r11 r2 0x001fe000", 2574 "al_r11_r2_0x001fe000"}, 2575 {{al, r4, r5, 0x2ac00000}, 2576 false, 2577 al, 2578 "al r4 r5 0x2ac00000", 2579 "al_r4_r5_0x2ac00000"}, 2580 {{al, r8, r8, 0x02ac0000}, 2581 false, 2582 al, 2583 "al r8 r8 0x02ac0000", 2584 "al_r8_r8_0x02ac0000"}, 2585 {{al, r9, r1, 0x7f800000}, 2586 false, 2587 al, 2588 "al r9 r1 0x7f800000", 2589 "al_r9_r1_0x7f800000"}, 2590 {{al, r8, r9, 0xff00ff00}, 2591 false, 2592 al, 2593 "al r8 r9 0xff00ff00", 2594 "al_r8_r9_0xff00ff00"}, 2595 {{al, r12, r7, 0x00ff00ff}, 2596 false, 2597 al, 2598 "al r12 r7 0x00ff00ff", 2599 "al_r12_r7_0x00ff00ff"}, 2600 {{al, r9, r10, 0x00156000}, 2601 false, 2602 al, 2603 "al r9 r10 0x00156000", 2604 "al_r9_r10_0x00156000"}}; 2605 2606// These headers each contain an array of `TestResult` with the reference output 2607// values. The reference arrays are names `kReference{mnemonic}`. 2608#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-adc.h" 2609#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-adcs.h" 2610#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-add.h" 2611#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-adds.h" 2612#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-and.h" 2613#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-ands.h" 2614#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-bic.h" 2615#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-bics.h" 2616#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-eor.h" 2617#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-eors.h" 2618#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-orn.h" 2619#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-orns.h" 2620#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-orr.h" 2621#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-orrs.h" 2622#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-rsb.h" 2623#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-rsbs.h" 2624#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-sbc.h" 2625#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-sbcs.h" 2626#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-sub.h" 2627#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-subs.h" 2628 2629 2630// The maximum number of errors to report in detail for each test. 2631static const unsigned kErrorReportLimit = 8; 2632 2633typedef void (MacroAssembler::*Fn)(Condition cond, 2634 Register rd, 2635 Register rn, 2636 const Operand& op); 2637 2638static void TestHelper(Fn instruction, 2639 const char* mnemonic, 2640 const TestResult reference[]) { 2641 unsigned total_error_count = 0; 2642 MacroAssembler masm(BUF_SIZE); 2643 2644 masm.UseT32(); 2645 2646 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) { 2647 // Values to pass to the macro-assembler. 2648 Condition cond = kTests[i].operands.cond; 2649 Register rd = kTests[i].operands.rd; 2650 Register rn = kTests[i].operands.rn; 2651 uint32_t immediate = kTests[i].operands.immediate; 2652 Operand op(immediate); 2653 2654 int32_t start = masm.GetCursorOffset(); 2655 { 2656 // We never generate more that 4 bytes, as IT instructions are only 2657 // allowed for narrow encodings. 2658 AssemblerAccurateScope scope(&masm, 2659 4, 2660 AssemblerAccurateScope::kMaximumSize); 2661 if (kTests[i].in_it_block) { 2662 masm.it(kTests[i].it_condition); 2663 } 2664 (masm.*instruction)(cond, rd, rn, op); 2665 } 2666 int32_t end = masm.GetCursorOffset(); 2667 2668 const byte* result_ptr = 2669 masm.GetBuffer()->GetOffsetAddress<const byte*>(start); 2670 VIXL_ASSERT(start < end); 2671 uint32_t result_size = end - start; 2672 2673 if (Test::generate_test_trace()) { 2674 // Print the result bytes. 2675 printf("static const byte kInstruction_%s_%s[] = {\n", 2676 mnemonic, 2677 kTests[i].identifier); 2678 for (uint32_t j = 0; j < result_size; j++) { 2679 if (j == 0) { 2680 printf(" 0x%02" PRIx8, result_ptr[j]); 2681 } else { 2682 printf(", 0x%02" PRIx8, result_ptr[j]); 2683 } 2684 } 2685 // This comment is meant to be used by external tools to validate 2686 // the encoding. We can parse the comment to figure out what 2687 // instruction this corresponds to. 2688 if (kTests[i].in_it_block) { 2689 printf(" // It %s; %s %s\n};\n", 2690 kTests[i].it_condition.GetName(), 2691 mnemonic, 2692 kTests[i].operands_description); 2693 } else { 2694 printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description); 2695 } 2696 } else { 2697 // Check we've emitted the exact same encoding as present in the 2698 // trace file. Only print up to `kErrorReportLimit` errors. 2699 if (((result_size != reference[i].size) || 2700 (memcmp(result_ptr, reference[i].encoding, reference[i].size) != 2701 0)) && 2702 (++total_error_count <= kErrorReportLimit)) { 2703 printf("Error when testing \"%s\" with operands \"%s\":\n", 2704 mnemonic, 2705 kTests[i].operands_description); 2706 printf(" Expected: "); 2707 for (uint32_t j = 0; j < reference[i].size; j++) { 2708 if (j == 0) { 2709 printf("0x%02" PRIx8, reference[i].encoding[j]); 2710 } else { 2711 printf(", 0x%02" PRIx8, reference[i].encoding[j]); 2712 } 2713 } 2714 printf("\n"); 2715 printf(" Found: "); 2716 for (uint32_t j = 0; j < result_size; j++) { 2717 if (j == 0) { 2718 printf("0x%02" PRIx8, result_ptr[j]); 2719 } else { 2720 printf(", 0x%02" PRIx8, result_ptr[j]); 2721 } 2722 } 2723 printf("\n"); 2724 } 2725 } 2726 } 2727 2728 masm.FinalizeCode(); 2729 2730 if (Test::generate_test_trace()) { 2731 // Finalize the trace file by writing the final `TestResult` array 2732 // which links all generated instruction encodings. 2733 printf("static const TestResult kReference%s[] = {\n", mnemonic); 2734 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) { 2735 printf(" {\n"); 2736 printf(" ARRAY_SIZE(kInstruction_%s_%s),\n", 2737 mnemonic, 2738 kTests[i].identifier); 2739 printf(" kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier); 2740 printf(" },\n"); 2741 } 2742 printf("};\n"); 2743 } else { 2744 if (total_error_count > kErrorReportLimit) { 2745 printf("%u other errors follow.\n", 2746 total_error_count - kErrorReportLimit); 2747 } 2748 // Crash if the test failed. 2749 VIXL_CHECK(total_error_count == 0); 2750 } 2751} 2752 2753// Instantiate tests for each instruction in the list. 2754#define TEST(mnemonic) \ 2755 static void Test_##mnemonic() { \ 2756 TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic); \ 2757 } \ 2758 static Test test_##mnemonic( \ 2759 "AARCH32_ASSEMBLER_COND_RD_RN_OPERAND_CONST_T32_" #mnemonic, \ 2760 &Test_##mnemonic); 2761FOREACH_INSTRUCTION(TEST) 2762#undef TEST 2763 2764} // aarch32 2765} // vixl 2766