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

Re: [Xen-devel] [PATCH 4/4] SVM: streamline entry.S code



On 08/23/2013 10:04 AM, Jan Beulich wrote:
          mov  UREGS_eflags(%rsp),%rax
          mov  %rax,VMCB_rflags(%rcx)
- mov VCPU_svm_vmcb_pa(%rbx),%rax
-
          pop  %r15
          pop  %r14
          pop  %r13
          pop  %r12
          pop  %rbp
+        mov  VCPU_svm_vmcb_pa(%rbx),%rax
          pop  %rbx
          pop  %r11
          pop  %r10
@@ -92,25 +97,26 @@ UNLIKELY_END(svm_trace)
VMRUN + GET_CURRENT(%rax)
          push %rdi
          push %rsi
          push %rdx
          push %rcx
+        mov  VCPU_svm_vmcb(%rax),%rcx
          push %rax
          push %r8
          push %r9
          push %r10
          push %r11
          push %rbx
+        mov  %rax,%rbx

Can you continue with using %rax as 'current' pointer below and not save it
to %rbx? %rax appears to be a temp register so perhaps you can use, say,
%rdi, for that purpose.

-boris

          push %rbp
          push %r12
          push %r13
          push %r14
          push %r15
- GET_CURRENT(%rbx)
          movb $0,VCPU_svm_vmcb_in_sync(%rbx)
-        mov  VCPU_svm_vmcb(%rbx),%rcx
          mov  VMCB_rax(%rcx),%rax
          mov  %rax,UREGS_rax(%rsp)
          mov  VMCB_rip(%rcx),%rax
@@ -120,33 +126,14 @@ UNLIKELY_END(svm_trace)
          mov  VMCB_rflags(%rcx),%rax
          mov  %rax,UREGS_eflags(%rsp)
-#ifndef NDEBUG
-        mov  $0xbeef,%ax
-        mov  %ax,UREGS_error_code(%rsp)
-        mov  %ax,UREGS_entry_vector(%rsp)
-        mov  %ax,UREGS_saved_upcall_mask(%rsp)
-        mov  %ax,UREGS_cs(%rsp)
-        mov  %ax,UREGS_ds(%rsp)
-        mov  %ax,UREGS_es(%rsp)
-        mov  %ax,UREGS_fs(%rsp)
-        mov  %ax,UREGS_gs(%rsp)
-        mov  %ax,UREGS_ss(%rsp)
-#endif
-
          STGI
  .globl svm_stgi_label
  svm_stgi_label:
          mov  %rsp,%rdi
          call svm_vmexit_handler
-        jmp  svm_asm_do_resume
+        jmp  .Lsvm_do_resume


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.