RFR: 8347489: RISC-V: Misaligned memory access with COH [v4]

Hamlin Li mli at openjdk.org
Wed Jan 15 15:08:44 UTC 2025


On Wed, 15 Jan 2025 15:01:32 GMT, Hamlin Li <mli at openjdk.org> wrote:

>> Fei Yang has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision:
>> 
>>  - Merge branch 'master' into JDK-8347489
>>  - Comment
>>  - Fix assertions
>>  - Add assertions
>>  - Comment
>>  - 8347489: RISC-V: Misaligned memory access with COH
>
> src/hotspot/cpu/riscv/stubGenerator_riscv.cpp line 2474:
> 
>> 2472: 
>> 2473:     // strL is 8-byte aligned
>> 2474:     __ ld(tmpLval, Address(strL));
> 
> This should also be a `load_long_misaligned`?

And the below one in this function?

> src/hotspot/cpu/riscv/stubGenerator_riscv.cpp line 2531:
> 
>> 2529:              tmpL = isLU ? tmp1 : tmp2; // where to keep L for comparison
>> 2530: 
>> 2531:     if ((base_offset1 % 8) == 0) {
> 
> The condition should be `((base_offset1 % 8) != 0)`? Seems we try to make the `strL` aligned in the main loop below.

And do we need below piece of code when `AvoidUnalignedAccesses == false`?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23053#discussion_r1916812662
PR Review Comment: https://git.openjdk.org/jdk/pull/23053#discussion_r1916821094


More information about the hotspot-compiler-dev mailing list