RFR: 8154495: SHA256 AVX2 intrinsic (when no supports_sha() available)

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Apr 19 00:09:10 UTC 2016

Hi Jan,

The patch was generated on Windows and have ^M at the end of lines so I 
can't apply it to our sources.

I don't see usage of new [v]movdqa(), vpsrldq(), vpslldq(),  instructions.

Please, move new code in macroAssembler_x86_sha.cpp to the end of file.

_k256_W[] is the same as _k256[] with repeated 4 values. I would suggest 
to generated it dynamically in stubGenerator_x86_64.cpp based on _k256:

StubRoutines::x86::_k256_W_adr = generate_k256_W();

What testing was done? Did you ran with fastdebug build? I am concern 
about size of new stub and current code_size2 is enough.


On 4/18/16 2:44 PM, Civlin, Jan wrote:
> == Correction in the subject line ===
> We would like to contribute the SHA256 AVX2 intrinsic.
> This intrinsic is for x86 AVX2 architecture when no supports_sha() is available. It is L64 code only.
> The patch delivers x2 performance gain for the latency and throughput - both are measured on an average message.
> Contributor: Jan Civlin.
> bug: https://bugs.openjdk.java.net/browse/JDK-8154495
> webrev: http://cr.openjdk.java.net/~vdeshpande/8154495/webrev.00/

More information about the hotspot-compiler-dev mailing list