summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/xen-tools/files/xen-tools-3.0.2-pushpop.patch')
-rw-r--r--app-emulation/xen-tools/files/xen-tools-3.0.2-pushpop.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/app-emulation/xen-tools/files/xen-tools-3.0.2-pushpop.patch b/app-emulation/xen-tools/files/xen-tools-3.0.2-pushpop.patch
new file mode 100644
index 0000000..807e007
--- /dev/null
+++ b/app-emulation/xen-tools/files/xen-tools-3.0.2-pushpop.patch
@@ -0,0 +1,32 @@
+# HG changeset patch
+# User kaf24@firebug.cl.cam.ac.uk
+# Date Mon Apr 10 17:25:42 2006 +0100
+# Node ID c89d62e7015a25a48225daa929616a5ed44205b4
+# parent: 4088dd0856a9cbc7ef050d7272e81666b7dfbcc7
+Fix push/pop usage in tools/ioemu for x86/64.
+
+Signed-off-by: Keir Fraser <keir@xensource.com>
+
+
+
+--- a/tools/ioemu/hw/vga.c Mon Apr 10 17:16:25 2006 +0100
++++ b/tools/ioemu/hw/vga.c Mon Apr 10 17:25:42 2006 +0100
+@@ -1369,10 +1369,16 @@ static inline unsigned int cpuid_edx(uns
+ {
+ unsigned int eax, edx;
+
+- __asm__("pushl %%ebx; cpuid; popl %%ebx"
++#ifdef __x86_64__
++#define __bx "rbx"
++#else
++#define __bx "ebx"
++#endif
++ __asm__("push %%"__bx"; cpuid; pop %%"__bx
+ : "=a" (eax), "=d" (edx)
+ : "0" (op)
+ : "cx");
++#undef __ebx
+
+ return edx;
+ }
+