[aarch64-port-dev ] RFR(S): 8154537: AArch64: some integer rotate instructions are never emitted

Felix Yang felix.yang at linaro.org
Tue Aug 1 12:43:12 UTC 2017


LGTM. This also addresses:
http://cr.openjdk.java.net/~fyang/8157906/webrev.00/src/cpu/aarch64/vm/aarch64.ad.sdiff.html

Thanks,
Felix

On 29 July 2017 at 01:59, Andrew Haley <aph at redhat.com> wrote:

> I'm looking at the webrev in
> http://cr.openjdk.java.net/~roland/8154537/webrev.00/ and I see the
> the changes were made to aarch64.ad but not to ad_aarch64.m4.  This is
> problematic because some .m4 files are used to generate the .ad file,
> and if anyone regenerates the .ad file the bug will regress.
>
> I think this is the change we need to make.  It won't affect generated
> code at all, but it is something of a ticking bomb.
>
> diff -r 214a94e9366c src/cpu/aarch64/vm/aarch64_ad.m4
> --- a/src/cpu/aarch64/vm/aarch64_ad.m4  Mon Jul 17 12:11:32 2017 +0000
> +++ b/src/cpu/aarch64/vm/aarch64_ad.m4  Fri Jul 28 18:57:25 2017 +0100
> @@ -268,21 +268,21 @@
>    ins_pipe(ialu_reg_reg_vshift);
>  %}')dnl
>  define(ROL_INSN, `
> -instruct $3$1_rReg_Var_C$2(iRegLNoSp dst, iRegL src, iRegI shift, immI$2
> c$2, rFlagsReg cr)
> +instruct $3$1_rReg_Var_C$2(iReg$1NoSp dst, iReg$1 src, iRegI shift,
> immI$2 c$2, rFlagsReg cr)
>  %{
>    match(Set dst (Or$1 (LShift$1 src shift) (URShift$1 src (SubI c$2
> shift))));
>
>    expand %{
> -    $3L_rReg(dst, src, shift, cr);
> +    $3$1_rReg(dst, src, shift, cr);
>    %}
>  %}')dnl
>  define(ROR_INSN, `
> -instruct $3$1_rReg_Var_C$2(iRegLNoSp dst, iRegL src, iRegI shift, immI$2
> c$2, rFlagsReg cr)
> +instruct $3$1_rReg_Var_C$2(iReg$1NoSp dst, iReg$1 src, iRegI shift,
> immI$2 c$2, rFlagsReg cr)
>  %{
>    match(Set dst (Or$1 (URShift$1 src shift) (LShift$1 src (SubI c$2
> shift))));
>
>    expand %{
> -    $3L_rReg(dst, src, shift, cr);
> +    $3$1_rReg(dst, src, shift, cr);
>    %}
>  %}')dnl
>  ROL_EXPAND(L, rol, rorv)
>
> --
> Andrew Haley
> Java Platform Lead Engineer
> Red Hat UK Ltd. <https://www.redhat.com>
> EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
>


More information about the aarch64-port-dev mailing list