< prev index next >
src/hotspot/cpu/x86/templateTable_x86.cpp
Print this page
rev 49887 : 8201593: Print array length in ArrayIndexOutOfBoundsException.
Reviewed-by: dholmes, mdoerr
*** 755,769 ****
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));
}
-
void TemplateTable::iaload() {
transition(itos, itos);
// rax: index
// rdx: array
index_check(rdx, rax); // kills rbx
--- 755,772 ----
if (index != rbx) {
// ??? convention: move aberrant index into rbx for exception message
assert(rbx != array, "different registers");
__ movl(rbx, index);
}
! Label skip;
! __ jccb(Assembler::below, skip);
! // Pass array to create more detailed exceptions.
! __ mov(NOT_LP64(rax) LP64_ONLY(c_rarg1), array);
! __ jump(ExternalAddress(Interpreter::_throw_ArrayIndexOutOfBoundsException_entry));
! __ bind(skip);
}
void TemplateTable::iaload() {
transition(itos, itos);
// rax: index
// rdx: array
index_check(rdx, rax); // kills rbx
< prev index next >