RFR: 8350258: AArch64: Client build fails after JDK-8347917
Dmitry Chuyko
dchuyko at openjdk.org
Wed Feb 19 07:19:54 UTC 2025
On Wed, 19 Feb 2025 00:46:58 GMT, Dean Long <dlong at openjdk.org> wrote:
>> The location for rfp should be set in in the register map. In particular, it wasn't set in frame::sender_for_interpreter_frame() if neither C2 nor JVMCI were included.
>>
>> COMPILER1_OR_COMPILER2 condition is used instead of COMPILER2_OR_JVMCI, which also covers INCLUDE_JVMCI case.
>
> src/hotspot/cpu/aarch64/frame_aarch64.cpp line 512:
>
>> 510: #if COMPILER1_OR_COMPILER2
>> 511: if (map->update_map()) {
>> 512: update_map_with_saved_link(map, (intptr_t**) addr_at(link_offset));
>
> Is it correct that this is only needed when PreserveFramePointer is false, and it's harmless to do when PreserveFramePointer is true?
Yes. I'd say rfp always has a location, but it only can contain oop if PreserveFramePointer is false.
See MacroAssembler::build_frame()/remove_frame()
https://github.com/openjdk/jdk/blob/57f4c30fb6be1da57c8fcc742b5c36d842eef397/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp#L5710
and frame::update_map_with_saved_link()
https://github.com/openjdk/jdk/blob/57f4c30fb6be1da57c8fcc742b5c36d842eef397/src/hotspot/cpu/aarch64/frame_aarch64.inline.hpp#L451
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23682#discussion_r1961081199
More information about the hotspot-dev
mailing list