From 626d5a253907a8167f25e531bfd0f6cd32d55853 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Wed, 9 Sep 2009 21:26:19 +0000 Subject: [PATCH] Use the EOL that takes the encoding and translates it into DWARF-English. llvm-svn: 81382 --- lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 8 ++++++++ lib/CodeGen/AsmPrinter/DwarfException.cpp | 24 ++++++++++++----------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index a92d923a7d3..e4d8ef06f1b 100644 --- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -612,6 +612,14 @@ static const char *DecodeDWARFEncoding(unsigned Encoding) { return "omit"; case dwarf::DW_EH_PE_pcrel: return "pcrel"; + case dwarf::DW_EH_PE_udata4: + return "udata4"; + case dwarf::DW_EH_PE_udata8: + return "udata8"; + case dwarf::DW_EH_PE_sdata4: + return "sdata4"; + case dwarf::DW_EH_PE_sdata8: + return "sdata8"; case dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_udata4: return "pcrel udata4"; case dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4: diff --git a/lib/CodeGen/AsmPrinter/DwarfException.cpp b/lib/CodeGen/AsmPrinter/DwarfException.cpp index bd49724ef65..3deb9fc359d 100644 --- a/lib/CodeGen/AsmPrinter/DwarfException.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfException.cpp @@ -106,10 +106,12 @@ void DwarfException::EmitCIE(const Function *Personality, unsigned Index) { if (MAI->getNeedsIndirectEncoding()) { Asm->EmitInt8(dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4 | dwarf::DW_EH_PE_indirect); - Asm->EOL("Personality (pcrel sdata4 indirect)"); + Asm->EOL("Personality", + dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4 | + dwarf::DW_EH_PE_indirect); } else { Asm->EmitInt8(dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4); - Asm->EOL("Personality (pcrel sdata4)"); + Asm->EOL("Personality", dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4); } PrintRelDirective(true); @@ -121,16 +123,16 @@ void DwarfException::EmitCIE(const Function *Personality, unsigned Index) { Asm->EOL("Personality"); Asm->EmitInt8(dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4); - Asm->EOL("LSDA Encoding (pcrel sdata4)"); + Asm->EOL("LSDA Encoding", dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4); Asm->EmitInt8(dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4); - Asm->EOL("FDE Encoding (pcrel sdata4)"); + Asm->EOL("FDE Encoding", dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4); } else { Asm->EmitULEB128Bytes(1); Asm->EOL("Augmentation Size"); Asm->EmitInt8(dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4); - Asm->EOL("FDE Encoding (pcrel sdata4)"); + Asm->EOL("FDE Encoding", dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4); } // Indicate locations of general callee saved registers in frame. @@ -609,14 +611,14 @@ void DwarfException::EmitExceptionTable() { // Emit the header. Asm->EmitInt8(dwarf::DW_EH_PE_omit); - Asm->EOL("@LPStart format (DW_EH_PE_omit)"); + Asm->EOL("@LPStart format", dwarf::DW_EH_PE_omit); #if 0 if (TypeInfos.empty() && FilterIds.empty()) { // If there are no typeinfos or filters, there is nothing to emit, optimize // by specifying the "omit" encoding. Asm->EmitInt8(dwarf::DW_EH_PE_omit); - Asm->EOL("@TType format (DW_EH_PE_omit)"); + Asm->EOL("@TType format", dwarf::DW_EH_PE_omit); } else { // Okay, we have actual filters or typeinfos to emit. As such, we need to // pick a type encoding for them. We're about to emit a list of pointers to @@ -660,10 +662,10 @@ void DwarfException::EmitExceptionTable() { // FIXME: does this apply to Dwarf also? The above #if 0 implies yes? if (!HaveTTData) { Asm->EmitInt8(dwarf::DW_EH_PE_omit); - Asm->EOL("@TType format (DW_EH_PE_omit)"); + Asm->EOL("@TType format", dwarf::DW_EH_PE_omit); } else { Asm->EmitInt8(dwarf::DW_EH_PE_absptr); - Asm->EOL("@TType format (DW_EH_PE_absptr)"); + Asm->EOL("@TType format", dwarf::DW_EH_PE_absptr); Asm->EmitULEB128Bytes(TypeOffset); Asm->EOL("@TType base offset"); } @@ -672,7 +674,7 @@ void DwarfException::EmitExceptionTable() { // SjLj Exception handilng if (MAI->getExceptionHandlingType() == ExceptionHandling::SjLj) { Asm->EmitInt8(dwarf::DW_EH_PE_udata4); - Asm->EOL("Call site format (DW_EH_PE_udata4)"); + Asm->EOL("Call site format", dwarf::DW_EH_PE_udata4); Asm->EmitULEB128Bytes(SizeSites); Asm->EOL("Call site table length"); @@ -725,7 +727,7 @@ void DwarfException::EmitExceptionTable() { // Emit the landing pad call site table. Asm->EmitInt8(dwarf::DW_EH_PE_udata4); - Asm->EOL("Call site format (DW_EH_PE_udata4)"); + Asm->EOL("Call site format", dwarf::DW_EH_PE_udata4); Asm->EmitULEB128Bytes(SizeSites); Asm->EOL("Call site table size");