diff options
-rw-r--r-- | xen/arch/x86/time.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c index 7d29cd8737..9187520101 100644 --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -131,10 +131,10 @@ static inline u64 scale_delta(u64 delta, struct time_scale *scale) #ifdef CONFIG_X86_32 asm ( - "mul %5 ; " + "mull %5 ; " "mov %4,%%eax ; " "mov %%edx,%4 ; " - "mul %5 ; " + "mull %5 ; " "xor %5,%5 ; " "add %4,%%eax ; " "adc %5,%%edx ; " @@ -142,7 +142,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 |