Set types of quick entry points to void*.

The quick entry points are not intended to be called from C++, so let's
set their types to void* so that any attempt to call them will fail
to compile. Introduce accessors to make it easier to set the fields.

Change-Id: I7fae304100f55e96924c31a983ef0a705302d58d
diff --git a/runtime/arch/arm/entrypoints_init_arm.cc b/runtime/arch/arm/entrypoints_init_arm.cc
index bc985d6..b0b0064 100644
--- a/runtime/arch/arm/entrypoints_init_arm.cc
+++ b/runtime/arch/arm/entrypoints_init_arm.cc
@@ -78,18 +78,18 @@
 extern "C" int64_t __aeabi_ldivmod(int64_t, int64_t);
 
 void UpdateReadBarrierEntrypoints(QuickEntryPoints* qpoints, bool is_active) {
-  qpoints->pReadBarrierMarkReg00 = is_active ? art_quick_read_barrier_mark_reg00 : nullptr;
-  qpoints->pReadBarrierMarkReg01 = is_active ? art_quick_read_barrier_mark_reg01 : nullptr;
-  qpoints->pReadBarrierMarkReg02 = is_active ? art_quick_read_barrier_mark_reg02 : nullptr;
-  qpoints->pReadBarrierMarkReg03 = is_active ? art_quick_read_barrier_mark_reg03 : nullptr;
-  qpoints->pReadBarrierMarkReg04 = is_active ? art_quick_read_barrier_mark_reg04 : nullptr;
-  qpoints->pReadBarrierMarkReg05 = is_active ? art_quick_read_barrier_mark_reg05 : nullptr;
-  qpoints->pReadBarrierMarkReg06 = is_active ? art_quick_read_barrier_mark_reg06 : nullptr;
-  qpoints->pReadBarrierMarkReg07 = is_active ? art_quick_read_barrier_mark_reg07 : nullptr;
-  qpoints->pReadBarrierMarkReg08 = is_active ? art_quick_read_barrier_mark_reg08 : nullptr;
-  qpoints->pReadBarrierMarkReg09 = is_active ? art_quick_read_barrier_mark_reg09 : nullptr;
-  qpoints->pReadBarrierMarkReg10 = is_active ? art_quick_read_barrier_mark_reg10 : nullptr;
-  qpoints->pReadBarrierMarkReg11 = is_active ? art_quick_read_barrier_mark_reg11 : nullptr;
+  qpoints->SetReadBarrierMarkReg00(is_active ? art_quick_read_barrier_mark_reg00 : nullptr);
+  qpoints->SetReadBarrierMarkReg01(is_active ? art_quick_read_barrier_mark_reg01 : nullptr);
+  qpoints->SetReadBarrierMarkReg02(is_active ? art_quick_read_barrier_mark_reg02 : nullptr);
+  qpoints->SetReadBarrierMarkReg03(is_active ? art_quick_read_barrier_mark_reg03 : nullptr);
+  qpoints->SetReadBarrierMarkReg04(is_active ? art_quick_read_barrier_mark_reg04 : nullptr);
+  qpoints->SetReadBarrierMarkReg05(is_active ? art_quick_read_barrier_mark_reg05 : nullptr);
+  qpoints->SetReadBarrierMarkReg06(is_active ? art_quick_read_barrier_mark_reg06 : nullptr);
+  qpoints->SetReadBarrierMarkReg07(is_active ? art_quick_read_barrier_mark_reg07 : nullptr);
+  qpoints->SetReadBarrierMarkReg08(is_active ? art_quick_read_barrier_mark_reg08 : nullptr);
+  qpoints->SetReadBarrierMarkReg09(is_active ? art_quick_read_barrier_mark_reg09 : nullptr);
+  qpoints->SetReadBarrierMarkReg10(is_active ? art_quick_read_barrier_mark_reg10 : nullptr);
+  qpoints->SetReadBarrierMarkReg11(is_active ? art_quick_read_barrier_mark_reg11 : nullptr);
 
   if (kUseReadBarrier && kUseBakerReadBarrier) {
     // For the alignment check, strip the Thumb mode bit.
@@ -120,8 +120,8 @@
     DCHECK_EQ(BAKER_MARK_INTROSPECTION_INTRINSIC_CAS_ENTRYPOINT_OFFSET, intrinsic_cas_diff);
     // The register 12, i.e. IP, is reserved, so there is no art_quick_read_barrier_mark_reg12.
     // We're using the entry to hold a pointer to the introspection entrypoint instead.
-    qpoints->pReadBarrierMarkReg12 =
-        is_active ? art_quick_read_barrier_mark_introspection : nullptr;
+    qpoints->SetReadBarrierMarkReg12(
+        is_active ? art_quick_read_barrier_mark_introspection : nullptr);
   }
 }
 
@@ -131,72 +131,72 @@
   DefaultInitEntryPoints(jpoints, qpoints, monitor_jni_entry_exit);
 
   // Cast
-  qpoints->pInstanceofNonTrivial = artInstanceOfFromCode;
-  qpoints->pCheckInstanceOf = art_quick_check_instance_of;
+  qpoints->SetInstanceofNonTrivial(artInstanceOfFromCode);
+  qpoints->SetCheckInstanceOf(art_quick_check_instance_of);
 
   // Math
-  qpoints->pIdivmod = __aeabi_idivmod;
-  qpoints->pLdiv = __aeabi_ldivmod;
-  qpoints->pLmod = __aeabi_ldivmod;  // result returned in r2:r3
-  qpoints->pLmul = art_quick_mul_long;
-  qpoints->pShlLong = art_quick_shl_long;
-  qpoints->pShrLong = art_quick_shr_long;
-  qpoints->pUshrLong = art_quick_ushr_long;
-  qpoints->pFmod = art_quick_fmod;
-  qpoints->pFmodf = art_quick_fmodf;
-  qpoints->pD2l = art_quick_d2l;
-  qpoints->pF2l = art_quick_f2l;
-  qpoints->pL2f = art_quick_l2f;
+  qpoints->SetIdivmod(__aeabi_idivmod);
+  qpoints->SetLdiv(__aeabi_ldivmod);
+  qpoints->SetLmod(__aeabi_ldivmod);  // result returned in r2:r3
+  qpoints->SetLmul(art_quick_mul_long);
+  qpoints->SetShlLong(art_quick_shl_long);
+  qpoints->SetShrLong(art_quick_shr_long);
+  qpoints->SetUshrLong(art_quick_ushr_long);
+  qpoints->SetFmod(art_quick_fmod);
+  qpoints->SetFmodf(art_quick_fmodf);
+  qpoints->SetD2l(art_quick_d2l);
+  qpoints->SetF2l(art_quick_f2l);
+  qpoints->SetL2f(art_quick_l2f);
 
   // More math.
-  qpoints->pCos = cos;
-  qpoints->pSin = sin;
-  qpoints->pAcos = acos;
-  qpoints->pAsin = asin;
-  qpoints->pAtan = atan;
-  qpoints->pAtan2 = atan2;
-  qpoints->pPow = pow;
-  qpoints->pCbrt = cbrt;
-  qpoints->pCosh = cosh;
-  qpoints->pExp = exp;
-  qpoints->pExpm1 = expm1;
-  qpoints->pHypot = hypot;
-  qpoints->pLog = log;
-  qpoints->pLog10 = log10;
-  qpoints->pNextAfter = nextafter;
-  qpoints->pSinh = sinh;
-  qpoints->pTan = tan;
-  qpoints->pTanh = tanh;
+  qpoints->SetCos(cos);
+  qpoints->SetSin(sin);
+  qpoints->SetAcos(acos);
+  qpoints->SetAsin(asin);
+  qpoints->SetAtan(atan);
+  qpoints->SetAtan2(atan2);
+  qpoints->SetPow(pow);
+  qpoints->SetCbrt(cbrt);
+  qpoints->SetCosh(cosh);
+  qpoints->SetExp(exp);
+  qpoints->SetExpm1(expm1);
+  qpoints->SetHypot(hypot);
+  qpoints->SetLog(log);
+  qpoints->SetLog10(log10);
+  qpoints->SetNextAfter(nextafter);
+  qpoints->SetSinh(sinh);
+  qpoints->SetTan(tan);
+  qpoints->SetTanh(tanh);
 
   // Intrinsics
