Followup to previous MIPS commit: implement dump(), rebase more.
When compiling with DEBUG, there is a problem linking
InstMIPS32. It overrides dump, but never defined that.
Also, update the code for some recent changes. Namely, we
no longer check ALLOW_DUMP but instead check
BuildDefs::dump(). Also, the instruction dtors have been
deleted.
BUG= https://code.google.com/p/nativeclient/issues/detail?id=4167
R=kschimpf@google.com
Review URL: https://codereview.chromium.org/1214863019 .
diff --git a/src/IceInstMIPS32.cpp b/src/IceInstMIPS32.cpp
index af6aaf1..e386806 100644
--- a/src/IceInstMIPS32.cpp
+++ b/src/IceInstMIPS32.cpp
@@ -24,6 +24,10 @@
namespace Ice {
+const char *InstMIPS32::getWidthString(Type Ty) {
+ (void)Ty;
+ return "TBD";
+}
InstMIPS32Ret::InstMIPS32Ret(Cfg *Func, Variable *RA, Variable *Source)
: InstMIPS32(Func, InstMIPS32::Ret, Source ? 2 : 1, nullptr) {
@@ -32,8 +36,18 @@
addSource(Source);
}
+// ======================== Dump routines ======================== //
+
+void InstMIPS32::dump(const Cfg *Func) const {
+ if (!BuildDefs::dump())
+ return;
+ Ostream &Str = Func->getContext()->getStrDump();
+ Str << "[MIPS32] ";
+ Inst::dump(Func);
+}
+
void InstMIPS32Ret::emit(const Cfg *Func) const {
- if (!ALLOW_DUMP)
+ if (!BuildDefs::dump())
return;
assert(getSrcSize() > 0);
Variable *RA = llvm::cast<Variable>(getSrc(0));
@@ -52,7 +66,7 @@
}
void InstMIPS32Ret::dump(const Cfg *Func) const {
- if (!ALLOW_DUMP)
+ if (!BuildDefs::dump())
return;
Ostream &Str = Func->getContext()->getStrDump();
Type Ty = (getSrcSize() == 1 ? IceType_void : getSrc(0)->getType());
diff --git a/src/IceInstMIPS32.h b/src/IceInstMIPS32.h
index d608a1c..e426598 100644
--- a/src/IceInstMIPS32.h
+++ b/src/IceInstMIPS32.h
@@ -42,7 +42,6 @@
protected:
InstMIPS32(Cfg *Func, InstKindMIPS32 Kind, SizeT Maxsrcs, Variable *Dest)
: InstTarget(Func, static_cast<InstKind>(Kind), Maxsrcs, Dest) {}
- ~InstMIPS32() override {}
static bool isClassof(const Inst *Inst, InstKindMIPS32 MyKind) {
return Inst->getKind() == static_cast<InstKind>(MyKind);
}
@@ -74,7 +73,6 @@
private:
InstMIPS32Ret(Cfg *Func, Variable *RA, Variable *Source);
- ~InstMIPS32Ret() override {}
};
} // end of namespace Ice