> Found this while cleaning up x86_32 code for removal. > > In our current code there is a block added by > [JDK-8076373](https://bugs.openjdk.org/browse/JDK-8076373): > https://github.com/openjdk/jdk/blob/3b21a298c29d88720f6bfb2dc1f3305b6a3db307/src/hotspot/share/compiler/compileBroker.cpp#L1451-L1473 > > Ostensibly, that block is for x86_32 handling of signalling NaNs -- x87 FPU > has a peculiarity with them. See other funky bugs we seen with it: > [JDK-8285985](https://bugs.openjdk.org/browse/JDK-8285985), > [JDK-8293991](https://bugs.openjdk.org/browse/JDK-8293991). > > But the way current block is coded, it is enabled for X86 wholesale, which > also means x86_64! In fact, it is likely even worse on x86_64, because the > related "fast" entries are generated only for x86_32: > https://github.com/openjdk/jdk/blob/3b21a298c29d88720f6bfb2dc1f3305b6a3db307/src/hotspot/share/interpreter/templateInterpreterGenerator.cpp#L493-L502 > > This can be solved by checking `IA32` instead of `X86`. This block would be > gone completely once we remove x86_32 port. Meanwhile, we can make it right > by x86_64, and make eventual x86_32 removal less confusing. This issue seems > to only affect the compilation of native methods, while most of the hot code > is riding on compiler intrinsics. I'll put performance data in comments. > > Additional testing: > - [x] Linux x86_64 server fastdebug, `all`
Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: Disable IR tests on IA32 ------------- Changes: - all: https://git.openjdk.org/jdk/pull/22446/files - new: https://git.openjdk.org/jdk/pull/22446/files/e24b0060..51cb1660 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=22446&range=02 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=22446&range=01-02 Stats: 1 line in 1 file changed: 1 ins; 0 del; 0 mod Patch: https://git.openjdk.org/jdk/pull/22446.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/22446/head:pull/22446 PR: https://git.openjdk.org/jdk/pull/22446