-  qpoints->pIndexOf = art_quick_indexof;
+  qpoints->SetIndexOf(art_quick_indexof);
   // The ARM StringCompareTo intrinsic does not call the runtime.
-  qpoints->pStringCompareTo = nullptr;
-  qpoints->pMemcpy = memcpy;
+  qpoints->SetStringCompareTo(nullptr);
+  qpoints->SetMemcpy(memcpy);
 
   // Read barrier.
   UpdateReadBarrierEntrypoints(qpoints, /*is_active=*/ false);
-  qpoints->pReadBarrierMarkReg12 = nullptr;  // Cannot use register 12 (IP) to pass arguments.
-  qpoints->pReadBarrierMarkReg13 = nullptr;  // Cannot use register 13 (SP) to pass arguments.
-  qpoints->pReadBarrierMarkReg14 = nullptr;  // Cannot use register 14 (LR) to pass arguments.
-  qpoints->pReadBarrierMarkReg15 = nullptr;  // Cannot use register 15 (PC) to pass arguments.
+  qpoints->SetReadBarrierMarkReg12(nullptr);  // Cannot use register 12 (IP) to pass arguments.
+  qpoints->SetReadBarrierMarkReg13(nullptr);  // Cannot use register 13 (SP) to pass arguments.
+  qpoints->SetReadBarrierMarkReg14(nullptr);  // Cannot use register 14 (LR) to pass arguments.
+  qpoints->SetReadBarrierMarkReg15(nullptr);  // Cannot use register 15 (PC) to pass arguments.
   // ARM has only 16 core registers.
-  qpoints->pReadBarrierMarkReg16 = nullptr;
-  qpoints->pReadBarrierMarkReg17 = nullptr;
-  qpoints->pReadBarrierMarkReg18 = nullptr;
-  qpoints->pReadBarrierMarkReg19 = nullptr;
-  qpoints->pReadBarrierMarkReg20 = nullptr;
-  qpoints->pReadBarrierMarkReg21 = nullptr;
-  qpoints->pReadBarrierMarkReg22 = nullptr;
-  qpoints->pReadBarrierMarkReg23 = nullptr;
-  qpoints->pReadBarrierMarkReg24 = nullptr;
-  qpoints->pReadBarrierMarkReg25 = nullptr;
-  qpoints->pReadBarrierMarkReg26 = nullptr;
-  qpoints->pReadBarrierMarkReg27 = nullptr;
-  qpoints->pReadBarrierMarkReg28 = nullptr;
-  qpoints->pReadBarrierMarkReg29 = nullptr;
-  qpoints->pReadBarrierSlow = artReadBarrierSlow;
-  qpoints->pReadBarrierForRootSlow = artReadBarrierForRootSlow;
+  qpoints->SetReadBarrierMarkReg16(nullptr);
+  qpoints->SetReadBarrierMarkReg17(nullptr);
+  qpoints->SetReadBarrierMarkReg18(nullptr);
+  qpoints->SetReadBarrierMarkReg19(nullptr);
+  qpoints->SetReadBarrierMarkReg20(nullptr);
+  qpoints->SetReadBarrierMarkReg21(nullptr);
+  qpoints->SetReadBarrierMarkReg22(nullptr);
+  qpoints->SetReadBarrierMarkReg23(nullptr);
+  qpoints->SetReadBarrierMarkReg24(nullptr);
+  qpoints->SetReadBarrierMarkReg25(nullptr);
+  qpoints->SetReadBarrierMarkReg26(nullptr);
+  qpoints->SetReadBarrierMarkReg27(nullptr);
+  qpoints->SetReadBarrierMarkReg28(nullptr);
+  qpoints->SetReadBarrierMarkReg29(nullptr);
+  qpoints->SetReadBarrierSlow(artReadBarrierSlow);
+  qpoints->SetReadBarrierForRootSlow(artReadBarrierForRootSlow);
 }
 
 }  // namespace art
diff --git a/runtime/arch/arm64/entrypoints_init_arm64.cc b/runtime/arch/arm64/entrypoints_init_arm64.cc
index 29f6c4e..7db2528 100644
--- a/runtime/arch/arm64/entrypoints_init_arm64.cc
+++ b/runtime/arch/arm64/entrypoints_init_arm64.cc
@@ -86,34 +86,34 @@
   // have less core registers (resp. 16, 8 and 16).
   // TODO: ARM/ARM64 now use introspection entrypoints. Consider
   // reducing the number of entrypoints to those needed by x86-64.
-  qpoints->pReadBarrierMarkReg00 = is_active ? art_quick_read_barrier_mark_reg00 : nullptr;
-  qpoints->pReadBarrierMarkReg01 = is_active ? art_quick_read_barrier_mark_reg01 : nullptr;
-  qpoints->pReadBarrierMarkReg02 = is_active ? art_quick_read_barrier_mark_reg02 : nullptr;
-  qpoints->pReadBarrierMarkReg03 = is_active ? art_quick_read_barrier_mark_reg03 : nullptr;
-  qpoints->pReadBarrierMarkReg04 = is_active ? art_quick_read_barrier_mark_reg04 : nullptr;
-  qpoints->pReadBarrierMarkReg05 = is_active ? art_quick_read_barrier_mark_reg05 : nullptr;
-  qpoints->pReadBarrierMarkReg06 = is_active ? art_quick_read_barrier_mark_reg06 : nullptr;
-  qpoints->pReadBarrierMarkReg07 = is_active ? art_quick_read_barrier_mark_reg07 : nullptr;
-  qpoints->pReadBarrierMarkReg08 = is_active ? art_quick_read_barrier_mark_reg08 : nullptr;
-  qpoints->pReadBarrierMarkReg09 = is_active ? art_quick_read_barrier_mark_reg09 : nullptr;
-  qpoints->pReadBarrierMarkReg10 = is_active ? art_quick_read_barrier_mark_reg10 : nullptr;
-  qpoints->pReadBarrierMarkReg11 = is_active ? art_quick_read_barrier_mark_reg11 : nullptr;
-  qpoints->pReadBarrierMarkReg12 = is_active ? art_quick_read_barrier_mark_reg12 : nullptr;
-  qpoints->pReadBarrierMarkReg13 = is_active ? art_quick_read_barrier_mark_reg13 : nullptr;
-  qpoints->pReadBarrierMarkReg14 = is_active ? art_quick_read_barrier_mark_reg14 : nullptr;
-  qpoints->pReadBarrierMarkReg15 = is_active ? art_quick_read_barrier_mark_reg15 : nullptr;
-  qpoints->pReadBarrierMarkReg17 = is_active ? art_quick_read_barrier_mark_reg17 : nullptr;
-  qpoints->pReadBarrierMarkReg19 = is_active ? art_quick_read_barrier_mark_reg19 : nullptr;
-  qpoints->pReadBarrierMarkReg20 = is_active ? art_quick_read_barrier_mark_reg20 : nullptr;
-  qpoints->pReadBarrierMarkReg21 = is_active ? art_quick_read_barrier_mark_reg21 : nullptr;
-  qpoints->pReadBarrierMarkReg22 = is_active ? art_quick_read_barrier_mark_reg22 : nullptr;
-  qpoints->pReadBarrierMarkReg23 = is_active ? art_quick_read_barrier_mark_reg23 : nullptr;
-  qpoints->pReadBarrierMarkReg24 = is_active ? art_quick_read_barrier_mark_reg24 : nullptr;
-  qpoints->pReadBarrierMarkReg25 = is_active ? art_quick_read_barrier_mark_reg25 : nullptr;
-  qpoints->pReadBarrierMarkReg26 = is_active ? art_quick_read_barrier_mark_reg26 : nullptr;
-  qpoints->pReadBarrierMarkReg27 = is_active ? art_quick_read_barrier_mark_reg27 : nullptr;
-  qpoints->pReadBarrierMarkReg28 = is_active ? art_quick_read_barrier_mark_reg28 : nullptr;
-  qpoints->pReadBarrierMarkReg29 = is_active ? art_quick_read_barrier_mark_reg29 : nullptr;
+  qpoints->SetReadBarrierMarkReg00(is_active ? art_quick_read_barrier_mark_reg00 : nullptr);
+  qpoints->SetReadBarrierMarkReg01(is_active ? art_quick_read_barrier_mark_reg01 : nullptr);
+  qpoints->SetReadBarrierMarkReg02(is_active ? art_quick_read_barrier_mark_reg02 : nullptr);
+  qpoints->SetReadBarrierMarkReg03(is_active ? art_quick_read_barrier_mark_reg03 : nullptr);
+  qpoints->SetReadBarrierMarkReg04(is_active ? art_quick_read_barrier_mark_reg04 : nullptr);
+  qpoints->SetReadBarrierMarkReg05(is_active ? art_quick_read_barrier_mark_reg05 : nullptr);
+  qpoints->SetReadBarrierMarkReg06(is_active ? art_quick_read_barrier_mark_reg06 : nullptr);
+  qpoints->SetReadBarrierMarkReg07(is_active ? art_quick_read_barrier_mark_reg07 : nullptr);
+  qpoints->SetReadBarrierMarkReg08(is_active ? art_quick_read_barrier_mark_reg08 : nullptr);
+  qpoints->SetReadBarrierMarkReg09(is_active ? art_quick_read_barrier_mark_reg09 : nullptr);
+  qpoints->SetReadBarrierMarkReg10(is_active ? art_quick_read_barrier_mark_reg10 : nullptr);
+  qpoints->SetReadBarrierMarkReg11(is_active ? art_quick_read_barrier_mark_reg11 : nullptr);
+  qpoints->SetReadBarrierMarkReg12(is_active ? art_quick_read_barrier_mark_reg12 : nullptr);
+  qpoints->SetReadBarrierMarkReg13(is_active ? art_quick_read_barrier_mark_reg13 : nullptr);
+  qpoints->SetReadBarrierMarkReg14(is_active ? art_quick_read_barrier_mark_reg14 : nullptr);
+  qpoints->SetReadBarrierMarkReg15(is_active ? art_quick_read_barrier_mark_reg15 : nullptr);
+  qpoints->SetReadBarrierMarkReg17(is_active ? art_quick_read_barrier_mark_reg17 : nullptr);
+  qpoints->SetReadBarrierMarkReg19(is_active ? art_quick_read_barrier_mark_reg19 : nullptr);
+  qpoints->SetReadBarrierMarkReg20(is_active ? art_quick_read_barrier_mark_reg20 : nullptr);
+  qpoints->SetReadBarrierMarkReg21(is_active ? art_quick_read_barrier_mark_reg21 : nullptr);
+  qpoints->SetReadBarrierMarkReg22(is_active ? art_quick_read_barrier_mark_reg22 : nullptr);
+  qpoints->SetReadBarrierMarkReg23(is_active ? art_quick_read_barrier_mark_reg23 : nullptr);
+  qpoints->SetReadBarrierMarkReg24(is_active ? art_quick_read_barrier_mark_reg24 : nullptr);
+  qpoints->SetReadBarrierMarkReg25(is_active ? art_quick_read_barrier_mark_reg25 : nullptr);
+  qpoints->SetReadBarrierMarkReg26(is_active ? art_quick_read_barrier_mark_reg26 : nullptr);
+  qpoints->SetReadBarrierMarkReg27(is_active ? art_quick_read_barrier_mark_reg27 : nullptr);
+  qpoints->SetReadBarrierMarkReg28(is_active ? art_quick_read_barrier_mark_reg28 : nullptr);
+  qpoints->SetReadBarrierMarkReg29(is_active ? art_quick_read_barrier_mark_reg29 : nullptr);
 
   // Check that array switch cases are at appropriate offsets from the introspection entrypoint.
   DCHECK_ALIGNED(art_quick_read_barrier_mark_introspection, 512u);
