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