1 # RUN: llvm-mc --disassemble %s -triple=mips-unknown-linux -mcpu=mips32r6 -mattr=micromips | FileCheck %s 2 3 0x6f 0x83 # CHECK: addiur1sp $7, 4 4 0x6f 0x7e # CHECK: addiur2 $6, $7, -1 5 0x6f 0x76 # CHECK: addiur2 $6, $7, 12 6 0x4c 0xfc # CHECK: addius5 $7, -2 7 0x4f 0xff # CHECK: addiusp -1028 8 0x4f 0xfd # CHECK: addiusp -1032 9 0x4c 0x01 # CHECK: addiusp 1024 10 0x4c 0x03 # CHECK: addiusp 1028 11 0x4f 0xf9 # CHECK: addiusp -16 12 0xcc 0x42 # CHECK: bc16 132 13 0x8f 0x0a # CHECK: beqzc16 $6, 20 14 0xaf 0x0a # CHECK: bnezc16 $6, 20 15 0x45 0x2b # CHECK: jalr $9 16 0x45 0x23 # CHECK: jrc16 $9 17 0x44 0xb3 # CHECK: jrcaddiusp 20 18 0x65 0x88 # CHECK: lw $3, 32($gp) 19 0x48 0x66 # CHECK: lw $3, 24($sp) 20 0x6a 0x12 # CHECK: lw16 $4, 8($17) 21 0x29 0x82 # CHECK: lhu16 $3, 4($16) 22 0x09 0x94 # CHECK: lbu16 $3, 4($17) 23 0x09 0x9f # CHECK: lbu16 $3, -1($17) 24 0x04 0xcc # CHECK: addu16 $6, $17, $4 25 0x44 0x21 # CHECK: and16 $16, $2 26 0x2e 0x56 # CHECK: andi16 $4, $5, 8 27 0x46 0x70 # CHECK: not16 $4, $7 28 0x45 0xf9 # CHECK: or16 $3, $7 29 0x25 0xe0 # CHECK: sll16 $3, $6, 8 30 0x25 0xe1 # CHECK: srl16 $3, $6, 8 31 0x00 0xa4 0x19 0x10 # CHECK: add $3, $4, $5 32 0x30 0x64 0x04 0xd2 # CHECK: addiu $3, $4, 1234 33 0x00 0xa4 0x19 0x50 # CHECK: addu $3, $4, $5 34 0x78 0x80 0x00 0x19 # CHECK: addiupc $4, 100 35 0x78 0x7f 0x00 0x38 # CHECK: aluipc $3, 56 36 0x78 0x7e 0xff 0xff # CHECK: auipc $3, -1 37 0x00 0x43 0x24 0x1f # CHECK: align $4, $2, $3, 2 38 0x00 0xa4 0x1a 0x50 # CHECK: and $3, $4, $5 39 0xd0 0x64 0x04 0xd2 # CHECK: andi $3, $4, 1234 40 0x10 0x62 0xff 0xe9 # CHECK: aui $3, $2, -23 41 0x74 0x40 0x02 0x9a # CHECK: beqzalc $2, 1332 42 0x7c 0x40 0x02 0x9a # CHECK: bnezalc $2, 1332 43 0xc0 0x42 0x02 0x9a # CHECK: bgezalc $2, 1332 44 0xe0 0x40 0x02 0x9a # CHECK: bgtzalc $2, 1332 45 0xe0 0x42 0x02 0x9a # CHECK: bltzalc $2, 1332 46 0xc0 0x40 0x02 0x9a # CHECK: blezalc $2, 1332 47 0xb4 0x37 0x96 0xb8 # CHECK: balc 7286128 48 0x94 0x37 0x96 0xb8 # CHECK: bc 7286128 49 0x00 0x44 0x0b 0x3c # CHECK: bitswap $4, $2 50 0x00 0x00 0x00 0x07 # CHECK: break 51 0x00 0x07 0x00 0x07 # CHECK: break 7 52 0x00 0x07 0x01 0x47 # CHECK: break 7, 5 53 0x20 0x25 0x60 0x08 # CHECK: cache 1, 8($5) 54 0x01 0x65 0x4b 0x3c # CHECK: clo $11, $5 55 0x03 0x80 0xe8 0x50 # CHECK: clz $sp, $gp 56 0x00 0x00 0xe3 0x7c # CHECK: deret 57 0x00 0xa4 0x19 0x18 # CHECK: div $3, $4, $5 58 0x00 0xa4 0x19 0x98 # CHECK: divu $3, $4, $5 59 0x00 0x00 0x18 0x00 # CHECK: ehb 60 0x00 0x00 0x57 0x7c # CHECK: ei 61 0x00 0x0a 0x57 0x7c # CHECK: ei $10 62 0x00 0x00 0xf3 0x7c # CHECK: eret 63 0x00 0x01 0xf3 0x7c # CHECK: eretnc 64 0x80 0x05 0x01 0x00 # CHECK: jialc $5, 256 65 0xa0 0x05 0x01 0x00 # CHECK: jic $5, 256 66 0x78 0x48 0x00 0x43 # CHECK: lwpc $2, 268 67 0x00 0x43 0x26 0x0f # CHECK: lsa $2, $3, $4, 4 68 0x00 0xa4 0x19 0x58 # CHECK: mod $3, $4, $5 69 0x00 0xa4 0x19 0xd8 # CHECK: modu $3, $4, $5 70 0x00 0xa4 0x18 0x18 # CHECK: mul $3, $4, $5 71 0x00 0xa4 0x18 0x58 # CHECK: muh $3, $4, $5 72 0x00 0xa4 0x18 0x98 # CHECK: mulu $3, $4, $5 73 0x00 0xa4 0x18 0xd8 # CHECK: muhu $3, $4, $5 74 0x00 0x00 0x00 0x00 # CHECK: nop 75 0x00 0xa4 0x1a 0xd0 # CHECK: nor $3, $4, $5 76 0x00 0xa4 0x1a 0x90 # CHECK: or $3, $4, $5 77 0x50 0x64 0x04 0xd2 # CHECK: ori $3, $4, 1234 78 0x60 0x25 0x20 0x08 # CHECK: pref 1, 8($5) 79 0x00 0x83 0x11 0x40 # CHECK: seleqz $2, $3, $4 80 0x00 0x83 0x11 0x80 # CHECK: selnez $2, $3, $4 81 0x00 0x83 0x38 0x00 # CHECK: sll $4, $3, 7 82 0x00 0xa4 0x19 0x90 # CHECK: sub $3, $4, $5 83 0x00 0xa4 0x19 0xd0 # CHECK: subu $3, $4, $5 84 0x00 0x64 0xf1 0x7c # CHECK: wrpgpr $3, $4 85 0x00 0x64 0x7b 0x3c # CHECK: wsbh $3, $4 86 0x00 0xa4 0x1b 0x10 # CHECK: xor $3, $4, $5 87 0x70 0x64 0x04 0xd2 # CHECK: xori $3, $4, 1234 88 0x18 0x85 0x00 0x06 # CHECK: sb $4, 6($5) 89 0x60 0x85 0xa8 0x06 # CHECK: sbe $4, 6($5) 90 0x60 0x85 0xac 0x06 # CHECK: sce $4, 6($5) 91 0x38 0x85 0x00 0x06 # CHECK: sh $4, 6($5) 92 0x60 0x85 0xaa 0x06 # CHECK: she $4, 6($5) 93 0x60 0x85 0x6c 0x06 # CHECK: lle $4, 6($5) 94 0x60 0x85 0x6e 0x06 # CHECK: lwe $4, 6($5) 95 0xfc 0x85 0x00 0x06 # CHECK: lw $4, 6($5) 96 0x10 0xc0 0x45 0x67 # CHECK: lui $6, 17767 97 0x00 0x64 0x2b 0x3c # CHECK: seb $3, $4 98 0x00 0x64 0x3b 0x3c # CHECK: seh $3, $4 99 0xf8 0xa6 0x00 0x04 # CHECK: sw $5, 4($6) 100 0x60 0xa4 0xae 0x08 # CHECK: swe $5, 8($4) 101 0x54 0xa4 0x18 0x30 # CHECK: add.s $f3, $f4, $f5 102 0x54 0xc4 0x11 0x30 # CHECK: add.d $f2, $f4, $f6 103 0x54 0xa4 0x18 0x70 # CHECK: sub.s $f3, $f4, $f5 104 0x54 0xc4 0x11 0x70 # CHECK: sub.d $f2, $f4, $f6 105 0x54 0xa4 0x18 0xb0 # CHECK: mul.s $f3, $f4, $f5 106 0x54 0xc4 0x11 0xb0 # CHECK: mul.d $f2, $f4, $f6 107 0x54 0xa4 0x18 0xf0 # CHECK: div.s $f3, $f4, $f5 108 0x54 0xc4 0x11 0xf0 # CHECK: div.d $f2, $f4, $f6 109 0x54 0xa4 0x19 0xb8 # CHECK: maddf.s $f3, $f4, $f5 110 0x54 0xa4 0x1b 0xb8 # CHECK: maddf.d $f3, $f4, $f5 111 0x54 0xa4 0x19 0xf8 # CHECK: msubf.s $f3, $f4, $f5 112 0x54 0xa4 0x1b 0xf8 # CHECK: msubf.d $f3, $f4, $f5 113 0x54 0xc7 0x00 0x7b # CHECK: mov.s $f6, $f7 114 0x54 0x86 0x20 0x7b # CHECK: mov.d $f4, $f6 115 0x54 0xc7 0x0b 0x7b # CHECK: neg.s $f6, $f7 116 0x54 0x86 0x2b 0x7b # CHECK: neg.d $f4, $f6 117 0x54 0x64 0x28 0x0b # CHECK: max.s $f5, $f4, $f3 118 0x54 0x64 0x2a 0x0b # CHECK: max.d $f5, $f4, $f3 119 0x54 0x64 0x28 0x2b # CHECK: maxa.s $f5, $f4, $f3 120 0x54 0x64 0x2a 0x2b # CHECK: maxa.d $f5, $f4, $f3 121 0x54 0x64 0x28 0x03 # CHECK: min.s $f5, $f4, $f3 122 0x54 0x64 0x2a 0x03 # CHECK: min.d $f5, $f4, $f3 123 0x54 0x64 0x28 0x23 # CHECK: mina.s $f5, $f4, $f3 124 0x54 0x64 0x2a 0x23 # CHECK: mina.d $f5, $f4, $f3 125 0x54 0x83 0x10 0x05 # CHECK: cmp.af.s $f2, $f3, $f4 126 0x54 0x83 0x10 0x45 # CHECK: cmp.un.s $f2, $f3, $f4 127 0x54 0x83 0x10 0x85 # CHECK: cmp.eq.s $f2, $f3, $f4 128 0x54 0x83 0x10 0xc5 # CHECK: cmp.ueq.s $f2, $f3, $f4 129 0x54 0x83 0x11 0x05 # CHECK: cmp.lt.s $f2, $f3, $f4 130 0x54 0x83 0x11 0x45 # CHECK: cmp.ult.s $f2, $f3, $f4 131 0x54 0x83 0x11 0x85 # CHECK: cmp.le.s $f2, $f3, $f4 132 0x54 0x83 0x11 0xc5 # CHECK: cmp.ule.s $f2, $f3, $f4 133 0x54 0x83 0x12 0x05 # CHECK: cmp.saf.s $f2, $f3, $f4 134 0x54 0x83 0x12 0x45 # CHECK: cmp.sun.s $f2, $f3, $f4 135 0x54 0x83 0x12 0x85 # CHECK: cmp.seq.s $f2, $f3, $f4 136 0x54 0x83 0x12 0xc5 # CHECK: cmp.sueq.s $f2, $f3, $f4 137 0x54 0x83 0x13 0x05 # CHECK: cmp.slt.s $f2, $f3, $f4 138 0x54 0x83 0x13 0x45 # CHECK: cmp.sult.s $f2, $f3, $f4 139 0x54 0x83 0x13 0x85 # CHECK: cmp.sle.s $f2, $f3, $f4 140 0x54 0x83 0x13 0xc5 # CHECK: cmp.sule.s $f2, $f3, $f4 141 0x54 0x83 0x10 0x15 # CHECK: cmp.af.d $f2, $f3, $f4 142 0x54 0x83 0x10 0x55 # CHECK: cmp.un.d $f2, $f3, $f4 143 0x54 0x83 0x10 0x95 # CHECK: cmp.eq.d $f2, $f3, $f4 144 0x54 0x83 0x10 0xd5 # CHECK: cmp.ueq.d $f2, $f3, $f4 145 0x54 0x83 0x11 0x15 # CHECK: cmp.lt.d $f2, $f3, $f4 146 0x54 0x83 0x11 0x55 # CHECK: cmp.ult.d $f2, $f3, $f4 147 0x54 0x83 0x11 0x95 # CHECK: cmp.le.d $f2, $f3, $f4 148 0x54 0x83 0x11 0xd5 # CHECK: cmp.ule.d $f2, $f3, $f4 149 0x54 0x83 0x12 0x15 # CHECK: cmp.saf.d $f2, $f3, $f4 150 0x54 0x83 0x12 0x55 # CHECK: cmp.sun.d $f2, $f3, $f4 151 0x54 0x83 0x12 0x95 # CHECK: cmp.seq.d $f2, $f3, $f4 152 0x54 0x83 0x12 0xd5 # CHECK: cmp.sueq.d $f2, $f3, $f4 153 0x54 0x83 0x13 0x15 # CHECK: cmp.slt.d $f2, $f3, $f4 154 0x54 0x83 0x13 0x55 # CHECK: cmp.sult.d $f2, $f3, $f4 155 0x54 0x83 0x13 0x95 # CHECK: cmp.sle.d $f2, $f3, $f4 156 0x54 0x83 0x13 0xd5 # CHECK: cmp.sule.d $f2, $f3, $f4 157 0x54 0x64 0x01 0x3b # CHECK: cvt.l.s $f3, $f4 158 0x54 0x64 0x41 0x3b # CHECK: cvt.l.d $f3, $f4 159 0x54 0x64 0x09 0x3b # CHECK: cvt.w.s $f3, $f4 160 0x54 0x64 0x49 0x3b # CHECK: cvt.w.d $f3, $f4 161 0x54 0x44 0x13 0x7b # CHECK: cvt.d.s $f2, $f4 162 0x54 0x44 0x33 0x7b # CHECK: cvt.d.w $f2, $f4 163 0x54 0x44 0x53 0x7b # CHECK: cvt.d.l $f2, $f4 164 0x54 0x44 0x1b 0x7b # CHECK: cvt.s.d $f2, $f4 165 0x54 0x64 0x3b 0x7b # CHECK: cvt.s.w $f3, $f4 166 0x54 0x64 0x5b 0x7b # CHECK: cvt.s.l $f3, $f4 167 0x54 0x65 0x03 0x7b # CHECK: abs.s $f3, $f5 168 0x54 0x44 0x23 0x7b # CHECK: abs.d $f2, $f4 169 0x54 0x65 0x03 0x3b # CHECK: floor.l.s $f3, $f5 170 0x54 0x44 0x43 0x3b # CHECK: floor.l.d $f2, $f4 171 0x54 0x65 0x0b 0x3b # CHECK: floor.w.s $f3, $f5 172 0x54 0x44 0x4b 0x3b # CHECK: floor.w.d $f2, $f4 173 0x54 0x65 0x13 0x3b # CHECK: ceil.l.s $f3, $f5 174 0x54 0x44 0x53 0x3b # CHECK: ceil.l.d $f2, $f4 175 0x54 0x65 0x1b 0x3b # CHECK: ceil.w.s $f3, $f5 176 0x54 0x44 0x5b 0x3b # CHECK: ceil.w.d $f2, $f4 177 0x54 0x65 0x23 0x3b # CHECK: trunc.l.s $f3, $f5 178 0x54 0x44 0x63 0x3b # CHECK: trunc.l.d $f2, $f4 179 0x54 0x65 0x2b 0x3b # CHECK: trunc.w.s $f3, $f5 180 0x54 0x44 0x6b 0x3b # CHECK: trunc.w.d $f2, $f4 181 0x54 0x65 0x0a 0x3b # CHECK: sqrt.s $f3, $f5 182 0x54 0x44 0x4a 0x3b # CHECK: sqrt.d $f2, $f4 183 0x54 0x65 0x02 0x3b # CHECK: rsqrt.s $f3, $f5 184 0x54 0x44 0x42 0x3b # CHECK: rsqrt.d $f2, $f4 185 0x60 0x25 0xa6 0x08 # CHECK: cachee 1, 8($5) 186 0x60 0x25 0xa4 0x08 # CHECK: prefe 1, 8($5) 187 0x01 0x28 0x00 0x3c # CHECK: teq $8, $9 188 0x00 0xe5 0xf0 0x3c # CHECK: teq $5, $7, 15 189 0x01 0x47 0x02 0x3c # CHECK: tge $7, $10 190 0x02 0x67 0xf2 0x3c # CHECK: tge $7, $19, 15 191 0x03 0x96 0x04 0x3c # CHECK: tgeu $22, $gp 192 0x01 0xd4 0xf4 0x3c # CHECK: tgeu $20, $14, 15 193 0x01 0xaf 0x08 0x3c # CHECK: tlt $15, $13 194 0x02 0x62 0xf8 0x3c # CHECK: tlt $2, $19, 15 195 0x02 0x0b 0x0a 0x3c # CHECK: tltu $11, $16 196 0x03 0xb0 0xfa 0x3c # CHECK: tltu $16, $sp, 15 197 0x02 0x26 0x0c 0x3c # CHECK: tne $6, $17 198 0x01 0x07 0xfc 0x3c # CHECK: tne $7, $8, 15 199 0x65 0x88 # CHECK: lw $3, 32($gp) 200 0x48 0x66 # CHECK: lw $3, 24($sp) 201 0x6a 0x12 # CHECK: lw16 $4, 8($17) 202 0x29 0x82 # CHECK: lhu16 $3, 4($16) 203 0x09 0x94 # CHECK: lbu16 $3, 4($17) 204 0x09 0x9f # CHECK: lbu16 $3, -1($17) 205 0x04 0xcc # CHECK: addu16 $6, $17, $4 206 0x44 0x21 # CHECK: and16 $16, $2 207 0x2e 0x56 # CHECK: andi16 $4, $5, 8 208 0x46 0x70 # CHECK: not16 $4, $7 209 0x45 0xf9 # CHECK: or16 $3, $7 210 0x25 0xe0 # CHECK: sll16 $3, $6, 8 211 0x25 0xe1 # CHECK: srl16 $3, $6, 8 212 0x46 0x1B # CHECK: break16 8 213 0xed 0xff # CHECK: li16 $3, -1 214 0x0c 0x65 # CHECK: move16 $3, $5 215 0x46 0x3b # CHECK: sdbbp16 8 216 0x04 0x3b # CHECK: subu16 $5, $16, $3 217 0x44 0xd8 # CHECK: xor16 $17, $5 218 0x1c 0x85 0x00 0x08 # CHECK: lb $4, 8($5) 219 0x14 0x85 0x00 0x08 # CHECK: lbu $4, 8($5) 220 0x60 0x85 0x68 0x08 # CHECK: lbe $4, 8($5) 221 0x60 0x85 0x60 0x08 # CHECK: lbue $4, 8($5) 222 0x00 0x00 0x28 0x00 # CHECK: pause 223 0x00 0xbd 0x11 0xc0 # CHECK: rdhwr $5, $29, 2 224 0x00 0xbd 0x01 0xc0 # CHECK: rdhwr $5, $29 225 0x00 0x00 0x93 0x7c # CHECK: wait 226 0x00 0x11 0x93 0x7c # CHECK: wait 17 227 0x00 0x00 0x08 0x00 # CHECK: ssnop 228 0x00 0x00 0x6b 0x7c # CHECK: sync 229 0x00 0x11 0x6b 0x7c # CHECK: sync 17 230 0x41 0x85 0x00 0x08 # CHECK: synci 8($5) 231 0x00 0x69 0xe1 0x7c # CHECK: rdpgpr $3, $9 232 0x00 0x00 0xdb 0x7c # CHECK: sdbbp 233 0x00 0x22 0xdb 0x7c # CHECK: sdbbp 34 234 0x45 0x22 # CHECK: lwm16 $16, $17, $ra, 8($sp) 235 0x89 0x84 # CHECK: sb16 $3, 4($16) 236 0xaa 0x14 # CHECK: sh16 $4, 8($17) 237 0xc8 0x9f # CHECK: sw $4, 124($sp) 238 0xea 0x11 # CHECK: sw16 $4, 4($17) 239 0xe8 0x11 # CHECK: sw16 $zero, 4($17) 240 0x45 0x2a # CHECK: swm16 $16, $17, $ra, 8($sp) 241 0x54 0x44 0x12 0x3b # CHECK: recip.s $f2, $f4 242 0x54 0x44 0x52 0x3b # CHECK: recip.d $f2, $f4 243 0x54 0x82 0x00 0x20 # CHECK: rint.s $f2, $f4 244 0x54 0x82 0x02 0x20 # CHECK: rint.d $f2, $f4 245 0x54 0x44 0x33 0x3b # CHECK: round.l.s $f2, $f4 246 0x54 0x44 0x73 0x3b # CHECK: round.l.d $f2, $f4 247 0x54 0x44 0x3b 0x3b # CHECK: round.w.s $f2, $f4 248 0x54 0x44 0x7b 0x3b # CHECK: round.w.d $f2, $f4 249 0x54 0x41 0x08 0xb8 # CHECK: sel.s $f1, $f1, $f2 250 0x54 0x82 0x02 0xb8 # CHECK: sel.d $f0, $f2, $f4 251 0x54 0x62 0x08 0x38 # CHECK: seleqz.s $f1, $f2, $f3 252 0x55 0x04 0x12 0x38 # CHECK: seleqz.d $f2, $f4, $f8 253 0x54 0x62 0x08 0x78 # CHECK: selnez.s $f1, $f2, $f3 254 0x55 0x04 0x12 0x78 # CHECK: selnez.d $f2, $f4, $f8 255 0x54 0x62 0x00 0x60 # CHECK: class.s $f2, $f3 256 0x54 0x82 0x02 0x60 # CHECK: class.d $f2, $f4 257 0x00 0x00 0x47 0x7c # CHECK: di 258 0x00 0x0f 0x47 0x7c # CHECK: di $15 259