[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