summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2011-03-05 18:43:15 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2011-03-05 18:43:15 +0000
commita7ec2dcefd954599db514fccaa2a3c21c110233b (patch)
tree2282e14fff7c9e8b0afd3c84abf2ec37777b9ff5 /llvm/lib/MC
parent65cff414b660ea88a2e07f68f5b749538365d2f9 (diff)
downloadbcm5719-llvm-a7ec2dcefd954599db514fccaa2a3c21c110233b.tar.gz
bcm5719-llvm-a7ec2dcefd954599db514fccaa2a3c21c110233b.zip
Some first rudimentary support for ARM EHABI: print exception table in "text mode".
llvm-svn: 127099
Diffstat (limited to 'llvm/lib/MC')
-rw-r--r--llvm/lib/MC/MCAsmStreamer.cpp31
-rw-r--r--llvm/lib/MC/MCStreamer.cpp25
2 files changed, 56 insertions, 0 deletions
diff --git a/llvm/lib/MC/MCAsmStreamer.cpp b/llvm/lib/MC/MCAsmStreamer.cpp
index 8d0698216f6..a4ffd8a84ef 100644
--- a/llvm/lib/MC/MCAsmStreamer.cpp
+++ b/llvm/lib/MC/MCAsmStreamer.cpp
@@ -192,6 +192,12 @@ public:
virtual bool EmitCFIPersonality(const MCSymbol *Sym, unsigned Encoding);
virtual bool EmitCFILsda(const MCSymbol *Sym, unsigned Encoding);
+ virtual void EmitFnStart();
+ virtual void EmitFnEnd();
+ virtual void EmitCantUnwind();
+ virtual void EmitPersonality(const MCSymbol *Personality);
+ virtual void EmitHandlerData();
+
virtual void EmitInstruction(const MCInst &Inst);
/// EmitRawText - If this file is backed by an assembly streamer, this dumps
@@ -859,6 +865,31 @@ void MCAsmStreamer::AddEncodingComment(const MCInst &Inst) {
}
}
+void MCAsmStreamer::EmitFnStart() {
+ OS << "\t.fnstart";
+ EmitEOL();
+}
+
+void MCAsmStreamer::EmitFnEnd() {
+ OS << "\t.fnend";
+ EmitEOL();
+}
+
+void MCAsmStreamer::EmitCantUnwind() {
+ OS << "\t.cantunwind";
+ EmitEOL();
+}
+
+void MCAsmStreamer::EmitHandlerData() {
+ OS << "\t.handlerdata";
+ EmitEOL();
+}
+
+void MCAsmStreamer::EmitPersonality(const MCSymbol *Personality) {
+ OS << "\t.personality " << Personality->getName();
+ EmitEOL();
+}
+
void MCAsmStreamer::EmitInstruction(const MCInst &Inst) {
assert(getCurrentSection() && "Cannot emit contents before setting section!");
diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp
index 4b302c8602c..fa1e980b7c7 100644
--- a/llvm/lib/MC/MCStreamer.cpp
+++ b/llvm/lib/MC/MCStreamer.cpp
@@ -259,6 +259,31 @@ bool MCStreamer::EmitCFIRestoreState() {
return false;
}
+void MCStreamer::EmitFnStart() {
+ errs() << "Not implemented yet\n";
+ abort();
+}
+
+void MCStreamer::EmitFnEnd() {
+ errs() << "Not implemented yet\n";
+ abort();
+}
+
+void MCStreamer::EmitCantUnwind() {
+ errs() << "Not implemented yet\n";
+ abort();
+}
+
+void MCStreamer::EmitHandlerData() {
+ errs() << "Not implemented yet\n";
+ abort();
+}
+
+void MCStreamer::EmitPersonality(const MCSymbol *Personality) {
+ errs() << "Not implemented yet\n";
+ abort();
+}
+
/// EmitRawText - If this file is backed by an assembly streamer, this dumps
/// the specified string in the output .s file. This capability is
/// indicated by the hasRawTextSupport() predicate.
OpenPOWER on IntegriCloud