Mercurial > hg > icedtea8-forest > hotspot
changeset 10807:8c532622ac0b
8203699, PR3797: java/lang/invoke/SpecialInterfaceCall fails with SIGILL on aarch64
Summary: fastdebug build fails with SIGILL
Reviewed-by: shade, drwhite, aph
author | fyang |
---|---|
date | Wed, 12 Aug 2020 19:59:24 +0800 |
parents | 7cd0ae703ffd |
children | b58d341cef20 |
files | src/cpu/aarch64/vm/macroAssembler_aarch64.cpp |
diffstat | 1 files changed, 5 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp Sun Jun 24 15:02:08 2018 +0300 +++ b/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp Wed Aug 12 19:59:24 2020 +0800 @@ -1192,7 +1192,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; @@ -1203,6 +1202,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);