< prev index next >
src/hotspot/cpu/s390/templateInterpreterGenerator_s390.cpp
Print this page
rev 49869 : 8201593: Print array length in ArrayIndexOutOfBoundsException.
Reviewed-by: dholmes
*** 549,571 ****
return entry;
}
//
// Args:
// Z_ARG3: aberrant index
//
! address TemplateInterpreterGenerator::generate_ArrayIndexOutOfBounds_handler(const char * name) {
address entry = __ pc();
address excp = CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_ArrayIndexOutOfBoundsException);
// Expression stack must be empty before entering the VM if an
// exception happened.
__ empty_expression_stack();
// Setup parameters.
! // Leave out the name and use register for array to create more detailed exceptions.
! __ load_absolute_address(Z_ARG2, (address) name);
__ call_VM(noreg, excp, Z_ARG2, Z_ARG3);
return entry;
}
address TemplateInterpreterGenerator::generate_ClassCastException_handler() {
--- 549,571 ----
return entry;
}
//
// Args:
+ // Z_ARG2: oop of array
// Z_ARG3: aberrant index
//
! address TemplateInterpreterGenerator::generate_ArrayIndexOutOfBounds_handler() {
address entry = __ pc();
address excp = CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_ArrayIndexOutOfBoundsException);
// Expression stack must be empty before entering the VM if an
// exception happened.
__ empty_expression_stack();
// Setup parameters.
! // Pass register with array to create more detailed exceptions.
__ call_VM(noreg, excp, Z_ARG2, Z_ARG3);
return entry;
}
address TemplateInterpreterGenerator::generate_ClassCastException_handler() {
< prev index next >