From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arun Sharma Subject: Re: PIC register 'bx' clobbered in 'asm' - xen-unstable build error Date: Fri, 25 Feb 2005 15:19:08 -0800 Message-ID: <421FB26C.6040304@intel.com> References: <421F9266.7020004@us.ibm.com> <1109366255.5970.2.camel@thinkpad> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit In-Reply-To: Sender: xen-devel-admin@lists.sourceforge.net Errors-To: xen-devel-admin@lists.sourceforge.net List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , List-Archive: To: Anthony Liguori Cc: xen-devel@lists.sourceforge.net List-Id: xen-devel@lists.xenproject.org On 2/25/2005 1:44 PM, Anthony Liguori wrote: > Jerone Young wrote: > >> The big question is why are you clobbering bx , dx registers on get >> cpuid: >> >> > CPUID returns information in eax, ebx, ecx, and edx. With -fPIC you > have to push ebx onto the stack before calling cpuid and pop it > afterward as Bin points out is what the patch to xen-unstable does. The compiler used to generate the push/pop just fine for gcc-3.3. This is an issue specific to gcc-3.4. gcc-3.3 code: (gdb) disassemble vmx_identify Dump of assembler code for function vmx_identify: 0x00000000 : push %ebp 0x00000001 : mov $0x1,%eax 0x00000006 <.LC23+3>: mov %esp,%ebp 0x00000008 <.LC23+5>: push %ebx 0x00000009 <.LC23+6>: cpuid 0x0000000b <.LC23+8>: pop %ebx 0x0000000c <.LC23+9>: xor %eax,%eax 0x0000000e <.LC23+11>: test $0x20,%cl 0x00000011 <.LC23+14>: setne %al 0x00000014 <.LC23+17>: pop %ebp 0x00000015 <.LC23+18>: dec %eax 0x00000016 <.LC23+19>: ret 0x00000017 <.LC23+20>: mov %esi,%esi 0x00000019 <.LC23+22>: lea 0x0(%edi),%edi End of assembler dump. I'm following up with compiler people here to understand why the compiler thinks this is a bug. BTW has similar code. -Arun ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click