RFR: 8377554: Load card table base and other values via AOTRuntimeConstants in AOT code [v4]
Vladimir Kozlov
kvn at openjdk.org
Tue Feb 24 19:31:36 UTC 2026
On Tue, 24 Feb 2026 16:33:06 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 one additional commit since the last revision:
>
> fix header issue
src/hotspot/cpu/x86/gc/shared/cardTableBarrierSetAssembler_x86.cpp line 118:
> 116: if (AOTCodeCache::is_on_for_dump()) {
> 117: __ movptr(tmp, ExternalAddress(AOTRuntimeConstants::card_table_address()));
> 118: __ movq(tmp, tmp);
I missed this code. It needs to be updated to `lea();movq()` as I proposed in next part of code.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/29884#discussion_r2849136506
More information about the hotspot-dev
mailing list