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/object_test.cc b/src/object_test.cc
index 9ad0534..e0443d0 100644
--- a/src/object_test.cc
+++ b/src/object_test.cc
@@ -238,15 +238,15 @@
 
   Field* field = FindFieldFromCode(field_idx, clinit, Thread::Current(), StaticObjectRead,
                                    sizeof(Object*));
-  Object* s0 = field->GetObj(NULL);
+  Object* s0 = field->GetObj(klass);
   EXPECT_EQ(NULL, s0);
 
   SirtRef<CharArray> char_array(soa.Self(), CharArray::Alloc(soa.Self(), 0));
-  field->SetObj(NULL, char_array.get());
-  EXPECT_EQ(char_array.get(), field->GetObj(NULL));
+  field->SetObj(field->GetDeclaringClass(), char_array.get());
+  EXPECT_EQ(char_array.get(), field->GetObj(klass));
 
-  field->SetObj(NULL, NULL);
-  EXPECT_EQ(NULL, field->GetObj(NULL));
+  field->SetObj(field->GetDeclaringClass(), NULL);
+  EXPECT_EQ(NULL, field->GetObj(klass));
 
   // TODO: more exhaustive tests of all 6 cases of Field::*FromCode
 }