--- a/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp Tue Jun 09 16:19:10 2009 -0700
+++ b/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp Wed Jun 10 12:19:48 2009 -0700
@@ -371,7 +371,7 @@
}
__ move(value.result(), array_addr, null_check_info);
if (obj_store) {
- // Is this precise?
+ // Precise card mark
post_barrier(LIR_OprFact::address(array_addr), value.result());
}
}
@@ -685,11 +685,8 @@
LIR_Opr result = rlock_result(x);
__ cmove(lir_cond_equal, LIR_OprFact::intConst(1), LIR_OprFact::intConst(0), result);
if (type == objectType) { // Write-barrier needed for Object fields.
-#ifdef PRECISE_CARDMARK
+ // Precise card mark since could either be object or array
post_barrier(addr, val.result());
-#else
- post_barrier(obj.result(), val.result());
-#endif // PRECISE_CARDMARK
}
}