Implement no-op instruction.
Change-Id: Id2380969f484699bf5962ce481b4a8d368ee8aa8
diff --git a/src/compiler_llvm/method_compiler.cc b/src/compiler_llvm/method_compiler.cc
index b2dc1f2..2b0fe19 100644
--- a/src/compiler_llvm/method_compiler.cc
+++ b/src/compiler_llvm/method_compiler.cc
@@ -1066,8 +1066,16 @@
void MethodCompiler::EmitInsn_Nop(uint32_t dex_pc,
Instruction const* insn) {
- // UNIMPLEMENTED(WARNING);
- irb_.CreateUnreachable();
+
+ uint16_t insn_signature = code_item_->insns_[dex_pc];
+
+ if (insn_signature == Instruction::kPackedSwitchSignature ||
+ insn_signature == Instruction::kSparseSwitchSignature ||
+ insn_signature == Instruction::kArrayDataSignature) {
+ irb_.CreateUnreachable();
+ } else{
+ irb_.CreateBr(GetNextBasicBlock(dex_pc));
+ }
}