< prev index next >

src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp

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

@@ -51,17 +51,19 @@
   bool obj_int = type == T_OBJECT LP64_ONLY(&& UseCompressedOops);
   bool dest_uninitialized = (decorators & IS_DEST_UNINITIALIZED) != 0;
 
   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

@@ -121,17 +123,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) {
       // 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 >