RFR: 8339783: Implementation of JEP 479: Remove the Windows 32-bit x86 Port

Magnus Ihse Bursie ihse at openjdk.org
Mon Oct 28 18:28:44 UTC 2024


On Mon, 28 Oct 2024 18:09:41 GMT, Magnus Ihse Bursie <ihse at openjdk.org> wrote:

> This is the implementation of [JEP 479: _Remove the Windows 32-bit x86 Port_](https://openjdk.org/jeps/479).
> 
> This is the summary of JEP 479:
>> Remove the source code and build support for the Windows 32-bit x86 port. This port was [deprecated for removal in JDK 21](https://openjdk.org/jeps/449) with the express intent to remove it in a future release.

For this patch, I have removed the parts of the build that I knew of that were related to 32-bit Windows. Furthermore, I have searched for all defines across the code base that are related to 32-bit Windows, and removed the parts of the code that is no longer relevant. I have also made a cross-codebase search for terms like "win" and "32" and glanced through the results (that was a huge list) to see if I could spot anything that might need attention. 

There might of course still be special code that was developed to take care of Windows 32-bit that is no longer needed, but that is hard to find automatically. If anyone knows about some particular code, please let me know!

Most of the code was trivial to handle, but there are a few instances where I'd like some input from code owners. I've marked these with `FIXME` in the patch.

src/hotspot/cpu/x86/interpreterRT_x86_32.cpp line 47:

> 45: #ifdef AMD64
> 46: #ifdef _WIN64
> 47:    // FIXME: This is weird. How can we ever have _WIN64 for 32-bit code? I wonder what was meant. /ihse

I think this piece of code will never get compiled and should be removed, and just the `#else` clause kept, but I guess some code archaeology is in place to figure out how and why this was added in the first place.

src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp line 1478:

> 1476:   int frame_complete = ((intptr_t)__ pc()) - start;
> 1477: 
> 1478:   // FIXME: The logic below do not apply anymore. Should we change anything? /ihse

This file is now Linux only, so we should be able to remove any Windows special code. Someone with better knowledge about the product needs to confirm that the comment is indeed correct, and that this was only needed on Windows.

src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp line 1714:

> 1712:   __ restore_cpu_control_state_after_jni(noreg);
> 1713: 
> 1714:   // FIXME: The logic below do not apply anymore. Should we change anything? /ihse

Same here as above.

src/hotspot/cpu/x86/x86_32.ad line 3715:

> 3713: %}
> 3714: 
> 3715: // FIXME: The logic below do not apply anymore. Should we change anything? /ihse

Here too we don't need Windows-specific support, since this is Linux only. But I need confirmation that the comment is correct so this code is really just Windows-specific.

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

PR Comment: https://git.openjdk.org/jdk/pull/21744#issuecomment-2442297077
PR Review Comment: https://git.openjdk.org/jdk/pull/21744#discussion_r1819532224
PR Review Comment: https://git.openjdk.org/jdk/pull/21744#discussion_r1819533829
PR Review Comment: https://git.openjdk.org/jdk/pull/21744#discussion_r1819533988
PR Review Comment: https://git.openjdk.org/jdk/pull/21744#discussion_r1819535092


More information about the nio-dev mailing list