[SystemZ] Add LOC and LOCG
[oota-llvm.git] / lib / Target / SystemZ / SystemZOperands.td
index 9d7943922807c104761a8af2bba2eeb29c2b6e35..696ec4f15a17ff03a9d1c1137d12d7407812d8a6 100644 (file)
@@ -110,6 +110,15 @@ class BDLMode<string type, string bitsize, string dispsize, string suffix,
                         !cast<Immediate>("disp"##dispsize##"imm"##bitsize),
                         !cast<Immediate>("imm"##bitsize))>;
 
+//===----------------------------------------------------------------------===//
+// Manipulating CC masks
+//===----------------------------------------------------------------------===//
+
+def INVCC : SDNodeXForm<imm, [{
+  unsigned Value = N->getZExtValue() ^ SystemZ::CCMASK_ANY;
+  return CurDAG->getTargetConstant(Value, MVT::i8);
+}]>;
+
 //===----------------------------------------------------------------------===//
 // Extracting immediate operands from nodes
 // These all create MVT::i64 nodes to ensure the value is not sign-extended