@@ -128,7 +128,7 @@
   DCHECK_EQ(BAKER_MARK_INTROSPECTION_GC_ROOT_ENTRYPOINT_OFFSET, gc_roots_diff);
   // The register 16, i.e. IP0, is reserved, so there is no art_quick_read_barrier_mark_reg16.
   // We're using the entry to hold a pointer to the introspection entrypoint instead.
-  qpoints->pReadBarrierMarkReg16 = is_active ? art_quick_read_barrier_mark_introspection : nullptr;
+  qpoints->SetReadBarrierMarkReg16(is_active ? art_quick_read_barrier_mark_introspection : nullptr);
 }
 
 void InitEntryPoints(JniEntryPoints* jpoints,
@@ -137,62 +137,62 @@
   DefaultInitEntryPoints(jpoints, qpoints, monitor_jni_entry_exit);
 
   // Cast
-  qpoints->pInstanceofNonTrivial = artInstanceOfFromCode;
-  qpoints->pCheckInstanceOf = art_quick_check_instance_of;
+  qpoints->SetInstanceofNonTrivial(artInstanceOfFromCode);
+  qpoints->SetCheckInstanceOf(art_quick_check_instance_of);
 
   // Math
   // TODO null entrypoints not needed for ARM64 - generate inline.
-  qpoints->pCmpgDouble = nullptr;
-  qpoints->pCmpgFloat = nullptr;
-  qpoints->pCmplDouble = nullptr;
-  qpoints->pCmplFloat = nullptr;
-  qpoints->pFmod = fmod;
-  qpoints->pL2d = nullptr;
-  qpoints->pFmodf = fmodf;
-  qpoints->pL2f = nullptr;
-  qpoints->pD2iz = nullptr;
-  qpoints->pF2iz = nullptr;
-  qpoints->pIdivmod = nullptr;
-  qpoints->pD2l = nullptr;
-  qpoints->pF2l = nullptr;
-  qpoints->pLdiv = nullptr;
-  qpoints->pLmod = nullptr;
-  qpoints->pLmul = nullptr;
-  qpoints->pShlLong = nullptr;
-  qpoints->pShrLong = nullptr;
-  qpoints->pUshrLong = nullptr;
+  qpoints->SetCmpgDouble(nullptr);
+  qpoints->SetCmpgFloat(nullptr);
+  qpoints->SetCmplDouble(nullptr);
+  qpoints->SetCmplFloat(nullptr);
+  qpoints->SetFmod(fmod);
+  qpoints->SetL2d(nullptr);
+  qpoints->SetFmodf(fmodf);
+  qpoints->SetL2f(nullptr);
+  qpoints->SetD2iz(nullptr);
+  qpoints->SetF2iz(nullptr);
+  qpoints->SetIdivmod(nullptr);
+  qpoints->SetD2l(nullptr);
+  qpoints->SetF2l(nullptr);
+  qpoints->SetLdiv(nullptr);
+  qpoints->SetLmod(nullptr);
+  qpoints->SetLmul(nullptr);
+  qpoints->SetShlLong(nullptr);
+  qpoints->SetShrLong(nullptr);
+  qpoints->SetUshrLong(nullptr);
 
   // More math.
-  qpoints->pCos = cos;
-  qpoints->pSin = sin;
-  qpoints->pAcos = acos;
-  qpoints->pAsin = asin;
-  qpoints->pAtan = atan;
-  qpoints->pAtan2 = atan2;
-  qpoints->pPow = pow;
-  qpoints->pCbrt = cbrt;
-  qpoints->pCosh = cosh;
-  qpoints->pExp = exp;
-  qpoints->pExpm1 = expm1;
-  qpoints->pHypot = hypot;
-  qpoints->pLog = log;
-  qpoints->pLog10 = log10;
-  qpoints->pNextAfter = nextafter;
-  qpoints->pSinh = sinh;
-  qpoints->pTan = tan;
-  qpoints->pTanh = tanh;
+  qpoints->SetCos(cos);
+  qpoints->SetSin(sin);
+  qpoints->SetAcos(acos);
+  qpoints->SetAsin(asin);
+  qpoints->SetAtan(atan);
+  qpoints->SetAtan2(atan2);
+  qpoints->SetPow(pow);
+  qpoints->SetCbrt(cbrt);
+  qpoints->SetCosh(cosh);
+  qpoints->SetExp(exp);
+  qpoints->SetExpm1(expm1);
+  qpoints->SetHypot(hypot);
+  qpoints->SetLog(log);
+  qpoints->SetLog10(log10);
+  qpoints->SetNextAfter(nextafter);
+  qpoints->SetSinh(sinh);
+  qpoints->SetTan(tan);
+  qpoints->SetTanh(tanh);
 
   // Intrinsics
-  qpoints->pIndexOf = art_quick_indexof;
+  qpoints->SetIndexOf(art_quick_indexof);
   // The ARM64 StringCompareTo intrinsic does not call the runtime.
-  qpoints->pStringCompareTo = nullptr;
-  qpoints->pMemcpy = memcpy;
+  qpoints->SetStringCompareTo(nullptr);
+  qpoints->SetMemcpy(memcpy);
 
   // Read barrier.
-  qpoints->pReadBarrierMarkReg16 = nullptr;  // IP0 is used as a temp by the asm stub.
+  qpoints->SetReadBarrierMarkReg16(nullptr);  // IP0 is used as a temp by the asm stub.
   UpdateReadBarrierEntrypoints(qpoints, /*is_active=*/ false);
-  qpoints->pReadBarrierSlow = artReadBarrierSlow;
-  qpoints->pReadBarrierForRootSlow = artReadBarrierForRootSlow;
+  qpoints->SetReadBarrierSlow(artReadBarrierSlow);
+  qpoints->SetReadBarrierForRootSlow(artReadBarrierForRootSlow);
 }
 
 }  // namespace art
