On Wed, Jul 15, 2015 at 09:22:01AM +0100, Bin.Cheng wrote:
> Ping^2
> + /* ADD -(immediate). */
I'd like to see a more detailed comment in this case. Probably something
along the lines of:
/* The canonical form of subtract of immediate is
(add op0 minus_imm). Catch that here, modify the immediate,
and handle the costing in cost_minus. */
> + && aarch64_uimm12_shift (- (INTVAL (op1))))
This looks strange to me, should it not be
> + && aarch64_uimm12_shift (-(INTVAL (op1))))
Without the space after the `-`. Likewise below:
> + op1 = gen_int_mode (- (INTVAL (op1)), mode);
Thanks,
James
>
> > On Fri, Jun 26, 2015 at 4:47 PM, Bin Cheng <[email protected]> wrote:
> >> Hi,
> >> The canonical form of subtract of immediate is (add op0 minus_imm), which
> >> is
> >> supported with addsi3_aarch64 pattern on aarch64. Unfortunately wrong cost
> >> (8 rather than 4) is computed by aarch64_rtx_cost because it doesn't honor
> >> the fact that it actually is a sub instruction. This patch fixes it, is
> >> this OK?
> >>
> >> Thanks,
> >> bin
> >>
> >> 2015-06-25 Bin Cheng <[email protected]>
> >>
> >> * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle addition of
> >> minus immediate.
>