diff options
author | Luke Shumaker <LukeShu@sbcglobal.net> | 2012-02-26 21:53:52 -0500 |
---|---|---|
committer | Luke Shumaker <LukeShu@sbcglobal.net> | 2012-02-26 21:53:52 -0500 |
commit | 7275399e96c64abc852c3746aa58d10bee8a5a44 (patch) | |
tree | a798ae34656585ec83f390dac95382ccc303919c /kernels/xen/24344.patch | |
parent | 4bfc44a83c098d0f6d731b855541140fac36b8aa (diff) | |
parent | 31763e92611731c859ccbe4e97019afabb5ef91e (diff) | |
download | abslibre-7275399e96c64abc852c3746aa58d10bee8a5a44.tar.gz abslibre-7275399e96c64abc852c3746aa58d10bee8a5a44.tar.bz2 abslibre-7275399e96c64abc852c3746aa58d10bee8a5a44.zip |
Merge branch 'master' of ssh://parabolagnulinux.org:1863/abslibre
Diffstat (limited to 'kernels/xen/24344.patch')
-rw-r--r-- | kernels/xen/24344.patch | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/kernels/xen/24344.patch b/kernels/xen/24344.patch new file mode 100644 index 000000000..642b90867 --- /dev/null +++ b/kernels/xen/24344.patch @@ -0,0 +1,33 @@ +--- a/tools/libxc/xc_cpuid_x86.c 2011-10-20 15:05:42.000000000 -0200 ++++ b/tools/libxc/xc_cpuid_x86.c 2012-02-15 00:01:46.307514813 -0200 +@@ -42,23 +42,23 @@ + static void cpuid(const unsigned int *input, unsigned int *regs) + { + unsigned int count = (input[1] == XEN_CPUID_INPUT_UNUSED) ? 0 : input[1]; +- asm ( + #ifdef __i386__ ++/* Use the stack to avoid reg constraint failures with some gcc flags */ ++ asm ( + "push %%ebx; push %%edx\n\t" +-#else +- "push %%rbx; push %%rdx\n\t" +-#endif + "cpuid\n\t" + "mov %%ebx,4(%4)\n\t" + "mov %%edx,12(%4)\n\t" +-#ifdef __i386__ + "pop %%edx; pop %%ebx\n\t" ++ : "=a" (regs[0]), "=c" (regs[2]) ++ : "0" (input[0]), "1" (count), "S" (regs) ++ : "memory" ); + #else +- "pop %%rdx; pop %%rbx\n\t" ++ asm ( ++ "cpuid" ++ : "=a" (regs[0]), "=b" (regs[1]), "=c" (regs[2]), "=d" (regs[3]) ++ : "0" (input[0]), "2" (count) ); + #endif +- : "=a" (regs[0]), "=c" (regs[2]) +- : "0" (input[0]), "1" (count), "S" (regs) +- : "memory" ); + } |