Request for reviews (M): 8004835: Improve AES intrinsics on x86
Yasumasa Suenaga
suenaga.yasumasa at lab.ntt.co.jp
Sun Dec 16 17:02:05 PST 2012
Hi Vladimir,
Source operand of Assembler::pshufb() seems to allow misaligned memory address.
Instruction reference of PSHUFB says following:
----------
When the source operand is a 128-bit memory operand, the operand must be aligned
on a 16-byte boundary or a general-protection exception (#GP) will be generated.
----------
Not only non-AVX but also AVX CPU needs 16-byte aligned memory address for source
operand of PSHUFB.
So I think that assert condition for AVX does not required in Assembler::pshufb() .
http://download.intel.com/products/processor/manual/325383.pdf
Thanks,
Yasumasa
On 2012/12/16 7:09, Vladimir Kozlov wrote:
> http://cr.openjdk.java.net/~kvn/8004835/webrev/
>
> Enable AES intrinsics on non-AVX cpus (Westmere), pshufb instruction in load_key() method could be used without AVX because it references only aligned memory "key_shuffle_mask".
>
> Group together aes instructions in encryptBlock/decryptBlock stubs as recommended by Intel Optimization Guide.
>
> Modified test/compiler/7184394 to test "ECB" mode.
>
> Ran compiler regression tests and jdk crypto and security tests with SunJCE default provider.
>
> Thanks,
> Vladimir
More information about the hotspot-compiler-dev
mailing list