--- old/src/hotspot/share/oops/accessBackend.cpp 2018-03-08 13:22:58.776540381 +0100 +++ new/src/hotspot/share/oops/accessBackend.cpp 2018-03-08 13:22:58.578542869 +0100 @@ -105,11 +105,6 @@ } template<> - void arraycopy_conjoint(char* src, char* dst, size_t length) { - Copy::conjoint_jbytes(src, dst, length); - } - - template<> void arraycopy_conjoint(jbyte* src, jbyte* dst, size_t length) { Copy::conjoint_jbytes(src, dst, length); } @@ -158,21 +153,41 @@ } template<> + void arraycopy_conjoint_atomic(jboolean* src, jboolean* dst, size_t length) { + Copy::conjoint_jbytes_atomic(reinterpret_cast(src), reinterpret_cast(dst), length); + } + + template<> void arraycopy_conjoint_atomic(jbyte* src, jbyte* dst, size_t length) { Copy::conjoint_jbytes_atomic(src, dst, length); } template<> + void arraycopy_conjoint_atomic(jchar* src, jchar* dst, size_t length) { + Copy::conjoint_jshorts_atomic(reinterpret_cast(src), reinterpret_cast(dst), length); + } + + template<> void arraycopy_conjoint_atomic(jshort* src, jshort* dst, size_t length) { Copy::conjoint_jshorts_atomic(src, dst, length); } template<> + void arraycopy_conjoint_atomic(jfloat* src, jfloat* dst, size_t length) { + Copy::conjoint_jints_atomic(reinterpret_cast(src), reinterpret_cast(dst), length); + } + + template<> void arraycopy_conjoint_atomic(jint* src, jint* dst, size_t length) { Copy::conjoint_jints_atomic(src, dst, length); } template<> + void arraycopy_conjoint_atomic(jdouble* src, jdouble* dst, size_t length) { + Copy::conjoint_jlongs_atomic(reinterpret_cast(src), reinterpret_cast(dst), length); + } + + template<> void arraycopy_conjoint_atomic(jlong* src, jlong* dst, size_t length) { Copy::conjoint_jlongs_atomic(src, dst, length); }