On 10/19/2016 03:24 AM, Richard Henderson wrote: > On 10/18/2016 03:05 PM, Marek Vasut wrote: >>>> Thanks, I hope this is fixed now, although I mostly special-case the >>>> R_ZERO handling throughout the code. Any writes to R_ZERO are now >>>> ignored and any usage is converted to mov/movi instructions where >>>> applicable. >>> >>> We've done that in the past, but in the end it is much cleaner to >>> minimize the number of places in which you have to check for R_ZERO. >> >> Isn't it a bit more performant if you generate as little TCG >> instructions as possible ? > > Well, yes and no. > > We're always going to run the tcg optimizers, so the resulting code > should be the same either way.
I see, I'd have to dig deeper into the TCG. > Processing a little more data can be preferable to fewer branch > prediction failures. And the best way to avoid those is to not have the > branch at all. Especially when it's unlikely that the data will be > created in the first place. OK, but I need to make sure stores to ZERO register are ignored, right ? -- Best regards, Marek Vasut