On Wed, May 30, 2018 at 03:35:40AM -0500, Segher Boessenkool wrote: > On Wed, May 30, 2018 at 04:14:02PM +0800, Simon Guo wrote: > > Hi Segher, > > On Mon, May 28, 2018 at 06:05:59AM -0500, Segher Boessenkool wrote: > > > On Fri, May 25, 2018 at 12:07:34PM +0800, wei.guo.si...@gmail.com wrote: > > > > + /* save and restore cr0 */ > > > > + mfocrf r5,64 > > > > + EXIT_VMX_OPS > > > > + mtocrf 64,r5 > > > > + b .LcmpAB_lightweight > > > > > > That's cr1, not cr0. You can use mcrf instead, it is cheaper (esp. if > > > you have it in a non-volatile CR field before so you need only one, if > > > any). > > > > > You are right :) How about using mtcr/mfcr instead, I think they are > > fast as well and more readable. > > Those are much worse than m[ft]ocrf. > > You probably should just shuffle things around so that EXIT_VMX_OPS > does not clobber the CR field you need to keep. Let me use mcrf then :)
Thanks, - Simon