< 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 >