[jdk11u-dev] RFR: 8235385: Crash on aarch64 JDK due to long offset [v2]

Andrew Haley aph at openjdk.java.net
Wed Mar 30 13:07:42 UTC 2022


On Wed, 30 Mar 2022 12:08:22 GMT, Alexey Pavlyutkin <duke at openjdk.java.net> wrote:

>> Hi!
>> 
>> Please review "backport" of [Wang Zhuo's patch](http://cr.openjdk.java.net/~wzhuo/BigOffsetAarch64/webrev.00/jdk13u.patch) to 11u-dev. The patch is applied with the following adaptation:
>> 
>> - the legitimizing overload
>> 
>> static void loadStore(MacroAssembler masm, mem_insn insn,
>>                          Register reg, int opcode,
>>                          Register base, int index, int size, int disp,
>>                          int size_in_memory);
>> 
>> ported from 15u-dev with slight changes
>> -  `aarch64_enc_strh`, `aarch64_enc_strh0`, `aarch64_enc_strw`, `aarch64_enc_strw0`, `aarch64_enc_str`, and `aarch64_enc_str0` functions updated to use new loadStore() overload
>> 
>> Verified (18.04.6 LTS/aarch64) with the reproducers from JBS, 10 of 10 runs passed. Aproximately a half of runs crashed before I've applied the patch.
>> 
>> Regression (18.04.6 LTS/aarch64): hotspot_compiler
>> 
>> @theRealAph @AntonKozlov please take a look at that. Andrew, I could not mention Wang, if you know his ID could you mention him as well. Thank you
>
> Alexey Pavlyutkin has updated the pull request incrementally with one additional commit since the last revision:
> 
>   removing unwanted assert

src/hotspot/cpu/aarch64/aarch64.ad line 2665:

> 2663:     MacroAssembler _masm(&cbuf);
> 2664:     loadStore(_masm, &MacroAssembler::strh, zr, $mem->opcode(),
> 2665:                as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp, 2);

This stuff is all generated from `ad_encode.m4`. Please edit that file, then regenerate everything between

`  // BEGIN Non-volatile memory access`

and

`  // END Non-volatile memory access`

-------------

PR: https://git.openjdk.java.net/jdk11u-dev/pull/960


More information about the jdk-updates-dev mailing list