< prev index next >

src/hotspot/cpu/x86/templateTable_x86.cpp

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

*** 755,766 **** 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); --- 755,774 ---- 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. ! #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 >