PPC64 VSX load/store instructions in stubs

Doerr, Martin martin.doerr at sap.com
Tue Apr 5 14:13:49 UTC 2016

Hi Gustavo,

I think such changes are appreciated if they improve performance.

I think VSX instructions can be used as long as we don't violate the ABI (only use volatile registers).
If you add tests for availability of instructions to vm_version_ppc, please also add them to the feature-string in VM_Version::initialize() (add a "%s" and the name of the instruction).
We can assist in getting such changes pushed into hs-comp.

Thanks for working on it. Best regards,

-----Original Message-----
From: Gustavo Romero [mailto:gromero at linux.vnet.ibm.com] 
Sent: Freitag, 1. April 2016 22:36
To: Doerr, Martin <martin.doerr at sap.com>; Simonis, Volker <volker.simonis at sap.com>; ppc-aix-port-dev at openjdk.java.net; hotspot-dev at openjdk.java.net
Cc: brenohl at br.ibm.com
Subject: PPC64 VSX load/store instructions in stubs

Hi Martin, Hi Volker

Currently VSX load/store instructions are not being used in PPC64 stubs,
particularly in arraycopy stubs inside generate_arraycopy_stubs() like,
but not limited to, generate_disjoint_{byte,short,int,long}_copy.

We can speed up mass copy using VSX (Vector-Scalar Extension) load/store
instruction in processors >= POWER8, the same way it's already done for
libc memcpy().

This is an initial patch just for jshort_disjoint_arraycopy() VSX vector


What are your thoughts on that? Is there any impediment to use VSX
instructions in OpenJDK at the moment?

Thank you.

Best regards,

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