RFR: JDK-8320892: AArch64: Restore FPU control state after JNI [v3]

Andreas Woess aw at openjdk.org
Wed Nov 29 14:29:15 UTC 2023


On Tue, 28 Nov 2023 15:58:04 GMT, Andrew Haley <aph at openjdk.org> wrote:

>> Some buggy libraries corrupt the floating-point control register. Provide something similar to the x86 RestoreMXCSROnJNICalls. 
>> 
>> I realize that using the x86ish name "RestoreMXCSROnJNICalls" might be a little controversial, but it is a _global_ flag, not a CPU-specific one. And it's clearly intended for this purpose. It might have been better if that flag had been given a better name twentyish years ago, but we can't change it now.
>
> Andrew Haley has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fix thinko

src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp line 4441:

> 4439:     bfi(tmp1, zr, 8, 5);  // Clear exception-control bits (8-12)
> 4440:     eor(tmp2, tmp1, tmp2);
> 4441:     cbz(tmp2, OK);        // Only reset FPCR if it's wrong

should we maybe do the same in [generate_call_stub](https://github.com/openjdk/jdk/pull/16637/files#diff-9112056f732229b18fec48fb0b20a3fe824de49d0abd41fbdb4202cfe70ad114R266), too (likely faster)?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/16851#discussion_r1409364879


More information about the hotspot-dev mailing list