< prev index next >
src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp
Print this page
rev 50027 : 8201593: Print array length in ArrayIndexOutOfBoundsException.
Reviewed-by: dholmes, mdoerr, smonteith, shade
@@ -100,20 +100,20 @@
CAST_FROM_FN_PTR(address,
InterpreterRuntime::throw_StackOverflowError));
return entry;
}
-address TemplateInterpreterGenerator::generate_ArrayIndexOutOfBounds_handler(
- const char* name) {
+address TemplateInterpreterGenerator::generate_ArrayIndexOutOfBounds_handler() {
address entry = __ pc();
- // expression stack must be empty before entering the VM if an
- // exception happened
+ // 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
+
+ // 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);
- __ lea(rarg, ExternalAddress((address)name));
__ call_VM(noreg,
CAST_FROM_FN_PTR(address,
InterpreterRuntime::
throw_ArrayIndexOutOfBoundsException),
rarg, rbx);
< prev index next >