diff options
author | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2018-03-02 20:39:30 +0000 |
---|---|---|
committer | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2018-03-02 20:39:30 +0000 |
commit | 5eb64110d241cf2506f54ade3c2693beed42dd8f (patch) | |
tree | 7ae56e435fdaeb9440ac5068e1317ad465f6130a /llvm/lib/Target/SystemZ/SystemZISelLowering.cpp | |
parent | 32063888700f57bf57ede4f24efb727fd3f284c5 (diff) | |
download | bcm5719-llvm-5eb64110d241cf2506f54ade3c2693beed42dd8f.tar.gz bcm5719-llvm-5eb64110d241cf2506f54ade3c2693beed42dd8f.zip |
[SystemZ] Support stackmaps and patchpoints
This adds back-end support for the @llvm.experimental.stackmap and
@llvm.experimental.patchpoint intrinsics.
llvm-svn: 326611
Diffstat (limited to 'llvm/lib/Target/SystemZ/SystemZISelLowering.cpp')
-rw-r--r-- | llvm/lib/Target/SystemZ/SystemZISelLowering.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp b/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp index d069cd5d7ae..e5cf3630033 100644 --- a/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp +++ b/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp @@ -983,6 +983,13 @@ LowerAsmOperandForConstraint(SDValue Op, std::string &Constraint, #include "SystemZGenCallingConv.inc" +const MCPhysReg *SystemZTargetLowering::getScratchRegisters( + CallingConv::ID) const { + static const MCPhysReg ScratchRegs[] = { SystemZ::R0D, SystemZ::R1D, + SystemZ::R14D, 0 }; + return ScratchRegs; +} + bool SystemZTargetLowering::allowTruncateForTailCall(Type *FromType, Type *ToType) const { return isTruncateFree(FromType, ToType); @@ -6806,6 +6813,10 @@ MachineBasicBlock *SystemZTargetLowering::EmitInstrWithCustomInserter( case SystemZ::LTXBRCompare_VecPseudo: return emitLoadAndTestCmp0(MI, MBB, SystemZ::LTXBR); + case TargetOpcode::STACKMAP: + case TargetOpcode::PATCHPOINT: + return emitPatchPoint(MI, MBB); + default: llvm_unreachable("Unexpected instr type to insert"); } |