On 13 May 2014 22:41, Oleg Endo <oleg.e...@t-online.de> wrote: > Right. I was thinking to add FPSCR.SZ mode switching to SH, in order to > do float vector moves. For that SZ and PR need to be switched both at > the same time (only SH4A has both, fpchg and fschg). So basically I'd > add another mode entity, which would emit SZ mode changes in addition to > the PR mode changes. But then adjacent FPSCR-changing insns could be > combined ... any idea/suggestion how to accomplish that?
If they are sufficiently adjacent, you can use a peephole2 pattern for this. I see Cristian's patch addresses this in a different way - keeping size and precision in the same entity, and emitting toggles as appropriate. The problem get's a bit more interesting if you have some instruction patterns that care about one setting but not the other. Describing this exactly allows lazy code motion to be a bit more lazy, but OTOH it can make it harder to combine mode switching instructions if you still want to do that.