Improve interpreter performance.
Bug: 8196227
This CL removes the use of DecodedInstruction to read instruction opcode and
operands. It now directly access to each operand according to instruction
format (like VRegA_11x for accessing register vA with format 11x).
It also caches some information used for instrumentation like 'this' object
and current method and add missing check about pending exception.
Change-Id: I8c03c0aea9d75068b89e3cb2c8c12383d7928281
diff --git a/src/runtime_support.cc b/src/runtime_support.cc
index d9b369b..b096431 100644
--- a/src/runtime_support.cc
+++ b/src/runtime_support.cc
@@ -163,7 +163,7 @@
DCHECK(self->IsExceptionPending()); // Throw exception and unwind.
return NULL; // Failure.
} else {
- if (resolved_field->IsStatic() != is_static) {
+ if (UNLIKELY(resolved_field->IsStatic() != is_static)) {
ThrowIncompatibleClassChangeErrorField(resolved_field, is_static, referrer);
return NULL;
}