Support 64-bit volatiles and reference/pointer volatiles.

Change-Id: I62c0751747767c02d6c57afd0fce3db6c8b02510
diff --git a/src/object.cc b/src/object.cc
index d78eb24..373c8c2 100644
--- a/src/object.cc
+++ b/src/object.cc
@@ -50,8 +50,6 @@
 }
 
 Class* Field::GetType() const {
-  DCHECK(Runtime::Current()->IsStarted())
-      << "Can't call GetType without an initialized runtime";
   // Do full linkage (which sets dex cache value to speed next call)
   return Runtime::Current()->GetClassLinker()->ResolveType(GetTypeIdx(), this);
 }
@@ -474,7 +472,7 @@
     // Set the low-order bit so a BLX will switch to Thumb mode
     address |= 0x1;
   }
-  SetFieldPtr<uintptr_t>(OFFSET_OF_OBJECT_MEMBER(Method, code_), address, false);
+  SetFieldPtr<const void*>(OFFSET_OF_OBJECT_MEMBER(Method, code_), reinterpret_cast<const void*>(address), false);
 }
 
 void Method::SetInvokeStub(const ByteArray* invoke_stub_array) {