Where does the openjdk JVM interpreter execute the bytecode instanceof operation

zhengxianwei baikaishiuc at gmail.com
Fri May 3 02:56:23 UTC 2024


Sorry, the format of the previous email was incorrect. I've rearranged it.

Hello everyone, I'm a simulator developer working on ARM <-> X86 simulator
development.

I've run into an issue , the crash occurred while running an x86 version of
dbeaver on an ARM processor. (https://github.com/dbeaver/dbeaver).

As a Java novice, I tried debugging with jdb and initially found that the
instanceof operation returns different results on x86 and ARM architectures.


So, I wanted to examine the specific execution process of instanceof using
the -Xint mode.

However, I could only find the instanceof execution during the JIT process (
https://github.com/openjdk/jdk/blob/6bef0474c8b8773d0d20c0f25c36a2ce9cdbd7e8/src/hotspot/cpu/x86/templateTable_x86.cpp#L4243
).

I couldn't locate where instanceof is executed in the interpreter.

I tried searching all files within the project containing instanceof and
adding print statements, but to no avail. Perhaps I made a mistake somewhere
.

I thought the most likely place where the interpreter executes instanceof
would be:
https://github.com/openjdk/jdk/blob/6bef0474c8b8773d0d20c0f25c36a2ce9cdbd7e8/src/hotspot/share/interpreter/zero/bytecodeInterpreter.cpp#L2079
.

However, it seems that it didn't execute there either. So, my question is,
where does the openjdk JVM interpreter execute the bytecode instanceof
operation?

On Fri, May 3, 2024 at 10:32 AM zhengxianwei <baikaishiuc at gmail.com> wrote:

> Hello everyone, I'm a simulator developer working on ARM <-> X86
> simulator development. I've run into an issue , the crash occurred while
> running an x86 version of dbeaver on an ARM processor. (
> https://github.com/dbeaver/dbeaver). As a Java novice, I tried debugging
> with jdb and initially found that the instanceof operation returns
> different results on x86 and ARM architectures. So, I wanted to examine
> the specific execution process of instanceof using the -Xint mode. However,
> I could only find the instanceof execution during the JIT process (
> https://github.com/openjdk/jdk/blob/6bef0474c8b8773d0d20c0f25c36a2ce9cdbd7e8/src/hotspot/cpu/x86/templateTable_x86.cpp#L4243
> ). I couldn't locate where instanceof is executed in the interpreter. I
> tried searching all files within the project containing instanceof and
> adding print statements, but to no avail. Perhaps I made a mistake
> somewhere. I thought the most likely place where the interpreter executes
> instanceof would be:
> https://github.com/openjdk/jdk/blob/6bef0474c8b8773d0d20c0f25c36a2ce9cdbd7e8/src/hotspot/share/interpreter/zero/bytecodeInterpreter.cpp#L2079
> . However, it seems that it didn't execute there either. So, my question
> is, where does the openjdk JVM interpreter execute the bytecode
> instanceof operation?
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-dev/attachments/20240503/425081b3/attachment-0001.htm>


More information about the hotspot-dev mailing list