RFR(S) 8200067: Vector Carry-less Multiplication support

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Mar 23 21:46:58 UTC 2018


Hi Shravya,

macroAssembler_x86.cpp:

Why you placed xmm0 initialization before size check?:

+   movdqu(xmm0, ExternalAddress(StubRoutines::x86::crc_by128_masks_addr() + 32));

I think initialization and the check should be inside code guarded by supports_vpclmulqdq().

L_Parallel is not used - no jump to it.

Thanks,
Vladimir

On 3/22/18 12:11 PM, Rukmannagari, Shravya wrote:
> Hi everyone,
> 
> As per “Intel Architecture Instruction Set Extensions and Future Features Programming Reference” 
> manual [1], vector carry-less multiplication (vpclmulqdq) instruction will be supported in future 
> Intel ISA. I have updated the CRC32 algorithm to take advantage of this instruction. I have tested 
> with Intel SDE [2] to confirm encoding and semantics are correctly implemented. Please take a look 
> and let me know if you have any questions or comments.
> 
> http://cr.openjdk.java.net/~vdeshpande/ICL_crc32/webrev.00/
> 
> Thanks,
> 
> Shravya.
> 
> [1] 
> https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf
> 
> [2] https://software.intel.com/en-us/articles/intel-software-development-emulator
> 
> [3] https://bugs.openjdk.java.net/browse/JDK-8200067
> 


More information about the hotspot-compiler-dev mailing list