Integrated: 8351158: Incorrect APX EGPR register save ordering
Jatin Bhateja
jbhateja at openjdk.org
Wed Mar 5 01:37:13 UTC 2025
On Tue, 4 Mar 2025 12:08:57 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
> Currently, EGPR register save ordering[1] does not comply with the precomputed stack offsets[2]. This leads to incorrect register value reconstruction and various runtime clients using callee's RegisterMap like GC root set enumeration, de-optimization object reconstruction experience assertion failures due to unrecognizable oop pointer locations.
>
> This issue was discovered during our internal validation of SPECjvm2008 worklets with -XX:+UseAPX runtime flag using Intel SDE tool.
>
> Quick note on polling SafePoints :-
> SafePointNode at polling sites like method return or [outer] loop latches are different from the ones associated with Call sites as we do not spill caller saved registers before them, hence runtime handling for rootset enumeration to detect the oop pointer addresses in last activation solely relies on the RegisterMap populated by reading the RegisterSaver stack dumps.
>
> Kindly review and share your feedback.
>
> Best Regards,
> Jatin
>
> [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp#L268
> [2] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp#L105
This pull request has now been integrated.
Changeset: 62fa33a8
Author: Jatin Bhateja <jbhateja at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/62fa33a8704aef9fd08a8221f4fde217ab749dfc
Stats: 31 lines in 1 file changed: 13 ins; 14 del; 4 mod
8351158: Incorrect APX EGPR register save ordering
Reviewed-by: kvn, sviswanathan
-------------
PR: https://git.openjdk.org/jdk/pull/23895
More information about the hotspot-compiler-dev
mailing list