< prev index next >

src/hotspot/cpu/sparc/interp_masm_sparc.cpp

Print this page
rev 49800 : 8201593: Print array length in ArrayIndexOutOfBoundsException.

@@ -893,12 +893,14 @@
   Label index_ok;
   cmp(index, tmp);
   throw_if_not_1_icc( lessUnsigned, index_ok );
   if (index_shift > 0)  delayed()->sll(index, index_shift, index);
   else                  delayed()->add(array, index, res); // addr - const offset in index
+  // Pass the array to create more detailed exceptions.
   // convention: move aberrant index into G3_scratch for exception message
-  mov(index, G3_scratch);
+  mov(index, Otos_i);
+  mov(array, G3_scratch);
   throw_if_not_2( Interpreter::_throw_ArrayIndexOutOfBoundsException_entry, G4_scratch, index_ok);
 
   // add offset if didn't do it in delay slot
   if (index_shift > 0)   add(array, index, res); // addr - const offset in index
 }
< prev index next >