mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-01 00:33:09 +00:00
[mips][mips64r6] daddi is not available on MIPS64r6
Summary: It's not emitted by the code generator so we only need assembler tests. Also added missing daddi aliases from dsub mnemonics, and removed a couple duplicate dsub tests. Depends on D4112 Reviewers: zoran.jovanovic, jkolek, vmedic Reviewed By: vmedic Differential Revision: http://reviews.llvm.org/D4113 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210897 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
94afbc661f
commit
21c016f699
@ -65,7 +65,7 @@ let isPseudo = 1, isCodeGenOnly = 1 in {
|
||||
let DecoderNamespace = "Mips64" in {
|
||||
/// Arithmetic Instructions (ALU Immediate)
|
||||
def DADDi : ArithLogicI<"daddi", simm16_64, GPR64Opnd>, ADDI_FM<0x18>,
|
||||
ISA_MIPS3;
|
||||
ISA_MIPS3_NOT_32R6_64R6;
|
||||
def DADDiu : ArithLogicI<"daddiu", simm16_64, GPR64Opnd, II_DADDIU,
|
||||
immSExt16, add>,
|
||||
ADDI_FM<0x19>, IsAsCheapAsAMove, ISA_MIPS3;
|
||||
@ -440,13 +440,13 @@ def : MipsInstAlias<"daddu $rs, $rt, $imm",
|
||||
0>;
|
||||
def : MipsInstAlias<"dadd $rs, $rt, $imm",
|
||||
(DADDi GPR64Opnd:$rs, GPR64Opnd:$rt, simm16_64:$imm),
|
||||
0>;
|
||||
0>, ISA_MIPS3_NOT_32R6_64R6;
|
||||
def : MipsInstAlias<"daddu $rs, $imm",
|
||||
(DADDiu GPR64Opnd:$rs, GPR64Opnd:$rs, simm16_64:$imm),
|
||||
0>;
|
||||
def : MipsInstAlias<"dadd $rs, $imm",
|
||||
(DADDi GPR64Opnd:$rs, GPR64Opnd:$rs, simm16_64:$imm),
|
||||
0>;
|
||||
0>, ISA_MIPS3_NOT_32R6_64R6;
|
||||
def : MipsInstAlias<"add $rs, $imm",
|
||||
(ADDi GPR32Opnd:$rs, GPR32Opnd:$rs, simm16:$imm),
|
||||
0>;
|
||||
@ -459,10 +459,22 @@ def : MipsInstAlias<"dsll $rd, $rt, $rs",
|
||||
def : MipsInstAlias<"dsubu $rt, $rs, $imm",
|
||||
(DADDiu GPR64Opnd:$rt, GPR64Opnd:$rs,
|
||||
InvertedImOperand64:$imm), 0>;
|
||||
def : MipsInstAlias<"dsubi $rs, $rt, $imm",
|
||||
(DADDi GPR64Opnd:$rs, GPR64Opnd:$rt,
|
||||
InvertedImOperand64:$imm),
|
||||
0>, ISA_MIPS3_NOT_32R6_64R6;
|
||||
def : MipsInstAlias<"dsubi $rs, $imm",
|
||||
(DADDi GPR64Opnd:$rs, GPR64Opnd:$rs,
|
||||
InvertedImOperand64:$imm),
|
||||
0>, ISA_MIPS3_NOT_32R6_64R6;
|
||||
def : MipsInstAlias<"dsub $rs, $rt, $imm",
|
||||
(DADDi GPR64Opnd:$rs, GPR64Opnd:$rt,
|
||||
InvertedImOperand64:$imm),
|
||||
0>, ISA_MIPS3_NOT_32R6_64R6;
|
||||
def : MipsInstAlias<"dsub $rs, $imm",
|
||||
(DADDi GPR64Opnd:$rs, GPR64Opnd:$rs,
|
||||
InvertedImOperand64:$imm),
|
||||
0>;
|
||||
0>, ISA_MIPS3_NOT_32R6_64R6;
|
||||
def : MipsInstAlias<"dsubu $rs, $imm",
|
||||
(DADDiu GPR64Opnd:$rs, GPR64Opnd:$rs,
|
||||
InvertedImOperand64:$imm),
|
||||
|
@ -14,7 +14,6 @@
|
||||
// Notes about removals/changes from MIPS32r6:
|
||||
// Reencoded: dclo, dclz
|
||||
// Reencoded: lld, scd
|
||||
// Removed: daddi
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
|
@ -7,7 +7,6 @@
|
||||
|
||||
.set noat
|
||||
dmult $s7,$a5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
|
||||
dsub $a3,$s6,$a4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
|
||||
ld $sp,-28645($s1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
|
||||
ldl $t8,-4167($t8) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
|
||||
ldr $t2,-30358($s4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
|
||||
|
@ -38,6 +38,7 @@
|
||||
dsrl32 $s3,23 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
dsrl32 $s3,$6,23 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
dsrlv $s3,$t2,$s4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
dsub $a3,$s6,$a4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
dsubu $a1,$a1,$k0 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
eret # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
floor.l.d $f26,$f7 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
|
@ -36,7 +36,11 @@
|
||||
cvt.w.d $f20,$f14
|
||||
cvt.w.s $f20,$f24
|
||||
dadd $s3,$at,$ra
|
||||
dadd $sp,$s4,-27705 # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7]
|
||||
dadd $sp,-27705 # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]
|
||||
daddi $sp,$s4,-27705
|
||||
daddi $sp,$s4,-27705 # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7]
|
||||
daddi $sp,-27705 # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]
|
||||
daddiu $k0,$s6,-4586
|
||||
daddu $s3,$at,$ra
|
||||
ddiv $zero,$k0,$s3
|
||||
@ -68,6 +72,10 @@
|
||||
dsrl32 $s3,$6,23 # CHECK: dsrl32 $19, $6, 23 # encoding: [0x00,0x06,0x9d,0xfe]
|
||||
dsrlv $s3,$6,$s4 # CHECK: dsrlv $19, $6, $20 # encoding: [0x02,0x86,0x98,0x16]
|
||||
dsub $a3,$s6,$8
|
||||
dsub $sp,$s4,-27705 # CHECK: daddi $sp, $20, 27705 # encoding: [0x62,0x9d,0x6c,0x39]
|
||||
dsub $sp,-27705 # CHECK: daddi $sp, $sp, 27705 # encoding: [0x63,0xbd,0x6c,0x39]
|
||||
dsubi $sp,$s4,-27705 # CHECK: daddi $sp, $20, 27705 # encoding: [0x62,0x9d,0x6c,0x39]
|
||||
dsubi $sp,-27705 # CHECK: daddi $sp, $sp, 27705 # encoding: [0x63,0xbd,0x6c,0x39]
|
||||
dsubu $a1,$a1,$k0
|
||||
ehb # CHECK: ehb # encoding: [0x00,0x00,0x00,0xc0]
|
||||
eret
|
||||
|
@ -38,7 +38,11 @@
|
||||
cvt.w.d $f20,$f14
|
||||
cvt.w.s $f20,$f24
|
||||
dadd $s3,$at,$ra
|
||||
dadd $sp,$s4,-27705 # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7]
|
||||
dadd $sp,-27705 # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]
|
||||
daddi $sp,$s4,-27705
|
||||
daddi $sp,$s4,-27705 # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7]
|
||||
daddi $sp,-27705 # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]
|
||||
daddiu $k0,$s6,-4586
|
||||
daddu $s3,$at,$ra
|
||||
ddiv $zero,$k0,$s3
|
||||
@ -70,8 +74,10 @@
|
||||
dsrl32 $s3,$6,23 # CHECK: dsrl32 $19, $6, 23 # encoding: [0x00,0x06,0x9d,0xfe]
|
||||
dsrlv $s3,$6,$s4 # CHECK: dsrlv $19, $6, $20 # encoding: [0x02,0x86,0x98,0x16]
|
||||
dsub $a3,$s6,$8
|
||||
dsubu $a1,$a1,$k0
|
||||
dsub $a3,$s6,$8
|
||||
dsub $sp,$s4,-27705 # CHECK: daddi $sp, $20, 27705 # encoding: [0x62,0x9d,0x6c,0x39]
|
||||
dsub $sp,-27705 # CHECK: daddi $sp, $sp, 27705 # encoding: [0x63,0xbd,0x6c,0x39]
|
||||
dsubi $sp,$s4,-27705 # CHECK: daddi $sp, $20, 27705 # encoding: [0x62,0x9d,0x6c,0x39]
|
||||
dsubi $sp,-27705 # CHECK: daddi $sp, $sp, 27705 # encoding: [0x63,0xbd,0x6c,0x39]
|
||||
dsubu $a1,$a1,$k0
|
||||
ehb # CHECK: ehb # encoding: [0x00,0x00,0x00,0xc0]
|
||||
eret
|
||||
|
@ -38,7 +38,11 @@
|
||||
cvt.w.d $f20,$f14
|
||||
cvt.w.s $f20,$f24
|
||||
dadd $s3,$at,$ra
|
||||
dadd $sp,$s4,-27705 # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7]
|
||||
dadd $sp,-27705 # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]
|
||||
daddi $sp,$s4,-27705
|
||||
daddi $sp,$s4,-27705 # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7]
|
||||
daddi $sp,-27705 # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]
|
||||
daddiu $k0,$s6,-4586
|
||||
daddu $s3,$at,$ra
|
||||
ddiv $zero,$k0,$s3
|
||||
@ -70,8 +74,10 @@
|
||||
dsrl32 $s3,$6,23 # CHECK: dsrl32 $19, $6, 23 # encoding: [0x00,0x06,0x9d,0xfe]
|
||||
dsrlv $s3,$6,$s4 # CHECK: dsrlv $19, $6, $20 # encoding: [0x02,0x86,0x98,0x16]
|
||||
dsub $a3,$s6,$8
|
||||
dsubu $a1,$a1,$k0
|
||||
dsub $a3,$s6,$8
|
||||
dsub $sp,$s4,-27705 # CHECK: daddi $sp, $20, 27705 # encoding: [0x62,0x9d,0x6c,0x39]
|
||||
dsub $sp,-27705 # CHECK: daddi $sp, $sp, 27705 # encoding: [0x63,0xbd,0x6c,0x39]
|
||||
dsubi $sp,$s4,-27705 # CHECK: daddi $sp, $20, 27705 # encoding: [0x62,0x9d,0x6c,0x39]
|
||||
dsubi $sp,-27705 # CHECK: daddi $sp, $sp, 27705 # encoding: [0x63,0xbd,0x6c,0x39]
|
||||
dsubu $a1,$a1,$k0
|
||||
ehb # CHECK: ehb # encoding: [0x00,0x00,0x00,0xc0]
|
||||
eret
|
||||
|
@ -40,7 +40,11 @@
|
||||
cvt.w.d $f20,$f14
|
||||
cvt.w.s $f20,$f24
|
||||
dadd $s3,$at,$ra
|
||||
dadd $sp,$s4,-27705 # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7]
|
||||
dadd $sp,-27705 # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]
|
||||
daddi $sp,$s4,-27705
|
||||
daddi $sp,$s4,-27705 # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7]
|
||||
daddi $sp,-27705 # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]
|
||||
daddiu $k0,$s6,-4586
|
||||
daddu $s3,$at,$ra
|
||||
dclo $s2,$a2
|
||||
@ -75,8 +79,10 @@
|
||||
dsrl32 $s3,$6,23 # CHECK: dsrl32 $19, $6, 23 # encoding: [0x00,0x06,0x9d,0xfe]
|
||||
dsrlv $s3,$6,$s4 # CHECK: dsrlv $19, $6, $20 # encoding: [0x02,0x86,0x98,0x16]
|
||||
dsub $a3,$s6,$8
|
||||
dsubu $a1,$a1,$k0
|
||||
dsub $a3,$s6,$8
|
||||
dsub $sp,$s4,-27705 # CHECK: daddi $sp, $20, 27705 # encoding: [0x62,0x9d,0x6c,0x39]
|
||||
dsub $sp,-27705 # CHECK: daddi $sp, $sp, 27705 # encoding: [0x63,0xbd,0x6c,0x39]
|
||||
dsubi $sp,$s4,-27705 # CHECK: daddi $sp, $20, 27705 # encoding: [0x62,0x9d,0x6c,0x39]
|
||||
dsubi $sp,-27705 # CHECK: daddi $sp, $sp, 27705 # encoding: [0x63,0xbd,0x6c,0x39]
|
||||
dsubu $a1,$a1,$k0
|
||||
ehb # CHECK: ehb # encoding: [0x00,0x00,0x00,0xc0]
|
||||
eret
|
||||
|
@ -40,7 +40,11 @@
|
||||
cvt.w.d $f20,$f14
|
||||
cvt.w.s $f20,$f24
|
||||
dadd $s3,$at,$ra
|
||||
dadd $sp,$s4,-27705 # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7]
|
||||
dadd $sp,-27705 # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]
|
||||
daddi $sp,$s4,-27705
|
||||
daddi $sp,$s4,-27705 # CHECK: daddi $sp, $20, -27705 # encoding: [0x62,0x9d,0x93,0xc7]
|
||||
daddi $sp,-27705 # CHECK: daddi $sp, $sp, -27705 # encoding: [0x63,0xbd,0x93,0xc7]
|
||||
daddiu $k0,$s6,-4586
|
||||
daddu $s3,$at,$ra
|
||||
dclo $s2,$a2
|
||||
@ -83,8 +87,12 @@
|
||||
dsrl32 $s3,$6,23 # CHECK: dsrl32 $19, $6, 23 # encoding: [0x00,0x06,0x9d,0xfe]
|
||||
dsrlv $s3,$6,$s4 # CHECK: dsrlv $19, $6, $20 # encoding: [0x02,0x86,0x98,0x16]
|
||||
dsub $a3,$s6,$8
|
||||
dsubu $a1,$a1,$k0
|
||||
dsub $a3,$s6,$8
|
||||
dsub $sp,$s4,-27705 # CHECK: daddi $sp, $20, 27705 # encoding: [0x62,0x9d,0x6c,0x39]
|
||||
dsub $sp,-27705 # CHECK: daddi $sp, $sp, 27705 # encoding: [0x63,0xbd,0x6c,0x39]
|
||||
dsubi $sp,$s4,-27705 # CHECK: daddi $sp, $20, 27705 # encoding: [0x62,0x9d,0x6c,0x39]
|
||||
dsubi $sp,-27705 # CHECK: daddi $sp, $sp, 27705 # encoding: [0x63,0xbd,0x6c,0x39]
|
||||
dsubu $a1,$a1,$k0
|
||||
dsubu $a1,$a1,$k0
|
||||
ehb # CHECK: ehb # encoding: [0x00,0x00,0x00,0xc0]
|
||||
ei $14
|
||||
|
@ -6,8 +6,16 @@
|
||||
|
||||
.set noat
|
||||
addi $13,$9,26322 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
dmult $s7,$9 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
daddi $sp,$s4,-27705 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
daddi $sp,-27705 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
dadd $sp,$s4,-27705 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
dadd $sp,-27705 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
dmult $s7,$s4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
dmultu $a1,$a2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
dsubi $sp,$s4,-27705 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
dsubi $sp,-27705 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
dsub $sp,$s4,-27705 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
dsub $sp,-27705 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
jalx 4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
mfhi $s3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
mfhi $sp # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
|
||||
|
Loading…
Reference in New Issue
Block a user