Revert "Fix some issues for deoptimizing runtime methods."
Reason for revert:
Some tests still failing, reverting the original CL.
This reverts commit 57b4e13d9528a3ebac05db280be1df92a261cf79.
Change-Id: I49d9da676be7a1994b39ea9046c8d62695ff8422
diff --git a/runtime/interpreter/interpreter.cc b/runtime/interpreter/interpreter.cc
index 25d4dd6..943562c 100644
--- a/runtime/interpreter/interpreter.cc
+++ b/runtime/interpreter/interpreter.cc
@@ -562,7 +562,8 @@
new_dex_pc = dex_pc + instr->SizeInCodeUnits();
} else if (instr->Opcode() == Instruction::NEW_INSTANCE) {
DCHECK(deopt_method_type == DeoptimizationMethodType::kDefault);
- if (!first && value.GetL()->IsString()) {
+ if (value.GetL()->IsString()) {
+ DCHECK(!first);
// It's possible to deoptimize at a NEW_INSTANCE dex instruction that's for a
// java string, which is turned into a call into StringFactory.newEmptyString();
// Move the StringFactory.newEmptyString() result into the destination register.
@@ -591,8 +592,7 @@
// an invoke, so that we don't have to decode the dex instruction to move
// result into the right vreg. All slow paths have been audited to be
// idempotent except monitor-enter/exit and invocation stubs.
- // TODO: move result and advance dex pc. That also requires that we can
- // tell the return type of a runtime method, which we don't do currently.
+ // TODO: move result and advance dex pc.
new_dex_pc = dex_pc;
}
} else {
diff --git a/test/knownfailures.json b/test/knownfailures.json
index 4166454..20cfc34 100644
--- a/test/knownfailures.json
+++ b/test/knownfailures.json
@@ -207,8 +207,7 @@
"variant": "trace | stream"
},
{
- "tests": ["597-deopt-runtime-method",
- "604-hot-static-interface",
+ "tests": ["604-hot-static-interface",
"612-jit-dex-cache",
"613-inlining-dex-cache",
"626-set-resolved-string"],