diff options
author | Richard Osborne <richard@xmos.com> | 2011-05-31 16:24:49 +0000 |
---|---|---|
committer | Richard Osborne <richard@xmos.com> | 2011-05-31 16:24:49 +0000 |
commit | 9497466190a46ba06bf856302b1c81f1c4b5c951 (patch) | |
tree | 19e5385b7600894f5fa22e3bc8458a5ea44f645d /lib/Target/XCore/XCoreISelDAGToDAG.cpp | |
parent | 7736c37c142f05f4ba53c52973658bf9abc6f4cc (diff) | |
download | external_llvm-9497466190a46ba06bf856302b1c81f1c4b5c951.zip external_llvm-9497466190a46ba06bf856302b1c81f1c4b5c951.tar.gz external_llvm-9497466190a46ba06bf856302b1c81f1c4b5c951.tar.bz2 |
Add XCore intrinsic for crc8.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132340 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/XCore/XCoreISelDAGToDAG.cpp')
-rw-r--r-- | lib/Target/XCore/XCoreISelDAGToDAG.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/Target/XCore/XCoreISelDAGToDAG.cpp b/lib/Target/XCore/XCoreISelDAGToDAG.cpp index 6bec9f9..a8dd847 100644 --- a/lib/Target/XCore/XCoreISelDAGToDAG.cpp +++ b/lib/Target/XCore/XCoreISelDAGToDAG.cpp @@ -205,6 +205,16 @@ SDNode *XCoreDAGToDAGISel::Select(SDNode *N) { return CurDAG->getMachineNode(XCore::LMUL_l6r, dl, MVT::i32, MVT::i32, Ops, 4); } + case ISD::INTRINSIC_WO_CHAIN: { + unsigned IntNo = cast<ConstantSDNode>(N->getOperand(0))->getZExtValue(); + switch (IntNo) { + case Intrinsic::xcore_crc8: + SDValue Ops[] = { N->getOperand(1), N->getOperand(2), N->getOperand(3) }; + return CurDAG->getMachineNode(XCore::CRC8_l4r, dl, MVT::i32, MVT::i32, + Ops, 3); + } + break; + } case ISD::BRIND: if (SDNode *ResNode = SelectBRIND(N)) return ResNode; |