RFR: 8377554: Load card table base and other values via AOTRuntimeConstants in AOT code [v5]

Andrew Dinn adinn at openjdk.org
Wed Feb 25 11:00:40 UTC 2026


On Tue, 24 Feb 2026 20:58:36 GMT, Andrew Dinn <adinn at openjdk.org> wrote:

>> Generated stubs and nmethods embed some runtime-derived constants, such as the card table base, directly into code as instruction operands. AOT code generation cannot rely on these constants being valid between the assembly run and a production run and adjusting the constants at load time is not currently supported. So, instead AOT generation must employ code which loads the constants from a table whose address can be relocated at load time.
>
> Andrew Dinn has updated the pull request incrementally with four additional commits since the last revision:
> 
>  - rename card tabel field and load it correctly
>  - use correct load and remove redudnant mov
>  - fix comment
>  - fix pointer deref

The C2 change in file type.hpp is causing problems in the aarch64.ad back end. The specific breakage is because a `loadConPNode` is referring to `JvmtiExport::_should_notify_object_alloc` with type `relocInfo::external_word_type` and the current code only expects to see type `relocInfo::none`. I am working on a patch.

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

PR Comment: https://git.openjdk.org/jdk/pull/29884#issuecomment-3958345707


More information about the hotspot-dev mailing list