[PATCH 1/2] ARM64:VDSO: Improve gettimeofday, don't use udiv

Mark Rutland mark.rutland at arm.com
Thu Mar 10 09:00:33 PST 2016


On Mon, Mar 14, 2016 at 07:55:38AM +0100, Ard Biesheuvel wrote:
> On 13 March 2016 at 20:50, Andrew Pinski <apinski at cavium.com> wrote:
> > +        movk    x13, 0xe353, lsl 16
> > +        lsr     x11, x11, 3
> > +        movk    x13, 0x9ba5, lsl 32
> > +        movk    x13, 0x20c4, lsl 48
> > +       /* x13 = 0x20c49ba5e353f7cf */
> 
> Could we clean this up a bit? Something along the lines of
> 
> .set m, 0x20c49ba5e353f7cf
> movz x13,#:abs_g3:m
> movk x13, #:abs:g2_nc:m
> movk x13, #:abs_g1_nc:m
> movk x13, #:abs_g0_nc:m
> 
> Actually, the movz/movk sequence should probably be implemented as a
> macro in asm/assembler.h, with parameters for the register and the
> symbol name.

Agreed.

> I think Mark proposed such a patch at some point

That would be [1], which needs the relocations fixed up [2,3] to match the
above.

I didn't respin that as it turned out to be unnecessary at the time, but I'm
more than happy for someone to pick it up.

Mark.

[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2016-January/397563.html
[2] http://lists.infradead.org/pipermail/linux-arm-kernel/2016-January/397572.html
[3] http://lists.infradead.org/pipermail/linux-arm-kernel/2016-January/397573.html



More information about the linux-arm-kernel mailing list