On Thu, Jul 13, 2017 at 04:35:55PM +0100, Jackson Woodruff wrote:
> Hi James,
> 
> I've addressed the issues discussed below.
> 
> OK for trunk?

I one last comment, otherwise, this looks good:

> +/* Print operand X to file F in a target specific manner according to CODE.
> +   The acceptable formatting commands given by CODE are:
> +     'c':            An integer or symbol address without a preceding # sign.
> +     'e':            Print the sign/zero-extend size as a character 8->b,
> +                     16->h, 32->w.
> +     'p':            Prints N such that 2^N == X (X must be power of 2 and
> +                     const int).
> +     'P':            Print the number of non-zero bits in X (a const_int).
> +     'H':            Print the higher numbered register of a pair (TImode)
> +                     of regs.
> +     'm':            Print a condition (eq, ne, etc).
> +     'M':            Same as 'm', but invert condition.
> +     'b/h/s/d/q':    Print a scalar FP/SIMD register name.
> +     'S/T/U/V':              Print the first FP/SIMD register name in a list
> +                             (No difference between any of these options).

There is a slight difference between these options - You'd use them in a
in a pattern with a large integer mode like LD3 on a CImode value to print
the register list you want to load. For example:

  LD3 {v0.4s - v2.4s} [x0]

The register number you'll get by inspecting REGNO (x) will give you the
start of the register list - but we need to get the right number for the
end of the register list too. To find that offset, we take
(CODE - 'S'). It should be clear why for S/T/U/V this gives 0/1/2/3.

So this comment should read:

  Print a FP/SIMD register name for a register list.  The register
  printed is the FP/SIMD register name of X + 0/1/2/3 for S/T/U/V.

Or similar.

Thanks,
James


Reply via email to