RFR: 8230797: ARM32-softfp: assertion in InterpreterRuntime::resolve_ldc [v2]
David Holmes
david.holmes at oracle.com
Thu Jul 8 13:16:22 UTC 2021
On 8/07/2021 9:09 pm, Christoph Göttschkes wrote:
> On Tue, 6 Jul 2021 13:17:16 GMT, Christoph Göttschkes <cgo at openjdk.org> wrote:
>
>>> Hi,
>>>
>>> please review the following change, which was way too long on my chest. It fixes an assertion in the template interpreter for ARM32-softfp.
>>>
>>> For ARM32-softfp, the template interpreter calls into the runtime to load a double constant using the ldc bytecode. After the interpreter loaded the constants, the assert block does some sanity checks on the cached constants. But if the double constant is the first constant to be loaded, the cache is not yet initialized and the check results in a SIGSEGV.
>>>
>>> I guarded the usage of `ConstantPool::cp_to_object_index` by another check, which tests if there are any resolved references and if that's the case, the cache has already been initialized and the sanity checks can be performed.
>>
>> Christoph Göttschkes has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Adds an additional NULL check for the CP _cache.
>
> I just created [JDK-8270086](https://bugs.openjdk.java.net/browse/JDK-8270086) as a follow up for this one, to fix the template interpreter to no longer use the condy helpers for CONSTANT_double types.
I'm confused. It seems to me there is only one problem here: using
condy_helper for a non-condy situation.
David
PS. Apologies in advance as I saw this just before starting a few days
vacation.
> -------------
>
> PR: https://git.openjdk.java.net/jdk/pull/4582
>
More information about the hotspot-runtime-dev
mailing list