1472N/A * or visit www.oracle.com if you need additional information or have any
1999N/A#include "runtime/atomic.hpp"
1879N/A#include "runtime/orderAccess.hpp"
1879N/A#include "vm_version_x86.hpp"
1999N/Ainline julong OrderAccess::load_acquire(volatile julong* p) { return Atomic::load((volatile jlong*)p); }
0N/Ainline void* OrderAccess::load_ptr_acquire(const volatile void* p) { return *(void* const volatile *)p; }
1999N/Ainline void OrderAccess::release_store(volatile julong* p, julong v) { Atomic::store((jlong)v, (volatile jlong*)p); }
0N/Ainline void OrderAccess::release_store_ptr(volatile void* p, void* v) { *(void* volatile *)p = v; }
0N/Ainline void OrderAccess::store_fence(jushort* p, jushort v) { store_fence((jshort*)p, (jshort)v); }
0N/A// Must duplicate definitions instead of calling store_fence because we don't want to cast away volatile.
0N/Ainline void OrderAccess::release_store_fence(volatile jubyte* p, jubyte v) { release_store_fence((volatile jbyte*)p, (jbyte)v); }
0N/Ainline void OrderAccess::release_store_fence(volatile jushort* p, jushort v) { release_store_fence((volatile jshort*)p, (jshort)v); }
0N/Ainline void OrderAccess::release_store_fence(volatile juint* p, juint v) { release_store_fence((volatile jint*)p, (jint)v); }
0N/Ainline void OrderAccess::release_store_fence(volatile julong* p, julong v) { release_store_fence((volatile jlong*)p, (jlong)v); }
0N/Ainline void OrderAccess::release_store_fence(volatile jdouble* p, jdouble v) { *p = v; fence(); }