On Tue, Jan 22, 2019 at 05:19:09PM +0000, Peter Maydell wrote:
> On Mon, 21 Jan 2019 at 18:11, Paolo Bonzini <[email protected]> wrote:
> >
> > The following changes since commit cce871c504694cf1034adf525556e3ca3c7eebb6:
> >
> > hw/block/xen: use proper format string for printing sectors (2019-01-21
> > 14:45:49 +0000)
> >
> > are available in the git repository at:
> >
> > git://github.com/bonzini/qemu.git tags/for-upstream
> >
> > for you to fetch changes up to 6ba20c9c9515dfcf22f5e0d0b7628041b6b183f0:
> >
> > docker: disable Xen on CentOS 7 (2019-01-21 18:39:47 +0100)
> >
> > ----------------------------------------------------------------
> > * cpu-exec fixes (Emilio, Laurent)
> > * high address load for linuxboot (Zhijian)
> > * PVH support (Liam, Stefano)
> > * Linux header update (Paolo)
> > * enable vhost-net for all targets that have virtio-net (Paolo)
> > * vhost-user-test cleanups (Paolo)
> > * misc i386 changes (Paolo, Robert)
> > * hexloader-test change to avoid O_NONBLOCK on stdin (Peter)
> > * configure tweak for openpty (Thomas)
> > * elf2dmp port to Windows (Viktor)
> >
> > ----------------------------------------------------------------
>
> Compile failure, x86-64 clang build:
>
> CC optionrom/pvh_main.o
> In file included from
> /home/petmay01/linaro/qemu-for-merges/pc-bios/optionrom/pvh_main.c:26:
> /home/petmay01/linaro/qemu-for-merges/pc-bios/optionrom/optrom.h:79:18:
> error: invalid operand f
> or instruction
> asm volatile("rep insb (%%dx), %%es:(%%edi)"
> ^
> <inline asm>:1:11: note: instantiated into assembly here
> rep insb (%dx), %es:(%edi)
> ^~~~~~
>
> thanks
> -- PMM
>
This patch should fix the failure with clang, leaving the behaviour
unchanged.
diff --git a/pc-bios/optionrom/optrom.h b/pc-bios/optionrom/optrom.h
index 1e5e265d4f..357819259a 100644
--- a/pc-bios/optionrom/optrom.h
+++ b/pc-bios/optionrom/optrom.h
@@ -76,7 +76,7 @@ static inline uint32_t inl(uint16_t port)
static inline void insb(uint16_t port, uint8_t *buf, uint32_t len)
{
- asm volatile("rep insb (%%dx), %%es:(%%edi)"
+ asm volatile("rep insb %%dx, %%es:(%%edi)"
: "+c"(len), "+D"(buf) : "d"(port) : "memory");
Thanks,
Stefano