Skip to contentSkip to conversation

x86-64-eax.patch

PATCH New Arun Sharma 1 participant 1 message Apr 19, 2005

lore
Share & tools
lore
#0 lore raw

PATCH 1/5 x86-64-eax.patch

vmx_vmcs.c:
fix inline asms for x86-64

xen/arch/x86/vmx_vmcs.c +3 -3
diff -Nru a/xen/arch/x86/vmx_vmcs.c b/xen/arch/x86/vmx_vmcs.c
@@ -187,7 +187,7 @@
 
     vmx_setup_platform(ed, ec);
 
-    __asm__ __volatile__ ("sgdt  (%%eax) \n" :: "a"(&desc) : "memory");
+    __asm__ __volatile__ ("sgdt  (%0) \n" :: "a"(&desc) : "memory");
     host_env.gdtr_limit = desc.size;
     host_env.gdtr_base = desc.address;
 
@@ -197,7 +197,7 @@
     error |= __vmwrite(GUEST_LDTR_BASE, 0);
     error |= __vmwrite(GUEST_LDTR_LIMIT, 0);
         
-    __asm__ __volatile__ ("str  (%%eax) \n" :: "a"(&tr) : "memory");
+    __asm__ __volatile__ ("str  (%0) \n" :: "a"(&tr) : "memory");
     host_env.tr_selector = tr;
     host_env.tr_limit = sizeof(struct tss_struct);
     host_env.tr_base = (unsigned long) &init_tss[cpu];
@@ -358,7 +358,7 @@
     error |= __vmwrite(HOST_GS_BASE, host_env->ds_base);
 
 /* Debug */
-    __asm__ __volatile__ ("sidt  (%%eax) \n" :: "a"(&desc) : "memory");
+    __asm__ __volatile__ ("sidt  (%0) \n" :: "a"(&desc) : "memory");
     host_env->idtr_limit = desc.size;
     host_env->idtr_base = desc.address;
     error |= __vmwrite(HOST_IDTR_BASE, host_env->idtr_base);