diff options
| author | Philip Reames <listmail@philipreames.com> | 2019-12-19 12:01:51 -0800 |
|---|---|---|
| committer | Philip Reames <listmail@philipreames.com> | 2019-12-19 12:38:44 -0800 |
| commit | cf6aafa47c3771e4f353bfbdeb8157347b305339 (patch) | |
| tree | 5ee4bbf5da7b3543b6e023826bdddd5537af03ae /llvm/lib | |
| parent | 7fcd9e3f70830a9c4bf631a602c2764180b5c3a8 (diff) | |
| download | bcm5719-llvm-cf6aafa47c3771e4f353bfbdeb8157347b305339.tar.gz bcm5719-llvm-cf6aafa47c3771e4f353bfbdeb8157347b305339.zip | |
[FaultMaps] Make label formation a bit more explicit [NFC]
This is in advance of assembler padding directives support where we'll need to bundle the label w/the corresponding faulting instruction to avoid padding being inserted between.
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); |

