RFR: 8365265: x86 short forward jump exceeds 8-bit offset in methodHandles_x86.cpp when using Intel APX [v2]

Jatin Bhateja jbhateja at openjdk.org
Wed Aug 13 06:59:18 UTC 2025


On Wed, 13 Aug 2025 00:54:53 GMT, Srinivas Vamsi Parasa <sparasa at openjdk.org> wrote:

>> The goal of this PR is to address the failure caused by x86 forward jump offset exceeding imm8 displacement when running the HotSpot jtreg test `test/hotspot/jtreg/compiler/c2/TestLWLockingCodeGen.java` using Intel APX (on SDE emulator).
>> 
>> This bug triggers an assertion failure in methodHandles_x86.cpp because the assembler emits a short forward jump (imm8 displacement) whose target is more than 127 bytes away, exceeding the allowed range. This appears to be caused by larger stub code size when APX instruction encoding is enabled.
>> 
>> The fix for this issue is to replace the `jccb` instruction with` jcc` in methodHandles_x86.cpp.
>
> Srinivas Vamsi Parasa has updated the pull request incrementally with one additional commit since the last revision:
> 
>   change jccb to jcc in line 157

LGTM.

Hi @vamsi-parasa , thanks for fixing this :-),  Some additional tid-bit :-),  assembler tries to optimize jcc with jccb for bounded label backward branches, a branch label is bound if it's a backward jump.

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

Marked as reviewed by jbhateja (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/26731#pullrequestreview-3114180560


More information about the hotspot-compiler-dev mailing list