--- a/src/hotspot/cpu/x86/templateTable_x86.cpp Sat May 12 17:22:56 2018 +0530
+++ b/src/hotspot/cpu/x86/templateTable_x86.cpp Mon May 07 09:11:21 2018 +0200
@@ -757,11 +757,14 @@
assert(rbx != array, "different registers");
__ movl(rbx, index);
}
- __ jump_cc(Assembler::aboveEqual,
- ExternalAddress(Interpreter::_throw_ArrayIndexOutOfBoundsException_entry));
+ Label skip;
+ __ jccb(Assembler::below, skip);
+ // Pass array to create more detailed exceptions.
+ __ mov(NOT_LP64(rax) LP64_ONLY(c_rarg1), array);
+ __ jump(ExternalAddress(Interpreter::_throw_ArrayIndexOutOfBoundsException_entry));
+ __ bind(skip);
}
-
void TemplateTable::iaload() {
transition(itos, itos);
// rax: index