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(mov) \ 53 M(movs) \ 54 M(mvn) \ 55 M(mvns) 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, r0, 0x003fc000}, false, al, "ls r0 0x003fc000", "ls_r0_0x003fc000"}, 99 {{eq, r13, 0xff000000}, 100 false, 101 al, 102 "eq r13 0xff000000", 103 "eq_r13_" 104 "0xff000000"}, 105 {{al, r0, 0x0002ac00}, false, al, "al r0 0x0002ac00", "al_r0_0x0002ac00"}, 106 {{gt, r13, 0x002ac000}, 107 false, 108 al, 109 "gt r13 0x002ac000", 110 "gt_r13_" 111 "0x002ac000"}, 112 {{mi, r3, 0x000002ac}, false, al, "mi r3 0x000002ac", "mi_r3_0x000002ac"}, 113 {{ls, r0, 0x000000ff}, false, al, "ls r0 0x000000ff", "ls_r0_0x000000ff"}, 114 {{ls, r7, 0x0000ab00}, false, al, "ls r7 0x0000ab00", "ls_r7_0x0000ab00"}, 115 {{cc, r11, 0x0ff00000}, 116 false, 117 al, 118 "cc r11 0x0ff00000", 119 "cc_r11_" 120 "0x0ff00000"}, 121 {{vs, r5, 0xc000003f}, false, al, "vs r5 0xc000003f", "vs_r5_0xc000003f"}, 122 {{gt, r3, 0x00ab0000}, false, al, "gt r3 0x00ab0000", "gt_r3_0x00ab0000"}, 123 {{hi, r7, 0xff000000}, false, al, "hi r7 0xff000000", "hi_r7_0xff000000"}, 124 {{vc, r10, 0xff000000}, 125 false, 126 al, 127 "vc r10 0xff000000", 128 "vc_r10_" 129 "0xff000000"}, 130 {{hi, r10, 0x002ac000}, 131 false, 132 al, 133 "hi r10 0x002ac000", 134 "hi_r10_" 135 "0x002ac000"}, 136 {{ne, r9, 0x00ff0000}, false, al, "ne r9 0x00ff0000", "ne_r9_0x00ff0000"}, 137 {{ge, r3, 0xf000000f}, false, al, "ge r3 0xf000000f", "ge_r3_0xf000000f"}, 138 {{hi, r0, 0x000ff000}, false, al, "hi r0 0x000ff000", "hi_r0_0x000ff000"}, 139 {{mi, r2, 0x00002ac0}, false, al, "mi r2 0x00002ac0", "mi_r2_0x00002ac0"}, 140 {{ge, r6, 0x000ab000}, false, al, "ge r6 0x000ab000", "ge_r6_0x000ab000"}, 141 {{mi, r9, 0x00ff0000}, false, al, "mi r9 0x00ff0000", "mi_r9_0x00ff0000"}, 142 {{cs, r2, 0x000ff000}, false, al, "cs r2 0x000ff000", "cs_r2_0x000ff000"}, 143 {{lt, r5, 0x003fc000}, false, al, "lt r5 0x003fc000", "lt_r5_0x003fc000"}, 144 {{al, r1, 0x000ff000}, false, al, "al r1 0x000ff000", "al_r1_0x000ff000"}, 145 {{mi, r6, 0x000000ab}, false, al, "mi r6 0x000000ab", "mi_r6_0x000000ab"}, 146 {{pl, r9, 0xac000002}, false, al, "pl r9 0xac000002", "pl_r9_0xac000002"}, 147 {{hi, r8, 0x000ff000}, false, al, "hi r8 0x000ff000", "hi_r8_0x000ff000"}, 148 {{vs, r0, 0x00002ac0}, false, al, "vs r0 0x00002ac0", "vs_r0_0x00002ac0"}, 149 {{ls, r4, 0xab000000}, false, al, "ls r4 0xab000000", "ls_r4_0xab000000"}, 150 {{vs, r6, 0x000ab000}, false, al, "vs r6 0x000ab000", "vs_r6_0x000ab000"}, 151 {{vc, r13, 0x0000ab00}, 152 false, 153 al, 154 "vc r13 0x0000ab00", 155 "vc_r13_" 156 "0x0000ab00"}, 157 {{mi, r0, 0xab000000}, false, al, "mi r0 0xab000000", "mi_r0_0xab000000"}, 158 {{vs, r9, 0x0ab00000}, false, al, "vs r9 0x0ab00000", "vs_r9_0x0ab00000"}, 159 {{pl, r0, 0x00003fc0}, false, al, "pl r0 0x00003fc0", "pl_r0_0x00003fc0"}, 160 {{al, r2, 0x0000ff00}, false, al, "al r2 0x0000ff00", "al_r2_0x0000ff00"}, 161 {{gt, r11, 0x00000ab0}, 162 false, 163 al, 164 "gt r11 0x00000ab0", 165 "gt_r11_" 166 "0x00000ab0"}, 167 {{vs, r10, 0xac000002}, 168 false, 169 al, 170 "vs r10 0xac000002", 171 "vs_r10_" 172 "0xac000002"}, 173 {{cs, r3, 0x0002ac00}, false, al, "cs r3 0x0002ac00", "cs_r3_0x0002ac00"}, 174 {{vc, r13, 0x000000ab}, 175 false, 176 al, 177 "vc r13 0x000000ab", 178 "vc_r13_" 179 "0x000000ab"}, 180 {{cs, r11, 0x003fc000}, 181 false, 182 al, 183 "cs r11 0x003fc000", 184 "cs_r11_" 185 "0x003fc000"}, 186 {{vs, r14, 0x0000ab00}, 187 false, 188 al, 189 "vs r14 0x0000ab00", 190 "vs_r14_" 191 "0x0000ab00"}, 192 {{eq, r11, 0xfc000003}, 193 false, 194 al, 195 "eq r11 0xfc000003", 196 "eq_r11_" 197 "0xfc000003"}, 198 {{pl, r13, 0x00000ab0}, 199 false, 200 al, 201 "pl r13 0x00000ab0", 202 "pl_r13_" 203 "0x00000ab0"}, 204 {{ge, r4, 0xb000000a}, false, al, "ge r4 0xb000000a", "ge_r4_0xb000000a"}, 205 {{pl, r12, 0x00003fc0}, 206 false, 207 al, 208 "pl r12 0x00003fc0", 209 "pl_r12_" 210 "0x00003fc0"}, 211 {{le, r4, 0x0000ff00}, false, al, "le r4 0x0000ff00", "le_r4_0x0000ff00"}, 212 {{pl, r4, 0x003fc000}, false, al, "pl r4 0x003fc000", "pl_r4_0x003fc000"}, 213 {{hi, r0, 0x002ac000}, false, al, "hi r0 0x002ac000", "hi_r0_0x002ac000"}, 214 {{mi, r1, 0x00003fc0}, false, al, "mi r1 0x00003fc0", "mi_r1_0x00003fc0"}, 215 {{hi, r9, 0xf000000f}, false, al, "hi r9 0xf000000f", "hi_r9_0xf000000f"}, 216 {{al, r11, 0x0000ab00}, 217 false, 218 al, 219 "al r11 0x0000ab00", 220 "al_r11_" 221 "0x0000ab00"}, 222 {{ne, r6, 0x00ab0000}, false, al, "ne r6 0x00ab0000", "ne_r6_0x00ab0000"}, 223 {{lt, r4, 0xff000000}, false, al, "lt r4 0xff000000", "lt_r4_0xff000000"}, 224 {{pl, r0, 0x0ab00000}, false, al, "pl r0 0x0ab00000", "pl_r0_0x0ab00000"}, 225 {{ls, r2, 0xc000002a}, false, al, "ls r2 0xc000002a", "ls_r2_0xc000002a"}, 226 {{lt, r5, 0x00003fc0}, false, al, "lt r5 0x00003fc0", "lt_r5_0x00003fc0"}, 227 {{mi, r5, 0x000003fc}, false, al, "mi r5 0x000003fc", "mi_r5_0x000003fc"}, 228 {{ls, r11, 0xb000000a}, 229 false, 230 al, 231 "ls r11 0xb000000a", 232 "ls_r11_" 233 "0xb000000a"}, 234 {{al, r3, 0x0000ff00}, false, al, "al r3 0x0000ff00", "al_r3_0x0000ff00"}, 235 {{vs, r3, 0xfc000003}, false, al, "vs r3 0xfc000003", "vs_r3_0xfc000003"}, 236 {{ne, r1, 0xc000002a}, false, al, "ne r1 0xc000002a", "ne_r1_0xc000002a"}, 237 {{eq, r10, 0x0003fc00}, 238 false, 239 al, 240 "eq r10 0x0003fc00", 241 "eq_r10_" 242 "0x0003fc00"}, 243 {{eq, r3, 0xf000000f}, false, al, "eq r3 0xf000000f", "eq_r3_0xf000000f"}, 244 {{vs, r5, 0x000ff000}, false, al, "vs r5 0x000ff000", "vs_r5_0x000ff000"}, 245 {{ge, r12, 0x000000ab}, 246 false, 247 al, 248 "ge r12 0x000000ab", 249 "ge_r12_" 250 "0x000000ab"}, 251 {{vc, r12, 0xf000000f}, 252 false, 253 al, 254 "vc r12 0xf000000f", 255 "vc_r12_" 256 "0xf000000f"}, 257 {{lt, r11, 0x02ac0000}, 258 false, 259 al, 260 "lt r11 0x02ac0000", 261 "lt_r11_" 262 "0x02ac0000"}, 263 {{vs, r6, 0x003fc000}, false, al, "vs r6 0x003fc000", "vs_r6_0x003fc000"}, 264 {{cs, r8, 0x3fc00000}, false, al, "cs r8 0x3fc00000", "cs_r8_0x3fc00000"}, 265 {{le, r5, 0x0002ac00}, false, al, "le r5 0x0002ac00", "le_r5_0x0002ac00"}, 266 {{ls, r9, 0x0002ac00}, false, al, "ls r9 0x0002ac00", "ls_r9_0x0002ac00"}, 267 {{al, r4, 0x3fc00000}, false, al, "al r4 0x3fc00000", "al_r4_0x3fc00000"}, 268 {{lt, r5, 0x000000ff}, false, al, "lt r5 0x000000ff", "lt_r5_0x000000ff"}, 269 {{cs, r8, 0xc000002a}, false, al, "cs r8 0xc000002a", "cs_r8_0xc000002a"}, 270 {{cs, r0, 0x00000ab0}, false, al, "cs r0 0x00000ab0", "cs_r0_0x00000ab0"}, 271 {{cs, r2, 0x3fc00000}, false, al, "cs r2 0x3fc00000", "cs_r2_0x3fc00000"}, 272 {{vs, r14, 0xab000000}, 273 false, 274 al, 275 "vs r14 0xab000000", 276 "vs_r14_" 277 "0xab000000"}, 278 {{ne, r8, 0x002ac000}, false, al, "ne r8 0x002ac000", "ne_r8_0x002ac000"}, 279 {{vs, r1, 0x003fc000}, false, al, "vs r1 0x003fc000", "vs_r1_0x003fc000"}, 280 {{al, r7, 0x003fc000}, false, al, "al r7 0x003fc000", "al_r7_0x003fc000"}, 281 {{vs, r7, 0x000ab000}, false, al, "vs r7 0x000ab000", "vs_r7_0x000ab000"}, 282 {{vc, r12, 0xb000000a}, 283 false, 284 al, 285 "vc r12 0xb000000a", 286 "vc_r12_" 287 "0xb000000a"}, 288 {{eq, r2, 0xc000002a}, false, al, "eq r2 0xc000002a", "eq_r2_0xc000002a"}, 289 {{lt, r4, 0x0000ff00}, false, al, "lt r4 0x0000ff00", "lt_r4_0x0000ff00"}, 290 {{eq, r8, 0x2ac00000}, false, al, "eq r8 0x2ac00000", "eq_r8_0x2ac00000"}, 291 {{hi, r7, 0x3fc00000}, false, al, "hi r7 0x3fc00000", "hi_r7_0x3fc00000"}, 292 {{mi, r13, 0x3fc00000}, 293 false, 294 al, 295 "mi r13 0x3fc00000", 296 "mi_r13_" 297 "0x3fc00000"}, 298 {{al, r2, 0x0002ac00}, false, al, "al r2 0x0002ac00", "al_r2_0x0002ac00"}, 299 {{gt, r13, 0xab000000}, 300 false, 301 al, 302 "gt r13 0xab000000", 303 "gt_r13_" 304 "0xab000000"}, 305 {{vs, r3, 0x00000ab0}, false, al, "vs r3 0x00000ab0", "vs_r3_0x00000ab0"}, 306 {{mi, r14, 0x00000000}, 307 false, 308 al, 309 "mi r14 0x00000000", 310 "mi_r14_" 311 "0x00000000"}, 312 {{vs, r10, 0x3fc00000}, 313 false, 314 al, 315 "vs r10 0x3fc00000", 316 "vs_r10_" 317 "0x3fc00000"}, 318 {{vc, r7, 0x0ff00000}, false, al, "vc r7 0x0ff00000", "vc_r7_0x0ff00000"}, 319 {{al, r3, 0xf000000f}, false, al, "al r3 0xf000000f", "al_r3_0xf000000f"}, 320 {{cs, r12, 0x03fc0000}, 321 false, 322 al, 323 "cs r12 0x03fc0000", 324 "cs_r12_" 325 "0x03fc0000"}, 326 {{hi, r14, 0xab000000}, 327 false, 328 al, 329 "hi r14 0xab000000", 330 "hi_r14_" 331 "0xab000000"}, 332 {{mi, r13, 0x000002ac}, 333 false, 334 al, 335 "mi r13 0x000002ac", 336 "mi_r13_" 337 "0x000002ac"}, 338 {{ge, r8, 0x2ac00000}, false, al, "ge r8 0x2ac00000", "ge_r8_0x2ac00000"}, 339 {{vc, r14, 0x000003fc}, 340 false, 341 al, 342 "vc r14 0x000003fc", 343 "vc_r14_" 344 "0x000003fc"}, 345 {{mi, r4, 0x0000ab00}, false, al, "mi r4 0x0000ab00", "mi_r4_0x0000ab00"}, 346 {{hi, r11, 0x0ff00000}, 347 false, 348 al, 349 "hi r11 0x0ff00000", 350 "hi_r11_" 351 "0x0ff00000"}, 352 {{gt, r8, 0x000ff000}, false, al, "gt r8 0x000ff000", "gt_r8_0x000ff000"}, 353 {{lt, r1, 0x3fc00000}, false, al, "lt r1 0x3fc00000", "lt_r1_0x3fc00000"}, 354 {{mi, r12, 0x000000ab}, 355 false, 356 al, 357 "mi r12 0x000000ab", 358 "mi_r12_" 359 "0x000000ab"}, 360 {{vs, r12, 0x000003fc}, 361 false, 362 al, 363 "vs r12 0x000003fc", 364 "vs_r12_" 365 "0x000003fc"}, 366 {{cs, r10, 0x000ff000}, 367 false, 368 al, 369 "cs r10 0x000ff000", 370 "cs_r10_" 371 "0x000ff000"}, 372 {{mi, r12, 0xfc000003}, 373 false, 374 al, 375 "mi r12 0xfc000003", 376 "mi_r12_" 377 "0xfc000003"}, 378 {{pl, r8, 0x000000ff}, false, al, "pl r8 0x000000ff", "pl_r8_0x000000ff"}, 379 {{lt, r5, 0x00002ac0}, false, al, "lt r5 0x00002ac0", "lt_r5_0x00002ac0"}, 380 {{ge, r0, 0xff000000}, false, al, "ge r0 0xff000000", "ge_r0_0xff000000"}, 381 {{pl, r0, 0xab000000}, false, al, "pl r0 0xab000000", "pl_r0_0xab000000"}, 382 {{ls, r8, 0x000ab000}, false, al, "ls r8 0x000ab000", "ls_r8_0x000ab000"}, 383 {{al, r12, 0x00000ff0}, 384 false, 385 al, 386 "al r12 0x00000ff0", 387 "al_r12_" 388 "0x00000ff0"}, 389 {{hi, r5, 0x00003fc0}, false, al, "hi r5 0x00003fc0", "hi_r5_0x00003fc0"}, 390 {{vs, r7, 0x0003fc00}, false, al, "vs r7 0x0003fc00", "vs_r7_0x0003fc00"}, 391 {{ls, r13, 0x0ff00000}, 392 false, 393 al, 394 "ls r13 0x0ff00000", 395 "ls_r13_" 396 "0x0ff00000"}, 397 {{al, r7, 0x000000ab}, false, al, "al r7 0x000000ab", "al_r7_0x000000ab"}, 398 {{lt, r6, 0x000003fc}, false, al, "lt r6 0x000003fc", "lt_r6_0x000003fc"}, 399 {{mi, r9, 0xc000002a}, false, al, "mi r9 0xc000002a", "mi_r9_0xc000002a"}, 400 {{ne, r11, 0x003fc000}, 401 false, 402 al, 403 "ne r11 0x003fc000", 404 "ne_r11_" 405 "0x003fc000"}, 406 {{cs, r4, 0x00000ab0}, false, al, "cs r4 0x00000ab0", "cs_r4_0x00000ab0"}, 407 {{vc, r14, 0x2ac00000}, 408 false, 409 al, 410 "vc r14 0x2ac00000", 411 "vc_r14_" 412 "0x2ac00000"}, 413 {{vc, r8, 0x2ac00000}, false, al, "vc r8 0x2ac00000", "vc_r8_0x2ac00000"}, 414 {{ge, r10, 0x003fc000}, 415 false, 416 al, 417 "ge r10 0x003fc000", 418 "ge_r10_" 419 "0x003fc000"}, 420 {{lt, r14, 0xb000000a}, 421 false, 422 al, 423 "lt r14 0xb000000a", 424 "lt_r14_" 425 "0xb000000a"}, 426 {{cs, r12, 0x000ff000}, 427 false, 428 al, 429 "cs r12 0x000ff000", 430 "cs_r12_" 431 "0x000ff000"}, 432 {{eq, r2, 0xac000002}, false, al, "eq r2 0xac000002", "eq_r2_0xac000002"}, 433 {{le, r11, 0x2ac00000}, 434 false, 435 al, 436 "le r11 0x2ac00000", 437 "le_r11_" 438 "0x2ac00000"}, 439 {{le, r8, 0xab000000}, false, al, "le r8 0xab000000", "le_r8_0xab000000"}, 440 {{lt, r5, 0x02ac0000}, false, al, "lt r5 0x02ac0000", "lt_r5_0x02ac0000"}, 441 {{hi, r13, 0x003fc000}, 442 false, 443 al, 444 "hi r13 0x003fc000", 445 "hi_r13_" 446 "0x003fc000"}, 447 {{mi, r1, 0xfc000003}, false, al, "mi r1 0xfc000003", "mi_r1_0xfc000003"}, 448 {{cc, r4, 0x0ab00000}, false, al, "cc r4 0x0ab00000", "cc_r4_0x0ab00000"}, 449 {{lt, r7, 0x3fc00000}, false, al, "lt r7 0x3fc00000", "lt_r7_0x3fc00000"}, 450 {{lt, r3, 0x000002ac}, false, al, "lt r3 0x000002ac", "lt_r3_0x000002ac"}, 451 {{pl, r7, 0x00000000}, false, al, "pl r7 0x00000000", "pl_r7_0x00000000"}, 452 {{lt, r2, 0x00000000}, false, al, "lt r2 0x00000000", "lt_r2_0x00000000"}, 453 {{le, r1, 0x0ff00000}, false, al, "le r1 0x0ff00000", "le_r1_0x0ff00000"}, 454 {{lt, r14, 0x0000ff00}, 455 false, 456 al, 457 "lt r14 0x0000ff00", 458 "lt_r14_" 459 "0x0000ff00"}, 460 {{cs, r11, 0x3fc00000}, 461 false, 462 al, 463 "cs r11 0x3fc00000", 464 "cs_r11_" 465 "0x3fc00000"}, 466 {{ls, r7, 0x00000ff0}, false, al, "ls r7 0x00000ff0", "ls_r7_0x00000ff0"}, 467 {{vs, r3, 0x0ab00000}, false, al, "vs r3 0x0ab00000", "vs_r3_0x0ab00000"}, 468 {{cs, r12, 0x0003fc00}, 469 false, 470 al, 471 "cs r12 0x0003fc00", 472 "cs_r12_" 473 "0x0003fc00"}, 474 {{vc, r3, 0xfc000003}, false, al, "vc r3 0xfc000003", "vc_r3_0xfc000003"}, 475 {{vs, r14, 0x0ff00000}, 476 false, 477 al, 478 "vs r14 0x0ff00000", 479 "vs_r14_" 480 "0x0ff00000"}, 481 {{vc, r5, 0x00003fc0}, false, al, "vc r5 0x00003fc0", "vc_r5_0x00003fc0"}, 482 {{cc, r14, 0x0ff00000}, 483 false, 484 al, 485 "cc r14 0x0ff00000", 486 "cc_r14_" 487 "0x0ff00000"}, 488 {{cs, r7, 0x0ff00000}, false, al, "cs r7 0x0ff00000", "cs_r7_0x0ff00000"}, 489 {{al, r2, 0x00ab0000}, false, al, "al r2 0x00ab0000", "al_r2_0x00ab0000"}, 490 {{gt, r0, 0x00000000}, false, al, "gt r0 0x00000000", "gt_r0_0x00000000"}, 491 {{al, r6, 0x000003fc}, false, al, "al r6 0x000003fc", "al_r6_0x000003fc"}, 492 {{ge, r2, 0x2ac00000}, false, al, "ge r2 0x2ac00000", "ge_r2_0x2ac00000"}, 493 {{vs, r0, 0x03fc0000}, false, al, "vs r0 0x03fc0000", "vs_r0_0x03fc0000"}, 494 {{cs, r12, 0x00003fc0}, 495 false, 496 al, 497 "cs r12 0x00003fc0", 498 "cs_r12_" 499 "0x00003fc0"}, 500 {{ge, r3, 0x2ac00000}, false, al, "ge r3 0x2ac00000", "ge_r3_0x2ac00000"}, 501 {{le, r13, 0x0000ab00}, 502 false, 503 al, 504 "le r13 0x0000ab00", 505 "le_r13_" 506 "0x0000ab00"}, 507 {{al, r13, 0x02ac0000}, 508 false, 509 al, 510 "al r13 0x02ac0000", 511 "al_r13_" 512 "0x02ac0000"}, 513 {{mi, r4, 0xff000000}, false, al, "mi r4 0xff000000", "mi_r4_0xff000000"}, 514 {{cs, r3, 0x00003fc0}, false, al, "cs r3 0x00003fc0", "cs_r3_0x00003fc0"}, 515 {{ge, r13, 0x00ab0000}, 516 false, 517 al, 518 "ge r13 0x00ab0000", 519 "ge_r13_" 520 "0x00ab0000"}, 521 {{ne, r4, 0x00000ab0}, false, al, "ne r4 0x00000ab0", "ne_r4_0x00000ab0"}, 522 {{cc, r3, 0xac000002}, false, al, "cc r3 0xac000002", "cc_r3_0xac000002"}, 523 {{pl, r11, 0xab000000}, 524 false, 525 al, 526 "pl r11 0xab000000", 527 "pl_r11_" 528 "0xab000000"}, 529 {{eq, r13, 0xfc000003}, 530 false, 531 al, 532 "eq r13 0xfc000003", 533 "eq_r13_" 534 "0xfc000003"}, 535 {{ne, r5, 0xc000003f}, false, al, "ne r5 0xc000003f", "ne_r5_0xc000003f"}, 536 {{hi, r7, 0xb000000a}, false, al, "hi r7 0xb000000a", "hi_r7_0xb000000a"}, 537 {{al, r12, 0xc000002a}, 538 false, 539 al, 540 "al r12 0xc000002a", 541 "al_r12_" 542 "0xc000002a"}, 543 {{vs, r8, 0xf000000f}, false, al, "vs r8 0xf000000f", "vs_r8_0xf000000f"}, 544 {{cs, r6, 0x00ff0000}, false, al, "cs r6 0x00ff0000", "cs_r6_0x00ff0000"}, 545 {{vs, r1, 0x00002ac0}, false, al, "vs r1 0x00002ac0", "vs_r1_0x00002ac0"}, 546 {{ls, r2, 0x0ff00000}, false, al, "ls r2 0x0ff00000", "ls_r2_0x0ff00000"}, 547 {{mi, r13, 0x0000ab00}, 548 false, 549 al, 550 "mi r13 0x0000ab00", 551 "mi_r13_" 552 "0x0000ab00"}, 553 {{al, r4, 0xff000000}, false, al, "al r4 0xff000000", "al_r4_0xff000000"}, 554 {{ne, r1, 0x00002ac0}, false, al, "ne r1 0x00002ac0", "ne_r1_0x00002ac0"}, 555 {{vc, r14, 0x000002ac}, 556 false, 557 al, 558 "vc r14 0x000002ac", 559 "vc_r14_" 560 "0x000002ac"}, 561 {{al, r9, 0xb000000a}, false, al, "al r9 0xb000000a", "al_r9_0xb000000a"}, 562 {{ne, r9, 0x000002ac}, false, al, "ne r9 0x000002ac", "ne_r9_0x000002ac"}, 563 {{hi, r7, 0x0ff00000}, false, al, "hi r7 0x0ff00000", "hi_r7_0x0ff00000"}, 564 {{ne, r10, 0x000ab000}, 565 false, 566 al, 567 "ne r10 0x000ab000", 568 "ne_r10_" 569 "0x000ab000"}, 570 {{vs, r0, 0x0003fc00}, false, al, "vs r0 0x0003fc00", "vs_r0_0x0003fc00"}, 571 {{cs, r9, 0x002ac000}, false, al, "cs r9 0x002ac000", "cs_r9_0x002ac000"}, 572 {{eq, r3, 0x00000ff0}, false, al, "eq r3 0x00000ff0", "eq_r3_0x00000ff0"}, 573 {{lt, r5, 0x00ab0000}, false, al, "lt r5 0x00ab0000", "lt_r5_0x00ab0000"}, 574 {{pl, r1, 0x00ff0000}, false, al, "pl r1 0x00ff0000", "pl_r1_0x00ff0000"}, 575 {{eq, r4, 0x0000ab00}, false, al, "eq r4 0x0000ab00", "eq_r4_0x0000ab00"}, 576 {{mi, r13, 0x000000ab}, 577 false, 578 al, 579 "mi r13 0x000000ab", 580 "mi_r13_" 581 "0x000000ab"}, 582 {{pl, r12, 0x00000ff0}, 583 false, 584 al, 585 "pl r12 0x00000ff0", 586 "pl_r12_" 587 "0x00000ff0"}, 588 {{eq, r3, 0x00002ac0}, false, al, "eq r3 0x00002ac0", "eq_r3_0x00002ac0"}, 589 {{le, r12, 0x002ac000}, 590 false, 591 al, 592 "le r12 0x002ac000", 593 "le_r12_" 594 "0x002ac000"}, 595 {{ge, r10, 0x000002ac}, 596 false, 597 al, 598 "ge r10 0x000002ac", 599 "ge_r10_" 600 "0x000002ac"}, 601 {{vs, r1, 0x00ff0000}, false, al, "vs r1 0x00ff0000", "vs_r1_0x00ff0000"}, 602 {{pl, r8, 0x0000ff00}, false, al, "pl r8 0x0000ff00", "pl_r8_0x0000ff00"}, 603 {{vs, r9, 0x000ab000}, false, al, "vs r9 0x000ab000", "vs_r9_0x000ab000"}, 604 {{ls, r6, 0x003fc000}, false, al, "ls r6 0x003fc000", "ls_r6_0x003fc000"}, 605 {{vs, r14, 0x0ab00000}, 606 false, 607 al, 608 "vs r14 0x0ab00000", 609 "vs_r14_" 610 "0x0ab00000"}, 611 {{mi, r14, 0xf000000f}, 612 false, 613 al, 614 "mi r14 0xf000000f", 615 "mi_r14_" 616 "0xf000000f"}, 617 {{vc, r6, 0xf000000f}, false, al, "vc r6 0xf000000f", "vc_r6_0xf000000f"}, 618 {{ne, r4, 0x0000ff00}, false, al, "ne r4 0x0000ff00", "ne_r4_0x0000ff00"}, 619 {{gt, r10, 0xfc000003}, 620 false, 621 al, 622 "gt r10 0xfc000003", 623 "gt_r10_" 624 "0xfc000003"}, 625 {{cs, r6, 0x3fc00000}, false, al, "cs r6 0x3fc00000", "cs_r6_0x3fc00000"}, 626 {{al, r10, 0x0ff00000}, 627 false, 628 al, 629 "al r10 0x0ff00000", 630 "al_r10_" 631 "0x0ff00000"}, 632 {{pl, r12, 0x00000000}, 633 false, 634 al, 635 "pl r12 0x00000000", 636 "pl_r12_" 637 "0x00000000"}, 638 {{cc, r5, 0xfc000003}, false, al, "cc r5 0xfc000003", "cc_r5_0xfc000003"}, 639 {{pl, r10, 0x0003fc00}, 640 false, 641 al, 642 "pl r10 0x0003fc00", 643 "pl_r10_" 644 "0x0003fc00"}, 645 {{eq, r8, 0xac000002}, false, al, "eq r8 0xac000002", "eq_r8_0xac000002"}, 646 {{vs, r12, 0xac000002}, 647 false, 648 al, 649 "vs r12 0xac000002", 650 "vs_r12_" 651 "0xac000002"}, 652 {{ne, r9, 0x00ab0000}, false, al, "ne r9 0x00ab0000", "ne_r9_0x00ab0000"}, 653 {{al, r1, 0x0002ac00}, false, al, "al r1 0x0002ac00", "al_r1_0x0002ac00"}, 654 {{ne, r6, 0x0000ff00}, false, al, "ne r6 0x0000ff00", "ne_r6_0x0000ff00"}, 655 {{mi, r3, 0x03fc0000}, false, al, "mi r3 0x03fc0000", "mi_r3_0x03fc0000"}, 656 {{ge, r10, 0x0002ac00}, 657 false, 658 al, 659 "ge r10 0x0002ac00", 660 "ge_r10_" 661 "0x0002ac00"}, 662 {{vc, r5, 0xb000000a}, false, al, "vc r5 0xb000000a", "vc_r5_0xb000000a"}, 663 {{pl, r1, 0x000003fc}, false, al, "pl r1 0x000003fc", "pl_r1_0x000003fc"}, 664 {{mi, r2, 0x02ac0000}, false, al, "mi r2 0x02ac0000", "mi_r2_0x02ac0000"}, 665 {{gt, r7, 0x0003fc00}, false, al, "gt r7 0x0003fc00", "gt_r7_0x0003fc00"}, 666 {{vs, r0, 0x00000000}, false, al, "vs r0 0x00000000", "vs_r0_0x00000000"}, 667 {{vc, r11, 0xc000003f}, 668 false, 669 al, 670 "vc r11 0xc000003f", 671 "vc_r11_" 672 "0xc000003f"}, 673 {{vc, r13, 0x0ab00000}, 674 false, 675 al, 676 "vc r13 0x0ab00000", 677 "vc_r13_" 678 "0x0ab00000"}, 679 {{ge, r5, 0x0002ac00}, false, al, "ge r5 0x0002ac00", "ge_r5_0x0002ac00"}, 680 {{ge, r8, 0xc000003f}, false, al, "ge r8 0xc000003f", "ge_r8_0xc000003f"}, 681 {{al, r14, 0x000002ac}, 682 false, 683 al, 684 "al r14 0x000002ac", 685 "al_r14_" 686 "0x000002ac"}, 687 {{vs, r1, 0x00000000}, false, al, "vs r1 0x00000000", "vs_r1_0x00000000"}, 688 {{vc, r2, 0x3fc00000}, false, al, "vc r2 0x3fc00000", "vc_r2_0x3fc00000"}, 689 {{ne, r2, 0xc000003f}, false, al, "ne r2 0xc000003f", "ne_r2_0xc000003f"}, 690 {{cs, r0, 0x0ab00000}, false, al, "cs r0 0x0ab00000", "cs_r0_0x0ab00000"}, 691 {{le, r5, 0xfc000003}, false, al, "le r5 0xfc000003", "le_r5_0xfc000003"}, 692 {{cs, r3, 0x000002ac}, false, al, "cs r3 0x000002ac", "cs_r3_0x000002ac"}, 693 {{hi, r3, 0x0000ab00}, false, al, "hi r3 0x0000ab00", "hi_r3_0x0000ab00"}, 694 {{ge, r9, 0x00ab0000}, false, al, "ge r9 0x00ab0000", "ge_r9_0x00ab0000"}, 695 {{le, r0, 0x000ab000}, false, al, "le r0 0x000ab000", "le_r0_0x000ab000"}, 696 {{cc, r7, 0x000003fc}, false, al, "cc r7 0x000003fc", "cc_r7_0x000003fc"}, 697 {{pl, r7, 0x00002ac0}, false, al, "pl r7 0x00002ac0", "pl_r7_0x00002ac0"}, 698 {{cc, r1, 0x00000ab0}, false, al, "cc r1 0x00000ab0", "cc_r1_0x00000ab0"}, 699 {{le, r8, 0x0002ac00}, false, al, "le r8 0x0002ac00", "le_r8_0x0002ac00"}, 700 {{mi, r9, 0x0003fc00}, false, al, "mi r9 0x0003fc00", "mi_r9_0x0003fc00"}, 701 {{cs, r2, 0x000002ac}, false, al, "cs r2 0x000002ac", "cs_r2_0x000002ac"}, 702 {{vc, r2, 0xb000000a}, false, al, "vc r2 0xb000000a", "vc_r2_0xb000000a"}, 703 {{pl, r4, 0x000ab000}, false, al, "pl r4 0x000ab000", "pl_r4_0x000ab000"}, 704 {{hi, r0, 0x0003fc00}, false, al, "hi r0 0x0003fc00", "hi_r0_0x0003fc00"}, 705 {{vs, r12, 0x000ab000}, 706 false, 707 al, 708 "vs r12 0x000ab000", 709 "vs_r12_" 710 "0x000ab000"}, 711 {{lt, r9, 0x0003fc00}, false, al, "lt r9 0x0003fc00", "lt_r9_0x0003fc00"}, 712 {{mi, r11, 0x00002ac0}, 713 false, 714 al, 715 "mi r11 0x00002ac0", 716 "mi_r11_" 717 "0x00002ac0"}, 718 {{ls, r13, 0x000ab000}, 719 false, 720 al, 721 "ls r13 0x000ab000", 722 "ls_r13_" 723 "0x000ab000"}, 724 {{al, r3, 0x3fc00000}, false, al, "al r3 0x3fc00000", "al_r3_0x3fc00000"}, 725 {{eq, r14, 0x000000ff}, 726 false, 727 al, 728 "eq r14 0x000000ff", 729 "eq_r14_" 730 "0x000000ff"}, 731 {{le, r12, 0xff000000}, 732 false, 733 al, 734 "le r12 0xff000000", 735 "le_r12_" 736 "0xff000000"}, 737 {{gt, r8, 0xff000000}, false, al, "gt r8 0xff000000", "gt_r8_0xff000000"}, 738 {{eq, r0, 0x00ff0000}, false, al, "eq r0 0x00ff0000", "eq_r0_0x00ff0000"}, 739 {{cc, r5, 0xff000000}, false, al, "cc r5 0xff000000", "cc_r5_0xff000000"}, 740 {{mi, r2, 0x0003fc00}, false, al, "mi r2 0x0003fc00", "mi_r2_0x0003fc00"}, 741 {{cs, r10, 0xf000000f}, 742 false, 743 al, 744 "cs r10 0xf000000f", 745 "cs_r10_" 746 "0xf000000f"}, 747 {{eq, r0, 0xab000000}, false, al, "eq r0 0xab000000", "eq_r0_0xab000000"}, 748 {{al, r1, 0x03fc0000}, false, al, "al r1 0x03fc0000", "al_r1_0x03fc0000"}, 749 {{ne, r5, 0xff000000}, false, al, "ne r5 0xff000000", "ne_r5_0xff000000"}, 750 {{ne, r1, 0x03fc0000}, false, al, "ne r1 0x03fc0000", "ne_r1_0x03fc0000"}, 751 {{ls, r1, 0x000ff000}, false, al, "ls r1 0x000ff000", "ls_r1_0x000ff000"}, 752 {{vc, r0, 0x00003fc0}, false, al, "vc r0 0x00003fc0", "vc_r0_0x00003fc0"}, 753 {{eq, r4, 0x0003fc00}, false, al, "eq r4 0x0003fc00", "eq_r4_0x0003fc00"}, 754 {{mi, r3, 0xab000000}, false, al, "mi r3 0xab000000", "mi_r3_0xab000000"}, 755 {{mi, r5, 0xfc000003}, false, al, "mi r5 0xfc000003", "mi_r5_0xfc000003"}, 756 {{vs, r8, 0xab000000}, false, al, "vs r8 0xab000000", "vs_r8_0xab000000"}, 757 {{cs, r9, 0x00ff0000}, false, al, "cs r9 0x00ff0000", "cs_r9_0x00ff0000"}, 758 {{ge, r7, 0x00000ab0}, false, al, "ge r7 0x00000ab0", "ge_r7_0x00000ab0"}, 759 {{al, r9, 0xf000000f}, false, al, "al r9 0xf000000f", "al_r9_0xf000000f"}, 760 {{vc, r10, 0x000000ff}, 761 false, 762 al, 763 "vc r10 0x000000ff", 764 "vc_r10_" 765 "0x000000ff"}, 766 {{al, r4, 0x00ab0000}, false, al, "al r4 0x00ab0000", "al_r4_0x00ab0000"}, 767 {{ls, r6, 0x0000ff00}, false, al, "ls r6 0x0000ff00", "ls_r6_0x0000ff00"}, 768 {{cc, r14, 0x0ab00000}, 769 false, 770 al, 771 "cc r14 0x0ab00000", 772 "cc_r14_" 773 "0x0ab00000"}, 774 {{le, r5, 0x3fc00000}, false, al, "le r5 0x3fc00000", "le_r5_0x3fc00000"}, 775 {{ne, r12, 0x0ff00000}, 776 false, 777 al, 778 "ne r12 0x0ff00000", 779 "ne_r12_" 780 "0x0ff00000"}, 781 {{cc, r11, 0xf000000f}, 782 false, 783 al, 784 "cc r11 0xf000000f", 785 "cc_r11_" 786 "0xf000000f"}, 787 {{lt, r9, 0x000003fc}, false, al, "lt r9 0x000003fc", "lt_r9_0x000003fc"}, 788 {{ne, r7, 0x000002ac}, false, al, "ne r7 0x000002ac", "ne_r7_0x000002ac"}, 789 {{ge, r5, 0x00003fc0}, false, al, "ge r5 0x00003fc0", "ge_r5_0x00003fc0"}, 790 {{lt, r14, 0x00002ac0}, 791 false, 792 al, 793 "lt r14 0x00002ac0", 794 "lt_r14_" 795 "0x00002ac0"}, 796 {{vs, r8, 0x0002ac00}, false, al, "vs r8 0x0002ac00", "vs_r8_0x0002ac00"}, 797 {{gt, r7, 0x0000ff00}, false, al, "gt r7 0x0000ff00", "gt_r7_0x0000ff00"}, 798 {{gt, r11, 0x000002ac}, 799 false, 800 al, 801 "gt r11 0x000002ac", 802 "gt_r11_" 803 "0x000002ac"}, 804 {{lt, r12, 0x00003fc0}, 805 false, 806 al, 807 "lt r12 0x00003fc0", 808 "lt_r12_" 809 "0x00003fc0"}, 810 {{gt, r4, 0x00ff0000}, false, al, "gt r4 0x00ff0000", "gt_r4_0x00ff0000"}, 811 {{gt, r0, 0x000ff000}, false, al, "gt r0 0x000ff000", "gt_r0_0x000ff000"}, 812 {{hi, r3, 0x0002ac00}, false, al, "hi r3 0x0002ac00", "hi_r3_0x0002ac00"}, 813 {{al, r6, 0x003fc000}, false, al, "al r6 0x003fc000", "al_r6_0x003fc000"}, 814 {{al, r5, 0x0003fc00}, false, al, "al r5 0x0003fc00", "al_r5_0x0003fc00"}, 815 {{mi, r14, 0x03fc0000}, 816 false, 817 al, 818 "mi r14 0x03fc0000", 819 "mi_r14_" 820 "0x03fc0000"}, 821 {{le, r10, 0x0ab00000}, 822 false, 823 al, 824 "le r10 0x0ab00000", 825 "le_r10_" 826 "0x0ab00000"}, 827 {{vc, r4, 0xab000000}, false, al, "vc r4 0xab000000", "vc_r4_0xab000000"}, 828 {{lt, r12, 0xf000000f}, 829 false, 830 al, 831 "lt r12 0xf000000f", 832 "lt_r12_" 833 "0xf000000f"}, 834 {{le, r12, 0xf000000f}, 835 false, 836 al, 837 "le r12 0xf000000f", 838 "le_r12_" 839 "0xf000000f"}, 840 {{pl, r3, 0xfc000003}, false, al, "pl r3 0xfc000003", "pl_r3_0xfc000003"}, 841 {{ls, r9, 0x000003fc}, false, al, "ls r9 0x000003fc", "ls_r9_0x000003fc"}, 842 {{hi, r0, 0x00ff0000}, false, al, "hi r0 0x00ff0000", "hi_r0_0x00ff0000"}, 843 {{ge, r5, 0x000000ab}, false, al, "ge r5 0x000000ab", "ge_r5_0x000000ab"}, 844 {{pl, r1, 0x00000000}, false, al, "pl r1 0x00000000", "pl_r1_0x00000000"}, 845 {{vs, r11, 0x0002ac00}, 846 false, 847 al, 848 "vs r11 0x0002ac00", 849 "vs_r11_" 850 "0x0002ac00"}, 851 {{cc, r10, 0xac000002}, 852 false, 853 al, 854 "cc r10 0xac000002", 855 "cc_r10_" 856 "0xac000002"}, 857 {{al, r2, 0x00000000}, false, al, "al r2 0x00000000", "al_r2_0x00000000"}, 858 {{eq, r8, 0xab000000}, false, al, "eq r8 0xab000000", "eq_r8_0xab000000"}, 859 {{al, r5, 0xb000000a}, false, al, "al r5 0xb000000a", "al_r5_0xb000000a"}, 860 {{cs, r8, 0x000003fc}, false, al, "cs r8 0x000003fc", "cs_r8_0x000003fc"}, 861 {{ge, r5, 0xc000003f}, false, al, "ge r5 0xc000003f", "ge_r5_0xc000003f"}, 862 {{eq, r5, 0x00000ff0}, false, al, "eq r5 0x00000ff0", "eq_r5_0x00000ff0"}, 863 {{eq, r5, 0x000ff000}, false, al, "eq r5 0x000ff000", "eq_r5_0x000ff000"}, 864 {{ls, r7, 0x00000000}, false, al, "ls r7 0x00000000", "ls_r7_0x00000000"}, 865 {{vc, r9, 0x00ff0000}, false, al, "vc r9 0x00ff0000", "vc_r9_0x00ff0000"}, 866 {{le, r6, 0x00000ff0}, false, al, "le r6 0x00000ff0", "le_r6_0x00000ff0"}, 867 {{pl, r10, 0xac000002}, 868 false, 869 al, 870 "pl r10 0xac000002", 871 "pl_r10_" 872 "0xac000002"}, 873 {{vs, r13, 0x3fc00000}, 874 false, 875 al, 876 "vs r13 0x3fc00000", 877 "vs_r13_" 878 "0x3fc00000"}, 879 {{gt, r12, 0x000ab000}, 880 false, 881 al, 882 "gt r12 0x000ab000", 883 "gt_r12_" 884 "0x000ab000"}, 885 {{pl, r7, 0x0000ff00}, false, al, "pl r7 0x0000ff00", "pl_r7_0x0000ff00"}, 886 {{hi, r13, 0xab000000}, 887 false, 888 al, 889 "hi r13 0xab000000", 890 "hi_r13_" 891 "0xab000000"}, 892 {{vc, r3, 0x00003fc0}, false, al, "vc r3 0x00003fc0", "vc_r3_0x00003fc0"}, 893 {{eq, r8, 0x03fc0000}, false, al, "eq r8 0x03fc0000", "eq_r8_0x03fc0000"}, 894 {{ge, r7, 0x00ab0000}, false, al, "ge r7 0x00ab0000", "ge_r7_0x00ab0000"}, 895 {{ls, r5, 0x00000ab0}, false, al, "ls r5 0x00000ab0", "ls_r5_0x00000ab0"}, 896 {{ls, r8, 0xb000000a}, false, al, "ls r8 0xb000000a", "ls_r8_0xb000000a"}, 897 {{cs, r2, 0xab000000}, false, al, "cs r2 0xab000000", "cs_r2_0xab000000"}, 898 {{ne, r1, 0x0ab00000}, false, al, "ne r1 0x0ab00000", "ne_r1_0x0ab00000"}, 899 {{hi, r3, 0x0ab00000}, false, al, "hi r3 0x0ab00000", "hi_r3_0x0ab00000"}, 900 {{vc, r1, 0x00ab0000}, false, al, "vc r1 0x00ab0000", "vc_r1_0x00ab0000"}, 901 {{gt, r12, 0x0003fc00}, 902 false, 903 al, 904 "gt r12 0x0003fc00", 905 "gt_r12_" 906 "0x0003fc00"}, 907 {{lt, r11, 0x00000ff0}, 908 false, 909 al, 910 "lt r11 0x00000ff0", 911 "lt_r11_" 912 "0x00000ff0"}, 913 {{ne, r5, 0xc000002a}, false, al, "ne r5 0xc000002a", "ne_r5_0xc000002a"}, 914 {{vc, r6, 0x000003fc}, false, al, "vc r6 0x000003fc", "vc_r6_0x000003fc"}, 915 {{gt, r1, 0xab000000}, false, al, "gt r1 0xab000000", "gt_r1_0xab000000"}, 916 {{gt, r5, 0x3fc00000}, false, al, "gt r5 0x3fc00000", "gt_r5_0x3fc00000"}, 917 {{cs, r3, 0x00002ac0}, false, al, "cs r3 0x00002ac0", "cs_r3_0x00002ac0"}, 918 {{mi, r0, 0xff000000}, false, al, "mi r0 0xff000000", "mi_r0_0xff000000"}, 919 {{cs, r3, 0x00000ff0}, false, al, "cs r3 0x00000ff0", "cs_r3_0x00000ff0"}, 920 {{le, r13, 0xff000000}, 921 false, 922 al, 923 "le r13 0xff000000", 924 "le_r13_" 925 "0xff000000"}, 926 {{hi, r8, 0x00000000}, false, al, "hi r8 0x00000000", "hi_r8_0x00000000"}, 927 {{vc, r12, 0x0002ac00}, 928 false, 929 al, 930 "vc r12 0x0002ac00", 931 "vc_r12_" 932 "0x0002ac00"}, 933 {{eq, r9, 0x00000ff0}, false, al, "eq r9 0x00000ff0", "eq_r9_0x00000ff0"}, 934 {{vc, r14, 0x0ff00000}, 935 false, 936 al, 937 "vc r14 0x0ff00000", 938 "vc_r14_" 939 "0x0ff00000"}, 940 {{hi, r2, 0x00ff0000}, false, al, "hi r2 0x00ff0000", "hi_r2_0x00ff0000"}, 941 {{al, r2, 0x03fc0000}, false, al, "al r2 0x03fc0000", "al_r2_0x03fc0000"}, 942 {{mi, r14, 0x0ab00000}, 943 false, 944 al, 945 "mi r14 0x0ab00000", 946 "mi_r14_" 947 "0x0ab00000"}, 948 {{vs, r11, 0x000ff000}, 949 false, 950 al, 951 "vs r11 0x000ff000", 952 "vs_r11_" 953 "0x000ff000"}, 954 {{le, r11, 0x0003fc00}, 955 false, 956 al, 957 "le r11 0x0003fc00", 958 "le_r11_" 959 "0x0003fc00"}, 960 {{eq, r6, 0x002ac000}, false, al, "eq r6 0x002ac000", "eq_r6_0x002ac000"}, 961 {{ne, r12, 0xab000000}, 962 false, 963 al, 964 "ne r12 0xab000000", 965 "ne_r12_" 966 "0xab000000"}, 967 {{eq, r4, 0x000ff000}, false, al, "eq r4 0x000ff000", "eq_r4_0x000ff000"}, 968 {{cs, r6, 0x000003fc}, false, al, "cs r6 0x000003fc", "cs_r6_0x000003fc"}, 969 {{le, r13, 0xf000000f}, 970 false, 971 al, 972 "le r13 0xf000000f", 973 "le_r13_" 974 "0xf000000f"}, 975 {{vs, r3, 0x02ac0000}, false, al, "vs r3 0x02ac0000", "vs_r3_0x02ac0000"}, 976 {{lt, r3, 0xab000000}, false, al, "lt r3 0xab000000", "lt_r3_0xab000000"}, 977 {{pl, r5, 0xab000000}, false, al, "pl r5 0xab000000", "pl_r5_0xab000000"}, 978 {{mi, r10, 0x00002ac0}, 979 false, 980 al, 981 "mi r10 0x00002ac0", 982 "mi_r10_" 983 "0x00002ac0"}, 984 {{vc, r3, 0x000000ab}, false, al, "vc r3 0x000000ab", "vc_r3_0x000000ab"}, 985 {{pl, r10, 0x02ac0000}, 986 false, 987 al, 988 "pl r10 0x02ac0000", 989 "pl_r10_" 990 "0x02ac0000"}, 991 {{vs, r11, 0x3fc00000}, 992 false, 993 al, 994 "vs r11 0x3fc00000", 995 "vs_r11_" 996 "0x3fc00000"}, 997 {{cc, r7, 0x3fc00000}, false, al, "cc r7 0x3fc00000", "cc_r7_0x3fc00000"}, 998 {{cs, r3, 0x0000ab00}, false, al, "cs r3 0x0000ab00", "cs_r3_0x0000ab00"}, 999 {{cc, r14, 0x02ac0000}, 1000 false, 1001 al, 1002 "cc r14 0x02ac0000", 1003 "cc_r14_" 1004 "0x02ac0000"}, 1005 {{vs, r0, 0x2ac00000}, false, al, "vs r0 0x2ac00000", "vs_r0_0x2ac00000"}, 1006 {{gt, r13, 0x0ff00000}, 1007 false, 1008 al, 1009 "gt r13 0x0ff00000", 1010 "gt_r13_" 1011 "0x0ff00000"}, 1012 {{mi, r10, 0x2ac00000}, 1013 false, 1014 al, 1015 "mi r10 0x2ac00000", 1016 "mi_r10_" 1017 "0x2ac00000"}, 1018 {{ls, r2, 0x0ab00000}, false, al, "ls r2 0x0ab00000", "ls_r2_0x0ab00000"}, 1019 {{pl, r10, 0x000000ff}, 1020 false, 1021 al, 1022 "pl r10 0x000000ff", 1023 "pl_r10_" 1024 "0x000000ff"}, 1025 {{al, r9, 0x3fc00000}, false, al, "al r9 0x3fc00000", "al_r9_0x3fc00000"}, 1026 {{vs, r4, 0x2ac00000}, false, al, "vs r4 0x2ac00000", "vs_r4_0x2ac00000"}, 1027 {{vs, r12, 0x000ff000}, 1028 false, 1029 al, 1030 "vs r12 0x000ff000", 1031 "vs_r12_" 1032 "0x000ff000"}, 1033 {{ge, r7, 0xc000002a}, false, al, "ge r7 0xc000002a", "ge_r7_0xc000002a"}, 1034 {{vc, r7, 0x0002ac00}, false, al, "vc r7 0x0002ac00", "vc_r7_0x0002ac00"}, 1035 {{gt, r7, 0x000ab000}, false, al, "gt r7 0x000ab000", "gt_r7_0x000ab000"}, 1036 {{gt, r13, 0x000000ab}, 1037 false, 1038 al, 1039 "gt r13 0x000000ab", 1040 "gt_r13_" 1041 "0x000000ab"}, 1042 {{ne, r1, 0xfc000003}, false, al, "ne r1 0xfc000003", "ne_r1_0xfc000003"}, 1043 {{vc, r14, 0x000ab000}, 1044 false, 1045 al, 1046 "vc r14 0x000ab000", 1047 "vc_r14_" 1048 "0x000ab000"}, 1049 {{gt, r5, 0xf000000f}, false, al, "gt r5 0xf000000f", "gt_r5_0xf000000f"}, 1050 {{ge, r6, 0x00ff0000}, false, al, "ge r6 0x00ff0000", "ge_r6_0x00ff0000"}, 1051 {{ls, r12, 0x0000ff00}, 1052 false, 1053 al, 1054 "ls r12 0x0000ff00", 1055 "ls_r12_" 1056 "0x0000ff00"}, 1057 {{mi, r12, 0x03fc0000}, 1058 false, 1059 al, 1060 "mi r12 0x03fc0000", 1061 "mi_r12_" 1062 "0x03fc0000"}, 1063 {{vs, r10, 0x0003fc00}, 1064 false, 1065 al, 1066 "vs r10 0x0003fc00", 1067 "vs_r10_" 1068 "0x0003fc00"}, 1069 {{gt, r6, 0x0000ff00}, false, al, "gt r6 0x0000ff00", "gt_r6_0x0000ff00"}, 1070 {{pl, r6, 0x00ff0000}, false, al, "pl r6 0x00ff0000", "pl_r6_0x00ff0000"}, 1071 {{ne, r0, 0x002ac000}, false, al, "ne r0 0x002ac000", "ne_r0_0x002ac000"}, 1072 {{eq, r2, 0x003fc000}, false, al, "eq r2 0x003fc000", "eq_r2_0x003fc000"}, 1073 {{ne, r10, 0x000003fc}, 1074 false, 1075 al, 1076 "ne r10 0x000003fc", 1077 "ne_r10_" 1078 "0x000003fc"}, 1079 {{lt, r10, 0x02ac0000}, 1080 false, 1081 al, 1082 "lt r10 0x02ac0000", 1083 "lt_r10_" 1084 "0x02ac0000"}, 1085 {{lt, r2, 0x000ff000}, false, al, "lt r2 0x000ff000", "lt_r2_0x000ff000"}, 1086 {{pl, r3, 0x0000ab00}, false, al, "pl r3 0x0000ab00", "pl_r3_0x0000ab00"}, 1087 {{ge, r9, 0xc000003f}, false, al, "ge r9 0xc000003f", "ge_r9_0xc000003f"}, 1088 {{vs, r4, 0x000003fc}, false, al, "vs r4 0x000003fc", "vs_r4_0x000003fc"}, 1089 {{hi, r13, 0xf000000f}, 1090 false, 1091 al, 1092 "hi r13 0xf000000f", 1093 "hi_r13_" 1094 "0xf000000f"}, 1095 {{pl, r1, 0x02ac0000}, false, al, "pl r1 0x02ac0000", "pl_r1_0x02ac0000"}, 1096 {{pl, r1, 0x000000ff}, false, al, "pl r1 0x000000ff", "pl_r1_0x000000ff"}, 1097 {{al, r3, 0x00000ff0}, false, al, "al r3 0x00000ff0", "al_r3_0x00000ff0"}, 1098 {{gt, r0, 0x03fc0000}, false, al, "gt r0 0x03fc0000", "gt_r0_0x03fc0000"}, 1099 {{cc, r1, 0x2ac00000}, false, al, "cc r1 0x2ac00000", "cc_r1_0x2ac00000"}, 1100 {{mi, r9, 0xc000003f}, false, al, "mi r9 0xc000003f", "mi_r9_0xc000003f"}, 1101 {{vc, r4, 0xff000000}, false, al, "vc r4 0xff000000", "vc_r4_0xff000000"}, 1102 {{pl, r9, 0x0002ac00}, false, al, "pl r9 0x0002ac00", "pl_r9_0x0002ac00"}, 1103 {{vs, r8, 0x02ac0000}, false, al, "vs r8 0x02ac0000", "vs_r8_0x02ac0000"}, 1104 {{gt, r7, 0xf000000f}, false, al, "gt r7 0xf000000f", "gt_r7_0xf000000f"}, 1105 {{gt, r10, 0xff000000}, 1106 false, 1107 al, 1108 "gt r10 0xff000000", 1109 "gt_r10_" 1110 "0xff000000"}, 1111 {{cs, r0, 0x00003fc0}, false, al, "cs r0 0x00003fc0", "cs_r0_0x00003fc0"}, 1112 {{gt, r8, 0x03fc0000}, false, al, "gt r8 0x03fc0000", "gt_r8_0x03fc0000"}, 1113 {{ne, r8, 0x00002ac0}, false, al, "ne r8 0x00002ac0", "ne_r8_0x00002ac0"}, 1114 {{ne, r13, 0xc000002a}, 1115 false, 1116 al, 1117 "ne r13 0xc000002a", 1118 "ne_r13_" 1119 "0xc000002a"}, 1120 {{ne, r8, 0x3fc00000}, false, al, "ne r8 0x3fc00000", "ne_r8_0x3fc00000"}, 1121 {{vs, r2, 0x002ac000}, false, al, "vs r2 0x002ac000", "vs_r2_0x002ac000"}, 1122 {{vs, r7, 0x000000ab}, false, al, "vs r7 0x000000ab", "vs_r7_0x000000ab"}, 1123 {{cc, r6, 0x00000000}, false, al, "cc r6 0x00000000", "cc_r6_0x00000000"}, 1124 {{ls, r3, 0xf000000f}, false, al, "ls r3 0xf000000f", "ls_r3_0xf000000f"}, 1125 {{hi, r0, 0x000000ff}, false, al, "hi r0 0x000000ff", "hi_r0_0x000000ff"}, 1126 {{cs, r6, 0x00002ac0}, false, al, "cs r6 0x00002ac0", "cs_r6_0x00002ac0"}, 1127 {{al, r1, 0xb000000a}, false, al, "al r1 0xb000000a", "al_r1_0xb000000a"}, 1128 {{cc, r0, 0x00002ac0}, false, al, "cc r0 0x00002ac0", "cc_r0_0x00002ac0"}, 1129 {{cc, r12, 0x000003fc}, 1130 false, 1131 al, 1132 "cc r12 0x000003fc", 1133 "cc_r12_" 1134 "0x000003fc"}, 1135 {{ne, r14, 0xc000002a}, 1136 false, 1137 al, 1138 "ne r14 0xc000002a", 1139 "ne_r14_" 1140 "0xc000002a"}, 1141 {{al, r6, 0xc000003f}, false, al, "al r6 0xc000003f", "al_r6_0xc000003f"}, 1142 {{ls, r5, 0xf000000f}, false, al, "ls r5 0xf000000f", "ls_r5_0xf000000f"}, 1143 {{mi, r5, 0x03fc0000}, false, al, "mi r5 0x03fc0000", "mi_r5_0x03fc0000"}, 1144 {{cs, r14, 0xf000000f}, 1145 false, 1146 al, 1147 "cs r14 0xf000000f", 1148 "cs_r14_" 1149 "0xf000000f"}, 1150 {{hi, r0, 0x02ac0000}, false, al, "hi r0 0x02ac0000", "hi_r0_0x02ac0000"}, 1151 {{pl, r10, 0x00000000}, 1152 false, 1153 al, 1154 "pl r10 0x00000000", 1155 "pl_r10_" 1156 "0x00000000"}, 1157 {{ne, r6, 0xc000003f}, false, al, "ne r6 0xc000003f", "ne_r6_0xc000003f"}, 1158 {{mi, r6, 0x00002ac0}, false, al, "mi r6 0x00002ac0", "mi_r6_0x00002ac0"}, 1159 {{vs, r6, 0x000000ab}, false, al, "vs r6 0x000000ab", "vs_r6_0x000000ab"}, 1160 {{vc, r6, 0x3fc00000}, false, al, "vc r6 0x3fc00000", "vc_r6_0x3fc00000"}, 1161 {{al, r10, 0x3fc00000}, 1162 false, 1163 al, 1164 "al r10 0x3fc00000", 1165 "al_r10_" 1166 "0x3fc00000"}, 1167 {{eq, r7, 0xc000003f}, false, al, "eq r7 0xc000003f", "eq_r7_0xc000003f"}, 1168 {{vs, r9, 0x02ac0000}, false, al, "vs r9 0x02ac0000", "vs_r9_0x02ac0000"}, 1169 {{mi, r6, 0xac000002}, false, al, "mi r6 0xac000002", "mi_r6_0xac000002"}, 1170 {{vc, r8, 0xc000002a}, false, al, "vc r8 0xc000002a", "vc_r8_0xc000002a"}, 1171 {{pl, r2, 0x0000ab00}, false, al, "pl r2 0x0000ab00", "pl_r2_0x0000ab00"}, 1172 {{hi, r4, 0x00000ff0}, false, al, "hi r4 0x00000ff0", "hi_r4_0x00000ff0"}, 1173 {{al, r8, 0x003fc000}, false, al, "al r8 0x003fc000", "al_r8_0x003fc000"}, 1174 {{vs, r12, 0xfc000003}, 1175 false, 1176 al, 1177 "vs r12 0xfc000003", 1178 "vs_r12_" 1179 "0xfc000003"}, 1180 {{cs, r0, 0xac000002}, false, al, "cs r0 0xac000002", "cs_r0_0xac000002"}, 1181 {{mi, r4, 0x02ac0000}, false, al, "mi r4 0x02ac0000", "mi_r4_0x02ac0000"}, 1182 {{pl, r11, 0x00003fc0}, 1183 false, 1184 al, 1185 "pl r11 0x00003fc0", 1186 "pl_r11_" 1187 "0x00003fc0"}, 1188 {{pl, r13, 0xac000002}, 1189 false, 1190 al, 1191 "pl r13 0xac000002", 1192 "pl_r13_" 1193 "0xac000002"}, 1194 {{hi, r8, 0x0000ff00}, false, al, "hi r8 0x0000ff00", "hi_r8_0x0000ff00"}, 1195 {{cs, r13, 0x2ac00000}, 1196 false, 1197 al, 1198 "cs r13 0x2ac00000", 1199 "cs_r13_" 1200 "0x2ac00000"}, 1201 {{hi, r11, 0xc000003f}, 1202 false, 1203 al, 1204 "hi r11 0xc000003f", 1205 "hi_r11_" 1206 "0xc000003f"}, 1207 {{lt, r5, 0x000002ac}, false, al, "lt r5 0x000002ac", "lt_r5_0x000002ac"}, 1208 {{vs, r4, 0x0ff00000}, false, al, "vs r4 0x0ff00000", "vs_r4_0x0ff00000"}, 1209 {{lt, r2, 0x00000ab0}, false, al, "lt r2 0x00000ab0", "lt_r2_0x00000ab0"}, 1210 {{pl, r12, 0x000000ab}, 1211 false, 1212 al, 1213 "pl r12 0x000000ab", 1214 "pl_r12_" 1215 "0x000000ab"}, 1216 {{gt, r3, 0xb000000a}, false, al, "gt r3 0xb000000a", "gt_r3_0xb000000a"}, 1217 {{hi, r12, 0x0002ac00}, 1218 false, 1219 al, 1220 "hi r12 0x0002ac00", 1221 "hi_r12_" 1222 "0x0002ac00"}, 1223 {{le, r0, 0x00ff0000}, false, al, "le r0 0x00ff0000", "le_r0_0x00ff0000"}, 1224 {{eq, r6, 0x000ab000}, false, al, "eq r6 0x000ab000", "eq_r6_0x000ab000"}, 1225 {{lt, r6, 0x0ff00000}, false, al, "lt r6 0x0ff00000", "lt_r6_0x0ff00000"}, 1226 {{mi, r4, 0x000ff000}, false, al, "mi r4 0x000ff000", "mi_r4_0x000ff000"}, 1227 {{le, r3, 0x0ab00000}, false, al, "le r3 0x0ab00000", "le_r3_0x0ab00000"}, 1228 {{ge, r3, 0xac000002}, false, al, "ge r3 0xac000002", "ge_r3_0xac000002"}, 1229 {{gt, r13, 0x00000ff0}, 1230 false, 1231 al, 1232 "gt r13 0x00000ff0", 1233 "gt_r13_" 1234 "0x00000ff0"}, 1235 {{le, r10, 0x0000ff00}, 1236 false, 1237 al, 1238 "le r10 0x0000ff00", 1239 "le_r10_" 1240 "0x0000ff00"}, 1241 {{lt, r14, 0x00ab0000}, 1242 false, 1243 al, 1244 "lt r14 0x00ab0000", 1245 "lt_r14_" 1246 "0x00ab0000"}, 1247 {{mi, r2, 0x00003fc0}, false, al, "mi r2 0x00003fc0", "mi_r2_0x00003fc0"}, 1248 {{ge, r9, 0x00002ac0}, false, al, "ge r9 0x00002ac0", "ge_r9_0x00002ac0"}, 1249 {{al, r11, 0x2ac00000}, 1250 false, 1251 al, 1252 "al r11 0x2ac00000", 1253 "al_r11_" 1254 "0x2ac00000"}, 1255 {{pl, r6, 0x00000000}, false, al, "pl r6 0x00000000", "pl_r6_0x00000000"}, 1256 {{ls, r2, 0x002ac000}, false, al, "ls r2 0x002ac000", "ls_r2_0x002ac000"}, 1257 {{lt, r0, 0xf000000f}, false, al, "lt r0 0xf000000f", "lt_r0_0xf000000f"}, 1258 {{cs, r6, 0x00000ff0}, false, al, "cs r6 0x00000ff0", "cs_r6_0x00000ff0"}, 1259 {{lt, r12, 0x00000ff0}, 1260 false, 1261 al, 1262 "lt r12 0x00000ff0", 1263 "lt_r12_" 1264 "0x00000ff0"}, 1265 {{al, r6, 0xff000000}, false, al, "al r6 0xff000000", "al_r6_0xff000000"}, 1266 {{gt, r4, 0x0000ff00}, false, al, "gt r4 0x0000ff00", "gt_r4_0x0000ff00"}, 1267 {{al, r14, 0x0000ff00}, 1268 false, 1269 al, 1270 "al r14 0x0000ff00", 1271 "al_r14_" 1272 "0x0000ff00"}, 1273 {{al, r10, 0xf000000f}, 1274 false, 1275 al, 1276 "al r10 0xf000000f", 1277 "al_r10_" 1278 "0xf000000f"}, 1279 {{mi, r3, 0x0003fc00}, false, al, "mi r3 0x0003fc00", "mi_r3_0x0003fc00"}, 1280 {{pl, r0, 0xf000000f}, false, al, "pl r0 0xf000000f", "pl_r0_0xf000000f"}, 1281 {{al, r6, 0x00000ab0}, false, al, "al r6 0x00000ab0", "al_r6_0x00000ab0"}, 1282 {{le, r8, 0x000002ac}, false, al, "le r8 0x000002ac", "le_r8_0x000002ac"}, 1283 {{ge, r14, 0x00000000}, 1284 false, 1285 al, 1286 "ge r14 0x00000000", 1287 "ge_r14_" 1288 "0x00000000"}, 1289 {{eq, r1, 0xff000000}, false, al, "eq r1 0xff000000", "eq_r1_0xff000000"}, 1290 {{mi, r14, 0x00000ff0}, 1291 false, 1292 al, 1293 "mi r14 0x00000ff0", 1294 "mi_r14_" 1295 "0x00000ff0"}, 1296 {{eq, r3, 0xff000000}, false, al, "eq r3 0xff000000", "eq_r3_0xff000000"}, 1297 {{mi, r0, 0x0000ab00}, false, al, "mi r0 0x0000ab00", "mi_r0_0x0000ab00"}, 1298 {{mi, r5, 0x000ff000}, false, al, "mi r5 0x000ff000", "mi_r5_0x000ff000"}, 1299 {{vs, r3, 0x0ff00000}, false, al, "vs r3 0x0ff00000", "vs_r3_0x0ff00000"}, 1300 {{gt, r14, 0x0ff00000}, 1301 false, 1302 al, 1303 "gt r14 0x0ff00000", 1304 "gt_r14_" 1305 "0x0ff00000"}, 1306 {{le, r6, 0x000003fc}, false, al, "le r6 0x000003fc", "le_r6_0x000003fc"}, 1307 {{vs, r6, 0xab000000}, false, al, "vs r6 0xab000000", "vs_r6_0xab000000"}, 1308 {{le, r0, 0x000000ab}, false, al, "le r0 0x000000ab", "le_r0_0x000000ab"}, 1309 {{cc, r9, 0x0ab00000}, false, al, "cc r9 0x0ab00000", "cc_r9_0x0ab00000"}, 1310 {{vs, r10, 0x0ff00000}, 1311 false, 1312 al, 1313 "vs r10 0x0ff00000", 1314 "vs_r10_" 1315 "0x0ff00000"}, 1316 {{gt, r3, 0x002ac000}, false, al, "gt r3 0x002ac000", "gt_r3_0x002ac000"}, 1317 {{le, r2, 0x0ab00000}, false, al, "le r2 0x0ab00000", "le_r2_0x0ab00000"}, 1318 {{ne, r14, 0xc000003f}, 1319 false, 1320 al, 1321 "ne r14 0xc000003f", 1322 "ne_r14_" 1323 "0xc000003f"}, 1324 {{ne, r14, 0x000ff000}, 1325 false, 1326 al, 1327 "ne r14 0x000ff000", 1328 "ne_r14_" 1329 "0x000ff000"}, 1330 {{hi, r3, 0xb000000a}, false, al, "hi r3 0xb000000a", "hi_r3_0xb000000a"}, 1331 {{cs, r7, 0x000000ab}, false, al, "cs r7 0x000000ab", "cs_r7_0x000000ab"}, 1332 {{eq, r12, 0x3fc00000}, 1333 false, 1334 al, 1335 "eq r12 0x3fc00000", 1336 "eq_r12_" 1337 "0x3fc00000"}, 1338 {{ls, r5, 0x03fc0000}, false, al, "ls r5 0x03fc0000", "ls_r5_0x03fc0000"}, 1339 {{ne, r13, 0x003fc000}, 1340 false, 1341 al, 1342 "ne r13 0x003fc000", 1343 "ne_r13_" 1344 "0x003fc000"}, 1345 {{hi, r6, 0xac000002}, false, al, "hi r6 0xac000002", "hi_r6_0xac000002"}, 1346 {{vc, r6, 0xfc000003}, false, al, "vc r6 0xfc000003", "vc_r6_0xfc000003"}, 1347 {{pl, r10, 0x00ab0000}, 1348 false, 1349 al, 1350 "pl r10 0x00ab0000", 1351 "pl_r10_" 1352 "0x00ab0000"}, 1353 {{vc, r6, 0x0000ff00}, false, al, "vc r6 0x0000ff00", "vc_r6_0x0000ff00"}, 1354 {{cs, r0, 0x003fc000}, false, al, "cs r0 0x003fc000", "cs_r0_0x003fc000"}, 1355 {{hi, r5, 0x000003fc}, false, al, "hi r5 0x000003fc", "hi_r5_0x000003fc"}, 1356 {{mi, r7, 0x0002ac00}, false, al, "mi r7 0x0002ac00", "mi_r7_0x0002ac00"}, 1357 {{ne, r0, 0x02ac0000}, false, al, "ne r0 0x02ac0000", "ne_r0_0x02ac0000"}, 1358 {{vs, r12, 0xc000002a}, 1359 false, 1360 al, 1361 "vs r12 0xc000002a", 1362 "vs_r12_" 1363 "0xc000002a"}, 1364 {{al, r12, 0x000002ac}, 1365 false, 1366 al, 1367 "al r12 0x000002ac", 1368 "al_r12_" 1369 "0x000002ac"}, 1370 {{cs, r4, 0x3fc00000}, false, al, "cs r4 0x3fc00000", "cs_r4_0x3fc00000"}, 1371 {{ne, r9, 0x00000ab0}, false, al, "ne r9 0x00000ab0", "ne_r9_0x00000ab0"}, 1372 {{eq, r14, 0x0003fc00}, 1373 false, 1374 al, 1375 "eq r14 0x0003fc00", 1376 "eq_r14_0x0003fc00"}}; 1377 1378 // These headers each contain an array of `TestResult` with the reference output 1379 // values. The reference arrays are names `kReference{mnemonic}`. 1380 #include "aarch32/traces/assembler-cond-rd-operand-const-cannot-use-pc-mov-a32.h" 1381 #include "aarch32/traces/assembler-cond-rd-operand-const-cannot-use-pc-movs-a32.h" 1382 #include "aarch32/traces/assembler-cond-rd-operand-const-cannot-use-pc-mvn-a32.h" 1383 #include "aarch32/traces/assembler-cond-rd-operand-const-cannot-use-pc-mvns-a32.h" 1384 1385 1386 // The maximum number of errors to report in detail for each test. 1387 const unsigned kErrorReportLimit = 8; 1388 1389 typedef void (MacroAssembler::*Fn)(Condition cond, 1390 Register rd, 1391 const Operand& op); 1392 1393 void TestHelper(Fn instruction, 1394 const char* mnemonic, 1395 const TestResult reference[]) { 1396 unsigned total_error_count = 0; 1397 MacroAssembler masm(BUF_SIZE); 1398 1399 masm.UseA32(); 1400 1401 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) { 1402 // Values to pass to the macro-assembler. 1403 Condition cond = kTests[i].operands.cond; 1404 Register rd = kTests[i].operands.rd; 1405 uint32_t immediate = kTests[i].operands.immediate; 1406 Operand op(immediate); 1407 1408 int32_t start = masm.GetCursorOffset(); 1409 { 1410 // We never generate more that 4 bytes, as IT instructions are only 1411 // allowed for narrow encodings. 1412 ExactAssemblyScope scope(&masm, 4, ExactAssemblyScope::kMaximumSize); 1413 if (kTests[i].in_it_block) { 1414 masm.it(kTests[i].it_condition); 1415 } 1416 (masm.*instruction)(cond, rd, op); 1417 } 1418 int32_t end = masm.GetCursorOffset(); 1419 1420 const byte* result_ptr = 1421 masm.GetBuffer()->GetOffsetAddress<const byte*>(start); 1422 VIXL_ASSERT(start < end); 1423 uint32_t result_size = end - start; 1424 1425 if (Test::generate_test_trace()) { 1426 // Print the result bytes. 1427 printf("const byte kInstruction_%s_%s[] = {\n", 1428 mnemonic, 1429 kTests[i].identifier); 1430 for (uint32_t j = 0; j < result_size; j++) { 1431 if (j == 0) { 1432 printf(" 0x%02" PRIx8, result_ptr[j]); 1433 } else { 1434 printf(", 0x%02" PRIx8, result_ptr[j]); 1435 } 1436 } 1437 // This comment is meant to be used by external tools to validate 1438 // the encoding. We can parse the comment to figure out what 1439 // instruction this corresponds to. 1440 if (kTests[i].in_it_block) { 1441 printf(" // It %s; %s %s\n};\n", 1442 kTests[i].it_condition.GetName(), 1443 mnemonic, 1444 kTests[i].operands_description); 1445 } else { 1446 printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description); 1447 } 1448 } else { 1449 // Check we've emitted the exact same encoding as present in the 1450 // trace file. Only print up to `kErrorReportLimit` errors. 1451 if (((result_size != reference[i].size) || 1452 (memcmp(result_ptr, reference[i].encoding, reference[i].size) != 1453 0)) && 1454 (++total_error_count <= kErrorReportLimit)) { 1455 printf("Error when testing \"%s\" with operands \"%s\":\n", 1456 mnemonic, 1457 kTests[i].operands_description); 1458 printf(" Expected: "); 1459 for (uint32_t j = 0; j < reference[i].size; j++) { 1460 if (j == 0) { 1461 printf("0x%02" PRIx8, reference[i].encoding[j]); 1462 } else { 1463 printf(", 0x%02" PRIx8, reference[i].encoding[j]); 1464 } 1465 } 1466 printf("\n"); 1467 printf(" Found: "); 1468 for (uint32_t j = 0; j < result_size; j++) { 1469 if (j == 0) { 1470 printf("0x%02" PRIx8, result_ptr[j]); 1471 } else { 1472 printf(", 0x%02" PRIx8, result_ptr[j]); 1473 } 1474 } 1475 printf("\n"); 1476 } 1477 } 1478 } 1479 1480 masm.FinalizeCode(); 1481 1482 if (Test::generate_test_trace()) { 1483 // Finalize the trace file by writing the final `TestResult` array 1484 // which links all generated instruction encodings. 1485 printf("const TestResult kReference%s[] = {\n", mnemonic); 1486 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) { 1487 printf(" {\n"); 1488 printf(" ARRAY_SIZE(kInstruction_%s_%s),\n", 1489 mnemonic, 1490 kTests[i].identifier); 1491 printf(" kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier); 1492 printf(" },\n"); 1493 } 1494 printf("};\n"); 1495 } else { 1496 if (total_error_count > kErrorReportLimit) { 1497 printf("%u other errors follow.\n", 1498 total_error_count - kErrorReportLimit); 1499 } 1500 // Crash if the test failed. 1501 VIXL_CHECK(total_error_count == 0); 1502 } 1503 } 1504 1505 // Instantiate tests for each instruction in the list. 1506 #define TEST(mnemonic) \ 1507 void Test_##mnemonic() { \ 1508 TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic); \ 1509 } \ 1510 Test test_##mnemonic( \ 1511 "AARCH32_ASSEMBLER_COND_RD_OPERAND_CONST_CANNOT_USE_PC_" #mnemonic \ 1512 "_A32", \ 1513 &Test_##mnemonic); 1514 FOREACH_INSTRUCTION(TEST) 1515 #undef TEST 1516 1517 } // namespace 1518 #endif 1519 1520 } // namespace aarch32 1521 } // namespace vixl 1522