Home | History | Annotate | Download | only in XCore
      1 # RUN: llvm-mc --disassemble %s -triple=xcore-xmos-elf | FileCheck %s
      2 
      3 # 0r instructions
      4 
      5 # CHECK: clre
      6 0xed 0x07
      7 
      8 # CHECK: get r11, id
      9 0xee 0x17
     10 
     11 # CHECK: get r11, ed
     12 0xfe 0x0f
     13 
     14 # CHECK: get r11, et
     15 0xff 0x0f
     16 
     17 # CHECK: ssync
     18 0xee 0x07
     19 
     20 # CHECK: waiteu
     21 0xec 0x07
     22 
     23 # CHECK: dcall
     24 0xfc 0x07
     25 
     26 # CHECK: dentsp
     27 0xec 0x17
     28 
     29 # CHECK: drestsp
     30 0xed 0x17
     31 
     32 # CHECK: dret
     33 0xfe 0x07
     34 
     35 # CHECK: freet
     36 0xef 0x07
     37 
     38 # CHECK: get r11, kep
     39 0xef 0x17
     40 
     41 # CHECK: get r11, ksp
     42 0xfc 0x17
     43 
     44 # CHECK: kret
     45 0xfd 0x07
     46 
     47 # CHECK: ldw et, sp[4]
     48 0xfe 0x17
     49 
     50 # CHECK: ldw sed, sp[3]
     51 0xfd 0x17
     52 
     53 # CHECK: ldw spc, sp[1]
     54 0xec 0x0f
     55 
     56 # CHECK: ldw ssr, sp[2]
     57 0xee 0x0f
     58 
     59 # CHECK: set kep, r11
     60 0xff 0x07
     61 
     62 # CHECK: stw et, sp[4]
     63 0xfd 0x0f
     64 
     65 # CHECK: stw sed, sp[3]
     66 0xfc 0x0f
     67 
     68 # CHECK: stw spc, sp[1]
     69 0xed 0x0f
     70 
     71 # CHECK: stw ssr, sp[2]
     72 0xef 0x0f
     73 
     74 # 1r instructions
     75 
     76 # CHECK: msync res[r0]
     77 0xf0 0x1f
     78 
     79 # CHECK: mjoin res[r1]
     80 0xf1 0x17
     81 
     82 # CHECK: bau r2
     83 0xf2 0x27
     84 
     85 # CHECK: set sp, r3
     86 0xf3 0x2f
     87 
     88 # CHECK: ecallt r4
     89 0xf4 0x4f
     90 
     91 # CHECK: ecallf r5
     92 0xe5 0x4f
     93 
     94 # CHECK: bla r6
     95 0xe6 0x27
     96 
     97 # CHECK: bru r8
     98 0xe8 0x2f
     99 
    100 # CHECK: syncr res[r7]
    101 0xf7 0x87
    102 
    103 # CHECK: freer res[r8]
    104 0xe8 0x17
    105 
    106 # CHECK: setv res[r9], r11
    107 0xf9 0x47
    108 
    109 # CHECK: setev res[r10], r11
    110 0xfa 0x3f
    111 
    112 # CHECK: eeu res[r11]
    113 0xfb 0x07
    114 
    115 # CHECK: set dp, r5
    116 0xe5 0x37
    117 
    118 # CHECK: set cp, r0
    119 0xf0 0x37
    120 
    121 # CHECK: dgetreg r11
    122 0xeb 0x3f
    123 
    124 # CHECK: edu res[r8]
    125 0xe8 0x07
    126 
    127 # CHECK: kcall r2
    128 0xe2 0x47
    129 
    130 # CHECK: waitef r10
    131 0xfa 0x0f
    132 
    133 # CHECK: waitet r7
    134 0xe7 0x0f
    135 
    136 # CHECK: start t[r4]
    137 0xe4 0x1f
    138 
    139 # CHECK: clrpt res[r9]
    140 0xe9 0x87
    141 
    142 # 2r instructions
    143 
    144 # CHECK: not r1, r8
    145 0x24 0x8f
    146 
    147 # CHECK: neg r7, r6
    148 0xce 0x97
    149 
    150 # CHECK: andnot r10, r11
    151 0xab 0x2f
    152 
    153 # CHECK: mkmsk r11, r0
    154 0x4c 0xa7
    155 
    156 # CHECK: getts r8, res[r1]
    157 0x41 0x3f
    158 
    159 # CHECK: setpt res[r2], r3
    160 0xde 0x3e
    161 
    162 # CHECK: outct res[r1], r2
    163 0xc6 0x4e
    164 
    165 # CHECK: outt res[r5], r4
    166 0xd1 0x0f
    167 
    168 # CHECK: out res[r9], r10
    169 0xa9 0xaf
    170 
    171 # CHECK: outshr res[r0], r2
    172 0xd8 0xae
    173 
    174 # CHECK: inct r7, res[r4]
    175 0xdc 0x87
    176 
    177 # CHECK: int r8, res[r3]
    178 0x53 0x8f
    179 
    180 # CHECK: in r10, res[r0]
    181 0x48 0xb7
    182 
    183 # CHECK: inshr r4, res[r2]
    184 0x12 0xb7
    185 
    186 # CHECK: chkct res[r6], r0
    187 0x08 0xcf
    188 
    189 # CHECK: testct r8, res[r3]
    190 0x53 0xbf
    191 
    192 # CHECK: testwct r2, res[r9]
    193 0x39 0xc7
    194 
    195 # CHECK: setd res[r3], r4
    196 0x13 0x17
    197 
    198 # CHECK: getst r7, res[r1]
    199 0x1d 0x07
    200 
    201 # CHECK: init t[r1]:sp, r2
    202 0xc9 0x16
    203 
    204 # CHECK: init t[r10]:pc, r1
    205 0x26 0x07
    206 
    207 # CHECK: init t[r2]:cp, r10
    208 0x4a 0x1f
    209 
    210 # CHECK: init t[r2]:dp, r3
    211 0xce 0x0e
    212 
    213 # CHECK: setpsc res[r8], r2
    214 0x28 0xc7
    215 
    216 # CHECK: zext r3, r8
    217 0x2c 0x47
    218 
    219 # CHECK: sext r9, r1
    220 0x45 0x37
    221 
    222 # CHECK: tsetmr r7, r3
    223 0x1f 0x1f
    224 
    225 # CHECK: eef r1, res[r6]
    226 0x96 0x2f
    227 
    228 # CHECK: eet r11, res[r0]
    229 0x5c 0x27
    230 
    231 # rus instructions
    232 
    233 # CHECK: chkct res[r1], 8
    234 0x34 0xcf
    235 
    236 # CHECK: getr r11, 2
    237 0x4e 0x87
    238 
    239 # CHECK: mkmsk r4, 24
    240 0x72 0xa7
    241 
    242 # CHECK: outct res[r3], 0
    243 0xdc 0x4e
    244 
    245 # CHECK: sext r8, 16
    246 0xb1 0x37
    247 
    248 # CHECK: zext r2, 32
    249 0xd8 0x46
    250 
    251 # CHECK: peek r0, res[r5]
    252 0x81 0xbf
    253 
    254 # CHECK: endin r10, res[r1]
    255 0x59 0x97
    256 
    257 # l2r instructions
    258 
    259 # CHECK: bitrev r1, r10
    260 0x26 0xff 0xec 0x07
    261 
    262 # CHECK: byterev r4, r1
    263 0x11 0xff 0xec 0x07
    264 
    265 # CHECK: clz r11, r10
    266 0xae 0xff 0xec 0x0f
    267 
    268 # CHECK: get r3, ps[r6]
    269 0x9e 0xff 0xec 0x17
    270 
    271 # CHECK: setc res[r5], r9
    272 0x75 0xff 0xec 0x2f
    273 
    274 # CHECK: init t[r2]:lr, r1
    275 0xc6 0xfe 0xec 0x17
    276 
    277 # CHECK: setclk res[r2], r1
    278 0xd6 0xfe 0xec 0x0f
    279 
    280 # CHECK: set ps[r9], r10
    281 0xa9 0xff 0xec 0x1f
    282 
    283 # CHECK: setrdy res[r3], r1
    284 0xc7 0xfe 0xec 0x2f
    285 
    286 # CHECK: settw res[r7], r2
    287 0x9b 0xff 0xec 0x27
    288 
    289 # CHECK: getd r8, res[r3]
    290 0x53 0xff 0xec 0x1f
    291 
    292 # CHECK: getn r10, res[r11]
    293 0xbb 0xff 0xec 0x37
    294 
    295 # CHECK: testlcl r2, res[r0]
    296 0xc8 0xfe 0xec 0x27
    297 
    298 # CHECK: setn res[r9], r7
    299 0x6d 0xff 0xec 0x37
    300 
    301 # 3r instructions
    302 
    303 # CHECK: add r1, r2, r3
    304 0x1b 0x10
    305 
    306 # CHECK: and r11, r10, r9
    307 0xb9 0x3e
    308 
    309 # CHECK: eq r6, r1, r2
    310 0x66 0x30
    311 
    312 # CHECK: ld16s r8, r3[r4]
    313 0xcc 0x82
    314 
    315 # CHECK: ld8u r9, r1[r10]
    316 0x16 0x8d
    317 
    318 # CHECK: ldw r9, r4[r5]
    319 0x91 0x4b
    320 
    321 # CHECK: lss r7, r3, r0
    322 0x7c 0xc0
    323 
    324 # CHECK: lsu r5, r8, r6
    325 0x12 0xcc
    326 
    327 # CHECK: or r1, r3, r2
    328 0x1e 0x40
    329 
    330 # CHECK: shl r8, r2, r4
    331 0xc8 0x22
    332 
    333 # CHECK: shr r9, r7, r1
    334 0x5d 0x29
    335 
    336 # CHECK: sub r4, r2, r5
    337 0x89 0x1a
    338 
    339 # CHECK: set t[r0]:r1, r2
    340 0x18 0xb8
    341 
    342 # 2rus instructions
    343 
    344 # CHECK: add r10, r2, 5
    345 0xe9 0x92
    346 
    347 # CHECK: eq r2, r1, 0
    348 0x24 0xb0
    349 
    350 # CHECK: ldw r5, r6[1]
    351 0x19 0x09
    352 
    353 # CHECK: shl r6, r5, 24
    354 0xa6 0xa5
    355 
    356 # CHECK: shr r3, r8, 5
    357 0xf1 0xab
    358 
    359 # CHECK: stw r3, r2[0]
    360 0x38 0x00
    361 
    362 # CHECK: sub r2, r4, 11
    363 0x63 0x9d
    364 
    365 # l3r instructions
    366 
    367 # CHECK: ashr r5, r1, r11
    368 0xd7 0xfc 0xec 0x17
    369 
    370 # CHECK: crc32 r5, r6, r1
    371 0x19 0xf9 0xec 0xaf
    372 
    373 # CHECK: divu r9, r1, r3
    374 0x97 0xf8 0xec 0x4f
    375 
    376 # CHECK: divs r6, r7, r2
    377 0x2e 0xf9 0xec 0x47
    378 
    379 # CHECK: lda16 r11, r2[r1]
    380 0xb9 0xf8 0xec 0x2f
    381 
    382 # CHECK: lda16 r9, r3[-r11]
    383 0x1f 0xfd 0xec 0x37
    384 
    385 # CHECK: ldaw r9, r1[r2]
    386 0x96 0xf8 0xec 0x1f
    387 
    388 # CHECK: ldaw r8, r7[-r11]
    389 0xcf 0xfd 0xec 0x27
    390 
    391 # CHECK: mul r0, r4, r2
    392 0xc2 0xf8 0xec 0x3f
    393 
    394 # CHECK: remu r1, r2, r3
    395 0x1b 0xf8 0xec 0xcf
    396 
    397 # CHECK: rems r11, r10, r9
    398 0xb9 0xfe 0xec 0xc7
    399 
    400 # CHECK: st16 r5, r3[r8]
    401 0xdc 0xfc 0xec 0x87
    402 
    403 # CHECK: st8 r9, r1[r3]
    404 0x97 0xf8 0xec 0x8f
    405 
    406 # CHECK: stw r7, r10[r1]
    407 0xf9 0xf9 0xec 0x07
    408 
    409 # CHECK: xor r4, r3, r9
    410 0xcd 0xfc 0xec 0x0f
    411 
    412 # l2rus instructions
    413 
    414 # CHECK: ashr r5, r1, 3
    415 0x57 0xf8 0xec 0x97
    416 
    417 # CHECK: ldaw r11, r10[6]
    418 0x7a 0xfc 0xec 0x9f
    419 
    420 # CHECK: ldaw r8, r2[-9]
    421 0x09 0xfd 0xec 0xa7
    422 
    423 # CHECK: inpw r6, res[r1], 8
    424 0xe4 0xfc 0xee 0x97
    425 
    426 # CHECK: outpw res[r3], r0, 2
    427 0x0e 0xf8 0xed 0x97
    428 
    429 # ru6 / lru6 instructions
    430 
    431 # CHECK: bt r6, -5
    432 0x85 0x75
    433 
    434 # CHECK: bt r10, -451
    435 0x07 0xf0 0x83 0x76
    436 
    437 # CHECK: bt r8, 10
    438 0x0a 0x72
    439 
    440 # CHECK: bt r1, 6451
    441 0x64 0xf0 0x73 0x70
    442 
    443 # CHECK: bf r5, 8
    444 0x48 0x79
    445 
    446 # CHECK: bf r6, 65
    447 0x01 0xf0 0x81 0x79
    448 
    449 # CHECK: bf r1, 53
    450 0x75 0x78
    451 
    452 # CHECK: bf r10, 101
    453 0x01 0xf0 0xa5 0x7a
    454 
    455 # CHECK: ldaw r11, dp[63]
    456 0xff 0x62
    457 
    458 # CHECK: ldaw r1, dp[456]
    459 0x07 0xf0 0x48 0x60
    460 
    461 # CHECK: ldaw cp, dp[5]
    462 0x05 0x63
    463 
    464 # CHECK: ldaw sp, dp[9929]
    465 0x9b 0xf0 0x89 0x63
    466 
    467 # CHECK: ldaw r3, sp[2]
    468 0xc2 0x64
    469 
    470 # CHECK: ldaw r8, sp[65535]
    471 0xff 0xf3 0x3f 0x66
    472 
    473 # CHECK: ldaw sp, sp[41]
    474 0xa9 0x67
    475 
    476 # CHECK: ldaw sp, sp[13121]
    477 0xcd 0xf0 0x81 0x67
    478 
    479 # CHECK: ldc r3, 30
    480 0xde 0x68
    481 
    482 # CHECK: ldc r11, 1000
    483 0x0f 0xf0 0xe8 0x6a
    484 
    485 # CHECK: ldc sp, 0
    486 0x80 0x6b
    487 
    488 # CHECK: ldc lr, 81
    489 0x01 0xf0 0xd1 0x6b
    490 
    491 # CHECK: ldw r0, cp[4]
    492 0x04 0x6c
    493 
    494 # CHECK: ldw r1, cp[32345]
    495 0xf9 0xf1 0x59 0x6c
    496 
    497 # CHECK: ldw cp, cp[8]
    498 0x08 0x6f
    499 
    500 # CHECK: ldw sp, cp[10222]
    501 0x9f 0xf0 0xae 0x6f
    502 
    503 # CHECK: ldw r10, dp[16]
    504 0x90 0x5a
    505 
    506 # CHECK: ldw r10, dp[76]
    507 0x01 0xf0 0x8c 0x5a
    508 
    509 # CHECK: ldw lr, dp[8]
    510 0xc8 0x5b
    511 
    512 # CHECK: ldw dp, dp[33221]
    513 0x07 0xf2 0x45 0x5b
    514 
    515 # CHECK: ldw r8, sp[51]
    516 0x33 0x5e
    517 
    518 # CHECK: ldw r8, sp[1225]
    519 0x13 0xf0 0x09 0x5e
    520 
    521 # CHECK: ldw cp, sp[31]
    522 0x1f 0x5f
    523 
    524 # CHECK: ldw sp, sp[1000]
    525 0x0f 0xf0 0xa8 0x5f
    526 
    527 # CHECK: setc res[r5], 36
    528 0x64 0xe9
    529 
    530 # CHECK: setc res[r2], 40312
    531 0x75 0xf2 0xb8 0xe8
    532 
    533 # CHECK: stw r8, dp[14]
    534 0x0e 0x52
    535 
    536 # CHECK: stw r9, dp[654]
    537 0x0a 0xf0 0x4e 0x52
    538 
    539 # CHECK: stw lr, dp[23]
    540 0xd7 0x53
    541 
    542 # CHECK: stw sp, dp[44442]
    543 0xb6 0xf2 0x9a 0x53
    544 
    545 # CHECK: stw r1, sp[32]
    546 0x60 0x54
    547 
    548 # CHECK: stw r0, sp[8761]
    549 0x88 0xf0 0x39 0x54
    550 
    551 # CHECK: stw cp, sp[63]
    552 0x3f 0x57
    553 
    554 # CHECK: stw lr, sp[4391]
    555 0x44 0xf0 0xe7 0x57
    556 
    557 # u6 / lu6 instructions
    558 
    559 # CHECK: bu -20
    560 0x14 0x77
    561 
    562 # CHECK: bu -1000
    563 0x0f 0xf0 0x28 0x77
    564 
    565 # CHECK: bu 24
    566 0x18 0x73
    567 
    568 # CHECK: bu 2231
    569 0x22 0xf0 0x37 0x73
    570 
    571 # CHECK: extsp 9
    572 0x89 0x77
    573 
    574 # CHECK: extsp 5721
    575 0x59 0xf0 0x99 0x77
    576 
    577 # CHECK: clrsr 60
    578 0x3c 0x7b
    579 
    580 # CHECK: clrsr 64391
    581 0xee 0xf3 0x07 0x7b
    582 
    583 # CHECK: entsp 1
    584 0x41 0x77
    585 
    586 # CHECK: entsp 70
    587 0x01 0xf0 0x46 0x77
    588 
    589 # CHECK: ldaw r11, cp[5]
    590 0x45 0x7f
    591 
    592 # CHECK: ldaw r11, cp[33000]
    593 0x03 0xf2 0x68 0x7f
    594 
    595 # CHECK: retsp 40
    596 0xe8 0x77
    597 
    598 # CHECK: retsp 52010
    599 0x2c 0xf3 0xea 0x77
    600 
    601 # CHECK: setsr 42
    602 0x6a 0x7b
    603 
    604 # CHECK: setsr 21863
    605 0x55 0xf1 0x67 0x7b
    606 
    607 # CHECK: extdp 4
    608 0x84 0x73
    609 
    610 # CHECK: extdp 554
    611 0x08 0xf0 0xaa 0x73
    612 
    613 # CHECK: blat 9
    614 0x49 0x73
    615 
    616 # CHECK: blat 61212
    617 0xbc 0xf3 0x5c 0x73
    618 
    619 # CHECK: getsr r11, 54
    620 0x36 0x7f
    621 
    622 # CHECK: getsr r11, 442
    623 0x06 0xf0 0x3a 0x7f
    624 
    625 # CHECK: kcall 11
    626 0xcb 0x73
    627 
    628 # CHECK: kcall 4001
    629 0x3e 0xf0 0xe1 0x73
    630 
    631 # CHECK: kentsp 22
    632 0x96 0x7b
    633 
    634 # CHECK: kentsp 8793
    635 0x89 0xf0 0x99 0x7b
    636 
    637 # CHECK: krestsp 0
    638 0xc0 0x7b
    639 
    640 # CHECK: krestsp 55312
    641 0x60 0xf3 0xd0 0x7b
    642 
    643 # u10 / lu10 instructions
    644 
    645 # CHECK: ldap r11, 40
    646 0x28 0xd8
    647 
    648 # CHECK: ldap r11, 53112
    649 0x33 0xf0 0x78 0xdb
    650 
    651 # CHECK: ldap r11, -22
    652 0x16 0xdc
    653 
    654 # CHECK: ldap r11, -9999
    655 0x09 0xf0 0x0f 0xdf
    656 
    657 # CHECK: bl 8
    658 0x08 0xd0
    659 
    660 # CHECK: bl 38631
    661 0x25 0xf0 0xe7 0xd2
    662 
    663 # CHECK: bl -222
    664 0xde 0xd4
    665 
    666 # CHECK: bl -55132
    667 0x35 0xf0 0x5c 0xd7
    668 
    669 # CHECK: bla cp[500]
    670 0xf4 0xe1
    671 
    672 # CHECK: bla cp[413742]
    673 0x94 0xf1 0x2e 0xe0
    674 
    675 # CHECK: ldw r11, cp[132]
    676 0x84 0xe4
    677 
    678 # CHECK: ldw r11, cp[102741]
    679 0x64 0xf0 0x55 0xe5
    680 
    681 # l6r instructions
    682 
    683 # CHECK: lmul r11, r0, r2, r5, r8, r10
    684 0xf9 0xfa 0x02 0x06
    685 
    686 # l5r instructions
    687 
    688 # CHECK: ladd r10, r2, r5, r1, r7
    689 0xe5 0xf8 0xfb 0x06
    690 
    691 # CHECK: ldivu r5, r6, r3, r9, r8
    692 0x54 0xfe 0x0b 0x07
    693 
    694 # CHECK: lsub r1, r8, r7, r11, r5
    695 0xcf 0xfd 0x85 0x0f
    696 
    697 # l4r instructions
    698 
    699 # CHECK: crc8 r6, r3, r4, r11
    700 0x73 0xfd 0xe6 0x07
    701 
    702 # CHECK: maccs r11, r8, r2, r4
    703 0xf8 0xfa 0xe8 0x0f
    704 
    705 # CHECK: maccu r0, r2, r5, r8
    706 0x44 0xfd 0xf2 0x07
    707