RFR: 8367325: [s390x] build failure due to JDK-8361376

Martin Doerr mdoerr at openjdk.org
Thu Sep 11 10:43:38 UTC 2025


On Thu, 11 Sep 2025 09:51:29 GMT, Amit Kumar <amitkumar at openjdk.org> wrote:

> Fixes the SIGLL caused after [JDK-8361376](https://bugs.openjdk.org/browse/JDK-8361376). 
> 
> Issue was with `cs` instruction, which requires the address to be aligned. And after this change address at which operating was not aligned.
> 
> Wisdom from Principle of Z Operations: 
> 
> Sytax: CS R<sub>1</sub>,R<sub>3</sub>,D<sub>2</sub>(B<sub>2</sub>)
> 
> Sytax: CSY R<sub>1</sub>,R<sub>3</sub>,D<sub>2</sub>(B<sub>2</sub>)
> 
> `
> The second operand of COMPARE AND SWAP (CS, CSY) must be designated on a word boundary.
> `
> 
> 
> 
> => 0x3fffc3149ba <_ZN17BarrierSetNMethod15set_guard_valueEP7nmethodii+266>: cs %r1,%r4,0(%r3)
> (gdb) i r r3
> r3             0x3ffe500017a       4397593526650
> (gdb) p ($r3 % 8) 
> $5 = 2
> (gdb) si 
> 
> Thread 16 "C1 CompilerThre" received signal SIGILL, Illegal instruction.
> NativeMethodBarrier::set_guard_value (bit_mask=2147483647, value=1, this=0x3ffe5000166)
>     at /home/amit/jdk/src/hotspot/cpu/s390/gc/shared/barrierSetNMethod_s390.cpp:74
> 74         if (v == old_value) break;

I think `align(4)` would be sufficient.
The offset of the immediate field of `cfi` is 3*6+2 = 20 which is already a multiple of 4. Aligning the start of the sequence to 4 should be the right thing.
Please add a comment explaining that the immediate field of `cfi` needs to be 4-Byte aligned!

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

PR Comment: https://git.openjdk.org/jdk/pull/27213#issuecomment-3279845043


More information about the hotspot-dev mailing list