RFR: 8349686: [s390x] C1: Improve Class.isInstance intrinsic [v8]

Amit Kumar amitkumar at openjdk.org
Thu Feb 20 11:50:53 UTC 2025


On Thu, 20 Feb 2025 11:42:57 GMT, Amit Kumar <amitkumar at openjdk.org> wrote:

>> I missed that because you were using different names for the same register in this function. I searched for `Z_R0_scratch`. It would be better if you decided what to call `Z_R0`, and used the same name consistently for all usages, including `assert_different_registers()`.
>
> I have moved the result in volatile-float registers, instead of using stack for the shuffling. With that we can get rid of `Z_R0_scratch` from `assert_different_registers` as per your suggestion.

For verification I made it to crash manually, and we are seeing correct values only: 


#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/home/amit/isInstanceIntrinsic/jdk/src/hotspot/share/oops/klass.cpp:1330), pid=3145509, tid=3145513
#  fatal error: mismatch: java.nio.HeapByteBuffer implements sun.nio.ch.DirectBuffer: linear_search: 1; table_lookup: 1
#
# JRE version: OpenJDK Runtime Environment (25.0) (fastdebug build 25-internal-adhoc.amit.jdk)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 25-internal-adhoc.amit.jdk, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-s390x)


All of the registers have retrieved the correct values back.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23535#discussion_r1963424683


More information about the hotspot-dev mailing list