# HG changeset patch # User adinn # Date 1527091071 0 # Node ID cc2b36619704e7b6b702718ef5fe1159d0c5ed79 # Parent d8327f838b881a00e26392c5bd31b8b7aa0ac822 8203699: java/lang/invoke/SpecialInterfaceCall fails with SIGILL on aarch64 Summary: fastdebug build fails with SIGILL Reviewed-by: shade, drwhite, aph diff -r d8327f838b88 -r cc2b36619704 src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp --- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp Fri May 25 07:22:37 2018 -0700 +++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp Wed May 23 15:57:51 2018 +0000 @@ -1224,7 +1224,6 @@ assert(sub_klass != r0, "killed reg"); // killed by mov(r0, super) assert(sub_klass != r2, "killed reg"); // killed by lea(r2, &pst_counter) - // Get super_klass value into r0 (even if it was in r5 or r2). RegSet pushed_registers; if (!IS_A_TEMP(r2)) pushed_registers += r2; if (!IS_A_TEMP(r5)) pushed_registers += r5; @@ -1235,6 +1234,11 @@ push(pushed_registers, sp); + // Get super_klass value into r0 (even if it was in r5 or r2). + if (super_klass != r0) { + mov(r0, super_klass); + } + #ifndef PRODUCT mov(rscratch2, (address)&SharedRuntime::_partial_subtype_ctr); Address pst_counter_addr(rscratch2);