summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2010-02-09 22:49:16 +0000
committerBill Wendling <isanbard@gmail.com>2010-02-09 22:49:16 +0000
commitbf02536262e484f3c44f7db8d7c584f4588ccaa2 (patch)
tree9fe48c7f7d39964fcf53ff8c38f31177ef12ff49 /llvm/lib/CodeGen/AsmPrinter
parente4c83e4e2e097aacc29025f25a48b7d972612398 (diff)
downloadbcm5719-llvm-bf02536262e484f3c44f7db8d7c584f4588ccaa2.tar.gz
bcm5719-llvm-bf02536262e484f3c44f7db8d7c584f4588ccaa2.zip
Improve comments in the LSDA somewhat. They can be improved much more.
llvm-svn: 95707
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter')
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp27
1 files changed, 17 insertions, 10 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp
index c762b701767..e0975551986 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp
@@ -34,6 +34,7 @@
#include "llvm/Support/Timer.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringExtras.h"
+#include "llvm/ADT/Twine.h"
using namespace llvm;
DwarfException::DwarfException(raw_ostream &OS, AsmPrinter *A,
@@ -868,13 +869,14 @@ void DwarfException::EmitExceptionTable() {
// Offset of the landing pad, counted in 16-byte bundles relative to the
// @LPStart address.
- if (!S.PadLabel)
+ if (!S.PadLabel) {
+ Asm->OutStreamer.AddComment("Landing pad");
Asm->OutStreamer.EmitIntValue(0, 4/*size*/, 0/*addrspace*/);
- else
+ } else {
EmitSectionOffset("label", "eh_func_begin", S.PadLabel, SubprogramCount,
true, true);
-
- EOL("Landing pad");
+ EOL("Landing pad");
+ }
// Offset of the first associated action record, relative to the start of
// the action table. This value is biased by 1 (1 indicates the start of
@@ -884,35 +886,40 @@ void DwarfException::EmitExceptionTable() {
}
// Emit the Action Table.
+ EOL("Action Record Table:");
+ unsigned Iter = 1;
for (SmallVectorImpl<ActionEntry>::const_iterator
I = Actions.begin(), E = Actions.end(); I != E; ++I) {
const ActionEntry &Action = *I;
+ EOL(Twine("Action Record ") + Twine(Iter++));
// Type Filter
//
// Used by the runtime to match the type of the thrown exception to the
// type of the catch clauses or the types in the exception specification.
- EmitSLEB128(Action.ValueForTypeID, "TypeInfo index");
+ EmitSLEB128(Action.ValueForTypeID, " TypeInfo index");
// Action Record
//
// Self-relative signed displacement in bytes of the next action record,
// or 0 if there is no next action record.
- EmitSLEB128(Action.NextAction, "Next action");
+ EmitSLEB128(Action.NextAction, " Next action");
}
// Emit the Catch TypeInfos.
+ Iter = TypeInfos.size();
for (std::vector<GlobalVariable *>::const_reverse_iterator
I = TypeInfos.rbegin(), E = TypeInfos.rend(); I != E; ++I) {
const GlobalVariable *GV = *I;
PrintRelDirective();
- if (GV)
+ if (GV) {
O << *Asm->GetGlobalValueSymbol(GV);
- else
+ EOL(Twine("TypeInfo ") + Twine(Iter--));
+ } else {
O << "0x0";
-
- EOL("TypeInfo");
+ EOL("");
+ }
}
// Emit the Exception Specifications.
OpenPOWER on IntegriCloud