hotspot/src/share/vm/prims/unsafe.cpp
changeset 39260 10fcac2a233a
parent 38211 fe30fdab0f62
child 40385 a7011a835634
equal deleted inserted replaced
39259:14a1c9c7f909 39260:10fcac2a233a
   352 
   352 
   353 UNSAFE_ENTRY(jobject, Unsafe_GetUncompressedObject(JNIEnv *env, jobject unsafe, jlong addr)) {
   353 UNSAFE_ENTRY(jobject, Unsafe_GetUncompressedObject(JNIEnv *env, jobject unsafe, jlong addr)) {
   354   oop v = *(oop*) (address) addr;
   354   oop v = *(oop*) (address) addr;
   355 
   355 
   356   return JNIHandles::make_local(env, v);
   356   return JNIHandles::make_local(env, v);
   357 } UNSAFE_END
       
   358 
       
   359 UNSAFE_ENTRY(jclass, Unsafe_GetJavaMirror(JNIEnv *env, jobject unsafe, jlong metaspace_klass)) {
       
   360   Klass* klass = (Klass*) (address) metaspace_klass;
       
   361 
       
   362   return (jclass) JNIHandles::make_local(klass->java_mirror());
       
   363 } UNSAFE_END
       
   364 
       
   365 UNSAFE_ENTRY(jlong, Unsafe_GetKlassPointer(JNIEnv *env, jobject unsafe, jobject obj)) {
       
   366   oop o = JNIHandles::resolve(obj);
       
   367   jlong klass = (jlong) (address) o->klass();
       
   368 
       
   369   return klass;
       
   370 } UNSAFE_END
   357 } UNSAFE_END
   371 
   358 
   372 #ifndef SUPPORTS_NATIVE_CX8
   359 #ifndef SUPPORTS_NATIVE_CX8
   373 
   360 
   374 // VM_Version::supports_cx8() is a surrogate for 'supports atomic long memory ops'.
   361 // VM_Version::supports_cx8() is a surrogate for 'supports atomic long memory ops'.
  1150     {CC "putObject",        CC "(" OBJ "J" OBJ ")V",  FN_PTR(Unsafe_PutObject)},
  1137     {CC "putObject",        CC "(" OBJ "J" OBJ ")V",  FN_PTR(Unsafe_PutObject)},
  1151     {CC "getObjectVolatile",CC "(" OBJ "J)" OBJ "",   FN_PTR(Unsafe_GetObjectVolatile)},
  1138     {CC "getObjectVolatile",CC "(" OBJ "J)" OBJ "",   FN_PTR(Unsafe_GetObjectVolatile)},
  1152     {CC "putObjectVolatile",CC "(" OBJ "J" OBJ ")V",  FN_PTR(Unsafe_PutObjectVolatile)},
  1139     {CC "putObjectVolatile",CC "(" OBJ "J" OBJ ")V",  FN_PTR(Unsafe_PutObjectVolatile)},
  1153 
  1140 
  1154     {CC "getUncompressedObject", CC "(" ADR ")" OBJ,  FN_PTR(Unsafe_GetUncompressedObject)},
  1141     {CC "getUncompressedObject", CC "(" ADR ")" OBJ,  FN_PTR(Unsafe_GetUncompressedObject)},
  1155     {CC "getJavaMirror",         CC "(" ADR ")" CLS,  FN_PTR(Unsafe_GetJavaMirror)},
       
  1156     {CC "getKlassPointer",       CC "(" OBJ ")" ADR,  FN_PTR(Unsafe_GetKlassPointer)},
       
  1157 
  1142 
  1158     DECLARE_GETPUTOOP(Boolean, Z),
  1143     DECLARE_GETPUTOOP(Boolean, Z),
  1159     DECLARE_GETPUTOOP(Byte, B),
  1144     DECLARE_GETPUTOOP(Byte, B),
  1160     DECLARE_GETPUTOOP(Short, S),
  1145     DECLARE_GETPUTOOP(Short, S),
  1161     DECLARE_GETPUTOOP(Char, C),
  1146     DECLARE_GETPUTOOP(Char, C),