[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