[aarch64-port-dev ] RFR(M): 8201593: Print array length in ArrayIndexOutOfBoundsException.
stuart.monteith at linaro.org
Wed Apr 18 15:55:53 UTC 2018
I've had a look.
Stack trace in gdb for reference..
message=0x3ffb77e0790 "assert(is_single_cpu() && !is_virtual())
failed", detail_fmt=0x3ffb77e0780 "type check", detail_args=...) at
#15 0x000003ffb6ebfbb4 in report_vm_error (file=0x3ffb77e07c0
error_msg=0x3ffb77e0790 "assert(is_single_cpu() && !is_virtual())
detail_fmt=0x3ffb77e0780 "type check") at
#16 0x000003ffb6c0f0d0 in LIR_OprDesc::cpu_regnr (this=0x0) at
#17 0x000003ffb6c43120 in LIR_OprDesc::as_register (this=0x0) at
#18 0x000003ffb6c02ae0 in LIR_OprDesc::as_pointer_register (this=0x0)
#19 0x000003ffb6bfff08 in RangeCheckStub::emit_code
(this=0x3ffb0847e90, ce=0x3ff41a6d290) at
c1_CodeStubs_aarch64.cpp: RangeCheckStub::emit_code(LIR_Assembler* ce)
is being passed a NULL _array, and that is what is failing the
C1 is, from the replay log, compiling "java/nio/HeapByteBuffer". For
these methods, an array is not being passed..
The method void LIRGenerator::do_NIOCheckIndex(Intrinsic* x) creates
RangeCheckStub with a NULL array parameter.
When it comes to RangeCheckStub::emit_code, the following is failing
as _array is NULL:
__ mov(rscratch2, _array->as_pointer_register());
Taking "Runtime1::generate_exception_throw" as an example of what is
called, it either takes no parameters, or now two parameters.
Of course, the following method doesn't take an array:
static void throw_index_exception(JavaThread* thread, int index);
which is what is called by the stubs. I would expect it to be:
static void throw_index_exception(JavaThread* thread, int index, array);
I'll keep digging.
On 18 April 2018 at 14:52, Andrew Haley <aph at redhat.com> wrote:
> On 04/18/2018 12:12 PM, Stuart Monteith wrote:
>> On Aarch64 I'm getting the following during jlinking in the build process:
> DO you want to debug that or shall I?
> Andrew Haley
> Java Platform Lead Engineer
> Red Hat UK Ltd. <https://www.redhat.com>
> EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
More information about the hotspot-compiler-dev