|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] PIC register 'bx' clobbered in 'asm' - xen-unstable bu
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
|
|
|
|
|