diff --git a/runtime/arch/x86/entrypoints_init_x86.cc b/runtime/arch/x86/entrypoints_init_x86.cc
index 27c14c6..01853cc 100644
--- a/runtime/arch/x86/entrypoints_init_x86.cc
+++ b/runtime/arch/x86/entrypoints_init_x86.cc
@@ -45,13 +45,13 @@
 extern "C" mirror::Object* art_quick_read_barrier_for_root_slow(GcRoot<mirror::Object>*);
 
 void UpdateReadBarrierEntrypoints(QuickEntryPoints* qpoints, bool is_active) {
-  qpoints->pReadBarrierMarkReg00 = is_active ? art_quick_read_barrier_mark_reg00 : nullptr;
-  qpoints->pReadBarrierMarkReg01 = is_active ? art_quick_read_barrier_mark_reg01 : nullptr;
-  qpoints->pReadBarrierMarkReg02 = is_active ? art_quick_read_barrier_mark_reg02 : nullptr;
-  qpoints->pReadBarrierMarkReg03 = is_active ? art_quick_read_barrier_mark_reg03 : nullptr;
-  qpoints->pReadBarrierMarkReg05 = is_active ? art_quick_read_barrier_mark_reg05 : nullptr;
-  qpoints->pReadBarrierMarkReg06 = is_active ? art_quick_read_barrier_mark_reg06 : nullptr;
-  qpoints->pReadBarrierMarkReg07 = is_active ? art_quick_read_barrier_mark_reg07 : nullptr;
+  qpoints->SetReadBarrierMarkReg00(is_active ? art_quick_read_barrier_mark_reg00 : nullptr);
+  qpoints->SetReadBarrierMarkReg01(is_active ? art_quick_read_barrier_mark_reg01 : nullptr);
+  qpoints->SetReadBarrierMarkReg02(is_active ? art_quick_read_barrier_mark_reg02 : nullptr);
+  qpoints->SetReadBarrierMarkReg03(is_active ? art_quick_read_barrier_mark_reg03 : nullptr);
+  qpoints->SetReadBarrierMarkReg05(is_active ? art_quick_read_barrier_mark_reg05 : nullptr);
+  qpoints->SetReadBarrierMarkReg06(is_active ? art_quick_read_barrier_mark_reg06 : nullptr);
+  qpoints->SetReadBarrierMarkReg07(is_active ? art_quick_read_barrier_mark_reg07 : nullptr);
 }
 
 void InitEntryPoints(JniEntryPoints* jpoints,
@@ -60,72 +60,72 @@
   DefaultInitEntryPoints(jpoints, qpoints, monitor_jni_entry_exit);
 
   // Cast
-  qpoints->pInstanceofNonTrivial = art_quick_instance_of;
-  qpoints->pCheckInstanceOf = art_quick_check_instance_of;
+  qpoints->SetInstanceofNonTrivial(art_quick_instance_of);
+  qpoints->SetCheckInstanceOf(art_quick_check_instance_of);
 
   // More math.
-  qpoints->pCos = cos;
-  qpoints->pSin = sin;
-  qpoints->pAcos = acos;
-  qpoints->pAsin = asin;
-  qpoints->pAtan = atan;
-  qpoints->pAtan2 = atan2;
-  qpoints->pPow = pow;
-  qpoints->pCbrt = cbrt;
-  qpoints->pCosh = cosh;
-  qpoints->pExp = exp;
-  qpoints->pExpm1 = expm1;
-  qpoints->pHypot = hypot;
-  qpoints->pLog = log;
-  qpoints->pLog10 = log10;
-  qpoints->pNextAfter = nextafter;
-  qpoints->pSinh = sinh;
-  qpoints->pTan = tan;
-  qpoints->pTanh = tanh;
+  qpoints->SetCos(cos);
+  qpoints->SetSin(sin);
+  qpoints->SetAcos(acos);
+  qpoints->SetAsin(asin);
+  qpoints->SetAtan(atan);
+  qpoints->SetAtan2(atan2);
+  qpoints->SetPow(pow);
+  qpoints->SetCbrt(cbrt);
+  qpoints->SetCosh(cosh);
+  qpoints->SetExp(exp);
+  qpoints->SetExpm1(expm1);
+  qpoints->SetHypot(hypot);
+  qpoints->SetLog(log);
+  qpoints->SetLog10(log10);
+  qpoints->SetNextAfter(nextafter);
+  qpoints->SetSinh(sinh);
+  qpoints->SetTan(tan);
+  qpoints->SetTanh(tanh);
 
   // Math
-  qpoints->pD2l = art_quick_d2l;
-  qpoints->pF2l = art_quick_f2l;
-  qpoints->pLdiv = art_quick_ldiv;
-  qpoints->pLmod = art_quick_lmod;
-  qpoints->pLmul = art_quick_lmul;
-  qpoints->pShlLong = art_quick_lshl;
-  qpoints->pShrLong = art_quick_lshr;
-  qpoints->pUshrLong = art_quick_lushr;
+  qpoints->SetD2l(art_quick_d2l);
+  qpoints->SetF2l(art_quick_f2l);
+  qpoints->SetLdiv(art_quick_ldiv);
+  qpoints->SetLmod(art_quick_lmod);
+  qpoints->SetLmul(art_quick_lmul);
+  qpoints->SetShlLong(art_quick_lshl);
+  qpoints->SetShrLong(art_quick_lshr);
+  qpoints->SetUshrLong(art_quick_lushr);
 
   // Intrinsics
   // qpoints->pIndexOf = nullptr;  // Not needed on x86
-  qpoints->pStringCompareTo = art_quick_string_compareto;
-  qpoints->pMemcpy = art_quick_memcpy;
+  qpoints->SetStringCompareTo(art_quick_string_compareto);
+  qpoints->SetMemcpy(art_quick_memcpy);
 
   // Read barrier.
   UpdateReadBarrierEntrypoints(qpoints, /*is_active=*/ false);
-  qpoints->pReadBarrierMarkReg04 = nullptr;  // Cannot use register 4 (ESP) to pass arguments.
+  qpoints->SetReadBarrierMarkReg04(nullptr);  // Cannot use register 4 (ESP) to pass arguments.
   // x86 has only 8 core registers.
-  qpoints->pReadBarrierMarkReg08 = nullptr;
-  qpoints->pReadBarrierMarkReg09 = nullptr;
-  qpoints->pReadBarrierMarkReg10 = nullptr;
-  qpoints->pReadBarrierMarkReg11 = nullptr;
-  qpoints->pReadBarrierMarkReg12 = nullptr;
-  qpoints->pReadBarrierMarkReg13 = nullptr;
-  qpoints->pReadBarrierMarkReg14 = nullptr;
-  qpoints->pReadBarrierMarkReg15 = nullptr;
-  qpoints->pReadBarrierMarkReg16 = nullptr;
-  qpoints->pReadBarrierMarkReg17 = nullptr;
-  qpoints->pReadBarrierMarkReg18 = nullptr;
-  qpoints->pReadBarrierMarkReg19 = nullptr;
-  qpoints->pReadBarrierMarkReg20 = nullptr;
-  qpoints->pReadBarrierMarkReg21 = nullptr;
-  qpoints->pReadBarrierMarkReg22 = nullptr;
-  qpoints->pReadBarrierMarkReg23 = nullptr;
-  qpoints->pReadBarrierMarkReg24 = nullptr;
-  qpoints->pReadBarrierMarkReg25 = nullptr;
-  qpoints->pReadBarrierMarkReg26 = nullptr;
-  qpoints->pReadBarrierMarkReg27 = nullptr;
-  qpoints->pReadBarrierMarkReg28 = nullptr;
-  qpoints->pReadBarrierMarkReg29 = nullptr;
-  qpoints->pReadBarrierSlow = art_quick_read_barrier_slow;
-  qpoints->pReadBarrierForRootSlow = art_quick_read_barrier_for_root_slow;
+  qpoints->SetReadBarrierMarkReg08(nullptr);
+  qpoints->SetReadBarrierMarkReg09(nullptr);
+  qpoints->SetReadBarrierMarkReg10(nullptr);
+  qpoints->SetReadBarrierMarkReg11(nullptr);
+  qpoints->SetReadBarrierMarkReg12(nullptr);
+  qpoints->SetReadBarrierMarkReg13(nullptr);
+  qpoints->SetReadBarrierMarkReg14(nullptr);
+  qpoints->SetReadBarrierMarkReg15(nullptr);
+  qpoints->SetReadBarrierMarkReg16(nullptr);
+  qpoints->SetReadBarrierMarkReg17(nullptr);
+  qpoints->SetReadBarrierMarkReg18(nullptr);
+  qpoints->SetReadBarrierMarkReg19(nullptr);
+  qpoints->SetReadBarrierMarkReg20(nullptr);
+  qpoints->SetReadBarrierMarkReg21(nullptr);
+  qpoints->SetReadBarrierMarkReg22(nullptr);
+  qpoints->SetReadBarrierMarkReg23(nullptr);
+  qpoints->SetReadBarrierMarkReg24(nullptr);
+  qpoints->SetReadBarrierMarkReg25(nullptr);
+  qpoints->SetReadBarrierMarkReg26(nullptr);
+  qpoints->SetReadBarrierMarkReg27(nullptr);
+  qpoints->SetReadBarrierMarkReg28(nullptr);
+  qpoints->SetReadBarrierMarkReg29(nullptr);
+  qpoints->SetReadBarrierSlow(art_quick_read_barrier_slow);
+  qpoints->SetReadBarrierForRootSlow(art_quick_read_barrier_for_root_slow);
 }
 
 }  // namespace art
