src/share/vm/opto/library_call.cpp
Print this page
*** 2777,2789 ****
set_result(load_store);
return true;
}
//----------------------------inline_unsafe_ordered_store----------------------
! // public native void sun.misc.Unsafe.putOrderedObject(Object o, long offset, Object x);
! // public native void sun.misc.Unsafe.putOrderedInt(Object o, long offset, int x);
! // public native void sun.misc.Unsafe.putOrderedLong(Object o, long offset, long x);
bool LibraryCallKit::inline_unsafe_ordered_store(BasicType type) {
// This is another variant of inline_unsafe_access, differing in
// that it always issues store-store ("release") barrier and ensures
// store-atomicity (which only matters for "long").
--- 2777,2789 ----
set_result(load_store);
return true;
}
//----------------------------inline_unsafe_ordered_store----------------------
! // public native void [sun|jdk.internal].misc.Unsafe.putOrderedObject(Object o, long offset, Object x);
! // public native void [sun|jdk.internal].misc.Unsafe.putOrderedInt(Object o, long offset, int x);
! // public native void [sun|jdk.internal].misc.Unsafe.putOrderedLong(Object o, long offset, long x);
bool LibraryCallKit::inline_unsafe_ordered_store(BasicType type) {
// This is another variant of inline_unsafe_access, differing in
// that it always issues store-store ("release") barrier and ensures
// store-atomicity (which only matters for "long").
*** 2873,2883 ****
// don't need a guard for a klass that is already initialized
return !ik->is_initialized();
}
//----------------------------inline_unsafe_allocate---------------------------
! // public native Object sun.misc.Unsafe.allocateInstance(Class<?> cls);
bool LibraryCallKit::inline_unsafe_allocate() {
if (callee()->is_static()) return false; // caller must have the capability!
null_check_receiver(); // null-check, then ignore
Node* cls = null_check(argument(1));
--- 2873,2883 ----
// don't need a guard for a klass that is already initialized
return !ik->is_initialized();
}
//----------------------------inline_unsafe_allocate---------------------------
! // public native Object [sun|jdk.internal].misc.Unsafe.allocateInstance(Class<?> cls);
bool LibraryCallKit::inline_unsafe_allocate() {
if (callee()->is_static()) return false; // caller must have the capability!
null_check_receiver(); // null-check, then ignore
Node* cls = null_check(argument(1));
*** 4192,4202 ****
#else //_LP64
#define XTOP /*no additional argument*/
#endif //_LP64
//----------------------inline_unsafe_copyMemory-------------------------
! // public native void sun.misc.Unsafe.copyMemory(Object srcBase, long srcOffset, Object destBase, long destOffset, long bytes);
bool LibraryCallKit::inline_unsafe_copyMemory() {
if (callee()->is_static()) return false; // caller must have the capability!
null_check_receiver(); // null-check receiver
if (stopped()) return true;
--- 4192,4202 ----
#else //_LP64
#define XTOP /*no additional argument*/
#endif //_LP64
//----------------------inline_unsafe_copyMemory-------------------------
! // public native void [sun|jdk.internal].misc.Unsafe.copyMemory(Object srcBase, long srcOffset, Object destBase, long destOffset, long bytes);
bool LibraryCallKit::inline_unsafe_copyMemory() {
if (callee()->is_static()) return false; // caller must have the capability!
null_check_receiver(); // null-check receiver
if (stopped()) return true;