RFR: 8256245: AArch64: Implement Base64 decoding intrinsic [v6]

Dong Bo dongbo at openjdk.java.net
Thu Apr 8 06:39:11 UTC 2021


On Wed, 7 Apr 2021 09:53:36 GMT, Andrew Haley <aph at openjdk.org> wrote:

>> src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp line 5829:
>> 
>>> 5827:     __ strb(r14, __ post(dst, 1));
>>> 5828:     __ strb(r15, __ post(dst, 1));
>>> 5829:     __ strb(r13, __ post(dst, 1));
>> 
>> I think this sequence should be 4 BFMs, STRW, BFM, STRW. That's the best we can do, I think.
>
> Sorry, that's not quite right, but you get the idea: let's not generate unnecessary memory traffic.

Okay, implemented as:
__ lslw(r14, r10, 10);
__ bfiw(r14, r11, 4, 6);
__ bfmw(r14, r12, 2, 5);
__ rev16w(r14, r14);
__ bfiw(r13, r12, 6, 2);
__ strh(r14, __ post(dst, 2));
__ strb(r13, __ post(dst, 1));

-------------

PR: https://git.openjdk.java.net/jdk/pull/3228


More information about the hotspot-compiler-dev mailing list