-
Bug
-
Resolution: Fixed
-
P3
-
25
-
b03
-
x86
-
generic
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8359953 | 25 | Srinivas Parasa | P3 | Open | Unresolved |
The value of max_size of the C2CodeStub in C2_MacroAssembler::convertF2I() function is hardcoded to 23. However, this value is incorrect when Intel APX instructions with extended general purpose registers (EGPRs) are used. Using EGPRs when APX is enabled in the JVM leads to an increase in the instruction encoding size by additional 4 bytes.
Without this fix, we see the following errors for the C2 compiler tests below:
compiler/vectorization/runner/ArrayTypeConvertTest.java
compiler/intrinsics/zip/TestFpRegsABI.java
The error message is:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/src/hotspot/share/opto/c2_CodeStubs.cpp:50), pid=3961123, tid=3961332
# assert(max_size >= actual_size) failed: Expected stub size (23) must be larger than or equal to actual stub size (24)
#
# JRE version: OpenJDK Runtime Environment (26.0) (fastdebug build 26-internal-adhoc.parasa.jdkdemotion)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 26-internal-adhoc.parasa.jdkdemotion, mixed mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x955a77] C2CodeStubList::emit(C2_MacroAssembler&)+0x227
#
#
Without this fix, we see the following errors for the C2 compiler tests below:
compiler/vectorization/runner/ArrayTypeConvertTest.java
compiler/intrinsics/zip/TestFpRegsABI.java
The error message is:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/src/hotspot/share/opto/c2_CodeStubs.cpp:50), pid=3961123, tid=3961332
# assert(max_size >= actual_size) failed: Expected stub size (23) must be larger than or equal to actual stub size (24)
#
# JRE version: OpenJDK Runtime Environment (26.0) (fastdebug build 26-internal-adhoc.parasa.jdkdemotion)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 26-internal-adhoc.parasa.jdkdemotion, mixed mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x955a77] C2CodeStubList::emit(C2_MacroAssembler&)+0x227
#
#
- backported by
-
JDK-8359953 Fix incorrect value for max_size of C2CodeStub when APX is used
-
- Open
-
- caused by
-
JDK-8329030 Intel Advanced Performance Extension support
-
- Open
-
- links to
-
Commit(master) openjdk/jdk/b52af182
-
Review(master) openjdk/jdk/25787