Add support for 64-bit CMPDI, CMPLDI, and CMPLD opcodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15667 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/PowerPC/PPCInstrFormats.td b/lib/Target/PowerPC/PPCInstrFormats.td
index 852e432..7964b01 100644
--- a/lib/Target/PowerPC/PPCInstrFormats.td
+++ b/lib/Target/PowerPC/PPCInstrFormats.td
@@ -184,7 +184,7 @@
class DForm_5_ext<string name, bits<6> opcode, bit ppc64, bit vmx>
: DForm_5<name, opcode, ppc64, vmx> {
- let L = 0;
+ let L = ppc64;
let ArgCount = 3;
let Arg0Type = Imm3.Value;
let Arg1Type = Gpr.Value;
@@ -199,7 +199,7 @@
class DForm_6_ext<string name, bits<6> opcode, bit ppc64, bit vmx>
: DForm_6<name, opcode, ppc64, vmx> {
- let L = 0;
+ let L = ppc64;
let ArgCount = 3;
let Arg0Type = Imm3.Value;
let Arg1Type = Gpr.Value;
@@ -324,7 +324,7 @@
class XForm_16_ext<string name, bits<6> opcode, bits<10> xo, bit ppc64, bit vmx>
: XForm_16<name, opcode, xo, ppc64, vmx> {
- let L = 0;
+ let L = ppc64;
}
class XForm_17<string name, bits<6> opcode, bits<10> xo, bit ppc64, bit vmx>
diff --git a/lib/Target/PowerPC/PPCInstrInfo.td b/lib/Target/PowerPC/PPCInstrInfo.td
index 46f7924..fef06e9 100644
--- a/lib/Target/PowerPC/PPCInstrInfo.td
+++ b/lib/Target/PowerPC/PPCInstrInfo.td
@@ -69,11 +69,14 @@
def CMPI : DForm_5<"cmpi", 11, 0, 0>;
def CMPWI : DForm_5_ext<"cmpwi", 11, 0, 0>;
+def CMPDI : DForm_5_ext<"cmpwi", 11, 1, 0>;
def CMPW : XForm_16 <"cmpw", 31, 0, 0, 0>;
def CMPLI : DForm_6<"cmpli", 10, 0, 0>;
def CMPLWI : DForm_6_ext<"cmplwi", 10, 0, 0>;
+def CMPLDI : DForm_6_ext<"cmplwi", 10, 1, 0>;
def CMPL : XForm_16<"cmpl", 31, 32, 0, 0>;
def CMPLW : XForm_16_ext<"cmplw", 31, 32, 0, 0>;
+def CMPLD : XForm_16_ext<"cmplw", 31, 32, 1, 0>;
def CRAND : XLForm_1<"crand", 19, 257, 0, 0>;
def CRANDC : XLForm_1<"crandc", 19, 129, 0, 0>;
def CRNOR : XLForm_1<"crnor", 19, 33, 0, 0>;