diff options
Diffstat (limited to 'lib/Target/PIC16/PIC16ISelLowering.cpp')
-rw-r--r-- | lib/Target/PIC16/PIC16ISelLowering.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/Target/PIC16/PIC16ISelLowering.cpp b/lib/Target/PIC16/PIC16ISelLowering.cpp index d4cbc0a1c3..efcbd9a64c 100644 --- a/lib/Target/PIC16/PIC16ISelLowering.cpp +++ b/lib/Target/PIC16/PIC16ISelLowering.cpp @@ -443,6 +443,7 @@ const char *PIC16TargetLowering::getTargetNodeName(unsigned Opcode) const { case PIC16ISD::SELECT_ICC: return "PIC16ISD::SELECT_ICC"; case PIC16ISD::BRCOND: return "PIC16ISD::BRCOND"; case PIC16ISD::RET: return "PIC16ISD::RET"; + case PIC16ISD::RETFIE: return "PIC16ISD::RETFIE"; case PIC16ISD::Dummy: return "PIC16ISD::Dummy"; } } @@ -1272,7 +1273,10 @@ PIC16TargetLowering::LowerReturn(SDValue Chain, DAG.getConstant (i, MVT::i8)); } - return DAG.getNode(PIC16ISD::RET, dl, MVT::Other, Chain); + if (PAN::isISR(F)) + return DAG.getNode(PIC16ISD::RETFIE, dl, MVT::Other, Chain); + else + return DAG.getNode(PIC16ISD::RET, dl, MVT::Other, Chain); } void PIC16TargetLowering:: |