diff --git a/runtime/arch/x86_64/entrypoints_init_x86_64.cc b/runtime/arch/x86_64/entrypoints_init_x86_64.cc
index 1359822..bf98979 100644
--- a/runtime/arch/x86_64/entrypoints_init_x86_64.cc
+++ b/runtime/arch/x86_64/entrypoints_init_x86_64.cc
@@ -56,21 +56,21 @@
 extern "C" mirror::Object* art_quick_read_barrier_for_root_slow(GcRoot<mirror::Object>*);
 
 void UpdateReadBarrierEntrypoints(QuickEntryPoints* qpoints, bool is_active) {
-  qpoints->pReadBarrierMarkReg00 = is_active ? art_quick_read_barrier_mark_reg00 : nullptr;
-  qpoints->pReadBarrierMarkReg01 = is_active ? art_quick_read_barrier_mark_reg01 : nullptr;
-  qpoints->pReadBarrierMarkReg02 = is_active ? art_quick_read_barrier_mark_reg02 : nullptr;
-  qpoints->pReadBarrierMarkReg03 = is_active ? art_quick_read_barrier_mark_reg03 : nullptr;
-  qpoints->pReadBarrierMarkReg05 = is_active ? art_quick_read_barrier_mark_reg05 : nullptr;
-  qpoints->pReadBarrierMarkReg06 = is_active ? art_quick_read_barrier_mark_reg06 : nullptr;
-  qpoints->pReadBarrierMarkReg07 = is_active ? art_quick_read_barrier_mark_reg07 : nullptr;
-  qpoints->pReadBarrierMarkReg08 = is_active ? art_quick_read_barrier_mark_reg08 : nullptr;
-  qpoints->pReadBarrierMarkReg09 = is_active ? art_quick_read_barrier_mark_reg09 : nullptr;
-  qpoints->pReadBarrierMarkReg10 = is_active ? art_quick_read_barrier_mark_reg10 : nullptr;
-  qpoints->pReadBarrierMarkReg11 = is_active ? art_quick_read_barrier_mark_reg11 : nullptr;
-  qpoints->pReadBarrierMarkReg12 = is_active ? art_quick_read_barrier_mark_reg12 : nullptr;
-  qpoints->pReadBarrierMarkReg13 = is_active ? art_quick_read_barrier_mark_reg13 : nullptr;
-  qpoints->pReadBarrierMarkReg14 = is_active ? art_quick_read_barrier_mark_reg14 : nullptr;
-  qpoints->pReadBarrierMarkReg15 = is_active ? art_quick_read_barrier_mark_reg15 : nullptr;
+  qpoints->SetReadBarrierMarkReg00(is_active ? art_quick_read_barrier_mark_reg00 : nullptr);
+  qpoints->SetReadBarrierMarkReg01(is_active ? art_quick_read_barrier_mark_reg01 : nullptr);
+  qpoints->SetReadBarrierMarkReg02(is_active ? art_quick_read_barrier_mark_reg02 : nullptr);
+  qpoints->SetReadBarrierMarkReg03(is_active ? art_quick_read_barrier_mark_reg03 : nullptr);
+  qpoints->SetReadBarrierMarkReg05(is_active ? art_quick_read_barrier_mark_reg05 : nullptr);
+  qpoints->SetReadBarrierMarkReg06(is_active ? art_quick_read_barrier_mark_reg06 : nullptr);
+  qpoints->SetReadBarrierMarkReg07(is_active ? art_quick_read_barrier_mark_reg07 : nullptr);
+  qpoints->SetReadBarrierMarkReg08(is_active ? art_quick_read_barrier_mark_reg08 : nullptr);
+  qpoints->SetReadBarrierMarkReg09(is_active ? art_quick_read_barrier_mark_reg09 : nullptr);
+  qpoints->SetReadBarrierMarkReg10(is_active ? art_quick_read_barrier_mark_reg10 : nullptr);
+  qpoints->SetReadBarrierMarkReg11(is_active ? art_quick_read_barrier_mark_reg11 : nullptr);
+  qpoints->SetReadBarrierMarkReg12(is_active ? art_quick_read_barrier_mark_reg12 : nullptr);
+  qpoints->SetReadBarrierMarkReg13(is_active ? art_quick_read_barrier_mark_reg13 : nullptr);
+  qpoints->SetReadBarrierMarkReg14(is_active ? art_quick_read_barrier_mark_reg14 : nullptr);
+  qpoints->SetReadBarrierMarkReg15(is_active ? art_quick_read_barrier_mark_reg15 : nullptr);
 }
 
 void InitEntryPoints(JniEntryPoints* jpoints,
@@ -83,63 +83,63 @@
   DefaultInitEntryPoints(jpoints, qpoints, monitor_jni_entry_exit);
 
   // Cast
-  qpoints->pInstanceofNonTrivial = art_quick_instance_of;
-  qpoints->pCheckInstanceOf = art_quick_check_instance_of;
+  qpoints->SetInstanceofNonTrivial(art_quick_instance_of);
+  qpoints->SetCheckInstanceOf(art_quick_check_instance_of);
 
   // More math.
-  qpoints->pCos = cos;
-  qpoints->pSin = sin;
-  qpoints->pAcos = acos;
-  qpoints->pAsin = asin;
-  qpoints->pAtan = atan;
-  qpoints->pAtan2 = atan2;
-  qpoints->pPow = pow;
-  qpoints->pCbrt = cbrt;
-  qpoints->pCosh = cosh;
-  qpoints->pExp = exp;
-  qpoints->pExpm1 = expm1;
-  qpoints->pHypot = hypot;
-  qpoints->pLog = log;
-  qpoints->pLog10 = log10;
-  qpoints->pNextAfter = nextafter;
-  qpoints->pSinh = sinh;
-  qpoints->pTan = tan;
-  qpoints->pTanh = tanh;
+  qpoints->SetCos(cos);
+  qpoints->SetSin(sin);
+  qpoints->SetAcos(acos);
+  qpoints->SetAsin(asin);
+  qpoints->SetAtan(atan);
+  qpoints->SetAtan2(atan2);
+  qpoints->SetPow(pow);
+  qpoints->SetCbrt(cbrt);
+  qpoints->SetCosh(cosh);
+  qpoints->SetExp(exp);
+  qpoints->SetExpm1(expm1);
+  qpoints->SetHypot(hypot);
+  qpoints->SetLog(log);
+  qpoints->SetLog10(log10);
+  qpoints->SetNextAfter(nextafter);
+  qpoints->SetSinh(sinh);
+  qpoints->SetTan(tan);
+  qpoints->SetTanh(tanh);
 
   // Math
-  qpoints->pD2l = art_d2l;
-  qpoints->pF2l = art_f2l;
-  qpoints->pLdiv = art_quick_ldiv;
-  qpoints->pLmod = art_quick_lmod;
-  qpoints->pLmul = art_quick_lmul;
-  qpoints->pShlLong = art_quick_lshl;
-  qpoints->pShrLong = art_quick_lshr;
-  qpoints->pUshrLong = art_quick_lushr;
+  qpoints->SetD2l(art_d2l);
+  qpoints->SetF2l(art_f2l);
+  qpoints->SetLdiv(art_quick_ldiv);
+  qpoints->SetLmod(art_quick_lmod);
+  qpoints->SetLmul(art_quick_lmul);
+  qpoints->SetShlLong(art_quick_lshl);
+  qpoints->SetShrLong(art_quick_lshr);
+  qpoints->SetUshrLong(art_quick_lushr);
 
   // Intrinsics
-  qpoints->pStringCompareTo = art_quick_string_compareto;
-  qpoints->pMemcpy = art_quick_memcpy;
+  qpoints->SetStringCompareTo(art_quick_string_compareto);
+  qpoints->SetMemcpy(art_quick_memcpy);
 
   // Read barrier.
   UpdateReadBarrierEntrypoints(qpoints, /*is_active=*/ false);
-  qpoints->pReadBarrierMarkReg04 = nullptr;  // Cannot use register 4 (RSP) to pass arguments.
+  qpoints->SetReadBarrierMarkReg04(nullptr);  // Cannot use register 4 (RSP) to pass arguments.
   // x86-64 has only 16 core registers.
-  qpoints->pReadBarrierMarkReg16 = nullptr;
-  qpoints->pReadBarrierMarkReg17 = nullptr;
-  qpoints->pReadBarrierMarkReg18 = nullptr;
-  qpoints->pReadBarrierMarkReg19 = nullptr;
-  qpoints->pReadBarrierMarkReg20 = nullptr;
-  qpoints->pReadBarrierMarkReg21 = nullptr;
-  qpoints->pReadBarrierMarkReg22 = nullptr;
-  qpoints->pReadBarrierMarkReg23 = nullptr;
-  qpoints->pReadBarrierMarkReg24 = nullptr;
-  qpoints->pReadBarrierMarkReg25 = nullptr;
-  qpoints->pReadBarrierMarkReg26 = nullptr;
-  qpoints->pReadBarrierMarkReg27 = nullptr;
-  qpoints->pReadBarrierMarkReg28 = nullptr;
-  qpoints->pReadBarrierMarkReg29 = nullptr;
-  qpoints->pReadBarrierSlow = art_quick_read_barrier_slow;
-  qpoints->pReadBarrierForRootSlow = art_quick_read_barrier_for_root_slow;
+  qpoints->SetReadBarrierMarkReg16(nullptr);
+  qpoints->SetReadBarrierMarkReg17(nullptr);
+  qpoints->SetReadBarrierMarkReg18(nullptr);
+  qpoints->SetReadBarrierMarkReg19(nullptr);
+  qpoints->SetReadBarrierMarkReg20(nullptr);
+  qpoints->SetReadBarrierMarkReg21(nullptr);
+  qpoints->SetReadBarrierMarkReg22(nullptr);
+  qpoints->SetReadBarrierMarkReg23(nullptr);
+  qpoints->SetReadBarrierMarkReg24(nullptr);
+  qpoints->SetReadBarrierMarkReg25(nullptr);
+  qpoints->SetReadBarrierMarkReg26(nullptr);
+  qpoints->SetReadBarrierMarkReg27(nullptr);
+  qpoints->SetReadBarrierMarkReg28(nullptr);
+  qpoints->SetReadBarrierMarkReg29(nullptr);
+  qpoints->SetReadBarrierSlow(art_quick_read_barrier_slow);
+  qpoints->SetReadBarrierForRootSlow(art_quick_read_barrier_for_root_slow);
 #endif  // __APPLE__
 }
 
