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