[Buildroot] [PATCH] kvm-unit-tests: fix build on x86-64 with specific gcc versions
Peter Korsgaard
peter at korsgaard.com
Mon May 15 12:03:45 UTC 2017
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni at free-electrons.com> writes:
> kvm-unit-tests uses the following code on x86/x86-64:
> static inline u64 scale_delta(u64 delta, u64 mul_frac)
> {
> u64 product, unused;
> __asm__ (
> "mul %3"
> : "=d" (product), "=a" (unused) : "1" (delta), "rm" ((u64)mul_frac) );
> return product;
> }
> The "mul" instruction does not have a suffix that indicates the width of
> the data being multiplied. When the data is passed in a register, there
> is no need to specify the width, but with some gcc versions, the data is
> passed as a memory reference, and therefore the assembler does not know
> the width of the data to be multiplied. It causes the following build
> failure:
> x86/hyperv_clock.c: Assembler messages:
> x86/hyperv_clock.c:21: Error: no instruction mnemonic suffix given and no register operands; can't size instruction
> Since the data being multiplied is 64 bit, we explicitly specify the
> instruction as being "mulq".
> Fixes:
> http://autobuild.buildroot.net/results/a4a65d01f049db83a93de92660f228dd18532625/
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Committed to 2017.02.x, thanks.
--
Bye, Peter Korsgaard
More information about the buildroot
mailing list