--- old/src/share/vm/prims/unsafe.cpp 2015-03-06 18:38:39.626245544 +0000 +++ new/src/share/vm/prims/unsafe.cpp 2015-03-06 18:38:39.446263513 +0000 @@ -324,6 +324,26 @@ #endif // not SUPPORTS_NATIVE_CX8 +UNSAFE_ENTRY(jboolean, Unsafe_isBigEndian(JNIEnv *env, jobject unsafe)) + UnsafeWrapper("Unsafe_IsBigEndian"); + { +#ifdef VM_BIG_ENDIAN + return true; +#elif defined(VM_LITTLE_ENDIAN) + return false; +#else +#error VM_LITTLE_ENDIAN or VM_BIG_ENDIAN must be defined +#endif + } +UNSAFE_END + +UNSAFE_ENTRY(jint, Unsafe_unalignedAccess(JNIEnv *env, jobject unsafe)) + UnsafeWrapper("Unsafe_UnalignedAccess"); + { + return UseUnalignedAccesses; + } +UNSAFE_END + #define DEFINE_GETSETOOP(jboolean, Boolean) \ \ UNSAFE_ENTRY(jboolean, Unsafe_Get##Boolean##140(JNIEnv *env, jobject unsafe, jobject obj, jint offset)) \ @@ -1261,6 +1281,9 @@ {CC"loadFence", CC"()V", FN_PTR(Unsafe_LoadFence)}, {CC"storeFence", CC"()V", FN_PTR(Unsafe_StoreFence)}, {CC"fullFence", CC"()V", FN_PTR(Unsafe_FullFence)}, + + {CC"isBigEndian", CC"()Z", FN_PTR(Unsafe_isBigEndian)}, + {CC"unalignedAccess", CC"()Z", FN_PTR(Unsafe_unalignedAccess)} }; #undef CC