diff options
author | Chris Lattner <sabre@nondot.org> | 2010-01-22 22:38:16 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-01-22 22:38:16 +0000 |
commit | edf96a4cc3c7968570581361f44b70fc9ec33e09 (patch) | |
tree | 0f88d1bc076ad4e302307ef7042b7f697eefc156 /llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp | |
parent | 1891698a9be648f543bc62d7de88857eb3bed24a (diff) | |
download | bcm5719-llvm-edf96a4cc3c7968570581361f44b70fc9ec33e09.tar.gz bcm5719-llvm-edf96a4cc3c7968570581361f44b70fc9ec33e09.zip |
add a new DwarfPrinter::EmitEncodingByte method which handles
pretty printing encoding comments and eliminates redundancy on
the client side. We now get pretty dwarf like this again:
.byte 255 ## @LPStart Encoding = omit
.byte 0 ## @TType Encoding = absptr
.byte 0x28 ## @TType base offset
.byte 3 ## Call site Encoding = udata4
.byte 0x1a ## Call site table size
...
llvm-svn: 94239
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp index 9f5311401f1..43b1abf05da 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp @@ -185,8 +185,7 @@ void DwarfException::EmitCIE(const Function *PersonalityFn, unsigned Index) { Asm->EmitULEB128Bytes(AugmentationSize); Asm->EOL("Augmentation Size"); - Asm->EmitInt8(PerEncoding); - Asm->EOL("Personality", PerEncoding); + EmitEncodingByte(PerEncoding, "Personality"); // If there is a personality, we need to indicate the function's location. if (PersonalityRef) { @@ -197,11 +196,8 @@ void DwarfException::EmitCIE(const Function *PersonalityFn, unsigned Index) { O << MAI->getData32bitsDirective() << *PersonalityRef; Asm->EOL("Personality"); - Asm->EmitInt8(LSDAEncoding); - Asm->EOL("LSDA Encoding", LSDAEncoding); - - Asm->EmitInt8(FDEEncoding); - Asm->EOL("FDE Encoding", FDEEncoding); + EmitEncodingByte(LSDAEncoding, "LSDA"); + EmitEncodingByte(FDEEncoding, "FDE"); } // Indicate locations of general callee saved registers in frame. @@ -784,11 +780,8 @@ void DwarfException::EmitExceptionTable() { } // Emit the header. - Asm->EmitInt8(dwarf::DW_EH_PE_omit); - Asm->EOL("@LPStart format", dwarf::DW_EH_PE_omit); - - Asm->EmitInt8(TTypeFormat); - Asm->EOL("@TType format", TTypeFormat); + EmitEncodingByte(dwarf::DW_EH_PE_omit, "@LPStart"); + EmitEncodingByte(TTypeFormat, "@TType"); if (HaveTTData) { Asm->EmitULEB128Bytes(TyOffset); @@ -797,8 +790,7 @@ void DwarfException::EmitExceptionTable() { // SjLj Exception handling if (IsSJLJ) { - Asm->EmitInt8(dwarf::DW_EH_PE_udata4); - Asm->EOL("Call site format", dwarf::DW_EH_PE_udata4); + EmitEncodingByte(dwarf::DW_EH_PE_udata4, "Call site"); Asm->EmitULEB128Bytes(SizeSites); Asm->EOL("Call site table length"); @@ -842,8 +834,7 @@ void DwarfException::EmitExceptionTable() { // supposed to throw. // Emit the landing pad call site table. - Asm->EmitInt8(dwarf::DW_EH_PE_udata4); - Asm->EOL("Call site format", dwarf::DW_EH_PE_udata4); + EmitEncodingByte(dwarf::DW_EH_PE_udata4, "Call site"); Asm->EmitULEB128Bytes(SizeSites); Asm->EOL("Call site table size"); |