[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] PIC register 'bx' clobbered in 'asm' - xen-unstable build error
On 2/25/2005 1:44 PM, Anthony Liguori wrote: Jerone Young wrote: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 big question is why are you clobbering bx , dx registers on get cpuid: 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |