[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] arm64: opportunity for (micro) optimisation in set_bit et al?



On Wed, 2013-06-05 at 11:01 +0100, Catalin Marinas wrote:
> Hi Ian,
> 
> On Wed, Jun 05, 2013 at 10:36:21AM +0100, Ian Campbell wrote:
> > I was "borrowing" the arm64 Linux bitops for use in Xen and Tim Deegan
> > wondered about the use of eor in:
> >        and     x3, x0, #63             // Get bit offset
> >        eor     x0, x0, x3              // Clear low bits
> >        mov     x2, #1
> >        add     x1, x1, x0, lsr #3      // Get word offset
> 
> BTW, the latest kernel uses W registers (32-bit here since the function
> prototype has an 'int' and the compiler does not guarantee that the top
> 32-bit are 0.

Thanks, that was in the version I actually picked up (from v3.10-rc4) I
just grabbed the wrong thing when cut-n-pasting here.

> > That eor has a dependency on the previous and instruction which could be
> > avoided using a bic or a lsr #5 followed by lsl #2 instead of the lsr #3
> > on the add (this is what arm32 does).
> 
> Any of these would do (I haven't tried, bic #imm is an alias for and).
> I'll check with the hardware guys whether it makes any difference but it
> is a harmless change anyway.

ACK, thanks.

Ian.



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.