[8u] RFR(v2) for backport of JDK-8188868: PPC64: Support AES intrinsics on Big Endian

Kazunori Ogata OGATAK at jp.ibm.com
Tue Dec 11 09:00:09 UTC 2018


Hi,

May I get reviews for revised request for enhancement backport of 
JDK-8188868: PPC64: Support AES intrinsics on Big Endian [12]?

After the discussion in Nov. [13], I found that some older patches also 
need to be backported to reduce the amount of manual changes.  So the 
following is the final list (newer one first) of backported patches, with 
comments how I modified them.  I ran JTREG in CentOS7 BE on POWER8 using 
each of debug build after applying [4] and newer and the release build of 
[1], and found no degradation by these patches.  I also verified that the 
code [1] was built and ran in Ubuntu ppc64le correctly.


[1] 8188868: PPC64: Support AES intrinsics on Big Endian
    Original patch: http://hg.openjdk.java.net/jdk/jdk/rev/9d337e48b178
    Weberv: 
http://cr.openjdk.java.net/~horii/jdk8u_aes_be/8188868/webrev.01/
    Comments: No conflict.

[2] 8185979: PPC64: Implement SHA2 intrinsic
    Original patch: http://hg.openjdk.java.net/jdk/jdk/rev/f4962ab855b6
    Weberv: 
http://cr.openjdk.java.net/~horii/jdk8u_aes_be/8185979/webrev.01/
    Comments: Fixed difference of intrinsic calling convention by passing 
additional argument word for each Long parameter.  Also modified test code 
support ppc.

[3] 8185969: PPC64: Improve VSR support to use up to 64 registers
    Original patch: http://hg.openjdk.java.net/jdk/jdk/rev/057f21a10f5f
    Weberv: 
http://cr.openjdk.java.net/~horii/jdk8u_aes_be/8185969/webrev.01/
    Comments: Cherry picked MTVSRWA_OPCODE from [11].

[4] 8185975: PPC64: Fix vsldoi interface according to the ISA
    Original patch: http://hg.openjdk.java.net/jdk/jdk/rev/1bf8c1e8b79a
    Weberv: 
http://cr.openjdk.java.net/~horii/jdk8u_aes_be/8185975/webrev.01/
    Comments: Applied cleanly.  This is the same change as what Gustavo 
requested RFA to 8u-dev ML last week [14] (besides the copyright dates 
because they are already updated in the patches below).  Since this patch 
has no conflict with other changes, we can skip this one when [14] was 
approved.

[5] 8166684: PPC64: implement intrinsic code with vector instructions for 
Unsafe.copyMemory()
    Original patch: http://hg.openjdk.java.net/jdk/jdk/rev/f1e6a21095f5
    Weberv: 
http://cr.openjdk.java.net/~horii/jdk8u_aes_be/8166684/webrev.01/
    Comments: Applied cleanly.

[6] 8158232: PPC64: improve byte, int and long array copy stubs by using 
VSX instructions
    Original patch: http://hg.openjdk.java.net/jdk/jdk/rev/987528901b83
    Weberv: 
http://cr.openjdk.java.net/~horii/jdk8u_aes_be/8158232/webrev.01/
    Comments: No conflict, but applied manually because patch command got 
confused and failed to find the code to apply.

[7] 8154156: PPC64: improve array copy stubs by using vector instructions
    Original patch: http://hg.openjdk.java.net/jdk/jdk/rev/c9d756fa846e
    Weberv: 
http://cr.openjdk.java.net/~horii/jdk8u_aes_be/8154156/webrev.01/
    Comments: This patch cherry picked config_dscr() and its dependent 
code from [9,10] and has_mfdscr() from [8].


Cherry picked patches:
[8] 8149655: PPC64: Implement CompactString intrinsics
    http://hg.openjdk.java.net/jdk/jdk/rev/6241574f5982
[9] 8080684: PPC64: Fix little-endian build after "8077838: Recent 
developments for ppc"
    http://hg.openjdk.java.net/jdk/jdk/rev/12ccf8b26eb0 
[10] 8077838: Recent developments for ppc.
    http://hg.openjdk.java.net/jdk/jdk/rev/c703c89fddbf
[11] 8181809: PPC64: Leverage mtfprd/mffprd on POWER8
    http://hg.openjdk.java.net/jdk/jdk/rev/3fd9b25850f4


Other references:
[12] https://bugs.openjdk.java.net/browse/JDK-8188868
[13] 
http://mail.openjdk.java.net/pipermail/ppc-aix-port-dev/2018-November/003746.html
[14] 
http://mail.openjdk.java.net/pipermail/jdk8u-dev/2018-December/008276.html


Regards,
Ogata



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