Index: src/IceInstARM32.cpp |
diff --git a/src/IceInstARM32.cpp b/src/IceInstARM32.cpp |
index 920a93368e2b603642bff1492cac80f69e916012..b1d052cfa3c2e62cfc63b71bd5f1a92d6615caac 100644 |
--- a/src/IceInstARM32.cpp |
+++ b/src/IceInstARM32.cpp |
@@ -1221,6 +1221,12 @@ template <> void InstARM32Tst::emitIAS(const Cfg *Func) const { |
emitUsingTextFixup(Func); |
} |
+InstARM32Dmb::InstARM32Dmb(Cfg *Func) |
+ : InstARM32Pred(Func, InstARM32::Dmb, 0, nullptr, CondARM32::AL) {} |
+ |
+InstARM32Nop::InstARM32Nop(Cfg *Func) |
+ : InstARM32Pred(Func, InstARM32::Nop, 0, nullptr, CondARM32::AL) {} |
+ |
InstARM32Vcmp::InstARM32Vcmp(Cfg *Func, Variable *Src0, Operand *Src1, |
CondARM32::Cond Predicate) |
: InstARM32Pred(Func, InstARM32::Vcmp, 2, nullptr, Predicate) { |
@@ -1240,9 +1246,6 @@ InstARM32Vabs::InstARM32Vabs(Cfg *Func, Variable *Dest, Variable *Src, |
addSource(Src); |
} |
-InstARM32Dmb::InstARM32Dmb(Cfg *Func) |
- : InstARM32Pred(Func, InstARM32::Dmb, 0, nullptr, CondARM32::AL) {} |
- |
// ======================== Dump routines ======================== // |
// Two-addr ops |
@@ -2447,6 +2450,26 @@ void InstARM32Dmb::dump(const Cfg *Func) const { |
"sy"; |
} |
+void InstARM32Nop::emit(const Cfg *Func) const { |
+ if (!BuildDefs::dump()) |
+ return; |
+ assert(getSrcSize() == 0); |
+ Func->getContext()->getStrEmit() << "\t" |
+ << "nop"; |
+} |
+ |
+void InstARM32Nop::emitIAS(const Cfg *Func) const { |
+ assert(getSrcSize() == 0); |
+ Func->getAssembler<ARM32::AssemblerARM32>()->nop(); |
+} |
+ |
+void InstARM32Nop::dump(const Cfg *Func) const { |
+ if (!BuildDefs::dump()) |
+ return; |
+ assert(getSrcSize() == 0); |
+ Func->getContext()->getStrDump() << "nop"; |
+} |
+ |
void OperandARM32Mem::emit(const Cfg *Func) const { |
if (!BuildDefs::dump()) |
return; |