< 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 >