WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] PIC register 'bx' clobbered in 'asm' - xen-unstable bu

To: Anthony Liguori <aliguori@xxxxxxxxxx>
Subject: Re: [Xen-devel] PIC register 'bx' clobbered in 'asm' - xen-unstable build error
From: Arun Sharma <arun.sharma@xxxxxxxxx>
Date: Fri, 25 Feb 2005 15:19:08 -0800
Cc: xen-devel@xxxxxxxxxxxxxxxxxxxxx
Delivery-date: Fri, 25 Feb 2005 23:23:29 +0000
Envelope-to: xen+James.Bulpin@xxxxxxxxxxxx
In-reply-to: <mailman.1109368025.9618@xxxxxxxxxxxxxxxxxxxx>
List-archive: <http://sourceforge.net/mailarchive/forum.php?forum=xen-devel>
List-help: <mailto:xen-devel-request@lists.sourceforge.net?subject=help>
List-id: List for Xen developers <xen-devel.lists.sourceforge.net>
List-post: <mailto:xen-devel@lists.sourceforge.net>
List-subscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=subscribe>
List-unsubscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=unsubscribe>
References: <421F9266.7020004@xxxxxxxxxx> <1109366255.5970.2.camel@thinkpad> <mailman.1109368025.9618@xxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-admin@xxxxxxxxxxxxxxxxxxxxx
User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)
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 <vmx_identify+0>:    push   %ebp
0x00000001 <vmx_identify+1>:    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 <asm-i386/processor.h> 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
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel