qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] kvm-unittest: fix build with gcc 4.3.X and olde


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH] kvm-unittest: fix build with gcc 4.3.X and older
Date: Thu, 17 Oct 2013 13:02:17 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130923 Thunderbird/17.0.9

Il 17/10/2013 12:58, Gleb Natapov ha scritto:
>>> > > @@ -143,14 +143,14 @@ static inline int rtc_in(u8 reg)
>>> > >  {
>>> > >      u8 x = reg;
>>> > >      asm volatile("outb %b1, $0x70; inb $0x71, %b0"
>>> > > -                : "+a"(x) : "0"(x));
>>> > > +                : "=a"(x) : "0"(x));
>>> > >      return x;
>>> > >  }
>> > 
>> > This should be wrong.  GCC should complain that the same operand is used
>> > for both input and output but has an "=" constraint.
>> > 
>>> > >  static inline void rtc_out(u8 reg, u8 val)
>>> > >  {
>>> > >      asm volatile("outb %b1, $0x70; mov %b2, %b1; outb %b1, $0x71"
>>> > > -                : "+a"(reg) : "0"(reg), "ri"(val));
>>> > > +                : "=a"(reg) : "0"(reg), "ri"(val));
>>> > >  }
>> > 
>> > Same here.
>> > 
>> > But I'm not sure what is the error message for older GCC for s3.c, as I
>> > wrote in reply to Michael.
>> > 
> x86/s3.c: In function 'main':
> x86/s3.c:145: error: inconsistent operand constraints in an 'asm'
> 
> And I am puzzled by this too.

Hmm, looks like my version is the incorrect one and, if you use "+a" you
need not use the matching input constraint.  So it's either your
version, or one that removes the "0" altogether.

Thus,

Reviewed-by: Paolo Bonzini <address@hidden>

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]