Prefix entrypoints with 0xFF so we can do extra checks.

Add check to ensure we do not read method header from libart.so

Bug: 123510633
Test: m -j40 cts && cts-tradefed run cts \
  --test android.jvmti.cts.JvmtiHostTest1927#testJvmti \
  --module CtsJvmtiRunTest1927HostTestCases
Change-Id: Ic3e42e3bd4fbda3b11c7e265ed114770139151b9
diff --git a/runtime/oat_quick_method_header.h b/runtime/oat_quick_method_header.h
index 8798c69..e41c7ee 100644
--- a/runtime/oat_quick_method_header.h
+++ b/runtime/oat_quick_method_header.h
@@ -76,6 +76,10 @@
   }
 
   uint32_t GetCodeSize() const {
+    // ART compiled method are prefixed with header, but we can also easily
+    // accidentally use a function pointer to one of the stubs/trampolines.
+    // We prefix those with 0xFF in the aseembly so that we can do DCHECKs.
+    CHECK_NE(code_size_, 0xFFFFFFFF) << code_;
     return code_size_ & kCodeSizeMask;
   }