[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH] cpu: Add recently added cpu feature flags.



On 10/24/12 17:10, Martin Kletzander wrote:
On 10/24/2012 03:56 PM, Peter Krempa wrote:
Qemu has added some new feature flags. This patch adds them to libvirt.

The new features are for the cpuid function 0x7 that takes an argument
in the ecx register. Currently only 0x0 is used as the argument so I was
lazy and I just clear the registers to 0 before calling cpuid. In future
when there maybe will be some other possible arguments, we will need to
improve the cpu detection code to take this into account.
---
The qemu flag definiton can be found at:
http://git.qemu.org/?p=qemu.git;a=blob;f=target-i386/cpu.c;h=f3708e63b76541b12dd9eafb3b42f4b4b85b48a9;hb=HEAD#l40
---
  src/cpu/cpu_map.xml | 12 ++++++++++++
  src/cpu/cpu_x86.c   |  8 +++++++-
  2 files changed, 19 insertions(+), 1 deletion(-)


[...]

diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c
index 7cd67b8..f54c3df 100644
--- a/src/cpu/cpu_x86.c
+++ b/src/cpu/cpu_x86.c
@@ -1539,7 +1539,10 @@ static inline void
  cpuidCall(struct cpuX86cpuid *cpuid)
  {
  # if __x86_64__
-    asm("cpuid"
+    asm("xor %%ebx, %%ebx;" /* clear the other registers as some cpuid */
+        "xor %%ecx, %%ecx;" /* functions may use them as additional */
+        "xor %%edx, %%edx;" /* arguments */
+        "cpuid"

Even though it doesn't change anything, this is the only line not having
a semicolon at the end (and we have it in the "else" part), so if you
want, you can make it a bit shinier and put it here as well ;)

I added the semicolon and pushed the patch :)

Thanks

Peter


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]