< prev index next >

src/hotspot/share/oops/accessBackend.cpp

Print this page
rev 49182 : 8198445: Access API for primitive/native arraycopy
rev 49183 : [mq]: 8198445-1.patch

@@ -103,15 +103,10 @@
     Copy::disjoint_words_atomic(reinterpret_cast<HeapWord*>(src),
                                 reinterpret_cast<HeapWord*>(dst), length);
   }
 
   template<>
-  void arraycopy_conjoint<char>(char* src, char* dst, size_t length) {
-    Copy::conjoint_jbytes(src, dst, length);
-  }
-
-  template<>
   void arraycopy_conjoint<jbyte>(jbyte* src, jbyte* dst, size_t length) {
     Copy::conjoint_jbytes(src, dst, length);
   }
 
   template<>

@@ -156,24 +151,44 @@
                                   reinterpret_cast<HeapWord*>(dst),
                                   length);
   }
 
   template<>
+  void arraycopy_conjoint_atomic<jboolean>(jboolean* src, jboolean* dst, size_t length) {
+    Copy::conjoint_jbytes_atomic(reinterpret_cast<jbyte*>(src), reinterpret_cast<jbyte*>(dst), length);
+  }
+
+  template<>
   void arraycopy_conjoint_atomic<jbyte>(jbyte* src, jbyte* dst, size_t length) {
     Copy::conjoint_jbytes_atomic(src, dst, length);
   }
 
   template<>
+  void arraycopy_conjoint_atomic<jchar>(jchar* src, jchar* dst, size_t length) {
+    Copy::conjoint_jshorts_atomic(reinterpret_cast<jshort*>(src), reinterpret_cast<jshort*>(dst), length);
+  }
+
+  template<>
   void arraycopy_conjoint_atomic<jshort>(jshort* src, jshort* dst, size_t length) {
     Copy::conjoint_jshorts_atomic(src, dst, length);
   }
 
   template<>
+  void arraycopy_conjoint_atomic<jfloat>(jfloat* src, jfloat* dst, size_t length) {
+    Copy::conjoint_jints_atomic(reinterpret_cast<jint*>(src), reinterpret_cast<jint*>(dst), length);
+  }
+
+  template<>
   void arraycopy_conjoint_atomic<jint>(jint* src, jint* dst, size_t length) {
     Copy::conjoint_jints_atomic(src, dst, length);
   }
 
   template<>
+  void arraycopy_conjoint_atomic<jdouble>(jdouble* src, jdouble* dst, size_t length) {
+    Copy::conjoint_jlongs_atomic(reinterpret_cast<jlong*>(src), reinterpret_cast<jlong*>(dst), length);
+  }
+
+  template<>
   void arraycopy_conjoint_atomic<jlong>(jlong* src, jlong* dst, size_t length) {
     Copy::conjoint_jlongs_atomic(src, dst, length);
   }
 }
< prev index next >