We had invalid casts in address computation. The pointer was cast to long, which on Windows is 32bit, so the upper bits were lost. Webrev: http://cr.openjdk.java.net/~iveresov/7046893/webrev.00/ Contributed by: Thomas.Salter at unisys.com