[8u] RFR for backport of JDK-8164920: ppc: enhancement of CRC32 intrinsic to jdk8u-dev (v3)

Gustavo Romero gromero at linux.vnet.ibm.com
Tue Oct 2 13:42:07 UTC 2018


Hi,

On 09/25/2018 03:29 PM, Gustavo Romero wrote:
> Hi,
> 
> Maybe I please get reviews for the following changes (v2)?
> 
> http://cr.openjdk.java.net/~gromero/crc32_jdk8u/v2/8131048/
> http://cr.openjdk.java.net/~gromero/crc32_jdk8u/v2/8164920/
> 
> Change JDK-8131048 is a dependency to backport JDK-8164920 to 8u.
> 
> Goetz reviewed the first version of this backport and pointed out necessary
> changes and fixes that are present in this v2. Thank you, Goetz.
> 
> There is no code change except to adapt the file paths, to add has_vpmsumb()
> feature detection, and to adapt the signature before doing the runtime call
> to CRC32 intrinsic by casting T_INTs as T_LONGs, because PPC64
> c_calling_convention() requires T_LONGs on 8u, otherwise a proper assert()
> for that is hit.

Additional testing of v2 has found that the connection of CRC32 update method
for ByteBuffers to its intrinsic was missing in the Interpreter:


diff -r a9bebb701e31 src/cpu/ppc/vm/templateInterpreter_ppc.cpp
--- a/src/cpu/ppc/vm/templateInterpreter_ppc.cpp        Mon Sep 24 17:18:38 2018 -0400
+++ b/src/cpu/ppc/vm/templateInterpreter_ppc.cpp        Sun Sep 30 21:58:58 2018 -0400
@@ -1327,9 +1327,12 @@
    case Interpreter::java_lang_math_exp     : entry_point = ((InterpreterGenerator*) this)->generate_math_entry(kind);    break;
    case Interpreter::java_lang_ref_reference_get
                                             : entry_point = ((InterpreterGenerator*)this)->generate_Reference_get_entry(); break;
-  case Interpreter::java_util_zip_CRC32_update  : entry_point = ((InterpreterGenerator*)this)->generate_CRC32_update_entry(); break;
-  case Interpreter::java_util_zip_CRC32_updateBytes : entry_point = ((InterpreterGenerator*)this)->generate_CRC32_updateBytes_entry(kind); break;
-  case Interpreter::java_util_zip_CRC32_updateByteBuffer : break;
+  case Interpreter::java_util_zip_CRC32_update
+                                           : entry_point = ((InterpreterGenerator*)this)->generate_CRC32_update_entry(); break;
+  case Interpreter::java_util_zip_CRC32_updateBytes
+                                           : // fall thru
+  case Interpreter::java_util_zip_CRC32_updateByteBuffer
+                                           : entry_point = ((InterpreterGenerator*)this)->generate_CRC32_updateBytes_entry(kind); break;
    default                                  : ShouldNotReachHere();                                                       break;
    }


Please find v3 which fixes that issue in:

http://cr.openjdk.java.net/~gromero/crc32_jdk8u/v3/8131048/
http://cr.openjdk.java.net/~gromero/crc32_jdk8u/v3/8164920/

Thank you.


Best regards,
Gustavo



More information about the ppc-aix-port-dev mailing list