RFR: 8230797: ARM32-softfp: assertion in InterpreterRuntime::resolve_ldc [v2]

Christoph Göttschkes cgo at openjdk.java.net
Thu Jul 8 11:02:54 UTC 2021


On Tue, 6 Jul 2021 23:02:50 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> 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.
>
> src/hotspot/share/interpreter/interpreterRuntime.cpp line 193:
> 
>> 191:     Bytecode_loadconstant ldc2(m, last_frame.bci());
>> 192:     int rindex = ldc2.cache_index();
>> 193:     if (rindex < 0 && m->constants()->resolved_references_or_null() != NULL)
> 
> I don't see how the code can be running in the interpreter before the rewriter runs, which is in the link stage.
> The cp_to_object_index() should return a negative number for the condy on primitive type case.

I am not sure if I follow you. The problem here is that resolve_ldc is **not** called for a condy, but for a CONSTANT_double. Did you follow the discussion on the mailing list? The bot linked it just now, so you might have missed it.
But regardless, returning _no_index_sentinel in cp_to_object_index would solve the current problem as well.

Regardless of what we do for this issue, I have to fix the root cause of all of this later on anyway (making arm32-softfp no longer try to load a CONSTANT_double using the condy helper methods).

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

PR: https://git.openjdk.java.net/jdk/pull/4582


More information about the hotspot-runtime-dev mailing list