< prev index next >
src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp
Print this page
rev 50030 : 8201593: Print array length in ArrayIndexOutOfBoundsException.
Reviewed-by: dholmes, mdoerr, smonteith, shade
*** 100,119 ****
CAST_FROM_FN_PTR(address,
InterpreterRuntime::throw_StackOverflowError));
return entry;
}
! address TemplateInterpreterGenerator::generate_ArrayIndexOutOfBounds_handler(
! const char* name) {
address entry = __ pc();
! // expression stack must be empty before entering the VM if an
! // exception happened
__ empty_expression_stack();
! // setup parameters
! // ??? convention: expect aberrant index in register ebx
Register rarg = NOT_LP64(rax) LP64_ONLY(c_rarg1);
- __ lea(rarg, ExternalAddress((address)name));
__ call_VM(noreg,
CAST_FROM_FN_PTR(address,
InterpreterRuntime::
throw_ArrayIndexOutOfBoundsException),
rarg, rbx);
--- 100,119 ----
CAST_FROM_FN_PTR(address,
InterpreterRuntime::throw_StackOverflowError));
return entry;
}
! address TemplateInterpreterGenerator::generate_ArrayIndexOutOfBounds_handler() {
address entry = __ pc();
! // The expression stack must be empty before entering the VM if an
! // exception happened.
__ empty_expression_stack();
!
! // Setup parameters.
! // ??? convention: expect aberrant index in register ebx/rbx.
! // Pass array to create more detailed exceptions.
Register rarg = NOT_LP64(rax) LP64_ONLY(c_rarg1);
__ call_VM(noreg,
CAST_FROM_FN_PTR(address,
InterpreterRuntime::
throw_ArrayIndexOutOfBoundsException),
rarg, rbx);
< prev index next >