< prev index next >

src/hotspot/cpu/x86/gc/shared/modRefBarrierSetAssembler_x86.cpp

Print this page
rev 54706 : 8223244: Fix usage of ARRAYCOPY_DISJOINT decorator

@@ -34,17 +34,19 @@
   bool disjoint = (decorators & ARRAYCOPY_DISJOINT) != 0;
   bool obj_int = type == T_OBJECT LP64_ONLY(&& UseCompressedOops);
 
   if (type == T_OBJECT || type == T_ARRAY) {
 #ifdef _LP64
-    if (!checkcast && !obj_int) {
+    if (!checkcast) {
+      if (!obj_int) {
       // Save count for barrier
       __ movptr(r11, count);
-    } else if (disjoint && obj_int) {
+      } else if (disjoint) {
       // Save dst in r11 in the disjoint case
       __ movq(r11, dst);
     }
+    }
 #else
     if (disjoint) {
       __ mov(rdx, dst);          // save 'to'
     }
 #endif

@@ -59,17 +61,19 @@
   bool obj_int = type == T_OBJECT LP64_ONLY(&& UseCompressedOops);
   Register tmp = rax;
 
   if (type == T_OBJECT || type == T_ARRAY) {
 #ifdef _LP64
-    if (!checkcast && !obj_int) {
+    if (!checkcast) {
+      if (!obj_int) {
       // Save count for barrier
       count = r11;
-    } else if (disjoint && obj_int) {
+      } else if (disjoint) {
       // Use the saved dst in the disjoint case
       dst = r11;
-    } else if (checkcast) {
+      }
+    } else {
       tmp = rscratch1;
     }
 #else
     if (disjoint) {
       __ mov(dst, rdx); // restore 'to'
< prev index next >