On 10/18/2016 10:44 PM, Richard Henderson wrote: > On 10/18/2016 11:32 AM, Marek Vasut wrote: >> But the instruction encoding does, so I can use the field from the >> instruction to directly index the register array. > > Well, no, you can't. > > In fact, it would be cleaner to have multiple arrays -- one for general > registers and one for control registers -- that you *could* actually > directly index. There are only two instructions that touch the control > registers, rdctl and wrctl. In those instructions you're having to > explicitly add 32.
Well yes, that's true. >> 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 ? > r~ -- Best regards, Marek Vasut