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(cmn) \ 53 M(cmp) \ 54 M(teq) \ 55 M(tst) 56 57 58 // The following definitions are defined again in each generated test, therefore 59 // we need to place them in an anomymous namespace. It expresses that they are 60 // local to this file only, and the compiler is not allowed to share these types 61 // across test files during template instantiation. Specifically, `Operands` has 62 // various layouts across generated tests so it absolutely cannot be shared. 63 64 #ifdef VIXL_INCLUDE_TARGET_A32 65 namespace { 66 67 // Values to be passed to the assembler to produce the instruction under test. 68 struct Operands { 69 Condition cond; 70 Register rd; 71 uint32_t immediate; 72 }; 73 74 // This structure contains all data needed to test one specific 75 // instruction. 76 struct TestData { 77 // The `operands` field represents what to pass to the assembler to 78 // produce the instruction. 79 Operands operands; 80 // True if we need to generate an IT instruction for this test to be valid. 81 bool in_it_block; 82 // The condition to give the IT instruction, this will be set to "al" by 83 // default. 84 Condition it_condition; 85 // Description of the operands, used for error reporting. 86 const char* operands_description; 87 // Unique identifier, used for generating traces. 88 const char* identifier; 89 }; 90 91 struct TestResult { 92 size_t size; 93 const byte* encoding; 94 }; 95 96 // Each element of this array produce one instruction encoding. 97 const TestData kTests[] = 98 {{{ls, r10, 0x00ab0000}, 99 false, 100 al, 101 "ls r10 0x00ab0000", 102 "ls_r10_" 103 "0x00ab0000"}, 104 {{ls, r13, 0xf000000f}, 105 false, 106 al, 107 "ls r13 0xf000000f", 108 "ls_r13_" 109 "0xf000000f"}, 110 {{pl, r4, 0x00003fc0}, false, al, "pl r4 0x00003fc0", "pl_r4_0x00003fc0"}, 111 {{ne, r15, 0x00ab0000}, 112 false, 113 al, 114 "ne r15 0x00ab0000", 115 "ne_r15_" 116 "0x00ab0000"}, 117 {{lt, r14, 0x002ac000}, 118 false, 119 al, 120 "lt r14 0x002ac000", 121 "lt_r14_" 122 "0x002ac000"}, 123 {{eq, r15, 0x000000ab}, 124 false, 125 al, 126 "eq r15 0x000000ab", 127 "eq_r15_" 128 "0x000000ab"}, 129 {{al, r6, 0x002ac000}, false, al, "al r6 0x002ac000", "al_r6_0x002ac000"}, 130 {{pl, r2, 0x0002ac00}, false, al, "pl r2 0x0002ac00", "pl_r2_0x0002ac00"}, 131 {{mi, r8, 0x00000000}, false, al, "mi r8 0x00000000", "mi_r8_0x00000000"}, 132 {{pl, r13, 0x02ac0000}, 133 false, 134 al, 135 "pl r13 0x02ac0000", 136 "pl_r13_" 137 "0x02ac0000"}, 138 {{ge, r9, 0xac000002}, false, al, "ge r9 0xac000002", "ge_r9_0xac000002"}, 139 {{ne, r3, 0x000003fc}, false, al, "ne r3 0x000003fc", "ne_r3_0x000003fc"}, 140 {{pl, r10, 0xf000000f}, 141 false, 142 al, 143 "pl r10 0xf000000f", 144 "pl_r10_" 145 "0xf000000f"}, 146 {{cc, r0, 0x00003fc0}, false, al, "cc r0 0x00003fc0", "cc_r0_0x00003fc0"}, 147 {{gt, r6, 0x002ac000}, false, al, "gt r6 0x002ac000", "gt_r6_0x002ac000"}, 148 {{cs, r1, 0x00ff0000}, false, al, "cs r1 0x00ff0000", "cs_r1_0x00ff0000"}, 149 {{lt, r8, 0x000002ac}, false, al, "lt r8 0x000002ac", "lt_r8_0x000002ac"}, 150 {{vc, r4, 0x2ac00000}, false, al, "vc r4 0x2ac00000", "vc_r4_0x2ac00000"}, 151 {{al, r11, 0x00003fc0}, 152 false, 153 al, 154 "al r11 0x00003fc0", 155 "al_r11_" 156 "0x00003fc0"}, 157 {{lt, r9, 0x000000ab}, false, al, "lt r9 0x000000ab", "lt_r9_0x000000ab"}, 158 {{le, r15, 0x0000ff00}, 159 false, 160 al, 161 "le r15 0x0000ff00", 162 "le_r15_" 163 "0x0000ff00"}, 164 {{vc, r9, 0xff000000}, false, al, "vc r9 0xff000000", "vc_r9_0xff000000"}, 165 {{ge, r0, 0x0ff00000}, false, al, "ge r0 0x0ff00000", "ge_r0_0x0ff00000"}, 166 {{vc, r1, 0x00ff0000}, false, al, "vc r1 0x00ff0000", "vc_r1_0x00ff0000"}, 167 {{vs, r12, 0x00000ff0}, 168 false, 169 al, 170 "vs r12 0x00000ff0", 171 "vs_r12_" 172 "0x00000ff0"}, 173 {{pl, r13, 0x003fc000}, 174 false, 175 al, 176 "pl r13 0x003fc000", 177 "pl_r13_" 178 "0x003fc000"}, 179 {{eq, r4, 0xff000000}, false, al, "eq r4 0xff000000", "eq_r4_0xff000000"}, 180 {{eq, r12, 0xac000002}, 181 false, 182 al, 183 "eq r12 0xac000002", 184 "eq_r12_" 185 "0xac000002"}, 186 {{al, r11, 0x000000ab}, 187 false, 188 al, 189 "al r11 0x000000ab", 190 "al_r11_" 191 "0x000000ab"}, 192 {{ge, r10, 0x00ff0000}, 193 false, 194 al, 195 "ge r10 0x00ff0000", 196 "ge_r10_" 197 "0x00ff0000"}, 198 {{vs, r7, 0x0002ac00}, false, al, "vs r7 0x0002ac00", "vs_r7_0x0002ac00"}, 199 {{le, r7, 0x002ac000}, false, al, "le r7 0x002ac000", "le_r7_0x002ac000"}, 200 {{vc, r9, 0x000003fc}, false, al, "vc r9 0x000003fc", "vc_r9_0x000003fc"}, 201 {{vs, r14, 0x002ac000}, 202 false, 203 al, 204 "vs r14 0x002ac000", 205 "vs_r14_" 206 "0x002ac000"}, 207 {{vs, r1, 0x000003fc}, false, al, "vs r1 0x000003fc", "vs_r1_0x000003fc"}, 208 {{le, r13, 0x3fc00000}, 209 false, 210 al, 211 "le r13 0x3fc00000", 212 "le_r13_" 213 "0x3fc00000"}, 214 {{ne, r9, 0x0002ac00}, false, al, "ne r9 0x0002ac00", "ne_r9_0x0002ac00"}, 215 {{al, r0, 0x00ab0000}, false, al, "al r0 0x00ab0000", "al_r0_0x00ab0000"}, 216 {{hi, r5, 0xff000000}, false, al, "hi r5 0xff000000", "hi_r5_0xff000000"}, 217 {{hi, r14, 0x000000ab}, 218 false, 219 al, 220 "hi r14 0x000000ab", 221 "hi_r14_" 222 "0x000000ab"}, 223 {{hi, r14, 0x000003fc}, 224 false, 225 al, 226 "hi r14 0x000003fc", 227 "hi_r14_" 228 "0x000003fc"}, 229 {{mi, r14, 0x03fc0000}, 230 false, 231 al, 232 "mi r14 0x03fc0000", 233 "mi_r14_" 234 "0x03fc0000"}, 235 {{mi, r8, 0x000000ff}, false, al, "mi r8 0x000000ff", "mi_r8_0x000000ff"}, 236 {{gt, r6, 0x000ab000}, false, al, "gt r6 0x000ab000", "gt_r6_0x000ab000"}, 237 {{mi, r12, 0x0ff00000}, 238 false, 239 al, 240 "mi r12 0x0ff00000", 241 "mi_r12_" 242 "0x0ff00000"}, 243 {{vs, r3, 0xff000000}, false, al, "vs r3 0xff000000", "vs_r3_0xff000000"}, 244 {{vc, r7, 0x00ab0000}, false, al, "vc r7 0x00ab0000", "vc_r7_0x00ab0000"}, 245 {{hi, r6, 0x03fc0000}, false, al, "hi r6 0x03fc0000", "hi_r6_0x03fc0000"}, 246 {{ls, r5, 0x00ab0000}, false, al, "ls r5 0x00ab0000", "ls_r5_0x00ab0000"}, 247 {{ls, r4, 0x000002ac}, false, al, "ls r4 0x000002ac", "ls_r4_0x000002ac"}, 248 {{le, r13, 0x03fc0000}, 249 false, 250 al, 251 "le r13 0x03fc0000", 252 "le_r13_" 253 "0x03fc0000"}, 254 {{le, r15, 0x002ac000}, 255 false, 256 al, 257 "le r15 0x002ac000", 258 "le_r15_" 259 "0x002ac000"}, 260 {{pl, r6, 0xff000000}, false, al, "pl r6 0xff000000", "pl_r6_0xff000000"}, 261 {{gt, r7, 0x00000ab0}, false, al, "gt r7 0x00000ab0", "gt_r7_0x00000ab0"}, 262 {{hi, r3, 0x2ac00000}, false, al, "hi r3 0x2ac00000", "hi_r3_0x2ac00000"}, 263 {{gt, r15, 0x00000000}, 264 false, 265 al, 266 "gt r15 0x00000000", 267 "gt_r15_" 268 "0x00000000"}, 269 {{gt, r1, 0x002ac000}, false, al, "gt r1 0x002ac000", "gt_r1_0x002ac000"}, 270 {{hi, r2, 0x0000ff00}, false, al, "hi r2 0x0000ff00", "hi_r2_0x0000ff00"}, 271 {{pl, r10, 0x03fc0000}, 272 false, 273 al, 274 "pl r10 0x03fc0000", 275 "pl_r10_" 276 "0x03fc0000"}, 277 {{gt, r10, 0xb000000a}, 278 false, 279 al, 280 "gt r10 0xb000000a", 281 "gt_r10_" 282 "0xb000000a"}, 283 {{ge, r10, 0x002ac000}, 284 false, 285 al, 286 "ge r10 0x002ac000", 287 "ge_r10_" 288 "0x002ac000"}, 289 {{al, r4, 0x0ab00000}, false, al, "al r4 0x0ab00000", "al_r4_0x0ab00000"}, 290 {{ne, r12, 0x00000000}, 291 false, 292 al, 293 "ne r12 0x00000000", 294 "ne_r12_" 295 "0x00000000"}, 296 {{cs, r5, 0x00003fc0}, false, al, "cs r5 0x00003fc0", "cs_r5_0x00003fc0"}, 297 {{cc, r6, 0x000000ff}, false, al, "cc r6 0x000000ff", "cc_r6_0x000000ff"}, 298 {{hi, r14, 0x03fc0000}, 299 false, 300 al, 301 "hi r14 0x03fc0000", 302 "hi_r14_" 303 "0x03fc0000"}, 304 {{hi, r3, 0xab000000}, false, al, "hi r3 0xab000000", "hi_r3_0xab000000"}, 305 {{lt, r2, 0x000ff000}, false, al, "lt r2 0x000ff000", "lt_r2_0x000ff000"}, 306 {{gt, r3, 0x00ff0000}, false, al, "gt r3 0x00ff0000", "gt_r3_0x00ff0000"}, 307 {{le, r14, 0x0ab00000}, 308 false, 309 al, 310 "le r14 0x0ab00000", 311 "le_r14_" 312 "0x0ab00000"}, 313 {{cc, r13, 0x03fc0000}, 314 false, 315 al, 316 "cc r13 0x03fc0000", 317 "cc_r13_" 318 "0x03fc0000"}, 319 {{gt, r6, 0xb000000a}, false, al, "gt r6 0xb000000a", "gt_r6_0xb000000a"}, 320 {{pl, r3, 0x2ac00000}, false, al, "pl r3 0x2ac00000", "pl_r3_0x2ac00000"}, 321 {{mi, r15, 0x000000ff}, 322 false, 323 al, 324 "mi r15 0x000000ff", 325 "mi_r15_" 326 "0x000000ff"}, 327 {{gt, r4, 0x00000ff0}, false, al, "gt r4 0x00000ff0", "gt_r4_0x00000ff0"}, 328 {{ne, r4, 0x000003fc}, false, al, "ne r4 0x000003fc", "ne_r4_0x000003fc"}, 329 {{ne, r5, 0x00ff0000}, false, al, "ne r5 0x00ff0000", "ne_r5_0x00ff0000"}, 330 {{ge, r7, 0x000003fc}, false, al, "ge r7 0x000003fc", "ge_r7_0x000003fc"}, 331 {{vs, r5, 0x00000000}, false, al, "vs r5 0x00000000", "vs_r5_0x00000000"}, 332 {{vs, r6, 0x2ac00000}, false, al, "vs r6 0x2ac00000", "vs_r6_0x2ac00000"}, 333 {{mi, r1, 0x3fc00000}, false, al, "mi r1 0x3fc00000", "mi_r1_0x3fc00000"}, 334 {{gt, r8, 0xc000002a}, false, al, "gt r8 0xc000002a", "gt_r8_0xc000002a"}, 335 {{pl, r10, 0x000000ab}, 336 false, 337 al, 338 "pl r10 0x000000ab", 339 "pl_r10_" 340 "0x000000ab"}, 341 {{mi, r6, 0xab000000}, false, al, "mi r6 0xab000000", "mi_r6_0xab000000"}, 342 {{ls, r12, 0x3fc00000}, 343 false, 344 al, 345 "ls r12 0x3fc00000", 346 "ls_r12_" 347 "0x3fc00000"}, 348 {{vs, r13, 0x03fc0000}, 349 false, 350 al, 351 "vs r13 0x03fc0000", 352 "vs_r13_" 353 "0x03fc0000"}, 354 {{eq, r8, 0x00000ab0}, false, al, "eq r8 0x00000ab0", "eq_r8_0x00000ab0"}, 355 {{gt, r6, 0x000000ff}, false, al, "gt r6 0x000000ff", "gt_r6_0x000000ff"}, 356 {{vs, r5, 0x000ab000}, false, al, "vs r5 0x000ab000", "vs_r5_0x000ab000"}, 357 {{mi, r1, 0x2ac00000}, false, al, "mi r1 0x2ac00000", "mi_r1_0x2ac00000"}, 358 {{vs, r6, 0x00003fc0}, false, al, "vs r6 0x00003fc0", "vs_r6_0x00003fc0"}, 359 {{gt, r6, 0x000002ac}, false, al, "gt r6 0x000002ac", "gt_r6_0x000002ac"}, 360 {{eq, r2, 0x00000000}, false, al, "eq r2 0x00000000", "eq_r2_0x00000000"}, 361 {{eq, r10, 0xc000003f}, 362 false, 363 al, 364 "eq r10 0xc000003f", 365 "eq_r10_" 366 "0xc000003f"}, 367 {{mi, r7, 0x00ab0000}, false, al, "mi r7 0x00ab0000", "mi_r7_0x00ab0000"}, 368 {{cc, r7, 0x2ac00000}, false, al, "cc r7 0x2ac00000", "cc_r7_0x2ac00000"}, 369 {{pl, r4, 0x00ab0000}, false, al, "pl r4 0x00ab0000", "pl_r4_0x00ab0000"}, 370 {{ne, r15, 0x00000ff0}, 371 false, 372 al, 373 "ne r15 0x00000ff0", 374 "ne_r15_" 375 "0x00000ff0"}, 376 {{al, r6, 0x02ac0000}, false, al, "al r6 0x02ac0000", "al_r6_0x02ac0000"}, 377 {{pl, r6, 0x000002ac}, false, al, "pl r6 0x000002ac", "pl_r6_0x000002ac"}, 378 {{ne, r14, 0x00ff0000}, 379 false, 380 al, 381 "ne r14 0x00ff0000", 382 "ne_r14_" 383 "0x00ff0000"}, 384 {{ne, r5, 0x0003fc00}, false, al, "ne r5 0x0003fc00", "ne_r5_0x0003fc00"}, 385 {{pl, r6, 0x00000ab0}, false, al, "pl r6 0x00000ab0", "pl_r6_0x00000ab0"}, 386 {{eq, r10, 0x00002ac0}, 387 false, 388 al, 389 "eq r10 0x00002ac0", 390 "eq_r10_" 391 "0x00002ac0"}, 392 {{mi, r4, 0x00000ab0}, false, al, "mi r4 0x00000ab0", "mi_r4_0x00000ab0"}, 393 {{vc, r5, 0x000ab000}, false, al, "vc r5 0x000ab000", "vc_r5_0x000ab000"}, 394 {{ge, r0, 0x02ac0000}, false, al, "ge r0 0x02ac0000", "ge_r0_0x02ac0000"}, 395 {{pl, r5, 0x000002ac}, false, al, "pl r5 0x000002ac", "pl_r5_0x000002ac"}, 396 {{ge, r13, 0x00000ab0}, 397 false, 398 al, 399 "ge r13 0x00000ab0", 400 "ge_r13_" 401 "0x00000ab0"}, 402 {{eq, r2, 0x03fc0000}, false, al, "eq r2 0x03fc0000", "eq_r2_0x03fc0000"}, 403 {{lt, r11, 0x00000ab0}, 404 false, 405 al, 406 "lt r11 0x00000ab0", 407 "lt_r11_" 408 "0x00000ab0"}, 409 {{ge, r6, 0x00000000}, false, al, "ge r6 0x00000000", "ge_r6_0x00000000"}, 410 {{gt, r2, 0xac000002}, false, al, "gt r2 0xac000002", "gt_r2_0xac000002"}, 411 {{le, r15, 0x000000ab}, 412 false, 413 al, 414 "le r15 0x000000ab", 415 "le_r15_" 416 "0x000000ab"}, 417 {{cc, r4, 0x00000ff0}, false, al, "cc r4 0x00000ff0", "cc_r4_0x00000ff0"}, 418 {{pl, r10, 0x02ac0000}, 419 false, 420 al, 421 "pl r10 0x02ac0000", 422 "pl_r10_" 423 "0x02ac0000"}, 424 {{gt, r9, 0x00000000}, false, al, "gt r9 0x00000000", "gt_r9_0x00000000"}, 425 {{vs, r8, 0x000000ff}, false, al, "vs r8 0x000000ff", "vs_r8_0x000000ff"}, 426 {{gt, r14, 0x0002ac00}, 427 false, 428 al, 429 "gt r14 0x0002ac00", 430 "gt_r14_" 431 "0x0002ac00"}, 432 {{vs, r14, 0x00002ac0}, 433 false, 434 al, 435 "vs r14 0x00002ac0", 436 "vs_r14_" 437 "0x00002ac0"}, 438 {{ge, r12, 0x00000000}, 439 false, 440 al, 441 "ge r12 0x00000000", 442 "ge_r12_" 443 "0x00000000"}, 444 {{vc, r8, 0xf000000f}, false, al, "vc r8 0xf000000f", "vc_r8_0xf000000f"}, 445 {{cs, r6, 0x00003fc0}, false, al, "cs r6 0x00003fc0", "cs_r6_0x00003fc0"}, 446 {{le, r4, 0x000003fc}, false, al, "le r4 0x000003fc", "le_r4_0x000003fc"}, 447 {{cs, r5, 0x000ff000}, false, al, "cs r5 0x000ff000", "cs_r5_0x000ff000"}, 448 {{eq, r2, 0x0000ff00}, false, al, "eq r2 0x0000ff00", "eq_r2_0x0000ff00"}, 449 {{pl, r10, 0x0ab00000}, 450 false, 451 al, 452 "pl r10 0x0ab00000", 453 "pl_r10_" 454 "0x0ab00000"}, 455 {{le, r11, 0xac000002}, 456 false, 457 al, 458 "le r11 0xac000002", 459 "le_r11_" 460 "0xac000002"}, 461 {{vs, r15, 0x00003fc0}, 462 false, 463 al, 464 "vs r15 0x00003fc0", 465 "vs_r15_" 466 "0x00003fc0"}, 467 {{lt, r2, 0x0002ac00}, false, al, "lt r2 0x0002ac00", "lt_r2_0x0002ac00"}, 468 {{eq, r1, 0x00ab0000}, false, al, "eq r1 0x00ab0000", "eq_r1_0x00ab0000"}, 469 {{cc, r7, 0x03fc0000}, false, al, "cc r7 0x03fc0000", "cc_r7_0x03fc0000"}, 470 {{mi, r6, 0x00000ab0}, false, al, "mi r6 0x00000ab0", "mi_r6_0x00000ab0"}, 471 {{eq, r4, 0x00000ab0}, false, al, "eq r4 0x00000ab0", "eq_r4_0x00000ab0"}, 472 {{ls, r3, 0x0003fc00}, false, al, "ls r3 0x0003fc00", "ls_r3_0x0003fc00"}, 473 {{mi, r6, 0x000ab000}, false, al, "mi r6 0x000ab000", "mi_r6_0x000ab000"}, 474 {{ne, r12, 0x003fc000}, 475 false, 476 al, 477 "ne r12 0x003fc000", 478 "ne_r12_" 479 "0x003fc000"}, 480 {{eq, r11, 0x00ff0000}, 481 false, 482 al, 483 "eq r11 0x00ff0000", 484 "eq_r11_" 485 "0x00ff0000"}, 486 {{cs, r13, 0x00ab0000}, 487 false, 488 al, 489 "cs r13 0x00ab0000", 490 "cs_r13_" 491 "0x00ab0000"}, 492 {{eq, r5, 0x000003fc}, false, al, "eq r5 0x000003fc", "eq_r5_0x000003fc"}, 493 {{vs, r6, 0x0003fc00}, false, al, "vs r6 0x0003fc00", "vs_r6_0x0003fc00"}, 494 {{pl, r8, 0x0ff00000}, false, al, "pl r8 0x0ff00000", "pl_r8_0x0ff00000"}, 495 {{pl, r11, 0x0000ab00}, 496 false, 497 al, 498 "pl r11 0x0000ab00", 499 "pl_r11_" 500 "0x0000ab00"}, 501 {{le, r2, 0xac000002}, false, al, "le r2 0xac000002", "le_r2_0xac000002"}, 502 {{vc, r10, 0x000ff000}, 503 false, 504 al, 505 "vc r10 0x000ff000", 506 "vc_r10_" 507 "0x000ff000"}, 508 {{le, r4, 0x00000ff0}, false, al, "le r4 0x00000ff0", "le_r4_0x00000ff0"}, 509 {{gt, r12, 0x00000ff0}, 510 false, 511 al, 512 "gt r12 0x00000ff0", 513 "gt_r12_" 514 "0x00000ff0"}, 515 {{le, r5, 0x0002ac00}, false, al, "le r5 0x0002ac00", "le_r5_0x0002ac00"}, 516 {{le, r0, 0xac000002}, false, al, "le r0 0xac000002", "le_r0_0xac000002"}, 517 {{vs, r11, 0x0ff00000}, 518 false, 519 al, 520 "vs r11 0x0ff00000", 521 "vs_r11_" 522 "0x0ff00000"}, 523 {{ls, r0, 0x000ab000}, false, al, "ls r0 0x000ab000", "ls_r0_0x000ab000"}, 524 {{ls, r2, 0xf000000f}, false, al, "ls r2 0xf000000f", "ls_r2_0xf000000f"}, 525 {{cs, r3, 0x0ff00000}, false, al, "cs r3 0x0ff00000", "cs_r3_0x0ff00000"}, 526 {{hi, r8, 0x0ff00000}, false, al, "hi r8 0x0ff00000", "hi_r8_0x0ff00000"}, 527 {{gt, r3, 0x00002ac0}, false, al, "gt r3 0x00002ac0", "gt_r3_0x00002ac0"}, 528 {{al, r15, 0xab000000}, 529 false, 530 al, 531 "al r15 0xab000000", 532 "al_r15_" 533 "0xab000000"}, 534 {{eq, r13, 0x000000ab}, 535 false, 536 al, 537 "eq r13 0x000000ab", 538 "eq_r13_" 539 "0x000000ab"}, 540 {{al, r2, 0xc000002a}, false, al, "al r2 0xc000002a", "al_r2_0xc000002a"}, 541 {{eq, r13, 0x03fc0000}, 542 false, 543 al, 544 "eq r13 0x03fc0000", 545 "eq_r13_" 546 "0x03fc0000"}, 547 {{eq, r3, 0x00000ff0}, false, al, "eq r3 0x00000ff0", "eq_r3_0x00000ff0"}, 548 {{hi, r12, 0x00002ac0}, 549 false, 550 al, 551 "hi r12 0x00002ac0", 552 "hi_r12_" 553 "0x00002ac0"}, 554 {{mi, r2, 0x0ff00000}, false, al, "mi r2 0x0ff00000", "mi_r2_0x0ff00000"}, 555 {{ne, r9, 0x003fc000}, false, al, "ne r9 0x003fc000", "ne_r9_0x003fc000"}, 556 {{eq, r14, 0x03fc0000}, 557 false, 558 al, 559 "eq r14 0x03fc0000", 560 "eq_r14_" 561 "0x03fc0000"}, 562 {{cc, r0, 0x002ac000}, false, al, "cc r0 0x002ac000", "cc_r0_0x002ac000"}, 563 {{vc, r14, 0x00000ab0}, 564 false, 565 al, 566 "vc r14 0x00000ab0", 567 "vc_r14_" 568 "0x00000ab0"}, 569 {{mi, r15, 0xf000000f}, 570 false, 571 al, 572 "mi r15 0xf000000f", 573 "mi_r15_" 574 "0xf000000f"}, 575 {{ge, r9, 0x000003fc}, false, al, "ge r9 0x000003fc", "ge_r9_0x000003fc"}, 576 {{vs, r13, 0xac000002}, 577 false, 578 al, 579 "vs r13 0xac000002", 580 "vs_r13_" 581 "0xac000002"}, 582 {{vs, r1, 0x3fc00000}, false, al, "vs r1 0x3fc00000", "vs_r1_0x3fc00000"}, 583 {{eq, r12, 0x00003fc0}, 584 false, 585 al, 586 "eq r12 0x00003fc0", 587 "eq_r12_" 588 "0x00003fc0"}, 589 {{mi, r6, 0xff000000}, false, al, "mi r6 0xff000000", "mi_r6_0xff000000"}, 590 {{ne, r5, 0x000003fc}, false, al, "ne r5 0x000003fc", "ne_r5_0x000003fc"}, 591 {{lt, r8, 0x0ff00000}, false, al, "lt r8 0x0ff00000", "lt_r8_0x0ff00000"}, 592 {{hi, r7, 0x3fc00000}, false, al, "hi r7 0x3fc00000", "hi_r7_0x3fc00000"}, 593 {{ge, r10, 0xac000002}, 594 false, 595 al, 596 "ge r10 0xac000002", 597 "ge_r10_" 598 "0xac000002"}, 599 {{vs, r2, 0x0000ff00}, false, al, "vs r2 0x0000ff00", "vs_r2_0x0000ff00"}, 600 {{al, r6, 0x000000ab}, false, al, "al r6 0x000000ab", "al_r6_0x000000ab"}, 601 {{ge, r7, 0x00ff0000}, false, al, "ge r7 0x00ff0000", "ge_r7_0x00ff0000"}, 602 {{ne, r0, 0x000ff000}, false, al, "ne r0 0x000ff000", "ne_r0_0x000ff000"}, 603 {{mi, r6, 0x000000ab}, false, al, "mi r6 0x000000ab", "mi_r6_0x000000ab"}, 604 {{hi, r1, 0xf000000f}, false, al, "hi r1 0xf000000f", "hi_r1_0xf000000f"}, 605 {{mi, r6, 0x2ac00000}, false, al, "mi r6 0x2ac00000", "mi_r6_0x2ac00000"}, 606 {{vc, r11, 0x000000ff}, 607 false, 608 al, 609 "vc r11 0x000000ff", 610 "vc_r11_" 611 "0x000000ff"}, 612 {{ls, r14, 0x02ac0000}, 613 false, 614 al, 615 "ls r14 0x02ac0000", 616 "ls_r14_" 617 "0x02ac0000"}, 618 {{ge, r5, 0x003fc000}, false, al, "ge r5 0x003fc000", "ge_r5_0x003fc000"}, 619 {{ls, r12, 0x0000ab00}, 620 false, 621 al, 622 "ls r12 0x0000ab00", 623 "ls_r12_" 624 "0x0000ab00"}, 625 {{cc, r15, 0x00000ab0}, 626 false, 627 al, 628 "cc r15 0x00000ab0", 629 "cc_r15_" 630 "0x00000ab0"}, 631 {{vc, r12, 0x0000ab00}, 632 false, 633 al, 634 "vc r12 0x0000ab00", 635 "vc_r12_" 636 "0x0000ab00"}, 637 {{vs, r2, 0xc000002a}, false, al, "vs r2 0xc000002a", "vs_r2_0xc000002a"}, 638 {{lt, r7, 0x0ab00000}, false, al, "lt r7 0x0ab00000", "lt_r7_0x0ab00000"}, 639 {{ls, r6, 0x00000ff0}, false, al, "ls r6 0x00000ff0", "ls_r6_0x00000ff0"}, 640 {{vc, r10, 0x000000ff}, 641 false, 642 al, 643 "vc r10 0x000000ff", 644 "vc_r10_" 645 "0x000000ff"}, 646 {{ls, r4, 0x0000ab00}, false, al, "ls r4 0x0000ab00", "ls_r4_0x0000ab00"}, 647 {{mi, r10, 0x003fc000}, 648 false, 649 al, 650 "mi r10 0x003fc000", 651 "mi_r10_" 652 "0x003fc000"}, 653 {{ls, r1, 0x000002ac}, false, al, "ls r1 0x000002ac", "ls_r1_0x000002ac"}, 654 {{ge, r7, 0xb000000a}, false, al, "ge r7 0xb000000a", "ge_r7_0xb000000a"}, 655 {{gt, r4, 0xf000000f}, false, al, "gt r4 0xf000000f", "gt_r4_0xf000000f"}, 656 {{vc, r8, 0x002ac000}, false, al, "vc r8 0x002ac000", "vc_r8_0x002ac000"}, 657 {{eq, r5, 0x0ab00000}, false, al, "eq r5 0x0ab00000", "eq_r5_0x0ab00000"}, 658 {{gt, r2, 0xf000000f}, false, al, "gt r2 0xf000000f", "gt_r2_0xf000000f"}, 659 {{gt, r6, 0xff000000}, false, al, "gt r6 0xff000000", "gt_r6_0xff000000"}, 660 {{ls, r8, 0x0ab00000}, false, al, "ls r8 0x0ab00000", "ls_r8_0x0ab00000"}, 661 {{vc, r0, 0xb000000a}, false, al, "vc r0 0xb000000a", "vc_r0_0xb000000a"}, 662 {{lt, r6, 0x03fc0000}, false, al, "lt r6 0x03fc0000", "lt_r6_0x03fc0000"}, 663 {{ge, r10, 0x0000ab00}, 664 false, 665 al, 666 "ge r10 0x0000ab00", 667 "ge_r10_" 668 "0x0000ab00"}, 669 {{hi, r4, 0x000ab000}, false, al, "hi r4 0x000ab000", "hi_r4_0x000ab000"}, 670 {{hi, r11, 0x3fc00000}, 671 false, 672 al, 673 "hi r11 0x3fc00000", 674 "hi_r11_" 675 "0x3fc00000"}, 676 {{vs, r12, 0xc000003f}, 677 false, 678 al, 679 "vs r12 0xc000003f", 680 "vs_r12_" 681 "0xc000003f"}, 682 {{gt, r12, 0xb000000a}, 683 false, 684 al, 685 "gt r12 0xb000000a", 686 "gt_r12_" 687 "0xb000000a"}, 688 {{eq, r11, 0x2ac00000}, 689 false, 690 al, 691 "eq r11 0x2ac00000", 692 "eq_r11_" 693 "0x2ac00000"}, 694 {{hi, r0, 0xc000003f}, false, al, "hi r0 0xc000003f", "hi_r0_0xc000003f"}, 695 {{cs, r12, 0xac000002}, 696 false, 697 al, 698 "cs r12 0xac000002", 699 "cs_r12_" 700 "0xac000002"}, 701 {{hi, r9, 0x3fc00000}, false, al, "hi r9 0x3fc00000", "hi_r9_0x3fc00000"}, 702 {{vs, r2, 0x00002ac0}, false, al, "vs r2 0x00002ac0", "vs_r2_0x00002ac0"}, 703 {{al, r12, 0xb000000a}, 704 false, 705 al, 706 "al r12 0xb000000a", 707 "al_r12_" 708 "0xb000000a"}, 709 {{gt, r12, 0x3fc00000}, 710 false, 711 al, 712 "gt r12 0x3fc00000", 713 "gt_r12_" 714 "0x3fc00000"}, 715 {{gt, r6, 0xf000000f}, false, al, "gt r6 0xf000000f", "gt_r6_0xf000000f"}, 716 {{vc, r14, 0x000000ff}, 717 false, 718 al, 719 "vc r14 0x000000ff", 720 "vc_r14_" 721 "0x000000ff"}, 722 {{pl, r7, 0x0002ac00}, false, al, "pl r7 0x0002ac00", "pl_r7_0x0002ac00"}, 723 {{ge, r1, 0x03fc0000}, false, al, "ge r1 0x03fc0000", "ge_r1_0x03fc0000"}, 724 {{hi, r10, 0x0002ac00}, 725 false, 726 al, 727 "hi r10 0x0002ac00", 728 "hi_r10_" 729 "0x0002ac00"}, 730 {{gt, r4, 0x002ac000}, false, al, "gt r4 0x002ac000", "gt_r4_0x002ac000"}, 731 {{vc, r5, 0x000000ff}, false, al, "vc r5 0x000000ff", "vc_r5_0x000000ff"}, 732 {{pl, r15, 0x0000ab00}, 733 false, 734 al, 735 "pl r15 0x0000ab00", 736 "pl_r15_" 737 "0x0000ab00"}, 738 {{cc, r4, 0x00ab0000}, false, al, "cc r4 0x00ab0000", "cc_r4_0x00ab0000"}, 739 {{pl, r11, 0xff000000}, 740 false, 741 al, 742 "pl r11 0xff000000", 743 "pl_r11_" 744 "0xff000000"}, 745 {{pl, r2, 0xf000000f}, false, al, "pl r2 0xf000000f", "pl_r2_0xf000000f"}, 746 {{cc, r8, 0xb000000a}, false, al, "cc r8 0xb000000a", "cc_r8_0xb000000a"}, 747 {{al, r13, 0x000000ff}, 748 false, 749 al, 750 "al r13 0x000000ff", 751 "al_r13_" 752 "0x000000ff"}, 753 {{mi, r6, 0x000003fc}, false, al, "mi r6 0x000003fc", "mi_r6_0x000003fc"}, 754 {{vs, r13, 0x02ac0000}, 755 false, 756 al, 757 "vs r13 0x02ac0000", 758 "vs_r13_" 759 "0x02ac0000"}, 760 {{mi, r4, 0x00ff0000}, false, al, "mi r4 0x00ff0000", "mi_r4_0x00ff0000"}, 761 {{cs, r3, 0x000003fc}, false, al, "cs r3 0x000003fc", "cs_r3_0x000003fc"}, 762 {{pl, r13, 0xab000000}, 763 false, 764 al, 765 "pl r13 0xab000000", 766 "pl_r13_" 767 "0xab000000"}, 768 {{ls, r9, 0x002ac000}, false, al, "ls r9 0x002ac000", "ls_r9_0x002ac000"}, 769 {{eq, r1, 0xc000002a}, false, al, "eq r1 0xc000002a", "eq_r1_0xc000002a"}, 770 {{lt, r12, 0x00000000}, 771 false, 772 al, 773 "lt r12 0x00000000", 774 "lt_r12_" 775 "0x00000000"}, 776 {{ge, r14, 0xff000000}, 777 false, 778 al, 779 "ge r14 0xff000000", 780 "ge_r14_" 781 "0xff000000"}, 782 {{lt, r9, 0x002ac000}, false, al, "lt r9 0x002ac000", "lt_r9_0x002ac000"}, 783 {{lt, r10, 0x00000ff0}, 784 false, 785 al, 786 "lt r10 0x00000ff0", 787 "lt_r10_" 788 "0x00000ff0"}, 789 {{vs, r5, 0x000000ff}, false, al, "vs r5 0x000000ff", "vs_r5_0x000000ff"}, 790 {{cc, r12, 0x03fc0000}, 791 false, 792 al, 793 "cc r12 0x03fc0000", 794 "cc_r12_" 795 "0x03fc0000"}, 796 {{ne, r4, 0x00000000}, false, al, "ne r4 0x00000000", "ne_r4_0x00000000"}, 797 {{mi, r13, 0xff000000}, 798 false, 799 al, 800 "mi r13 0xff000000", 801 "mi_r13_" 802 "0xff000000"}, 803 {{ne, r7, 0x00000ff0}, false, al, "ne r7 0x00000ff0", "ne_r7_0x00000ff0"}, 804 {{vs, r2, 0xc000003f}, false, al, "vs r2 0xc000003f", "vs_r2_0xc000003f"}, 805 {{al, r5, 0x00ff0000}, false, al, "al r5 0x00ff0000", "al_r5_0x00ff0000"}, 806 {{hi, r15, 0x00000ff0}, 807 false, 808 al, 809 "hi r15 0x00000ff0", 810 "hi_r15_" 811 "0x00000ff0"}, 812 {{ls, r8, 0x00003fc0}, false, al, "ls r8 0x00003fc0", "ls_r8_0x00003fc0"}, 813 {{vs, r0, 0xff000000}, false, al, "vs r0 0xff000000", "vs_r0_0xff000000"}, 814 {{vs, r6, 0x000000ab}, false, al, "vs r6 0x000000ab", "vs_r6_0x000000ab"}, 815 {{cs, r9, 0x00ab0000}, false, al, "cs r9 0x00ab0000", "cs_r9_0x00ab0000"}, 816 {{hi, r1, 0x0002ac00}, false, al, "hi r1 0x0002ac00", "hi_r1_0x0002ac00"}, 817 {{hi, r15, 0x2ac00000}, 818 false, 819 al, 820 "hi r15 0x2ac00000", 821 "hi_r15_" 822 "0x2ac00000"}, 823 {{hi, r6, 0x0002ac00}, false, al, "hi r6 0x0002ac00", "hi_r6_0x0002ac00"}, 824 {{ge, r4, 0xc000003f}, false, al, "ge r4 0xc000003f", "ge_r4_0xc000003f"}, 825 {{ls, r10, 0x0000ff00}, 826 false, 827 al, 828 "ls r10 0x0000ff00", 829 "ls_r10_" 830 "0x0000ff00"}, 831 {{ne, r11, 0x000003fc}, 832 false, 833 al, 834 "ne r11 0x000003fc", 835 "ne_r11_" 836 "0x000003fc"}, 837 {{ls, r3, 0x0002ac00}, false, al, "ls r3 0x0002ac00", "ls_r3_0x0002ac00"}, 838 {{al, r12, 0x000003fc}, 839 false, 840 al, 841 "al r12 0x000003fc", 842 "al_r12_" 843 "0x000003fc"}, 844 {{le, r7, 0xf000000f}, false, al, "le r7 0xf000000f", "le_r7_0xf000000f"}, 845 {{al, r11, 0x00000ab0}, 846 false, 847 al, 848 "al r11 0x00000ab0", 849 "al_r11_" 850 "0x00000ab0"}, 851 {{cs, r13, 0x02ac0000}, 852 false, 853 al, 854 "cs r13 0x02ac0000", 855 "cs_r13_" 856 "0x02ac0000"}, 857 {{hi, r1, 0x00000ff0}, false, al, "hi r1 0x00000ff0", "hi_r1_0x00000ff0"}, 858 {{le, r11, 0x3fc00000}, 859 false, 860 al, 861 "le r11 0x3fc00000", 862 "le_r11_" 863 "0x3fc00000"}, 864 {{hi, r9, 0x000003fc}, false, al, "hi r9 0x000003fc", "hi_r9_0x000003fc"}, 865 {{mi, r13, 0x000002ac}, 866 false, 867 al, 868 "mi r13 0x000002ac", 869 "mi_r13_" 870 "0x000002ac"}, 871 {{lt, r12, 0x000003fc}, 872 false, 873 al, 874 "lt r12 0x000003fc", 875 "lt_r12_" 876 "0x000003fc"}, 877 {{lt, r14, 0x00000ab0}, 878 false, 879 al, 880 "lt r14 0x00000ab0", 881 "lt_r14_" 882 "0x00000ab0"}, 883 {{gt, r1, 0x3fc00000}, false, al, "gt r1 0x3fc00000", "gt_r1_0x3fc00000"}, 884 {{cc, r14, 0xb000000a}, 885 false, 886 al, 887 "cc r14 0xb000000a", 888 "cc_r14_" 889 "0xb000000a"}, 890 {{ge, r0, 0x000002ac}, false, al, "ge r0 0x000002ac", "ge_r0_0x000002ac"}, 891 {{eq, r12, 0x000003fc}, 892 false, 893 al, 894 "eq r12 0x000003fc", 895 "eq_r12_" 896 "0x000003fc"}, 897 {{vc, r13, 0x0ab00000}, 898 false, 899 al, 900 "vc r13 0x0ab00000", 901 "vc_r13_" 902 "0x0ab00000"}, 903 {{pl, r10, 0x0003fc00}, 904 false, 905 al, 906 "pl r10 0x0003fc00", 907 "pl_r10_" 908 "0x0003fc00"}, 909 {{le, r7, 0x0000ff00}, false, al, "le r7 0x0000ff00", "le_r7_0x0000ff00"}, 910 {{eq, r5, 0x0003fc00}, false, al, "eq r5 0x0003fc00", "eq_r5_0x0003fc00"}, 911 {{pl, r1, 0xfc000003}, false, al, "pl r1 0xfc000003", "pl_r1_0xfc000003"}, 912 {{gt, r15, 0x000ff000}, 913 false, 914 al, 915 "gt r15 0x000ff000", 916 "gt_r15_" 917 "0x000ff000"}, 918 {{mi, r2, 0xb000000a}, false, al, "mi r2 0xb000000a", "mi_r2_0xb000000a"}, 919 {{cs, r8, 0x0000ff00}, false, al, "cs r8 0x0000ff00", "cs_r8_0x0000ff00"}, 920 {{vs, r8, 0x00002ac0}, false, al, "vs r8 0x00002ac0", "vs_r8_0x00002ac0"}, 921 {{cs, r5, 0x00ab0000}, false, al, "cs r5 0x00ab0000", "cs_r5_0x00ab0000"}, 922 {{pl, r3, 0x00ab0000}, false, al, "pl r3 0x00ab0000", "pl_r3_0x00ab0000"}, 923 {{hi, r5, 0x02ac0000}, false, al, "hi r5 0x02ac0000", "hi_r5_0x02ac0000"}, 924 {{cc, r9, 0x000002ac}, false, al, "cc r9 0x000002ac", "cc_r9_0x000002ac"}, 925 {{ls, r13, 0x0000ab00}, 926 false, 927 al, 928 "ls r13 0x0000ab00", 929 "ls_r13_" 930 "0x0000ab00"}, 931 {{pl, r11, 0x00000ab0}, 932 false, 933 al, 934 "pl r11 0x00000ab0", 935 "pl_r11_" 936 "0x00000ab0"}, 937 {{ge, r14, 0x3fc00000}, 938 false, 939 al, 940 "ge r14 0x3fc00000", 941 "ge_r14_" 942 "0x3fc00000"}, 943 {{al, r14, 0x0000ab00}, 944 false, 945 al, 946 "al r14 0x0000ab00", 947 "al_r14_" 948 "0x0000ab00"}, 949 {{lt, r6, 0xac000002}, false, al, "lt r6 0xac000002", "lt_r6_0xac000002"}, 950 {{vc, r3, 0x000ff000}, false, al, "vc r3 0x000ff000", "vc_r3_0x000ff000"}, 951 {{ne, r8, 0xfc000003}, false, al, "ne r8 0xfc000003", "ne_r8_0xfc000003"}, 952 {{cs, r6, 0x000ab000}, false, al, "cs r6 0x000ab000", "cs_r6_0x000ab000"}, 953 {{hi, r15, 0x0002ac00}, 954 false, 955 al, 956 "hi r15 0x0002ac00", 957 "hi_r15_" 958 "0x0002ac00"}, 959 {{pl, r6, 0x00000ff0}, false, al, "pl r6 0x00000ff0", "pl_r6_0x00000ff0"}, 960 {{hi, r15, 0x03fc0000}, 961 false, 962 al, 963 "hi r15 0x03fc0000", 964 "hi_r15_" 965 "0x03fc0000"}, 966 {{cc, r6, 0x0003fc00}, false, al, "cc r6 0x0003fc00", "cc_r6_0x0003fc00"}, 967 {{eq, r12, 0x000002ac}, 968 false, 969 al, 970 "eq r12 0x000002ac", 971 "eq_r12_" 972 "0x000002ac"}, 973 {{ls, r11, 0x02ac0000}, 974 false, 975 al, 976 "ls r11 0x02ac0000", 977 "ls_r11_" 978 "0x02ac0000"}, 979 {{ge, r13, 0x00ff0000}, 980 false, 981 al, 982 "ge r13 0x00ff0000", 983 "ge_r13_" 984 "0x00ff0000"}, 985 {{lt, r4, 0x0003fc00}, false, al, "lt r4 0x0003fc00", "lt_r4_0x0003fc00"}, 986 {{mi, r0, 0x0000ab00}, false, al, "mi r0 0x0000ab00", "mi_r0_0x0000ab00"}, 987 {{lt, r4, 0x000000ab}, false, al, "lt r4 0x000000ab", "lt_r4_0x000000ab"}, 988 {{ls, r2, 0xc000003f}, false, al, "ls r2 0xc000003f", "ls_r2_0xc000003f"}, 989 {{pl, r1, 0x000000ab}, false, al, "pl r1 0x000000ab", "pl_r1_0x000000ab"}, 990 {{ne, r10, 0x0000ff00}, 991 false, 992 al, 993 "ne r10 0x0000ff00", 994 "ne_r10_" 995 "0x0000ff00"}, 996 {{vc, r15, 0x00000ab0}, 997 false, 998 al, 999 "vc r15 0x00000ab0", 1000 "vc_r15_" 1001 "0x00000ab0"}, 1002 {{eq, r6, 0x02ac0000}, false, al, "eq r6 0x02ac0000", "eq_r6_0x02ac0000"}, 1003 {{cc, r11, 0x00000000}, 1004 false, 1005 al, 1006 "cc r11 0x00000000", 1007 "cc_r11_" 1008 "0x00000000"}, 1009 {{mi, r7, 0x002ac000}, false, al, "mi r7 0x002ac000", "mi_r7_0x002ac000"}, 1010 {{hi, r14, 0xab000000}, 1011 false, 1012 al, 1013 "hi r14 0xab000000", 1014 "hi_r14_" 1015 "0xab000000"}, 1016 {{vc, r6, 0x0000ff00}, false, al, "vc r6 0x0000ff00", "vc_r6_0x0000ff00"}, 1017 {{al, r5, 0x000002ac}, false, al, "al r5 0x000002ac", "al_r5_0x000002ac"}, 1018 {{cc, r12, 0x0002ac00}, 1019 false, 1020 al, 1021 "cc r12 0x0002ac00", 1022 "cc_r12_" 1023 "0x0002ac00"}, 1024 {{cc, r10, 0x000000ab}, 1025 false, 1026 al, 1027 "cc r10 0x000000ab", 1028 "cc_r10_" 1029 "0x000000ab"}, 1030 {{gt, r5, 0x000002ac}, false, al, "gt r5 0x000002ac", "gt_r5_0x000002ac"}, 1031 {{vc, r3, 0x00000000}, false, al, "vc r3 0x00000000", "vc_r3_0x00000000"}, 1032 {{gt, r12, 0xac000002}, 1033 false, 1034 al, 1035 "gt r12 0xac000002", 1036 "gt_r12_" 1037 "0xac000002"}, 1038 {{al, r10, 0x00ab0000}, 1039 false, 1040 al, 1041 "al r10 0x00ab0000", 1042 "al_r10_" 1043 "0x00ab0000"}, 1044 {{mi, r5, 0x000ff000}, false, al, "mi r5 0x000ff000", "mi_r5_0x000ff000"}, 1045 {{pl, r1, 0x00000ff0}, false, al, "pl r1 0x00000ff0", "pl_r1_0x00000ff0"}, 1046 {{lt, r7, 0xf000000f}, false, al, "lt r7 0xf000000f", "lt_r7_0xf000000f"}, 1047 {{ge, r14, 0x002ac000}, 1048 false, 1049 al, 1050 "ge r14 0x002ac000", 1051 "ge_r14_" 1052 "0x002ac000"}, 1053 {{cc, r0, 0xac000002}, false, al, "cc r0 0xac000002", "cc_r0_0xac000002"}, 1054 {{cs, r2, 0x00000ab0}, false, al, "cs r2 0x00000ab0", "cs_r2_0x00000ab0"}, 1055 {{vs, r0, 0x00002ac0}, false, al, "vs r0 0x00002ac0", "vs_r0_0x00002ac0"}, 1056 {{le, r10, 0x000ab000}, 1057 false, 1058 al, 1059 "le r10 0x000ab000", 1060 "le_r10_" 1061 "0x000ab000"}, 1062 {{ge, r9, 0x0003fc00}, false, al, "ge r9 0x0003fc00", "ge_r9_0x0003fc00"}, 1063 {{lt, r1, 0x00003fc0}, false, al, "lt r1 0x00003fc0", "lt_r1_0x00003fc0"}, 1064 {{ge, r5, 0x000000ff}, false, al, "ge r5 0x000000ff", "ge_r5_0x000000ff"}, 1065 {{le, r11, 0x2ac00000}, 1066 false, 1067 al, 1068 "le r11 0x2ac00000", 1069 "le_r11_" 1070 "0x2ac00000"}, 1071 {{le, r9, 0x002ac000}, false, al, "le r9 0x002ac000", "le_r9_0x002ac000"}, 1072 {{hi, r12, 0xf000000f}, 1073 false, 1074 al, 1075 "hi r12 0xf000000f", 1076 "hi_r12_" 1077 "0xf000000f"}, 1078 {{lt, r3, 0x02ac0000}, false, al, "lt r3 0x02ac0000", "lt_r3_0x02ac0000"}, 1079 {{al, r13, 0x2ac00000}, 1080 false, 1081 al, 1082 "al r13 0x2ac00000", 1083 "al_r13_" 1084 "0x2ac00000"}, 1085 {{vs, r12, 0x00000ab0}, 1086 false, 1087 al, 1088 "vs r12 0x00000ab0", 1089 "vs_r12_" 1090 "0x00000ab0"}, 1091 {{gt, r3, 0x3fc00000}, false, al, "gt r3 0x3fc00000", "gt_r3_0x3fc00000"}, 1092 {{gt, r0, 0x2ac00000}, false, al, "gt r0 0x2ac00000", "gt_r0_0x2ac00000"}, 1093 {{eq, r15, 0x000002ac}, 1094 false, 1095 al, 1096 "eq r15 0x000002ac", 1097 "eq_r15_" 1098 "0x000002ac"}, 1099 {{gt, r1, 0x000ab000}, false, al, "gt r1 0x000ab000", "gt_r1_0x000ab000"}, 1100 {{gt, r2, 0x2ac00000}, false, al, "gt r2 0x2ac00000", "gt_r2_0x2ac00000"}, 1101 {{mi, r15, 0x00ab0000}, 1102 false, 1103 al, 1104 "mi r15 0x00ab0000", 1105 "mi_r15_" 1106 "0x00ab0000"}, 1107 {{mi, r1, 0x000ab000}, false, al, "mi r1 0x000ab000", "mi_r1_0x000ab000"}, 1108 {{ge, r12, 0x0ab00000}, 1109 false, 1110 al, 1111 "ge r12 0x0ab00000", 1112 "ge_r12_" 1113 "0x0ab00000"}, 1114 {{gt, r5, 0x000000ab}, false, al, "gt r5 0x000000ab", "gt_r5_0x000000ab"}, 1115 {{gt, r4, 0x00000000}, false, al, "gt r4 0x00000000", "gt_r4_0x00000000"}, 1116 {{al, r13, 0xc000003f}, 1117 false, 1118 al, 1119 "al r13 0xc000003f", 1120 "al_r13_" 1121 "0xc000003f"}, 1122 {{ls, r7, 0xff000000}, false, al, "ls r7 0xff000000", "ls_r7_0xff000000"}, 1123 {{vs, r0, 0x00000ff0}, false, al, "vs r0 0x00000ff0", "vs_r0_0x00000ff0"}, 1124 {{hi, r9, 0x02ac0000}, false, al, "hi r9 0x02ac0000", "hi_r9_0x02ac0000"}, 1125 {{cs, r1, 0xc000002a}, false, al, "cs r1 0xc000002a", "cs_r1_0xc000002a"}, 1126 {{hi, r8, 0xf000000f}, false, al, "hi r8 0xf000000f", "hi_r8_0xf000000f"}, 1127 {{gt, r1, 0xb000000a}, false, al, "gt r1 0xb000000a", "gt_r1_0xb000000a"}, 1128 {{gt, r2, 0x0002ac00}, false, al, "gt r2 0x0002ac00", "gt_r2_0x0002ac00"}, 1129 {{vs, r5, 0x000000ab}, false, al, "vs r5 0x000000ab", "vs_r5_0x000000ab"}, 1130 {{cc, r12, 0x000ff000}, 1131 false, 1132 al, 1133 "cc r12 0x000ff000", 1134 "cc_r12_" 1135 "0x000ff000"}, 1136 {{ge, r0, 0x00003fc0}, false, al, "ge r0 0x00003fc0", "ge_r0_0x00003fc0"}, 1137 {{ls, r12, 0x00ab0000}, 1138 false, 1139 al, 1140 "ls r12 0x00ab0000", 1141 "ls_r12_" 1142 "0x00ab0000"}, 1143 {{vs, r4, 0x000003fc}, false, al, "vs r4 0x000003fc", "vs_r4_0x000003fc"}, 1144 {{ls, r4, 0x00003fc0}, false, al, "ls r4 0x00003fc0", "ls_r4_0x00003fc0"}, 1145 {{eq, r9, 0xb000000a}, false, al, "eq r9 0xb000000a", "eq_r9_0xb000000a"}, 1146 {{cs, r9, 0x2ac00000}, false, al, "cs r9 0x2ac00000", "cs_r9_0x2ac00000"}, 1147 {{vs, r12, 0x0000ff00}, 1148 false, 1149 al, 1150 "vs r12 0x0000ff00", 1151 "vs_r12_" 1152 "0x0000ff00"}, 1153 {{vc, r1, 0x0000ff00}, false, al, "vc r1 0x0000ff00", "vc_r1_0x0000ff00"}, 1154 {{hi, r12, 0xff000000}, 1155 false, 1156 al, 1157 "hi r12 0xff000000", 1158 "hi_r12_" 1159 "0xff000000"}, 1160 {{cs, r12, 0x0002ac00}, 1161 false, 1162 al, 1163 "cs r12 0x0002ac00", 1164 "cs_r12_" 1165 "0x0002ac00"}, 1166 {{mi, r11, 0x03fc0000}, 1167 false, 1168 al, 1169 "mi r11 0x03fc0000", 1170 "mi_r11_" 1171 "0x03fc0000"}, 1172 {{eq, r2, 0x000ff000}, false, al, "eq r2 0x000ff000", "eq_r2_0x000ff000"}, 1173 {{al, r6, 0x00000ff0}, false, al, "al r6 0x00000ff0", "al_r6_0x00000ff0"}, 1174 {{cs, r7, 0x000003fc}, false, al, "cs r7 0x000003fc", "cs_r7_0x000003fc"}, 1175 {{pl, r11, 0xb000000a}, 1176 false, 1177 al, 1178 "pl r11 0xb000000a", 1179 "pl_r11_" 1180 "0xb000000a"}, 1181 {{ne, r15, 0x000ff000}, 1182 false, 1183 al, 1184 "ne r15 0x000ff000", 1185 "ne_r15_" 1186 "0x000ff000"}, 1187 {{mi, r14, 0x00ab0000}, 1188 false, 1189 al, 1190 "mi r14 0x00ab0000", 1191 "mi_r14_" 1192 "0x00ab0000"}, 1193 {{hi, r4, 0x0000ff00}, false, al, "hi r4 0x0000ff00", "hi_r4_0x0000ff00"}, 1194 {{ge, r1, 0x000002ac}, false, al, "ge r1 0x000002ac", "ge_r1_0x000002ac"}, 1195 {{gt, r7, 0xb000000a}, false, al, "gt r7 0xb000000a", "gt_r7_0xb000000a"}, 1196 {{gt, r2, 0x00000000}, false, al, "gt r2 0x00000000", "gt_r2_0x00000000"}, 1197 {{cc, r2, 0xb000000a}, false, al, "cc r2 0xb000000a", "cc_r2_0xb000000a"}, 1198 {{vs, r14, 0x000ab000}, 1199 false, 1200 al, 1201 "vs r14 0x000ab000", 1202 "vs_r14_" 1203 "0x000ab000"}, 1204 {{lt, r5, 0x000002ac}, false, al, "lt r5 0x000002ac", "lt_r5_0x000002ac"}, 1205 {{cc, r13, 0x0000ff00}, 1206 false, 1207 al, 1208 "cc r13 0x0000ff00", 1209 "cc_r13_" 1210 "0x0000ff00"}, 1211 {{hi, r15, 0x000002ac}, 1212 false, 1213 al, 1214 "hi r15 0x000002ac", 1215 "hi_r15_" 1216 "0x000002ac"}, 1217 {{ge, r1, 0x00ff0000}, false, al, "ge r1 0x00ff0000", "ge_r1_0x00ff0000"}, 1218 {{lt, r15, 0x00002ac0}, 1219 false, 1220 al, 1221 "lt r15 0x00002ac0", 1222 "lt_r15_" 1223 "0x00002ac0"}, 1224 {{lt, r8, 0x000ff000}, false, al, "lt r8 0x000ff000", "lt_r8_0x000ff000"}, 1225 {{hi, r10, 0xc000002a}, 1226 false, 1227 al, 1228 "hi r10 0xc000002a", 1229 "hi_r10_" 1230 "0xc000002a"}, 1231 {{eq, r12, 0x000ab000}, 1232 false, 1233 al, 1234 "eq r12 0x000ab000", 1235 "eq_r12_" 1236 "0x000ab000"}, 1237 {{vs, r11, 0x00002ac0}, 1238 false, 1239 al, 1240 "vs r11 0x00002ac0", 1241 "vs_r11_" 1242 "0x00002ac0"}, 1243 {{hi, r10, 0x000003fc}, 1244 false, 1245 al, 1246 "hi r10 0x000003fc", 1247 "hi_r10_" 1248 "0x000003fc"}, 1249 {{cc, r8, 0x000003fc}, false, al, "cc r8 0x000003fc", "cc_r8_0x000003fc"}, 1250 {{vc, r11, 0x00000ab0}, 1251 false, 1252 al, 1253 "vc r11 0x00000ab0", 1254 "vc_r11_" 1255 "0x00000ab0"}, 1256 {{le, r3, 0xac000002}, false, al, "le r3 0xac000002", "le_r3_0xac000002"}, 1257 {{cc, r11, 0xc000002a}, 1258 false, 1259 al, 1260 "cc r11 0xc000002a", 1261 "cc_r11_" 1262 "0xc000002a"}, 1263 {{lt, r6, 0xab000000}, false, al, "lt r6 0xab000000", "lt_r6_0xab000000"}, 1264 {{hi, r1, 0x00003fc0}, false, al, "hi r1 0x00003fc0", "hi_r1_0x00003fc0"}, 1265 {{vc, r3, 0x00002ac0}, false, al, "vc r3 0x00002ac0", "vc_r3_0x00002ac0"}, 1266 {{vc, r6, 0x00000ab0}, false, al, "vc r6 0x00000ab0", "vc_r6_0x00000ab0"}, 1267 {{ls, r6, 0x03fc0000}, false, al, "ls r6 0x03fc0000", "ls_r6_0x03fc0000"}, 1268 {{hi, r11, 0x0ab00000}, 1269 false, 1270 al, 1271 "hi r11 0x0ab00000", 1272 "hi_r11_" 1273 "0x0ab00000"}, 1274 {{lt, r12, 0x0002ac00}, 1275 false, 1276 al, 1277 "lt r12 0x0002ac00", 1278 "lt_r12_" 1279 "0x0002ac00"}, 1280 {{al, r8, 0xab000000}, false, al, "al r8 0xab000000", "al_r8_0xab000000"}, 1281 {{vs, r2, 0x00000ab0}, false, al, "vs r2 0x00000ab0", "vs_r2_0x00000ab0"}, 1282 {{hi, r14, 0x02ac0000}, 1283 false, 1284 al, 1285 "hi r14 0x02ac0000", 1286 "hi_r14_" 1287 "0x02ac0000"}, 1288 {{cs, r3, 0x00000ff0}, false, al, "cs r3 0x00000ff0", "cs_r3_0x00000ff0"}, 1289 {{cc, r9, 0xb000000a}, false, al, "cc r9 0xb000000a", "cc_r9_0xb000000a"}, 1290 {{vc, r9, 0x00000ff0}, false, al, "vc r9 0x00000ff0", "vc_r9_0x00000ff0"}, 1291 {{ne, r9, 0xab000000}, false, al, "ne r9 0xab000000", "ne_r9_0xab000000"}, 1292 {{cc, r10, 0xb000000a}, 1293 false, 1294 al, 1295 "cc r10 0xb000000a", 1296 "cc_r10_" 1297 "0xb000000a"}, 1298 {{ls, r11, 0xb000000a}, 1299 false, 1300 al, 1301 "ls r11 0xb000000a", 1302 "ls_r11_" 1303 "0xb000000a"}, 1304 {{lt, r11, 0x00ff0000}, 1305 false, 1306 al, 1307 "lt r11 0x00ff0000", 1308 "lt_r11_" 1309 "0x00ff0000"}, 1310 {{lt, r3, 0x000003fc}, false, al, "lt r3 0x000003fc", "lt_r3_0x000003fc"}, 1311 {{gt, r14, 0x00002ac0}, 1312 false, 1313 al, 1314 "gt r14 0x00002ac0", 1315 "gt_r14_" 1316 "0x00002ac0"}, 1317 {{ls, r8, 0xc000003f}, false, al, "ls r8 0xc000003f", "ls_r8_0xc000003f"}, 1318 {{al, r11, 0x000ab000}, 1319 false, 1320 al, 1321 "al r11 0x000ab000", 1322 "al_r11_" 1323 "0x000ab000"}, 1324 {{lt, r7, 0x000ab000}, false, al, "lt r7 0x000ab000", "lt_r7_0x000ab000"}, 1325 {{vs, r14, 0xff000000}, 1326 false, 1327 al, 1328 "vs r14 0xff000000", 1329 "vs_r14_" 1330 "0xff000000"}, 1331 {{vc, r2, 0xab000000}, false, al, "vc r2 0xab000000", "vc_r2_0xab000000"}, 1332 {{ne, r3, 0x00000ff0}, false, al, "ne r3 0x00000ff0", "ne_r3_0x00000ff0"}, 1333 {{ne, r15, 0x02ac0000}, 1334 false, 1335 al, 1336 "ne r15 0x02ac0000", 1337 "ne_r15_" 1338 "0x02ac0000"}, 1339 {{gt, r3, 0x000ff000}, false, al, "gt r3 0x000ff000", "gt_r3_0x000ff000"}, 1340 {{pl, r1, 0x2ac00000}, false, al, "pl r1 0x2ac00000", "pl_r1_0x2ac00000"}, 1341 {{mi, r1, 0x00002ac0}, false, al, "mi r1 0x00002ac0", "mi_r1_0x00002ac0"}, 1342 {{vc, r6, 0xac000002}, false, al, "vc r6 0xac000002", "vc_r6_0xac000002"}, 1343 {{vs, r2, 0x0ff00000}, false, al, "vs r2 0x0ff00000", "vs_r2_0x0ff00000"}, 1344 {{ge, r2, 0x000003fc}, false, al, "ge r2 0x000003fc", "ge_r2_0x000003fc"}, 1345 {{cs, r15, 0x0000ff00}, 1346 false, 1347 al, 1348 "cs r15 0x0000ff00", 1349 "cs_r15_" 1350 "0x0000ff00"}, 1351 {{lt, r3, 0x000002ac}, false, al, "lt r3 0x000002ac", "lt_r3_0x000002ac"}, 1352 {{cs, r6, 0xff000000}, false, al, "cs r6 0xff000000", "cs_r6_0xff000000"}, 1353 {{ge, r14, 0x000000ff}, 1354 false, 1355 al, 1356 "ge r14 0x000000ff", 1357 "ge_r14_" 1358 "0x000000ff"}, 1359 {{gt, r7, 0x03fc0000}, false, al, "gt r7 0x03fc0000", "gt_r7_0x03fc0000"}, 1360 {{ne, r8, 0x000ff000}, false, al, "ne r8 0x000ff000", "ne_r8_0x000ff000"}, 1361 {{gt, r14, 0xc000002a}, 1362 false, 1363 al, 1364 "gt r14 0xc000002a", 1365 "gt_r14_" 1366 "0xc000002a"}, 1367 {{hi, r12, 0x0000ff00}, 1368 false, 1369 al, 1370 "hi r12 0x0000ff00", 1371 "hi_r12_" 1372 "0x0000ff00"}, 1373 {{le, r15, 0x00003fc0}, 1374 false, 1375 al, 1376 "le r15 0x00003fc0", 1377 "le_r15_" 1378 "0x00003fc0"}, 1379 {{eq, r13, 0x000ab000}, 1380 false, 1381 al, 1382 "eq r13 0x000ab000", 1383 "eq_r13_" 1384 "0x000ab000"}, 1385 {{vc, r7, 0x000ab000}, false, al, "vc r7 0x000ab000", "vc_r7_0x000ab000"}, 1386 {{gt, r7, 0xf000000f}, false, al, "gt r7 0xf000000f", "gt_r7_0xf000000f"}, 1387 {{cc, r6, 0xac000002}, false, al, "cc r6 0xac000002", "cc_r6_0xac000002"}, 1388 {{cs, r14, 0x000000ff}, 1389 false, 1390 al, 1391 "cs r14 0x000000ff", 1392 "cs_r14_" 1393 "0x000000ff"}, 1394 {{ne, r2, 0x0003fc00}, false, al, "ne r2 0x0003fc00", "ne_r2_0x0003fc00"}, 1395 {{vs, r1, 0x002ac000}, false, al, "vs r1 0x002ac000", "vs_r1_0x002ac000"}, 1396 {{eq, r8, 0x002ac000}, false, al, "eq r8 0x002ac000", "eq_r8_0x002ac000"}, 1397 {{lt, r8, 0x0000ff00}, false, al, "lt r8 0x0000ff00", "lt_r8_0x0000ff00"}, 1398 {{vs, r9, 0xc000003f}, false, al, "vs r9 0xc000003f", "vs_r9_0xc000003f"}, 1399 {{mi, r11, 0xff000000}, 1400 false, 1401 al, 1402 "mi r11 0xff000000", 1403 "mi_r11_" 1404 "0xff000000"}, 1405 {{cs, r12, 0x03fc0000}, 1406 false, 1407 al, 1408 "cs r12 0x03fc0000", 1409 "cs_r12_" 1410 "0x03fc0000"}, 1411 {{lt, r5, 0xc000002a}, false, al, "lt r5 0xc000002a", "lt_r5_0xc000002a"}, 1412 {{vc, r6, 0x000000ab}, false, al, "vc r6 0x000000ab", "vc_r6_0x000000ab"}, 1413 {{ls, r10, 0x0ab00000}, 1414 false, 1415 al, 1416 "ls r10 0x0ab00000", 1417 "ls_r10_" 1418 "0x0ab00000"}, 1419 {{al, r11, 0x00ff0000}, 1420 false, 1421 al, 1422 "al r11 0x00ff0000", 1423 "al_r11_" 1424 "0x00ff0000"}, 1425 {{hi, r13, 0x00000ab0}, 1426 false, 1427 al, 1428 "hi r13 0x00000ab0", 1429 "hi_r13_" 1430 "0x00000ab0"}, 1431 {{ls, r0, 0xab000000}, false, al, "ls r0 0xab000000", "ls_r0_0xab000000"}, 1432 {{le, r5, 0xab000000}, false, al, "le r5 0xab000000", "le_r5_0xab000000"}, 1433 {{vs, r4, 0x00ff0000}, false, al, "vs r4 0x00ff0000", "vs_r4_0x00ff0000"}, 1434 {{al, r10, 0x03fc0000}, 1435 false, 1436 al, 1437 "al r10 0x03fc0000", 1438 "al_r10_" 1439 "0x03fc0000"}, 1440 {{al, r8, 0x000003fc}, false, al, "al r8 0x000003fc", "al_r8_0x000003fc"}, 1441 {{vs, r11, 0xab000000}, 1442 false, 1443 al, 1444 "vs r11 0xab000000", 1445 "vs_r11_" 1446 "0xab000000"}, 1447 {{eq, r2, 0x00000ff0}, false, al, "eq r2 0x00000ff0", "eq_r2_0x00000ff0"}, 1448 {{vc, r4, 0x00000ff0}, false, al, "vc r4 0x00000ff0", "vc_r4_0x00000ff0"}, 1449 {{vc, r9, 0x00002ac0}, false, al, "vc r9 0x00002ac0", "vc_r9_0x00002ac0"}, 1450 {{cc, r11, 0x00ff0000}, 1451 false, 1452 al, 1453 "cc r11 0x00ff0000", 1454 "cc_r11_" 1455 "0x00ff0000"}, 1456 {{cc, r13, 0x00ff0000}, 1457 false, 1458 al, 1459 "cc r13 0x00ff0000", 1460 "cc_r13_" 1461 "0x00ff0000"}, 1462 {{pl, r0, 0x00000ab0}, false, al, "pl r0 0x00000ab0", "pl_r0_0x00000ab0"}, 1463 {{al, r2, 0x02ac0000}, false, al, "al r2 0x02ac0000", "al_r2_0x02ac0000"}, 1464 {{hi, r11, 0xc000002a}, 1465 false, 1466 al, 1467 "hi r11 0xc000002a", 1468 "hi_r11_" 1469 "0xc000002a"}, 1470 {{ne, r3, 0xf000000f}, false, al, "ne r3 0xf000000f", "ne_r3_0xf000000f"}, 1471 {{cc, r15, 0x0ab00000}, 1472 false, 1473 al, 1474 "cc r15 0x0ab00000", 1475 "cc_r15_" 1476 "0x0ab00000"}, 1477 {{ge, r12, 0x00ff0000}, 1478 false, 1479 al, 1480 "ge r12 0x00ff0000", 1481 "ge_r12_" 1482 "0x00ff0000"}, 1483 {{le, r12, 0x002ac000}, 1484 false, 1485 al, 1486 "le r12 0x002ac000", 1487 "le_r12_" 1488 "0x002ac000"}, 1489 {{mi, r12, 0xc000003f}, 1490 false, 1491 al, 1492 "mi r12 0xc000003f", 1493 "mi_r12_" 1494 "0xc000003f"}, 1495 {{lt, r0, 0xfc000003}, false, al, "lt r0 0xfc000003", "lt_r0_0xfc000003"}, 1496 {{vc, r15, 0x000ab000}, 1497 false, 1498 al, 1499 "vc r15 0x000ab000", 1500 "vc_r15_" 1501 "0x000ab000"}, 1502 {{pl, r5, 0x3fc00000}, false, al, "pl r5 0x3fc00000", "pl_r5_0x3fc00000"}, 1503 {{vs, r15, 0x00ab0000}, 1504 false, 1505 al, 1506 "vs r15 0x00ab0000", 1507 "vs_r15_" 1508 "0x00ab0000"}, 1509 {{hi, r3, 0x00ff0000}, false, al, "hi r3 0x00ff0000", "hi_r3_0x00ff0000"}, 1510 {{lt, r8, 0x000000ff}, false, al, "lt r8 0x000000ff", "lt_r8_0x000000ff"}, 1511 {{le, r2, 0x000000ff}, false, al, "le r2 0x000000ff", "le_r2_0x000000ff"}, 1512 {{vs, r0, 0x0002ac00}, false, al, "vs r0 0x0002ac00", "vs_r0_0x0002ac00"}, 1513 {{vs, r2, 0xff000000}, false, al, "vs r2 0xff000000", "vs_r2_0xff000000"}, 1514 {{pl, r6, 0xab000000}, false, al, "pl r6 0xab000000", "pl_r6_0xab000000"}, 1515 {{ls, r4, 0x3fc00000}, false, al, "ls r4 0x3fc00000", "ls_r4_0x3fc00000"}, 1516 {{ls, r3, 0x000ab000}, false, al, "ls r3 0x000ab000", "ls_r3_0x000ab000"}, 1517 {{eq, r11, 0x000ab000}, 1518 false, 1519 al, 1520 "eq r11 0x000ab000", 1521 "eq_r11_" 1522 "0x000ab000"}, 1523 {{vc, r6, 0x03fc0000}, false, al, "vc r6 0x03fc0000", "vc_r6_0x03fc0000"}, 1524 {{mi, r14, 0x0000ab00}, 1525 false, 1526 al, 1527 "mi r14 0x0000ab00", 1528 "mi_r14_" 1529 "0x0000ab00"}, 1530 {{pl, r8, 0xab000000}, false, al, "pl r8 0xab000000", "pl_r8_0xab000000"}, 1531 {{pl, r8, 0xc000003f}, false, al, "pl r8 0xc000003f", "pl_r8_0xc000003f"}, 1532 {{eq, r14, 0x003fc000}, 1533 false, 1534 al, 1535 "eq r14 0x003fc000", 1536 "eq_r14_" 1537 "0x003fc000"}, 1538 {{vs, r9, 0x00ff0000}, false, al, "vs r9 0x00ff0000", "vs_r9_0x00ff0000"}, 1539 {{vs, r1, 0x00002ac0}, false, al, "vs r1 0x00002ac0", "vs_r1_0x00002ac0"}, 1540 {{le, r1, 0x00ff0000}, false, al, "le r1 0x00ff0000", "le_r1_0x00ff0000"}, 1541 {{lt, r7, 0x000ff000}, false, al, "lt r7 0x000ff000", "lt_r7_0x000ff000"}, 1542 {{mi, r6, 0x002ac000}, false, al, "mi r6 0x002ac000", "mi_r6_0x002ac000"}, 1543 {{vc, r11, 0xc000003f}, 1544 false, 1545 al, 1546 "vc r11 0xc000003f", 1547 "vc_r11_" 1548 "0xc000003f"}, 1549 {{lt, r4, 0x00000000}, false, al, "lt r4 0x00000000", "lt_r4_0x00000000"}, 1550 {{pl, r0, 0xac000002}, false, al, "pl r0 0xac000002", "pl_r0_0xac000002"}, 1551 {{ls, r10, 0xc000003f}, 1552 false, 1553 al, 1554 "ls r10 0xc000003f", 1555 "ls_r10_" 1556 "0xc000003f"}, 1557 {{cc, r15, 0xc000002a}, 1558 false, 1559 al, 1560 "cc r15 0xc000002a", 1561 "cc_r15_0xc000002a"}}; 1562 1563 // These headers each contain an array of `TestResult` with the reference output 1564 // values. The reference arrays are names `kReference{mnemonic}`. 1565 #include "aarch32/traces/assembler-cond-rd-operand-const-a32-can-use-pc-cmn.h" 1566 #include "aarch32/traces/assembler-cond-rd-operand-const-a32-can-use-pc-cmp.h" 1567 #include "aarch32/traces/assembler-cond-rd-operand-const-a32-can-use-pc-teq.h" 1568 #include "aarch32/traces/assembler-cond-rd-operand-const-a32-can-use-pc-tst.h" 1569 1570 1571 // The maximum number of errors to report in detail for each test. 1572 const unsigned kErrorReportLimit = 8; 1573 1574 typedef void (MacroAssembler::*Fn)(Condition cond, 1575 Register rd, 1576 const Operand& op); 1577 1578 void TestHelper(Fn instruction, 1579 const char* mnemonic, 1580 const TestResult reference[]) { 1581 unsigned total_error_count = 0; 1582 MacroAssembler masm(BUF_SIZE); 1583 1584 masm.UseA32(); 1585 1586 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) { 1587 // Values to pass to the macro-assembler. 1588 Condition cond = kTests[i].operands.cond; 1589 Register rd = kTests[i].operands.rd; 1590 uint32_t immediate = kTests[i].operands.immediate; 1591 Operand op(immediate); 1592 1593 int32_t start = masm.GetCursorOffset(); 1594 { 1595 // We never generate more that 4 bytes, as IT instructions are only 1596 // allowed for narrow encodings. 1597 ExactAssemblyScope scope(&masm, 4, ExactAssemblyScope::kMaximumSize); 1598 if (kTests[i].in_it_block) { 1599 masm.it(kTests[i].it_condition); 1600 } 1601 (masm.*instruction)(cond, rd, op); 1602 } 1603 int32_t end = masm.GetCursorOffset(); 1604 1605 const byte* result_ptr = 1606 masm.GetBuffer()->GetOffsetAddress<const byte*>(start); 1607 VIXL_ASSERT(start < end); 1608 uint32_t result_size = end - start; 1609 1610 if (Test::generate_test_trace()) { 1611 // Print the result bytes. 1612 printf("const byte kInstruction_%s_%s[] = {\n", 1613 mnemonic, 1614 kTests[i].identifier); 1615 for (uint32_t j = 0; j < result_size; j++) { 1616 if (j == 0) { 1617 printf(" 0x%02" PRIx8, result_ptr[j]); 1618 } else { 1619 printf(", 0x%02" PRIx8, result_ptr[j]); 1620 } 1621 } 1622 // This comment is meant to be used by external tools to validate 1623 // the encoding. We can parse the comment to figure out what 1624 // instruction this corresponds to. 1625 if (kTests[i].in_it_block) { 1626 printf(" // It %s; %s %s\n};\n", 1627 kTests[i].it_condition.GetName(), 1628 mnemonic, 1629 kTests[i].operands_description); 1630 } else { 1631 printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description); 1632 } 1633 } else { 1634 // Check we've emitted the exact same encoding as present in the 1635 // trace file. Only print up to `kErrorReportLimit` errors. 1636 if (((result_size != reference[i].size) || 1637 (memcmp(result_ptr, reference[i].encoding, reference[i].size) != 1638 0)) && 1639 (++total_error_count <= kErrorReportLimit)) { 1640 printf("Error when testing \"%s\" with operands \"%s\":\n", 1641 mnemonic, 1642 kTests[i].operands_description); 1643 printf(" Expected: "); 1644 for (uint32_t j = 0; j < reference[i].size; j++) { 1645 if (j == 0) { 1646 printf("0x%02" PRIx8, reference[i].encoding[j]); 1647 } else { 1648 printf(", 0x%02" PRIx8, reference[i].encoding[j]); 1649 } 1650 } 1651 printf("\n"); 1652 printf(" Found: "); 1653 for (uint32_t j = 0; j < result_size; j++) { 1654 if (j == 0) { 1655 printf("0x%02" PRIx8, result_ptr[j]); 1656 } else { 1657 printf(", 0x%02" PRIx8, result_ptr[j]); 1658 } 1659 } 1660 printf("\n"); 1661 } 1662 } 1663 } 1664 1665 masm.FinalizeCode(); 1666 1667 if (Test::generate_test_trace()) { 1668 // Finalize the trace file by writing the final `TestResult` array 1669 // which links all generated instruction encodings. 1670 printf("const TestResult kReference%s[] = {\n", mnemonic); 1671 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) { 1672 printf(" {\n"); 1673 printf(" ARRAY_SIZE(kInstruction_%s_%s),\n", 1674 mnemonic, 1675 kTests[i].identifier); 1676 printf(" kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier); 1677 printf(" },\n"); 1678 } 1679 printf("};\n"); 1680 } else { 1681 if (total_error_count > kErrorReportLimit) { 1682 printf("%u other errors follow.\n", 1683 total_error_count - kErrorReportLimit); 1684 } 1685 // Crash if the test failed. 1686 VIXL_CHECK(total_error_count == 0); 1687 } 1688 } 1689 1690 // Instantiate tests for each instruction in the list. 1691 #define TEST(mnemonic) \ 1692 void Test_##mnemonic() { \ 1693 TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic); \ 1694 } \ 1695 Test test_##mnemonic( \ 1696 "AARCH32_ASSEMBLER_COND_RD_OPERAND_CONST_A32_CAN_USE_PC_" #mnemonic, \ 1697 &Test_##mnemonic); 1698 FOREACH_INSTRUCTION(TEST) 1699 #undef TEST 1700 1701 } // namespace 1702 #endif 1703 1704 } // namespace aarch32 1705 } // namespace vixl 1706