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 <bin.ch...@arm.com> 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 <bin.ch...@arm.com> > >> > >> * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle addition of > >> minus immediate. >