aboutsummaryrefslogtreecommitdiff
path: root/src/cpu/sparc
diff options
context:
space:
mode:
authornever <none@none>2009-06-10 12:19:48 -0700
committernever <none@none>2009-06-10 12:19:48 -0700
commit1db816dbc641667b0d4014419e76cf5c44522aca (patch)
tree586058748109a73928853f26d286a77f08b56669 /src/cpu/sparc
parent93b9bb373ce618f60363d17896e4065e75455f79 (diff)
downloadjdk8u_hotspot-1db816dbc641667b0d4014419e76cf5c44522aca.tar.gz
6849574: VM crash using NonBlockingHashMap (high_scale_lib)
Reviewed-by: kvn
Diffstat (limited to 'src/cpu/sparc')
-rw-r--r--src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp b/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp
index 239d867a0..a6e6c60e2 100644
--- a/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp
+++ b/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp
@@ -371,7 +371,7 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
}
__ 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 @@ void LIRGenerator::do_CompareAndSwap(Intrinsic* x, ValueType* type) {
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
}
}