--- a/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp Wed Mar 20 17:04:45 2013 -0700
+++ b/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp Thu Mar 21 09:27:54 2013 +0100
@@ -324,7 +324,7 @@
void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
assert(x->is_pinned(),"");
- bool needs_range_check = true;
+ bool needs_range_check = x->compute_needs_range_check();
bool use_length = x->length() != NULL;
bool obj_store = x->elt_type() == T_ARRAY || x->elt_type() == T_OBJECT;
bool needs_store_check = obj_store && (x->value()->as_Constant() == NULL ||
@@ -339,12 +339,9 @@
array.load_item();
index.load_nonconstant();
- if (use_length) {
- needs_range_check = x->compute_needs_range_check();
- if (needs_range_check) {
- length.set_instruction(x->length());
- length.load_item();
- }
+ if (use_length && needs_range_check) {
+ length.set_instruction(x->length());
+ length.load_item();
}
if (needs_store_check) {
value.load_item();