RFR: 8345047: RISC-V: Remove explicit use of AvoidUnalignedAccesses in interpreter
Hamlin Li
mli at openjdk.org
Tue Nov 26 11:01:40 UTC 2024
On Tue, 26 Nov 2024 10:57:06 GMT, Hamlin Li <mli at openjdk.org> wrote:
>> Hi, please consider this small interpreter cleanup change.
>>
>> The use of `AvoidUnalignedAccesses` option for these cases doen't much sense to me.
>> MacroAssembler routines like `revb_h_h_u` and `revb_h_h` will emit 5 instructions when Zbb extension is not available. This is more than the case when `AvoidUnalignedAccesses` option is true. After this change, we always emit 4 instructions compared to 3 instructions in the case when we have Zbb extension. But I don't think it will make a difference.
>>
>> Testing on linux-riscv64 platform:
>> - [x] tier1 (release)
>
> src/hotspot/cpu/riscv/interp_masm_riscv.cpp line 182:
>
>> 180: void InterpreterMacroAssembler::get_unsigned_2_byte_index_at_bcp(Register reg, int bcp_offset) {
>> 181: assert(bcp_offset >= 0, "bcp is still pointing to start of bytecode");
>> 182: lbu(t1, Address(xbcp, bcp_offset));
>
> maybe we could expand the revb_h_h here? something like below:
>
> if ((AvoidUnalignedAccesses && (bcp_offset % 2)) || !UseZbb) {
> ...
> } else {
> // expand revb_h_h_u when +UseZbb
> }
similar comments for below changes.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/22387#discussion_r1858263880
More information about the hotspot-dev
mailing list