diff --git a/runtime/entrypoints/quick/quick_alloc_entrypoints.cc b/runtime/entrypoints/quick/quick_alloc_entrypoints.cc
index c5b4be5..7b3d849 100644
--- a/runtime/entrypoints/quick/quick_alloc_entrypoints.cc
+++ b/runtime/entrypoints/quick/quick_alloc_entrypoints.cc
@@ -165,31 +165,31 @@
 extern "C" void* art_quick_alloc_string_from_string##suffix##_instrumented(void*); \
 void SetQuickAllocEntryPoints##suffix(QuickEntryPoints* qpoints, bool instrumented) { \
   if (instrumented) { \
-    qpoints->pAllocArrayResolved = art_quick_alloc_array_resolved##suffix##_instrumented; \
-    qpoints->pAllocArrayResolved8 = art_quick_alloc_array_resolved8##suffix##_instrumented; \
-    qpoints->pAllocArrayResolved16 = art_quick_alloc_array_resolved16##suffix##_instrumented; \
-    qpoints->pAllocArrayResolved32 = art_quick_alloc_array_resolved32##suffix##_instrumented; \
-    qpoints->pAllocArrayResolved64 = art_quick_alloc_array_resolved64##suffix##_instrumented; \
-    qpoints->pAllocObjectResolved = art_quick_alloc_object_resolved##suffix##_instrumented; \
-    qpoints->pAllocObjectInitialized = art_quick_alloc_object_initialized##suffix##_instrumented; \
-    qpoints->pAllocObjectWithChecks = art_quick_alloc_object_with_checks##suffix##_instrumented; \
-    qpoints->pAllocStringObject = art_quick_alloc_string_object##suffix##_instrumented; \
-    qpoints->pAllocStringFromBytes = art_quick_alloc_string_from_bytes##suffix##_instrumented; \
-    qpoints->pAllocStringFromChars = art_quick_alloc_string_from_chars##suffix##_instrumented; \
-    qpoints->pAllocStringFromString = art_quick_alloc_string_from_string##suffix##_instrumented; \
+    qpoints->SetAllocArrayResolved(art_quick_alloc_array_resolved##suffix##_instrumented); \
+    qpoints->SetAllocArrayResolved8(art_quick_alloc_array_resolved8##suffix##_instrumented); \
+    qpoints->SetAllocArrayResolved16(art_quick_alloc_array_resolved16##suffix##_instrumented); \
+    qpoints->SetAllocArrayResolved32(art_quick_alloc_array_resolved32##suffix##_instrumented); \
+    qpoints->SetAllocArrayResolved64(art_quick_alloc_array_resolved64##suffix##_instrumented); \
+    qpoints->SetAllocObjectResolved(art_quick_alloc_object_resolved##suffix##_instrumented); \
+    qpoints->SetAllocObjectInitialized(art_quick_alloc_object_initialized##suffix##_instrumented); \
+    qpoints->SetAllocObjectWithChecks(art_quick_alloc_object_with_checks##suffix##_instrumented); \
+    qpoints->SetAllocStringObject(art_quick_alloc_string_object##suffix##_instrumented); \
+    qpoints->SetAllocStringFromBytes(art_quick_alloc_string_from_bytes##suffix##_instrumented); \
+    qpoints->SetAllocStringFromChars(art_quick_alloc_string_from_chars##suffix##_instrumented); \
+    qpoints->SetAllocStringFromString(art_quick_alloc_string_from_string##suffix##_instrumented); \
   } else { \
-    qpoints->pAllocArrayResolved = art_quick_alloc_array_resolved##suffix; \
-    qpoints->pAllocArrayResolved8 = art_quick_alloc_array_resolved8##suffix; \
-    qpoints->pAllocArrayResolved16 = art_quick_alloc_array_resolved16##suffix; \
-    qpoints->pAllocArrayResolved32 = art_quick_alloc_array_resolved32##suffix; \
-    qpoints->pAllocArrayResolved64 = art_quick_alloc_array_resolved64##suffix; \
-    qpoints->pAllocObjectResolved = art_quick_alloc_object_resolved##suffix; \
-    qpoints->pAllocObjectInitialized = art_quick_alloc_object_initialized##suffix; \
-    qpoints->pAllocObjectWithChecks = art_quick_alloc_object_with_checks##suffix; \
-    qpoints->pAllocStringObject = art_quick_alloc_string_object##suffix; \
-    qpoints->pAllocStringFromBytes = art_quick_alloc_string_from_bytes##suffix; \
-    qpoints->pAllocStringFromChars = art_quick_alloc_string_from_chars##suffix; \
-    qpoints->pAllocStringFromString = art_quick_alloc_string_from_string##suffix; \
+    qpoints->SetAllocArrayResolved(art_quick_alloc_array_resolved##suffix); \
+    qpoints->SetAllocArrayResolved8(art_quick_alloc_array_resolved8##suffix); \
+    qpoints->SetAllocArrayResolved16(art_quick_alloc_array_resolved16##suffix); \
+    qpoints->SetAllocArrayResolved32(art_quick_alloc_array_resolved32##suffix); \
+    qpoints->SetAllocArrayResolved64(art_quick_alloc_array_resolved64##suffix); \
+    qpoints->SetAllocObjectResolved(art_quick_alloc_object_resolved##suffix); \
+    qpoints->SetAllocObjectInitialized(art_quick_alloc_object_initialized##suffix); \
+    qpoints->SetAllocObjectWithChecks(art_quick_alloc_object_with_checks##suffix); \
+    qpoints->SetAllocStringObject(art_quick_alloc_string_object##suffix); \
+    qpoints->SetAllocStringFromBytes(art_quick_alloc_string_from_bytes##suffix); \
+    qpoints->SetAllocStringFromChars(art_quick_alloc_string_from_chars##suffix); \
+    qpoints->SetAllocStringFromString(art_quick_alloc_string_from_string##suffix); \
   } \
 }
 
diff --git a/runtime/entrypoints/quick/quick_default_init_entrypoints.h b/runtime/entrypoints/quick/quick_default_init_entrypoints.h
index eec7ca9..d1ce38b 100644
--- a/runtime/entrypoints/quick/quick_default_init_entrypoints.h
+++ b/runtime/entrypoints/quick/quick_default_init_entrypoints.h
@@ -37,107 +37,107 @@
   ResetQuickAllocEntryPoints(qpoints);
 
   // Resolution and initialization
-  qpoints->pInitializeStaticStorage = art_quick_initialize_static_storage;
-  qpoints->pResolveTypeAndVerifyAccess = art_quick_resolve_type_and_verify_access;
-  qpoints->pResolveType = art_quick_resolve_type;
-  qpoints->pResolveMethodHandle = art_quick_resolve_method_handle;
-  qpoints->pResolveMethodType = art_quick_resolve_method_type;
-  qpoints->pResolveString = art_quick_resolve_string;
+  qpoints->SetInitializeStaticStorage(art_quick_initialize_static_storage);
+  qpoints->SetResolveTypeAndVerifyAccess(art_quick_resolve_type_and_verify_access);
+  qpoints->SetResolveType(art_quick_resolve_type);
+  qpoints->SetResolveMethodHandle(art_quick_resolve_method_handle);
+  qpoints->SetResolveMethodType(art_quick_resolve_method_type);
+  qpoints->SetResolveString(art_quick_resolve_string);
 
   // Field
-  qpoints->pSet8Instance = art_quick_set8_instance;
-  qpoints->pSet8Static = art_quick_set8_static;
-  qpoints->pSet16Instance = art_quick_set16_instance;
-  qpoints->pSet16Static = art_quick_set16_static;
-  qpoints->pSet32Instance = art_quick_set32_instance;
-  qpoints->pSet32Static = art_quick_set32_static;
-  qpoints->pSet64Instance = art_quick_set64_instance;
-  qpoints->pSet64Static = art_quick_set64_static;
-  qpoints->pSetObjInstance = art_quick_set_obj_instance;
-  qpoints->pSetObjStatic = art_quick_set_obj_static;
-  qpoints->pGetByteInstance = art_quick_get_byte_instance;
-  qpoints->pGetBooleanInstance = art_quick_get_boolean_instance;
-  qpoints->pGetShortInstance = art_quick_get_short_instance;
-  qpoints->pGetCharInstance = art_quick_get_char_instance;
-  qpoints->pGet32Instance = art_quick_get32_instance;
-  qpoints->pGet64Instance = art_quick_get64_instance;
-  qpoints->pGetObjInstance = art_quick_get_obj_instance;
-  qpoints->pGetByteStatic = art_quick_get_byte_static;
-  qpoints->pGetBooleanStatic = art_quick_get_boolean_static;
-  qpoints->pGetShortStatic = art_quick_get_short_static;
-  qpoints->pGetCharStatic = art_quick_get_char_static;
-  qpoints->pGet32Static = art_quick_get32_static;
-  qpoints->pGet64Static = art_quick_get64_static;
-  qpoints->pGetObjStatic = art_quick_get_obj_static;
+  qpoints->SetSet8Instance(art_quick_set8_instance);
+  qpoints->SetSet8Static(art_quick_set8_static);
+  qpoints->SetSet16Instance(art_quick_set16_instance);
+  qpoints->SetSet16Static(art_quick_set16_static);
+  qpoints->SetSet32Instance(art_quick_set32_instance);
+  qpoints->SetSet32Static(art_quick_set32_static);
+  qpoints->SetSet64Instance(art_quick_set64_instance);
+  qpoints->SetSet64Static(art_quick_set64_static);
+  qpoints->SetSetObjInstance(art_quick_set_obj_instance);
+  qpoints->SetSetObjStatic(art_quick_set_obj_static);
+  qpoints->SetGetByteInstance(art_quick_get_byte_instance);
+  qpoints->SetGetBooleanInstance(art_quick_get_boolean_instance);
+  qpoints->SetGetShortInstance(art_quick_get_short_instance);
+  qpoints->SetGetCharInstance(art_quick_get_char_instance);
+  qpoints->SetGet32Instance(art_quick_get32_instance);
+  qpoints->SetGet64Instance(art_quick_get64_instance);
+  qpoints->SetGetObjInstance(art_quick_get_obj_instance);
+  qpoints->SetGetByteStatic(art_quick_get_byte_static);
+  qpoints->SetGetBooleanStatic(art_quick_get_boolean_static);
+  qpoints->SetGetShortStatic(art_quick_get_short_static);
+  qpoints->SetGetCharStatic(art_quick_get_char_static);
+  qpoints->SetGet32Static(art_quick_get32_static);
+  qpoints->SetGet64Static(art_quick_get64_static);
+  qpoints->SetGetObjStatic(art_quick_get_obj_static);
 
   // Array
-  qpoints->pAputObject = art_quick_aput_obj;
+  qpoints->SetAputObject(art_quick_aput_obj);
 
   // JNI
-  qpoints->pJniMethodStart = art_jni_method_start;
-  qpoints->pJniMethodEnd = art_jni_method_end;
-  qpoints->pQuickGenericJniTrampoline = art_quick_generic_jni_trampoline;
-  qpoints->pJniDecodeReferenceResult = JniDecodeReferenceResult;
-  qpoints->pJniReadBarrier = art_jni_read_barrier;
+  qpoints->SetJniMethodStart(art_jni_method_start);
+  qpoints->SetJniMethodEnd(art_jni_method_end);
+  qpoints->SetQuickGenericJniTrampoline(art_quick_generic_jni_trampoline);
+  qpoints->SetJniDecodeReferenceResult(JniDecodeReferenceResult);
+  qpoints->SetJniReadBarrier(art_jni_read_barrier);
 
   // Locks
   if (UNLIKELY(VLOG_IS_ON(systrace_lock_logging))) {
-    qpoints->pJniLockObject = art_jni_lock_object_no_inline;
-    qpoints->pJniUnlockObject = art_jni_unlock_object_no_inline;
-    qpoints->pLockObject = art_quick_lock_object_no_inline;
-    qpoints->pUnlockObject = art_quick_unlock_object_no_inline;
+    qpoints->SetJniLockObject(art_jni_lock_object_no_inline);
+    qpoints->SetJniUnlockObject(art_jni_unlock_object_no_inline);
+    qpoints->SetLockObject(art_quick_lock_object_no_inline);
+    qpoints->SetUnlockObject(art_quick_unlock_object_no_inline);
   } else {
-    qpoints->pJniLockObject = art_jni_lock_object;
-    qpoints->pJniUnlockObject = art_jni_unlock_object;
-    qpoints->pLockObject = art_quick_lock_object;
-    qpoints->pUnlockObject = art_quick_unlock_object;
+    qpoints->SetJniLockObject(art_jni_lock_object);
+    qpoints->SetJniUnlockObject(art_jni_unlock_object);
+    qpoints->SetLockObject(art_quick_lock_object);
+    qpoints->SetUnlockObject(art_quick_unlock_object);
   }
 
   // Invocation
-  qpoints->pQuickImtConflictTrampoline = art_quick_imt_conflict_trampoline;
-  qpoints->pQuickResolutionTrampoline = art_quick_resolution_trampoline;
-  qpoints->pQuickToInterpreterBridge = art_quick_to_interpreter_bridge;
-  qpoints->pInvokeDirectTrampolineWithAccessCheck =
-      art_quick_invoke_direct_trampoline_with_access_check;
-  qpoints->pInvokeInterfaceTrampolineWithAccessCheck =
-      art_quick_invoke_interface_trampoline_with_access_check;
-  qpoints->pInvokeStaticTrampolineWithAccessCheck =
-      art_quick_invoke_static_trampoline_with_access_check;
-  qpoints->pInvokeSuperTrampolineWithAccessCheck =
-      art_quick_invoke_super_trampoline_with_access_check;
-  qpoints->pInvokeVirtualTrampolineWithAccessCheck =
-      art_quick_invoke_virtual_trampoline_with_access_check;
-  qpoints->pInvokePolymorphic = art_quick_invoke_polymorphic;
-  qpoints->pInvokeCustom = art_quick_invoke_custom;
+  qpoints->SetQuickImtConflictTrampoline(art_quick_imt_conflict_trampoline);
+  qpoints->SetQuickResolutionTrampoline(art_quick_resolution_trampoline);
+  qpoints->SetQuickToInterpreterBridge(art_quick_to_interpreter_bridge);
+  qpoints->SetInvokeDirectTrampolineWithAccessCheck(
+      art_quick_invoke_direct_trampoline_with_access_check);
+  qpoints->SetInvokeInterfaceTrampolineWithAccessCheck(
+      art_quick_invoke_interface_trampoline_with_access_check);
+  qpoints->SetInvokeStaticTrampolineWithAccessCheck(
+      art_quick_invoke_static_trampoline_with_access_check);
+  qpoints->SetInvokeSuperTrampolineWithAccessCheck(
+      art_quick_invoke_super_trampoline_with_access_check);
+  qpoints->SetInvokeVirtualTrampolineWithAccessCheck(
+      art_quick_invoke_virtual_trampoline_with_access_check);
+  qpoints->SetInvokePolymorphic(art_quick_invoke_polymorphic);
+  qpoints->SetInvokeCustom(art_quick_invoke_custom);
 
   // Thread
-  qpoints->pTestSuspend = art_quick_test_suspend;
+  qpoints->SetTestSuspend(art_quick_test_suspend);
 
   // Throws
-  qpoints->pDeliverException = art_quick_deliver_exception;
-  qpoints->pThrowArrayBounds = art_quick_throw_array_bounds;
-  qpoints->pThrowDivZero = art_quick_throw_div_zero;
-  qpoints->pThrowNullPointer = art_quick_throw_null_pointer_exception;
-  qpoints->pThrowStackOverflow = art_quick_throw_stack_overflow;
-  qpoints->pThrowStringBounds = art_quick_throw_string_bounds;
+  qpoints->SetDeliverException(art_quick_deliver_exception);
+  qpoints->SetThrowArrayBounds(art_quick_throw_array_bounds);
+  qpoints->SetThrowDivZero(art_quick_throw_div_zero);
+  qpoints->SetThrowNullPointer(art_quick_throw_null_pointer_exception);
+  qpoints->SetThrowStackOverflow(art_quick_throw_stack_overflow);
+  qpoints->SetThrowStringBounds(art_quick_throw_string_bounds);
 
   // Deoptimize
-  qpoints->pDeoptimize = art_quick_deoptimize_from_compiled_code;
+  qpoints->SetDeoptimize(art_quick_deoptimize_from_compiled_code);
 
   // StringBuilder append
-  qpoints->pStringBuilderAppend = art_quick_string_builder_append;
+  qpoints->SetStringBuilderAppend(art_quick_string_builder_append);
 
   // Tiered JIT support
-  qpoints->pUpdateInlineCache = art_quick_update_inline_cache;
-  qpoints->pCompileOptimized = art_quick_compile_optimized;
+  qpoints->SetUpdateInlineCache(art_quick_update_inline_cache);
+  qpoints->SetCompileOptimized(art_quick_compile_optimized);
 
   // Tracing hooks
-  qpoints->pMethodEntryHook = art_quick_method_entry_hook;
-  qpoints->pMethodExitHook = art_quick_method_exit_hook;
+  qpoints->SetMethodEntryHook(art_quick_method_entry_hook);
+  qpoints->SetMethodExitHook(art_quick_method_exit_hook);
 
   if (monitor_jni_entry_exit) {
-    qpoints->pJniMethodStart = art_jni_monitored_method_start;
-    qpoints->pJniMethodEnd = art_jni_monitored_method_end;
+    qpoints->SetJniMethodStart(art_jni_monitored_method_start);
+    qpoints->SetJniMethodEnd(art_jni_monitored_method_end);
   }
 }
 
diff --git a/runtime/entrypoints/quick/quick_entrypoints.h b/runtime/entrypoints/quick/quick_entrypoints.h
index 26e5403..7af1a0b 100644
--- a/runtime/entrypoints/quick/quick_entrypoints.h
+++ b/runtime/entrypoints/quick/quick_entrypoints.h
@@ -44,7 +44,9 @@
 
 // Pointers to functions that are called by quick compiler generated code via thread-local storage.
 struct QuickEntryPoints {
-#define ENTRYPOINT_ENUM(name, rettype, ...) rettype ( * p ## name )( __VA_ARGS__ );
+#define ENTRYPOINT_ENUM(name, rettype, ...) \
+  void* p##name;                            \
+  void Set##name(rettype (*fn)(__VA_ARGS__)) { p##name = reinterpret_cast<void*>(fn); }
 #include "quick_entrypoints_list.h"
   QUICK_ENTRYPOINT_LIST(ENTRYPOINT_ENUM)
 #undef QUICK_ENTRYPOINT_LIST
diff --git a/runtime/well_known_classes.cc b/runtime/well_known_classes.cc
index 62e405a..4705741 100644
--- a/runtime/well_known_classes.cc
+++ b/runtime/well_known_classes.cc
@@ -299,7 +299,7 @@
   #define SET_ENTRY_POINT(init_runtime_name, init_signature, new_runtime_name,              \
                           new_java_name, new_signature, entry_point_name)                   \
       DCHECK(!Runtime::Current()->IsStarted() || (new_runtime_name) != nullptr);            \
-      qpoints->p ## entry_point_name = reinterpret_cast<void(*)()>(new_runtime_name);
+      qpoints->p ## entry_point_name = reinterpret_cast<void*>(new_runtime_name);
       STRING_INIT_LIST(SET_ENTRY_POINT)
   #undef SET_ENTRY_POINT
 }