[aarch64-port-dev ] RFR: 88158361: AArch64: Address calculation missed optimizations
Zhongwei Yao
zhongwei.yao at linaro.org
Tue Jun 27 03:06:40 UTC 2017
On 26 June 2017 at 21:55, Andrew Haley <aph at redhat.com> wrote:
> One other thing: this hunk looks wrong:
>
> diff --git a/src/cpu/aarch64/vm/aarch64.ad b/src/cpu/aarch64/vm/aarch64.ad
> --- a/src/cpu/aarch64/vm/aarch64.ad
> +++ b/src/cpu/aarch64/vm/aarch64.ad
> @@ -12789,7 +12800,7 @@
> %{
> match(Set dst (AddL src1 (ConvI2L src2)));
> ins_cost(INSN_COST);
> - format %{ "add $dst, $src1, sxtw $src2" %}
> + format %{ "add $dst, $src1, $src2, sxtw" %}
>
For example, the old format is:
add x0, x1, sxtw x2
The new format is:
add x0, x1, x2, sxtw
Note there is no "#<amount>" here, only "<extend>" in above cases. So I
feel the new one fits better to ARM ARM, right?
>
> ins_encode %{
> __ add(as_Register($dst$$reg), as_Register($src1$$reg),
> @@ -12802,7 +12813,7 @@
> %{
> match(Set dst (SubL src1 (ConvI2L src2)));
> ins_cost(INSN_COST);
> - format %{ "sub $dst, $src1, sxtw $src2" %}
> + format %{ "sub $dst, $src1, $src2, sxtw" %}
>
> According to the ARM ARM, the format is:
>
> ADD <Xd|SP>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}
>
> or
>
> ADD <Xd>, <Xn>, <Xm>{, <shift> #<amount>}
>
> This change is caused by
>
> diff --git a/src/cpu/aarch64/vm/aarch64_ad.m4
> b/src/cpu/aarch64/vm/aarch64_ad.m4
> --- a/src/cpu/aarch64/vm/aarch64_ad.m4
> +++ b/src/cpu/aarch64/vm/aarch64_ad.m4
> @@ -305,7 +305,7 @@
> %{
> match(Set dst ($3$2 src1 (ConvI2L src2)));
> ins_cost(INSN_COST);
> - format %{ "$4 $dst, $src1, $5 $src2" %}
> + format %{ "$4 $dst, $src1, $src2, $5" %}
>
> ins_encode %{
> __ $4(as_Register($dst$$reg), as_Register($src1$$reg),
> @@ -321,7 +321,7 @@
> %{
> match(Set dst ($3$1 src1 EXTEND($1, $4, src2, lshift, rshift)));
> ins_cost(INSN_COST);
> - format %{ "$5 $dst, $src1, $6 $src2" %}
> + format %{ "$5 $dst, $src1, $src2, $6" %}
>
> ins_encode %{
> __ $5(as_Register($dst$$reg), as_Register($src1$$reg),
>
> --
> Andrew Haley
> Java Platform Lead Engineer
> Red Hat UK Ltd. <https://www.redhat.com>
> EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
>
--
Best regards,
Zhongwei
More information about the aarch64-port-dev
mailing list