JDK-8176580 : [ppc, s390] CRC32C: wrong checksum result in some cases
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 10
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: ppc,s390x
  • Submitted: 2017-03-13
  • Updated: 2021-12-03
  • Resolved: 2017-04-18
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 10
10 b21Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
The newly introduced CRC32C intrinsics unfortunately calculate a bad checksum, if
 * the passed-in byte array has an offset != 0
 * the intrinsic implementation is called via the interpreter or via a c1-compiled method.

Reason: 
in contrast to the CRC32 intrinsics, the CRC32C intrinsics receive an end-index parameter instead of a length parameter. The length has to be calculated by the intrinsic as (endIndex - offset). This subtraction was simply forgotten.
Comments
URL: http://hg.openjdk.java.net/jdk10/jdk10/hotspot/rev/6abbd10800bc User: jwilhelm Date: 2017-08-18 18:01:35 +0000
18-08-2017

URL: http://hg.openjdk.java.net/jdk10/hs/hotspot/rev/6abbd10800bc User: simonis Date: 2017-04-18 15:50:16 +0000
18-04-2017

Fix is (almost) ready, currently testing internally. Will create a webrev/RFR on Tuesday am (CET).
13-03-2017

ILW=incorrect results generated, programs on ppc using the CRC32C implementation, disable CRC32C intrinsic=HHL=P2
13-03-2017