Akira Hatanaka b66510f309 In MipsDisassembler.cpp, instead of defining register class tables, use the ones
that are generated by TableGen and are already available in
MipsGenRegisterInfo.inc. Suggested by Jakob Stoklund Olesen.

Also, fix bug in function DecodeAFGR64RegisterClass.

Patch by Vladimir Medic. 


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158846 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-20 20:39:23 +00:00

428 lines
6.3 KiB
Plaintext

# RUN: llvm-mc --disassemble %s -triple=mips-unknown-linux
# CHECK: abs.d $f12,$f14
0x46 0x20 0x73 0x05
# CHECK: abs.s $f6,$f7
0x46 0x00 0x39 0x85
# CHECK: add t1,a2,a3
0x00 0xc7 0x48 0x20
# CHECK: add.d $f8,$f12,$f14
0x46 0x2e 0x62 0x00
# CHECK: add.s $f9,$f6,$f7
0x46 0x07 0x32 0x40
# CHECK: addi t1,a2,17767
0x20 0xc9 0x45 0x67
# CHECK: addiu t1,a2,-15001
0x24 0xc9 0xc5 0x67
# CHECK: addu t1,a2,a3
0x00 0xc7 0x48 0x21
# CHECK: and t1,a2,a3
0x00 0xc7 0x48 0x24
# CHECK: andi t1,a2,0x4567
0x30 0xc9 0x45 0x67
# CHECK: b 00000534
0x10 0x00 0x01 0x4c
# CHECK: bal 00000534
0x04 0x11 0x01 0x4c
# CHECK: bc1f 00000534
0x45 0x00 0x01 0x4c
# CHECK: bc1t 00000534
0x45 0x01 0x01 0x4c
# CHECK: beq t1,a2,00000534
0x11 0x26 0x01 0x4c
# CHECK: bgez a2,00000534
0x04 0xc1 0x01 0x4c
# CHECK: bgezal a2,00000534
0x04 0xd1 0x01 0x4c
# CHECK: bgtz a2,00000534
0x1c 0xc0 0x01 0x4c
# CHECK: blez a2,00000534
0x18 0xc0 0x01 0x4c
# CHECK: bne t1,a2,00000534
0x15 0x26 0x01 0x4c
# CHECK: c.eq.d $f12,$f14
0x46 0x2e 0x60 0x32
# CHECK: c.eq.s $f6,$f7
0x46 0x07 0x30 0x32
# CHECK: c.f.d $f12,$f14
0x46 0x2e 0x60 0x30
# CHECK: c.f.s $f6,$f7
0x46 0x07 0x30 0x30
# CHECK: c.le.d $f12,$f14
0x46 0x2e 0x60 0x3e
# CHECK: c.le.s $f6,$f7
0x46 0x07 0x30 0x3e
# CHECK: c.lt.d $f12,$f14
0x46 0x2e 0x60 0x3c
# CHECK: c.lt.s $f6,$f7
0x46 0x07 0x30 0x3c
# CHECK: c.nge.d $f12,$f14
0x46 0x2e 0x60 0x3d
# CHECK: c.nge.s $f6,$f7
0x46 0x07 0x30 0x3d
# CHECK: c.ngl.d $f12,$f14
0x46 0x2e 0x60 0x3b
# CHECK: c.ngl.s $f6,$f7
0x46 0x07 0x30 0x3b
# CHECK: c.ngle.d $f12,$f14
0x46 0x2e 0x60 0x39
# CHECK: c.ngle.s $f6,$f7
0x46 0x07 0x30 0x39
# CHECK: c.ngt.d $f12,$f14
0x46 0x2e 0x60 0x3f
# CHECK: c.ngt.s $f6,$f7
0x46 0x07 0x30 0x3f
# CHECK: c.ole.d $f12,$f14
0x46 0x2e 0x60 0x36
# CHECK: c.ole.s $f6,$f7
0x46 0x07 0x30 0x36
# CHECK: c.olt.d $f12,$f14
0x46 0x2e 0x60 0x34
# CHECK: c.olt.s $f6,$f7
0x46 0x07 0x30 0x34
# CHECK: c.seq.d $f12,$f14
0x46 0x2e 0x60 0x3a
# CHECK: c.seq.s $f6,$f7
0x46 0x07 0x30 0x3a
# CHECK: c.sf.d $f12,$f14
0x46 0x2e 0x60 0x38
# CHECK: c.sf.s $f6,$f7
0x46 0x07 0x30 0x38
# CHECK: c.ueq.d $f12,$f14
0x46 0x2e 0x60 0x33
# CHECK: c.ueq.s $f28,$f18
0x46 0x12 0xe0 0x33
# CHECK: c.ule.d $f12,$f14
0x46 0x2e 0x60 0x37
# CHECK: c.ule.s $f6,$f7
0x46 0x07 0x30 0x37
# CHECK: c.ult.d $f12,$f14
0x46 0x2e 0x60 0x35
# CHECK: c.ult.s $f6,$f7
0x46 0x07 0x30 0x35
# CHECK: c.un.d $f12,$f14
0x46 0x2e 0x60 0x31
# CHECK: c.un.s $f6,$f7
0x46 0x07 0x30 0x31
# CHECK: ceil.w.d $f12,$f14
0x46 0x20 0x73 0x0e
# CHECK: ceil.w.s $f6,$f7
0x46 0x00 0x39 0x8e
# CHECK: cfc1 a2,$7
0x44 0x46 0x38 0x00
# CHECK: clo a2,a3
0x70 0xe6 0x30 0x21
# CHECK: clz a2,a3
0x70 0xe6 0x30 0x20
# CHECK: ctc1 a2,$7
0x44 0xc6 0x38 0x00
# CHECK: cvt.d.s $f6,$f7
0x46 0x00 0x39 0xa1
# CHECK: cvt.d.w $f12,$f14
0x46 0x80 0x73 0x21
# CHECK: cvt.s.d $f12,$f14
0x46 0x20 0x73 0x20
# CHECK: cvt.s.w $f6,$f7
0x46 0x80 0x39 0xa0
# CHECK: cvt.w.d $f12,$f14
0x46 0x20 0x73 0x24
# CHECK: cvt.w.s $f6,$f7
0x46 0x00 0x39 0xa4
# CHECK: floor.w.d $f12,$f14
0x46 0x20 0x73 0x0f
# CHECK: floor.w.s $f6,$f7
0x46 0x00 0x39 0x8f
# CHECK: j 00000530
0x08 0x00 0x01 0x4c
# CHECK: jal 00000530
0x0c 0x00 0x01 0x4c
# CHECK: jalr a2,a3
0x00 0xe0 0xf8 0x09
# CHECK: jr a3
0x00 0xe0 0x00 0x08
# CHECK: lb a0,9158(a1)
0x80 0xa4 0x23 0xc6
# CHECK: lbu a0,6(a1)
0x90 0xa4 0x00 0x06
# CHECK: ldc1 $f9,9158(a3)
0xd4 0xe9 0x23 0xc6
# CHECK: lh a0,12(a1)
0x84 0xa4 0x00 0x0c
# CHECK: lh a0,12(a1)
0x84 0xa4 0x00 0x0c
# CHECK: li v1,17767
0x24 0x03 0x45 0x67
# CHECK: ll t1,9158(a3)
0xc0 0xe9 0x23 0xc6
# CHECK: lui a2,0x4567
0x3c 0x06 0x45 0x67
# CHECK: lw a0,24(a1)
0x8c 0xa4 0x00 0x18
# CHECK: lwc1 $f9,9158(a3)
0xc4 0xe9 0x23 0xc6
# CHECK: lwl $v0, 3($a0)
0x88 0x82 0x00 0x03
# CHECK: lwr $v1,16($a1)
0x98 0xa3 0x00 0x10
# CHECK: madd a2,a3
0x70 0xc7 0x00 0x00
# CHECK: maddu a2,a3
0x70 0xc7 0x00 0x01
# CHECK: mfc1 a2,$f7
0x44 0x06 0x38 0x00
# CHECK: mfhi a1
0x00 0x00 0x28 0x10
# CHECK: mflo a1
0x00 0x00 0x28 0x12
# CHECK: mov.d $f6,$f8
0x46 0x20 0x41 0x86
# CHECK: mov.s $f6,$f7
0x46 0x00 0x39 0x86
# CHECK: move a2,a1
0x00 0xa0 0x30 0x21
# CHECK: msub a2,a3
0x70 0xc7 0x00 0x04
# CHECK: msubu a2,a3
0x70 0xc7 0x00 0x05
# CHECK: mtc1 a2,$f7
0x44 0x86 0x38 0x00
# CHECK: mthi a3
0x00 0xe0 0x00 0x11
# CHECK: mtlo a3
0x00 0xe0 0x00 0x13
# CHECK: mul.d $f8,$f12,$f14
0x46 0x2e 0x62 0x02
# CHECK: mul.s $f9,$f6,$f7
0x46 0x07 0x32 0x42
# CHECK: mul t1,a2,a3
0x70 0xc7 0x48 0x02
# CHECK: mult v1,a1
0x00 0x65 0x00 0x18
# CHECK: multu v1,a1
0x00 0x65 0x00 0x19
# CHECK: neg.d $f12,$f14
0x46 0x20 0x73 0x07
# CHECK: neg.s $f6,$f7
0x46 0x00 0x39 0x87
# CHECK: neg v1,a1
0x00 0x05 0x18 0x22
# CHECK: nop
0x00 0x00 0x00 0x00
# CHECK: nor t1,a2,a3
0x00 0xc7 0x48 0x27
# CHECK: not v1,a1
0x00 0xa0 0x18 0x27
# CHECK: or v1,v1,a1
0x00 0x65 0x18 0x25
# CHECK: ori t1,a2,0x4567
0x34 0xc9 0x45 0x67
# CHECK: rdhwr a2,$29
0x7c 0x06 0xe8 0x3b
# CHECK: round.w.d $f6,$f14
0x46 0x20 0x73 0x0c
# CHECK: round.w.s $f6,$f7
0x46 0x00 0x39 0x8c
# CHECK: sb a0,9158(a1)
0xa0 0xa4 0x23 0xc6
# CHECK: sb a0,6(a1)
0xa0 0xa4 0x00 0x06
# CHECK: sc t1,9158(a3)
0xe0 0xe9 0x23 0xc6
# CHECK: sdc1 $f9,9158(a3)
0xf4 0xe9 0x23 0xc6
# CHECK: sh a0,9158(a1)
0xa4 0xa4 0x23 0xc6
# CHECK: sll a0,v1,0x7
0x00 0x03 0x21 0xc0
# CHECK: sllv v0,v1,a1
0x00 0xa3 0x10 0x04
# CHECK: slt v1,v1,a1
0x00 0x65 0x18 0x2a
# CHECK: slti v1,v1,103
0x28 0x63 0x00 0x67
# CHECK: sltiu v1,v1,103
0x2c 0x63 0x00 0x67
# CHECK: sltu v1,v1,a1
0x00 0x65 0x18 0x2b
# CHECK: sqrt.d $f12,$f14
0x46 0x20 0x73 0x04
# CHECK: sqrt.s $f6,$f7
0x46 0x00 0x39 0x84
# CHECK: sra a0,v1,0x7
0x00 0x03 0x21 0xc3
# CHECK: sra a0,v1,0x7
0x00 0x03 0x21 0xc3
# CHECK: srav v0,v1,a1
0x00 0xa3 0x10 0x07
# CHECK: srl a0,v1,0x7
0x00 0x03 0x21 0xc2
# CHECK: srlv v0,v1,a1
0x00 0xa3 0x10 0x06
# CHECK: sub.d $f8,$f12,$f14
0x46 0x2e 0x62 0x01
# CHECK: sub.s $f9,$f6,$f7
0x46 0x07 0x32 0x41
# CHECK: sub t1,a2,a3
0x00 0xc7 0x48 0x22
# CHECK: subu a0,v1,a1
0x00 0x65 0x20 0x23
# CHECK: sw a0,24(a1)
0xac 0xa4 0x00 0x18
# CHECK: swc1 $f9,9158(a3)
0xe4 0xe9 0x23 0xc6
# CHECK: swl $a0, 16($a1)
0xa8 0xa4 0x00 0x10
# CHECK: swr $a2, 16($a3)
0xb8 0xe6 0x00 0x10
# CHECK: sync 0x7
0x00 0x00 0x01 0xcf
# CHECK: trunc.w.d $f12,$f14
0x46 0x20 0x73 0x0d
# CHECK: trunc.w.s $f6,$f7
0x46 0x00 0x39 0x8d
# CHECK: xor v1,v1,a1
0x00 0x65 0x18 0x26
# CHECK: xori t1,a2,0x4567
0x38 0xc9 0x45 0x67