diff options
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/CodeGen/FaultMaps.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86MCInstLower.cpp | 6 |
2 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/CodeGen/FaultMaps.cpp b/llvm/lib/CodeGen/FaultMaps.cpp index 600f72d320e..de0b4fa8709 100644 --- a/llvm/lib/CodeGen/FaultMaps.cpp +++ b/llvm/lib/CodeGen/FaultMaps.cpp @@ -28,11 +28,9 @@ const char *FaultMaps::WFMP = "Fault Maps: "; FaultMaps::FaultMaps(AsmPrinter &AP) : AP(AP) {} void FaultMaps::recordFaultingOp(FaultKind FaultTy, + const MCSymbol *FaultingLabel, const MCSymbol *HandlerLabel) { MCContext &OutContext = AP.OutStreamer->getContext(); - MCSymbol *FaultingLabel = OutContext.createTempSymbol(); - - AP.OutStreamer->EmitLabel(FaultingLabel); const MCExpr *FaultingOffset = MCBinaryExpr::createSub( MCSymbolRefExpr::create(FaultingLabel, OutContext), diff --git a/llvm/lib/Target/X86/X86MCInstLower.cpp b/llvm/lib/Target/X86/X86MCInstLower.cpp index e869aa64a1e..4876df50766 100644 --- a/llvm/lib/Target/X86/X86MCInstLower.cpp +++ b/llvm/lib/Target/X86/X86MCInstLower.cpp @@ -1209,8 +1209,12 @@ void X86AsmPrinter::LowerFAULTING_OP(const MachineInstr &FaultingMI, unsigned Opcode = FaultingMI.getOperand(3).getImm(); unsigned OperandsBeginIdx = 4; + auto &Ctx = OutStreamer->getContext(); + MCSymbol *FaultingLabel = Ctx.createTempSymbol(); + OutStreamer->EmitLabel(FaultingLabel); + assert(FK < FaultMaps::FaultKindMax && "Invalid Faulting Kind!"); - FM.recordFaultingOp(FK, HandlerLabel); + FM.recordFaultingOp(FK, FaultingLabel, HandlerLabel); MCInst MI; MI.setOpcode(Opcode); |

