RFR (XS) 8215354: x86_32 build failures after JDK-8214074 (Ghash optimization using AVX instructions)

Tobias Hartmann tobias.hartmann at oracle.com
Thu Dec 13 13:52:11 UTC 2018


Hi Aleksey,

looks good and trivial to me.

Best regards,
Tobias

On 13.12.18 14:40, Aleksey Shipilev wrote:
> Bug:
>  https://bugs.openjdk.java.net/browse/JDK-8215354
> 
> New methods are declared in _LP64 block. Their definitions should also be protected with _LP64,
> otherwise x86_32 build fails. It is a separate question if those implementations should even be
> supported on x86_32, and if the intent was to have them only in 64-bit variant.
> 
> Fix:
> 
> diff -r 6108789077bb src/hotspot/cpu/x86/macroAssembler_x86_aes.cpp
> --- a/src/hotspot/cpu/x86/macroAssembler_x86_aes.cpp    Thu Dec 13 14:10:00 2018 +0100
> +++ b/src/hotspot/cpu/x86/macroAssembler_x86_aes.cpp    Thu Dec 13 14:33:33 2018 +0100
> @@ -27,10 +27,11 @@
>  #include "asm/assembler.hpp"
>  #include "asm/assembler.inline.hpp"
>  #include "runtime/stubRoutines.hpp"
>  #include "macroAssembler_x86.hpp"
> 
> +#ifdef _LP64
>  // Multiply 128 x 128 bits, using 4 pclmulqdq operations
>  void MacroAssembler::schoolbookAAD(int i, Register htbl, XMMRegister data,
>      XMMRegister tmp0, XMMRegister tmp1, XMMRegister tmp2, XMMRegister tmp3) {
>      movdqu(xmm15, Address(htbl, i * 16));
>      vpclmulhqlqdq(tmp3, data, xmm15); // 0x01
> @@ -317,6 +318,7 @@
>      // zero out xmm registers used for Htbl storage
>      vpxor(xmm0, xmm0, xmm0, Assembler::AVX_128bit);
>      vpxor(xmm1, xmm1, xmm1, Assembler::AVX_128bit);
>      vpxor(xmm3, xmm3, xmm3, Assembler::AVX_128bit);
>      vpxor(xmm15, xmm15, xmm15, Assembler::AVX_128bit);
> -}
> \ No newline at end of file
> +}
> +#endif // _LP64
> 
> 
> Testing: x86_32 build, x86_64 build
> 
> Thanks,
> -Aleksey
> 


More information about the hotspot-compiler-dev mailing list