[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |