aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorChen Zheng <czhengsz@cn.ibm.com>2021-03-04 20:47:41 -0500
committerChen Zheng <czhengsz@cn.ibm.com>2021-03-04 21:07:52 -0500
commit87bbf3d1f8c344c98a6f3079b76405ca22b83b79 (patch)
treeab02e7aa168a8c1ecbbadf638fc8dbd303ed104d /llvm/lib/Target
parent46f52fb65524e233b9e1ae254b8c021ce7631ef3 (diff)
downloadllvm-87bbf3d1f8c344c98a6f3079b76405ca22b83b79.zip
llvm-87bbf3d1f8c344c98a6f3079b76405ca22b83b79.tar.gz
llvm-87bbf3d1f8c344c98a6f3079b76405ca22b83b79.tar.bz2
[XCOFF][DebugInfo] support DWARF for XCOFF for assembly output.
Reviewed By: jasonliu Differential Revision: https://reviews.llvm.org/D95518
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp6
-rw-r--r--llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp5
2 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp
index 2b76af2..b0f5267 100644
--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp
+++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp
@@ -63,4 +63,10 @@ PPCXCOFFMCAsmInfo::PPCXCOFFMCAsmInfo(bool Is64Bit, const Triple &T) {
// A size of 8 is only supported by the assembler under 64-bit.
Data64bitsDirective = Is64Bit ? "\t.vbyte\t8, " : nullptr;
+
+ // Debug Information
+ SupportsDebugInformation = true;
+
+ // Set up DWARF directives
+ MinInstAlignment = 4;
}
diff --git a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
index ddfca2a..4e307df 100644
--- a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
+++ b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
@@ -2303,6 +2303,11 @@ void PPCAIXAsmPrinter::emitInstruction(const MachineInstr *MI) {
}
bool PPCAIXAsmPrinter::doFinalization(Module &M) {
+ // Do streamer related finalization for DWARF.
+ if (!MAI->usesDwarfFileAndLocDirectives() && MMI->hasDebugInfo())
+ OutStreamer->doFinalizationAtSectionEnd(
+ OutStreamer->getContext().getObjectFileInfo()->getTextSection());
+
for (MCSymbol *Sym : ExtSymSDNodeSymbols)
OutStreamer->emitSymbolAttribute(Sym, MCSA_Extern);
return PPCAsmPrinter::doFinalization(M);