diff options
author | Lennart Poettering <lennart@poettering.net> | 2009-11-11 04:50:32 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2009-11-11 04:50:32 +0100 |
commit | 22946427624afde1d53973fa5a2e9e2041ffc5b7 (patch) | |
tree | 9db77a271430da8abf7b6d11079bc660f7428094 | |
parent | d9b5bbca017a8e578434e62ab6daeec24f2c11e1 (diff) |
core: make cpuid code compile cleanly with 32bit PIC
-rw-r--r-- | src/pulsecore/core-util.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c index 93ddf301..d596c481 100644 --- a/src/pulsecore/core-util.c +++ b/src/pulsecore/core-util.c @@ -117,6 +117,7 @@ #include <pulsecore/strbuf.h> #include <pulsecore/usergroup.h> #include <pulsecore/strlist.h> +#include <pulsecore/cpu-x86.h> #include "core-util.h" @@ -3085,10 +3086,13 @@ pa_bool_t pa_running_in_vm(void) { pa_zero(sig); __asm__ __volatile__ ( - " xor %%ebx, %%ebx \n\t" + /* ebx/rbx is being used for PIC! */ + " push %%"PA_REG_b" \n\t" " cpuid \n\t" + " mov %%ebx, %1 \n\t" + " pop %%"PA_REG_b" \n\t" - : "=a" (eax), "=b" (sig.sig32[0]), "=c" (sig.sig32[1]), "=d" (sig.sig32[2]) + : "=a" (eax), "=r" (sig.sig32[0]), "=c" (sig.sig32[1]), "=d" (sig.sig32[2]) : "0" (eax) ); |