> On Fri, Sep 30, 2005 at 04:31:59PM -0700, Dale Johannesen wrote: > > No, there isn't, but it might be a smaller change to add a new > > constraint.... > > having constraints tied to specific constants is pretty ugly, and so is > > having (if (constant value==0)) in a lot of patterns..,, > > That's why you'd centralize this into a few functions. There > are several things that need changing: > > * Match different forms of constant for C. > > * Update vector_move_operand to use that same routine. > > * A routine to determine which of several instructions > we want to emit. E.g. xorps instead of pxor for -Os. > It should return a ATTR_MODE result so that we can > call it from the mode attribute of various instructions. > > * A routine that uses the previous to return a const char* > template to return from the insn output patterns. > > For bonus points, handle MMX too.
Yep. It seems to me that current way standard_80387_constant_p/standard_80387_constant_opcode and 'G' constraint is handled is pretty much symetrical problem (and it is dealt with quite resonably), so we should have same approaches in both cases. Honza > > > r~