Interpreter.
The opcodes filled-new-array and packed-switch aren't implemented but
are trivial given that they are variants of implemented opcodes.
Refactor Field::Get routines to take the declaring class in the case of
static field accesses. This avoids a check on every use of a field.
Refactor arg array builder to be shared by JNI invokes and invocations
into the interpreter.
Fix benign bug in const decoding in the verifier.
Change-Id: I8dee6c1f4b7f033e6c003422c56e9471cfaccda8
diff --git a/src/dex_instruction.h b/src/dex_instruction.h
index 90dca69..486bbf5 100644
--- a/src/dex_instruction.h
+++ b/src/dex_instruction.h
@@ -253,6 +253,11 @@
kVerifySwitchTargets | kVerifyVarArg | kVerifyVarArgRange | kVerifyError));
}
+ // Get the dex PC of this instruction as a offset in code units from the beginning of insns.
+ uint32_t GetDexPc(const uint16_t* insns) const {
+ return (reinterpret_cast<const uint16_t*>(this) - insns);
+ }
+
// Dump decoded version of instruction
std::string DumpString(const DexFile*) const;