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