From 2d7c79c2836bb2da3eb87234e02ef409ea9e64ff Mon Sep 17 00:00:00 2001 From: Rhys Weatherley Date: Mon, 16 Aug 2004 06:45:03 +0000 Subject: [PATCH] cpuid_query: use %ebx in a way that doesn't confuse PIC mode in some versions of gcc (bug #10022). --- ChangeLog | 5 +++++ jit/jit-cpuid-x86.c | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index feb63fc..e9477b1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,9 @@ +2004-08-16 Rhys Weatherley + + * jit/jit-cpuid-x86.c (cpuid_query): use %ebx in a way that doesn't + confuse PIC mode in some versions of gcc (bug #10022). + 2004-08-13 Rhys Weatherley * include/jit/jit-insn.h, include/jit/jit-opcode.h, diff --git a/jit/jit-cpuid-x86.c b/jit/jit-cpuid-x86.c index 03b0e62..b060991 100644 --- a/jit/jit-cpuid-x86.c +++ b/jit/jit-cpuid-x86.c @@ -58,6 +58,7 @@ static void cpuid_query(unsigned int index, jit_cpuid_x86_t *info) #if defined(__GNUC__) __asm__ __volatile__ ( "\tmovl %0, %%eax\n" + "\tpushl %%ebx\n" "\txorl %%ebx, %%ebx\n" "\txorl %%ecx, %%ecx\n" "\txorl %%edx, %%edx\n" @@ -68,7 +69,8 @@ static void cpuid_query(unsigned int index, jit_cpuid_x86_t *info) "\tmovl %%ebx, 4(%%esi)\n" "\tmovl %%ecx, 8(%%esi)\n" "\tmovl %%edx, 12(%%esi)\n" - : : "m"(index), "m"(info) : "eax", "ebx", "ecx", "edx", "esi" + "\tpopl %%ebx\n" + : : "m"(index), "m"(info) : "eax", "ecx", "edx", "esi" ); #endif } -- 2.47.3