Fix run-test 030.

Change-Id: I87a819162d9705136c1dcad6424058ffbf033922
diff --git a/src/compiler/codegen/MethodBitcode.cc b/src/compiler/codegen/MethodBitcode.cc
index 5aebc06..9427dcc 100644
--- a/src/compiler/codegen/MethodBitcode.cc
+++ b/src/compiler/codegen/MethodBitcode.cc
@@ -539,7 +539,9 @@
       break;
     }
   }
-  DCHECK_NE(index, -1) << "Corrupt shadowMap";
+  if (index == -1) {
+    return;
+  }
   greenland::IntrinsicHelper::IntrinsicId id =
       greenland::IntrinsicHelper::SetShadowFrameEntry;
   llvm::Function* func = cUnit->intrinsic_helper->GetIntrinsicFunction(id);
@@ -922,6 +924,9 @@
     case Instruction::CONST:
     case Instruction::CONST_4:
     case Instruction::CONST_16: {
+        if (vB == 0) {
+          objectDefinition = true;
+        }
         llvm::Constant* immValue = cUnit->irb->GetJInt(vB);
         llvm::Value* res = emitConst(cUnit, immValue, rlDest);
         defineValue(cUnit, res, rlDest.origSReg);
diff --git a/src/compiler_llvm/gbc_expander.cc b/src/compiler_llvm/gbc_expander.cc
index 3dcd793..471a125 100644
--- a/src/compiler_llvm/gbc_expander.cc
+++ b/src/compiler_llvm/gbc_expander.cc
@@ -1158,6 +1158,11 @@
   };
 
   llvm::Value* entry_addr = irb_.CreateGEP(shadow_frame_, gep_index);
+#if defined(ART_USE_QUICK_COMPILER)
+  if (obj->getType() != irb_.getJObjectTy()) {
+    obj = irb_.getJNull();
+  }
+#endif
   irb_.CreateStore(obj, entry_addr, kTBAAShadowFrame);
   return;
 }