[8u] RFR for backport of JDK-8164920: ppc: enhancement of CRC32 intrinsic to jdk8u-dev (v3)
Lindenmaier, Goetz
goetz.lindenmaier at sap.com
Tue Oct 2 14:03:09 UTC 2018
Hi Gustavo,
Your change looks good.
I ran build and tests on aix and linux ppc64 be which are fine.
Best regards,
Goetz.
> -----Original Message-----
> From: Gustavo Romero <gromero at linux.vnet.ibm.com>
> Sent: Dienstag, 2. Oktober 2018 15:42
> To: hotspot-compiler-dev at openjdk.java.net; jdk8u-dev at openjdk.java.net
> Cc: ppc-aix-port-dev at openjdk.java.net; Lindenmaier, Goetz
> <goetz.lindenmaier at sap.com>; Doerr, Martin <martin.doerr at sap.com>
> Subject: Re: [8u] RFR for backport of JDK-8164920: ppc: enhancement of
> CRC32 intrinsic to jdk8u-dev (v3)
>
> 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