Home | History | Annotate | Download | only in MBlaze
      1 # RUN: llvm-mc -triple mblaze-unknown-unknown -show-encoding %s | FileCheck %s
      2 
      3 # In the microblaze instruction set, any TYPE-B instruction with a
      4 # signed immediate value requiring more than 16-bits must be prefixed
      5 # with an IMM instruction that contains the high 16-bits. The higher
      6 # 16-bits are then combined with the lower 16-bits in the original
      7 # instruction to form a 32-bit immediate value.
      8 #
      9 # The generation of IMM instructions is handled automatically by the
     10 # code emitter. Test to ensure that IMM instructions are generated
     11 # when they are suppose to and are not generated when they are not
     12 # needed.
     13 
     14 # CHECK:    addi
     15 # BINARY:   001000 00000 00000 0000000000000000
     16 # CHECK:    encoding: [0x20,0x00,0x00,0x00]
     17             addi    r0, r0, 0x00000000
     18 
     19 # CHECK:    addi
     20 # BINARY:   001000 00000 00000 0000000000000001
     21 # CHECK:    encoding: [0x20,0x00,0x00,0x01]
     22             addi    r0, r0, 0x00000001
     23 
     24 # CHECK:    addi
     25 # BINARY:   001000 00000 00000 0000000000000010
     26 # CHECK:    encoding: [0x20,0x00,0x00,0x02]
     27             addi    r0, r0, 0x00000002
     28 
     29 # CHECK:    addi
     30 # BINARY:   001000 00000 00000 0000000000000100
     31 # CHECK:    encoding: [0x20,0x00,0x00,0x04]
     32             addi    r0, r0, 0x00000004
     33 
     34 # CHECK:    addi
     35 # BINARY:   001000 00000 00000 0000000000001000
     36 # CHECK:    encoding: [0x20,0x00,0x00,0x08]
     37             addi    r0, r0, 0x00000008
     38 
     39 # CHECK:    addi
     40 # BINARY:   001000 00000 00000 0000000000010000
     41 # CHECK:    encoding: [0x20,0x00,0x00,0x10]
     42             addi    r0, r0, 0x00000010
     43 
     44 # CHECK:    addi
     45 # BINARY:   001000 00000 00000 0000000000100000
     46 # CHECK:    encoding: [0x20,0x00,0x00,0x20]
     47             addi    r0, r0, 0x00000020
     48 
     49 # CHECK:    addi
     50 # BINARY:   001000 00000 00000 0000000001000000
     51 # CHECK:    encoding: [0x20,0x00,0x00,0x40]
     52             addi    r0, r0, 0x00000040
     53 
     54 # CHECK:    addi
     55 # BINARY:   001000 00000 00000 0000000010000000
     56 # CHECK:    encoding: [0x20,0x00,0x00,0x80]
     57             addi    r0, r0, 0x00000080
     58 
     59 # CHECK:    addi
     60 # BINARY:   001000 00000 00000 0000000100000000
     61 # CHECK:    encoding: [0x20,0x00,0x01,0x00]
     62             addi    r0, r0, 0x00000100
     63 
     64 # CHECK:    addi
     65 # BINARY:   001000 00000 00000 0000001000000000
     66 # CHECK:    encoding: [0x20,0x00,0x02,0x00]
     67             addi    r0, r0, 0x00000200
     68 
     69 # CHECK:    addi
     70 # BINARY:   001000 00000 00000 0000010000000000
     71 # CHECK:    encoding: [0x20,0x00,0x04,0x00]
     72             addi    r0, r0, 0x00000400
     73 
     74 # CHECK:    addi
     75 # BINARY:   001000 00000 00000 0000100000000000
     76 # CHECK:    encoding: [0x20,0x00,0x08,0x00]
     77             addi    r0, r0, 0x00000800
     78 
     79 # CHECK:    addi
     80 # BINARY:   001000 00000 00000 0001000000000000
     81 # CHECK:    encoding: [0x20,0x00,0x10,0x00]
     82             addi    r0, r0, 0x00001000
     83 
     84 # CHECK:    addi
     85 # BINARY:   001000 00000 00000 0010000000000000
     86 # CHECK:    encoding: [0x20,0x00,0x20,0x00]
     87             addi    r0, r0, 0x00002000
     88 
     89 # CHECK:    addi
     90 # BINARY:   001000 00000 00000 0100000000000000
     91 # CHECK:    encoding: [0x20,0x00,0x40,0x00]
     92             addi    r0, r0, 0x00004000
     93 
     94 # CHECK:    addi
     95 # BINARY:   101100 00000 00000 0000000000000000
     96 # BINARY:   001000 00000 00000 1000000000000000
     97 # CHECK:    encoding: [0xb0,0x00,0x00,0x00,0x20,0x00,0x80,0x00]
     98             addi    r0, r0, 0x00008000
     99 
    100 # CHECK:    addi
    101 # BINARY:   101100 00000 00000 0000000000000001
    102 #           001000 00000 00000 0000000000000000
    103 # CHECK:    encoding: [0xb0,0x00,0x00,0x01,0x20,0x00,0x00,0x00]
    104             addi    r0, r0, 0x00010000
    105 
    106 # CHECK:    addi
    107 # BINARY:   101100 00000 00000 0000000000000010
    108 #           001000 00000 00000 0000000000000000
    109 # CHECK:    encoding: [0xb0,0x00,0x00,0x02,0x20,0x00,0x00,0x00]
    110             addi    r0, r0, 0x00020000
    111 
    112 # CHECK:    addi
    113 # BINARY:   101100 00000 00000 0000000000000100
    114 #           001000 00000 00000 0000000000000000
    115 # CHECK:    encoding: [0xb0,0x00,0x00,0x04,0x20,0x00,0x00,0x00]
    116             addi    r0, r0, 0x00040000
    117 
    118 # CHECK:    addi
    119 # BINARY:   101100 00000 00000 0000000000001000
    120 #           001000 00000 00000 0000000000000000
    121 # CHECK:    encoding: [0xb0,0x00,0x00,0x08,0x20,0x00,0x00,0x00]
    122             addi    r0, r0, 0x00080000
    123 
    124 # CHECK:    addi
    125 # BINARY:   101100 00000 00000 0000000000010000
    126 #           001000 00000 00000 0000000000000000
    127 # CHECK:    encoding: [0xb0,0x00,0x00,0x10,0x20,0x00,0x00,0x00]
    128             addi    r0, r0, 0x00100000
    129 
    130 # CHECK:    addi
    131 # BINARY:   101100 00000 00000 0000000000100000
    132 #           001000 00000 00000 0000000000000000
    133 # CHECK:    encoding: [0xb0,0x00,0x00,0x20,0x20,0x00,0x00,0x00]
    134             addi    r0, r0, 0x00200000
    135 
    136 # CHECK:    addi
    137 # BINARY:   101100 00000 00000 0000000001000000
    138 #           001000 00000 00000 0000000000000000
    139 # CHECK:    encoding: [0xb0,0x00,0x00,0x40,0x20,0x00,0x00,0x00]
    140             addi    r0, r0, 0x00400000
    141 
    142 # CHECK:    addi
    143 # BINARY:   101100 00000 00000 0000000010000000
    144 #           001000 00000 00000 0000000000000000
    145 # CHECK:    encoding: [0xb0,0x00,0x00,0x80,0x20,0x00,0x00,0x00]
    146             addi    r0, r0, 0x00800000
    147 
    148 # CHECK:    addi
    149 # BINARY:   101100 00000 00000 0000000100000000
    150 #           001000 00000 00000 0000000000000000
    151 # CHECK:    encoding: [0xb0,0x00,0x01,0x00,0x20,0x00,0x00,0x00]
    152             addi    r0, r0, 0x01000000
    153 
    154 # CHECK:    addi
    155 # BINARY:   101100 00000 00000 0000001000000000
    156 #           001000 00000 00000 0000000000000000
    157 # CHECK:    encoding: [0xb0,0x00,0x02,0x00,0x20,0x00,0x00,0x00]
    158             addi    r0, r0, 0x02000000
    159 
    160 # CHECK:    addi
    161 # BINARY:   101100 00000 00000 0000010000000000
    162 #           001000 00000 00000 0000000000000000
    163 # CHECK:    encoding: [0xb0,0x00,0x04,0x00,0x20,0x00,0x00,0x00]
    164             addi    r0, r0, 0x04000000
    165 
    166 # CHECK:    addi
    167 # BINARY:   101100 00000 00000 0000100000000000
    168 #           001000 00000 00000 0000000000000000
    169 # CHECK:    encoding: [0xb0,0x00,0x08,0x00,0x20,0x00,0x00,0x00]
    170             addi    r0, r0, 0x08000000
    171 
    172 # CHECK:    addi
    173 # BINARY:   101100 00000 00000 0001000000000000
    174 #           001000 00000 00000 0000000000000000
    175 # CHECK:    encoding: [0xb0,0x00,0x10,0x00,0x20,0x00,0x00,0x00]
    176             addi    r0, r0, 0x10000000
    177 
    178 # CHECK:    addi
    179 # BINARY:   101100 00000 00000 0010000000000000
    180 #           001000 00000 00000 0000000000000000
    181 # CHECK:    encoding: [0xb0,0x00,0x20,0x00,0x20,0x00,0x00,0x00]
    182             addi    r0, r0, 0x20000000
    183 
    184 # CHECK:    addi
    185 # BINARY:   101100 00000 00000 0100000000000000
    186 #           001000 00000 00000 0000000000000000
    187 # CHECK:    encoding: [0xb0,0x00,0x40,0x00,0x20,0x00,0x00,0x00]
    188             addi    r0, r0, 0x40000000
    189 
    190 # CHECK:    addi
    191 # BINARY:   101100 00000 00000 1000000000000000
    192 #           001000 00000 00000 0000000000000000
    193 # CHECK:    encoding: [0xb0,0x00,0x80,0x00,0x20,0x00,0x00,0x00]
    194             addi    r0, r0, 0x80000000
    195