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

Vladimir Kozlov kvn at openjdk.org
Tue Feb 24 05:52:24 UTC 2026


On Mon, 23 Feb 2026 16:59:53 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.

src/hotspot/share/code/aotCodeCache.cpp line 1460:

> 1458:     // n.b. use local as macro consumes arg multiple times
> 1459:     address to_add = *p++;
> 1460:     SET_ADDRESS(_extrs, to_add);

Should we use this local in premain repo too?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/29884#discussion_r2844666955


More information about the hotspot-dev mailing list