summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-01-22 22:38:16 +0000
committerChris Lattner <sabre@nondot.org>2010-01-22 22:38:16 +0000
commitedf96a4cc3c7968570581361f44b70fc9ec33e09 (patch)
tree0f88d1bc076ad4e302307ef7042b7f697eefc156 /llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp
parent1891698a9be648f543bc62d7de88857eb3bed24a (diff)
downloadbcm5719-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.cpp23
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");
OpenPOWER on IntegriCloud