< prev index next >
src/hotspot/cpu/x86/templateTable_x86.cpp
Print this page
rev 49827 : 8201593: Print array length in ArrayIndexOutOfBoundsException.
@@ -755,12 +755,20 @@
if (index != rbx) {
// ??? convention: move aberrant index into rbx for exception message
assert(rbx != array, "different registers");
__ movl(rbx, index);
}
- __ jump_cc(Assembler::aboveEqual,
- ExternalAddress(Interpreter::_throw_ArrayIndexOutOfBoundsException_entry));
+ Label skip;
+ __ jccb(Assembler::below, skip);
+ // Pass array to create more detailed exceptions.
+#ifdef IA32
+ __ mov(rax, array);
+#else // AMD64
+ __ mov(c_rarg1, array);
+#endif
+ __ jump(ExternalAddress(Interpreter::_throw_ArrayIndexOutOfBoundsException_entry));
+ __ bind(skip);
}
void TemplateTable::iaload() {
transition(itos, itos);
< prev index next >