src/hotspot/share/opto/macroArrayCopy.cpp
changeset 50180 ffa644980dff
parent 47216 71c04702a3d5
child 50399 ee87876734c9
--- a/src/hotspot/share/opto/macroArrayCopy.cpp	Fri May 18 15:21:23 2018 +0200
+++ b/src/hotspot/share/opto/macroArrayCopy.cpp	Fri May 18 14:51:06 2018 +0200
@@ -550,9 +550,9 @@
     }
     // At this point we know we do not need type checks on oop stores.
 
-    // Let's see if we need card marks:
-    if (alloc != NULL && GraphKit::use_ReduceInitialCardMarks()) {
-      // If we do not need card marks, copy using the jint or jlong stub.
+    BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2();
+    if (alloc != NULL && !bs->array_copy_requires_gc_barriers(copy_type)) {
+      // If we do not need gc barriers, copy using the jint or jlong stub.
       copy_type = LP64_ONLY(UseCompressedOops ? T_INT : T_LONG) NOT_LP64(T_INT);
       assert(type2aelembytes(basic_elem_type) == type2aelembytes(copy_type),
              "sizes agree");