diff options
Diffstat (limited to 'contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp')
-rw-r--r-- | contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp | 77 |
1 files changed, 40 insertions, 37 deletions
diff --git a/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp b/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp index 992e44d95306..d81a9be26d39 100644 --- a/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp +++ b/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp @@ -36,22 +36,23 @@ using namespace llvm; //===----------------------------------------------------------------------===// /// EmitSLEB128 - emit the specified signed leb128 value. -void AsmPrinter::EmitSLEB128(int64_t Value, const char *Desc) const { +void AsmPrinter::emitSLEB128(int64_t Value, const char *Desc) const { if (isVerbose() && Desc) OutStreamer->AddComment(Desc); - OutStreamer->EmitSLEB128IntValue(Value); + OutStreamer->emitSLEB128IntValue(Value); } -void AsmPrinter::EmitULEB128(uint64_t Value, const char *Desc, unsigned PadTo) const { +void AsmPrinter::emitULEB128(uint64_t Value, const char *Desc, + unsigned PadTo) const { if (isVerbose() && Desc) OutStreamer->AddComment(Desc); - OutStreamer->EmitULEB128IntValue(Value, PadTo); + OutStreamer->emitULEB128IntValue(Value, PadTo); } /// Emit something like ".uleb128 Hi-Lo". -void AsmPrinter::EmitLabelDifferenceAsULEB128(const MCSymbol *Hi, +void AsmPrinter::emitLabelDifferenceAsULEB128(const MCSymbol *Hi, const MCSymbol *Lo) const { OutStreamer->emitAbsoluteSymbolDiffAsULEB128(Hi, Lo); } @@ -105,7 +106,7 @@ static const char *DecodeDWARFEncoding(unsigned Encoding) { /// encoding. If verbose assembly output is enabled, we output comments /// describing the encoding. Desc is an optional string saying what the /// encoding is specifying (e.g. "LSDA"). -void AsmPrinter::EmitEncodingByte(unsigned Val, const char *Desc) const { +void AsmPrinter::emitEncodingByte(unsigned Val, const char *Desc) const { if (isVerbose()) { if (Desc) OutStreamer->AddComment(Twine(Desc) + " Encoding = " + @@ -114,7 +115,7 @@ void AsmPrinter::EmitEncodingByte(unsigned Val, const char *Desc) const { OutStreamer->AddComment(Twine("Encoding = ") + DecodeDWARFEncoding(Val)); } - OutStreamer->EmitIntValue(Val, 1); + OutStreamer->emitIntValue(Val, 1); } /// GetSizeOfEncodedValue - Return the size of the encoding in bytes. @@ -136,16 +137,16 @@ unsigned AsmPrinter::GetSizeOfEncodedValue(unsigned Encoding) const { } } -void AsmPrinter::EmitTTypeReference(const GlobalValue *GV, +void AsmPrinter::emitTTypeReference(const GlobalValue *GV, unsigned Encoding) const { if (GV) { const TargetLoweringObjectFile &TLOF = getObjFileLowering(); const MCExpr *Exp = TLOF.getTTypeGlobalReference(GV, Encoding, TM, MMI, *OutStreamer); - OutStreamer->EmitValue(Exp, GetSizeOfEncodedValue(Encoding)); + OutStreamer->emitValue(Exp, GetSizeOfEncodedValue(Encoding)); } else - OutStreamer->EmitIntValue(0, GetSizeOfEncodedValue(Encoding)); + OutStreamer->emitIntValue(0, GetSizeOfEncodedValue(Encoding)); } void AsmPrinter::emitDwarfSymbolReference(const MCSymbol *Label, @@ -159,13 +160,13 @@ void AsmPrinter::emitDwarfSymbolReference(const MCSymbol *Label, // If the format uses relocations with dwarf, refer to the symbol directly. if (MAI->doesDwarfUseRelocationsAcrossSections()) { - OutStreamer->EmitSymbolValue(Label, 4); + OutStreamer->emitSymbolValue(Label, 4); return; } } // Otherwise, emit it as a label difference from the start of the section. - EmitLabelDifference(Label, Label->getSection().getBeginSymbol(), 4); + emitLabelDifference(Label, Label->getSection().getBeginSymbol(), 4); } void AsmPrinter::emitDwarfStringOffset(DwarfStringPoolEntry S) const { @@ -179,27 +180,26 @@ void AsmPrinter::emitDwarfStringOffset(DwarfStringPoolEntry S) const { emitInt32(S.Offset); } -void AsmPrinter::EmitDwarfOffset(const MCSymbol *Label, uint64_t Offset) const { - EmitLabelPlusOffset(Label, Offset, MAI->getCodePointerSize()); +void AsmPrinter::emitDwarfOffset(const MCSymbol *Label, uint64_t Offset) const { + // TODO: Support DWARF64 + emitLabelPlusOffset(Label, Offset, 4); } -void AsmPrinter::EmitCallSiteOffset(const MCSymbol *Hi, - const MCSymbol *Lo, +void AsmPrinter::emitCallSiteOffset(const MCSymbol *Hi, const MCSymbol *Lo, unsigned Encoding) const { // The least significant 3 bits specify the width of the encoding if ((Encoding & 0x7) == dwarf::DW_EH_PE_uleb128) - EmitLabelDifferenceAsULEB128(Hi, Lo); + emitLabelDifferenceAsULEB128(Hi, Lo); else - EmitLabelDifference(Hi, Lo, GetSizeOfEncodedValue(Encoding)); + emitLabelDifference(Hi, Lo, GetSizeOfEncodedValue(Encoding)); } -void AsmPrinter::EmitCallSiteValue(uint64_t Value, - unsigned Encoding) const { +void AsmPrinter::emitCallSiteValue(uint64_t Value, unsigned Encoding) const { // The least significant 3 bits specify the width of the encoding if ((Encoding & 0x7) == dwarf::DW_EH_PE_uleb128) - EmitULEB128(Value); + emitULEB128(Value); else - OutStreamer->EmitIntValue(Value, GetSizeOfEncodedValue(Encoding)); + OutStreamer->emitIntValue(Value, GetSizeOfEncodedValue(Encoding)); } //===----------------------------------------------------------------------===// @@ -211,40 +211,43 @@ void AsmPrinter::emitCFIInstruction(const MCCFIInstruction &Inst) const { default: llvm_unreachable("Unexpected instruction"); case MCCFIInstruction::OpDefCfaOffset: - OutStreamer->EmitCFIDefCfaOffset(Inst.getOffset()); + OutStreamer->emitCFIDefCfaOffset(Inst.getOffset()); break; case MCCFIInstruction::OpAdjustCfaOffset: - OutStreamer->EmitCFIAdjustCfaOffset(Inst.getOffset()); + OutStreamer->emitCFIAdjustCfaOffset(Inst.getOffset()); break; case MCCFIInstruction::OpDefCfa: - OutStreamer->EmitCFIDefCfa(Inst.getRegister(), Inst.getOffset()); + OutStreamer->emitCFIDefCfa(Inst.getRegister(), Inst.getOffset()); break; case MCCFIInstruction::OpDefCfaRegister: - OutStreamer->EmitCFIDefCfaRegister(Inst.getRegister()); + OutStreamer->emitCFIDefCfaRegister(Inst.getRegister()); break; case MCCFIInstruction::OpOffset: - OutStreamer->EmitCFIOffset(Inst.getRegister(), Inst.getOffset()); + OutStreamer->emitCFIOffset(Inst.getRegister(), Inst.getOffset()); break; case MCCFIInstruction::OpRegister: - OutStreamer->EmitCFIRegister(Inst.getRegister(), Inst.getRegister2()); + OutStreamer->emitCFIRegister(Inst.getRegister(), Inst.getRegister2()); break; case MCCFIInstruction::OpWindowSave: - OutStreamer->EmitCFIWindowSave(); + OutStreamer->emitCFIWindowSave(); break; case MCCFIInstruction::OpNegateRAState: - OutStreamer->EmitCFINegateRAState(); + OutStreamer->emitCFINegateRAState(); break; case MCCFIInstruction::OpSameValue: - OutStreamer->EmitCFISameValue(Inst.getRegister()); + OutStreamer->emitCFISameValue(Inst.getRegister()); break; case MCCFIInstruction::OpGnuArgsSize: - OutStreamer->EmitCFIGnuArgsSize(Inst.getOffset()); + OutStreamer->emitCFIGnuArgsSize(Inst.getOffset()); break; case MCCFIInstruction::OpEscape: - OutStreamer->EmitCFIEscape(Inst.getValues()); + OutStreamer->emitCFIEscape(Inst.getValues()); break; case MCCFIInstruction::OpRestore: - OutStreamer->EmitCFIRestore(Inst.getRegister()); + OutStreamer->emitCFIRestore(Inst.getRegister()); + break; + case MCCFIInstruction::OpUndefined: + OutStreamer->emitCFIUndefined(Inst.getRegister()); break; } } @@ -256,7 +259,7 @@ void AsmPrinter::emitDwarfDIE(const DIE &Die) const { Twine::utohexstr(Die.getOffset()) + ":0x" + Twine::utohexstr(Die.getSize()) + " " + dwarf::TagString(Die.getTag())); - EmitULEB128(Die.getAbbrevNumber()); + emitULEB128(Die.getAbbrevNumber()); // Emit the DIE attribute values. for (const auto &V : Die.values()) { @@ -271,7 +274,7 @@ void AsmPrinter::emitDwarfDIE(const DIE &Die) const { } // Emit an attribute using the defined form. - V.EmitValue(this); + V.emitValue(this); } // Emit the DIE children if any. @@ -286,7 +289,7 @@ void AsmPrinter::emitDwarfDIE(const DIE &Die) const { void AsmPrinter::emitDwarfAbbrev(const DIEAbbrev &Abbrev) const { // Emit the abbreviations code (base 1 index.) - EmitULEB128(Abbrev.getNumber(), "Abbreviation Code"); + emitULEB128(Abbrev.getNumber(), "Abbreviation Code"); // Emit the abbreviations data. Abbrev.Emit(this); |