From: Tim Deegan Date: Fri, 16 Aug 2013 10:11:21 +0000 (+0200) Subject: x86: explicit suffix in inline assembler (for clang). X-Git-Tag: 4.1.6-rc2~7 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=e737f237a373c673537062a7a3324f345120a113;p=xen.git 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 Committed-by: Jan Beulich master commit: 59a28b5f045331641cbf0c1fc8d5d67afe328939 master date: 2013-02-14 14:20:06 +0100 Note that this isn't just a build fix - if the "delta" input ends up in memory, gas would default to 32-bit operand size (and should really warn about the ambiguity). --- diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c index 20edfd71e4..c3b0b865b8 100644 --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -140,7 +140,7 @@ static inline u64 scale_delta(u64 delta, struct time_scale *scale) : "a" ((u32)delta), "1" ((u32)(delta >> 32)), "2" (scale->mul_frac) ); #else asm ( - "mul %2 ; shrd $32,%1,%0" + "mulq %2 ; shrd $32,%1,%0" : "=a" (product), "=d" (delta) : "rm" (delta), "0" ((u64)scale->mul_frac) ); #endif