Hi Richard,
 
> I think this should be "lk*r", not "l*rk".  SP is only going to crop up 
> in rare circumstances, but we are always going to need this pattern if 
> it does and hiding this from register preferencing is pointless.  It's 
> not like the compiler is going to start allocating SP in the more 
> general case.
 
'*' only applies to the next constraint, so these are equivalent. I've committed
it with them swapped around, however using 'k' at all here seems redundant
anyway given GCC no longer uses physical registers in most instructions.

> I'd also like to see all these movsi matching patterns merged into a 
> single pattern that just enables the appropriate variants.  Having 
> separate implementations for Arm, thumb2, vfp, iwmmx is just making 
> maintenance of this stuff a nightmare.

Yes if we're sure one is a strict superset of the other, we could just merge
them and disable VFP specific variants. However the patterns are quite
complex so it's hard to be 100% sure. Also I think there should be no need
at all for such huge patterns given a load or immediate can never become a
register move and visa versa. So it should be feasible to split into register
moves, loads, stores and immediates.

Wilco

Reply via email to