[8u] RFR(XS): 8205440: [8u] DWORD64 required for later Windows compilers

Kevin Walls kevin.walls at oracle.com
Wed Jun 20 21:25:05 UTC 2018


Hi,

I'd  like to get a review of a small change which will help enable 
comilation on Windows with later Visual Studio compilers:

8205440: [8u] DWORD64 required for later Windows compilers
https://bugs.openjdk.java.net/browse/JDK-8205440

The change is:

src/os/windows/vm/os_windows.cpp
@@ -2261,9 +2296,9 @@
    assert((pc[1] & ~0x7) == 0xF8, "cannot handle non-register operands");
    assert(ctx->Rax == min_jint, "unexpected idiv exception");
    // set correct result values and continue after idiv instruction
-  ctx->Rip = (DWORD)pc + 2;        // idiv reg, reg  is 2 bytes
-  ctx->Rax = (DWORD)min_jint;      // result
-  ctx->Rdx = (DWORD)0;             // remainder
+  ctx->Rip = (DWORD64)pc + 2;        // idiv reg, reg  is 2 bytes
+  ctx->Rax = (DWORD64)min_jint;      // result
+  ctx->Rdx = (DWORD64)0;             // remainder
    // Continue the execution
    #else
    PCONTEXT ctx = exceptionInfo->ContextRecord;

This change is inside Handle_IDiv_Exception, and is within an #ifdef  
_M_AMD64 (there is use of DWORD in the #else).  At other points in the 
same file we correctly use DWORD64 already.  If that's unclear of needs 
a webrev I'll produce one...

In JDK9, these DWORD changed to DWORD64 as a minor byproduct of:
8136421: JEP 243: Java-Level JVM Compiler Interface
...which we aren't implementing in jdk8 right now.

I've been running with this change in my local builds with VS2017 and 
jprt builds with the regular 8u compiler.

Thanks
Kevin




More information about the hotspot-runtime-dev mailing list