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

Re: [Xen-devel] [PATCH] x86: explicit suffix in inline assembler (for clang)



At 13:18 +0000 on 14 Feb (1360847909), Jan Beulich wrote:
> >>> On 14.02.13 at 13:52, Tim Deegan <tim@xxxxxxx> wrote:
> > # HG changeset patch
> > # User Tim Deegan <tim@xxxxxxx>
> > # Date 1360846113 0
> > # Node ID 500907997cb7b9c6973147d56cfd8a1a4c136c7e
> > # Parent  4b01cc2c2c1f4836e7fb34a58bc13e125d67969e
> > x86: explicit suffix in inline assembler (for clang).
> > 
> > This fixes the clang build, and has no effect on gcc's output.
> > 
> > Signed-off-by: Tim Deegan <tim@xxxxxxx>
> > 
> > diff -r 4b01cc2c2c1f -r 500907997cb7 xen/arch/x86/time.c
> > --- a/xen/arch/x86/time.c   Thu Feb 14 12:36:01 2013 +0000
> > +++ b/xen/arch/x86/time.c   Thu Feb 14 12:48:33 2013 +0000
> > @@ -127,7 +127,7 @@ static inline u64 scale_delta(u64 delta,
> >          delta <<= scale->shift;
> >  
> >      asm (
> > -        "mul %2 ; shrd $32,%1,%0"
> > +        "mulq %2 ; shrd $32,%1,%0"
> >          : "=a" (product), "=d" (delta)
> >          : "rm" (delta), "0" ((u64)scale->mul_frac) );
> >  
> 
> I'll commit this as being benign, but what the heck? "mul" needs
> a suffix but "shrd" doesn't?

Quite.  I presume it's because mul's first operand is implicit (and for
some reason clang doesn't see the second operand being a u64 as enough
to require the 64-bit version).

Tim.

_______________________________________________
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®.