• Home
  • Raw
  • Download

Lines Matching refs:save

127     stq_phys(env->vm_hsave + offsetof(struct vmcb, save.gdtr.base), env->gdt.base);  in helper_vmrun()
128 stl_phys(env->vm_hsave + offsetof(struct vmcb, save.gdtr.limit), env->gdt.limit); in helper_vmrun()
130 stq_phys(env->vm_hsave + offsetof(struct vmcb, save.idtr.base), env->idt.base); in helper_vmrun()
131 stl_phys(env->vm_hsave + offsetof(struct vmcb, save.idtr.limit), env->idt.limit); in helper_vmrun()
133 stq_phys(env->vm_hsave + offsetof(struct vmcb, save.cr0), env->cr[0]); in helper_vmrun()
134 stq_phys(env->vm_hsave + offsetof(struct vmcb, save.cr2), env->cr[2]); in helper_vmrun()
135 stq_phys(env->vm_hsave + offsetof(struct vmcb, save.cr3), env->cr[3]); in helper_vmrun()
136 stq_phys(env->vm_hsave + offsetof(struct vmcb, save.cr4), env->cr[4]); in helper_vmrun()
137 stq_phys(env->vm_hsave + offsetof(struct vmcb, save.dr6), env->dr[6]); in helper_vmrun()
138 stq_phys(env->vm_hsave + offsetof(struct vmcb, save.dr7), env->dr[7]); in helper_vmrun()
140 stq_phys(env->vm_hsave + offsetof(struct vmcb, save.efer), env->efer); in helper_vmrun()
141 stq_phys(env->vm_hsave + offsetof(struct vmcb, save.rflags), cpu_compute_eflags(env)); in helper_vmrun()
143 svm_save_seg(env->vm_hsave + offsetof(struct vmcb, save.es), in helper_vmrun()
145 svm_save_seg(env->vm_hsave + offsetof(struct vmcb, save.cs), in helper_vmrun()
147 svm_save_seg(env->vm_hsave + offsetof(struct vmcb, save.ss), in helper_vmrun()
149 svm_save_seg(env->vm_hsave + offsetof(struct vmcb, save.ds), in helper_vmrun()
152 stq_phys(env->vm_hsave + offsetof(struct vmcb, save.rip), in helper_vmrun()
154 stq_phys(env->vm_hsave + offsetof(struct vmcb, save.rsp), ESP); in helper_vmrun()
155 stq_phys(env->vm_hsave + offsetof(struct vmcb, save.rax), EAX); in helper_vmrun()
171 env->gdt.base = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.gdtr.base)); in helper_vmrun()
172 env->gdt.limit = ldl_phys(env->vm_vmcb + offsetof(struct vmcb, save.gdtr.limit)); in helper_vmrun()
174 env->idt.base = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.idtr.base)); in helper_vmrun()
175 env->idt.limit = ldl_phys(env->vm_vmcb + offsetof(struct vmcb, save.idtr.limit)); in helper_vmrun()
180 cpu_x86_update_cr0(env, ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.cr0))); in helper_vmrun()
181 cpu_x86_update_cr4(env, ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.cr4))); in helper_vmrun()
182 cpu_x86_update_cr3(env, ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.cr3))); in helper_vmrun()
183 env->cr[2] = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.cr2)); in helper_vmrun()
194 ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.efer))); in helper_vmrun()
196 cpu_load_eflags(env, ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rflags)), in helper_vmrun()
200 svm_load_seg_cache(env->vm_vmcb + offsetof(struct vmcb, save.es), in helper_vmrun()
202 svm_load_seg_cache(env->vm_vmcb + offsetof(struct vmcb, save.cs), in helper_vmrun()
204 svm_load_seg_cache(env->vm_vmcb + offsetof(struct vmcb, save.ss), in helper_vmrun()
206 svm_load_seg_cache(env->vm_vmcb + offsetof(struct vmcb, save.ds), in helper_vmrun()
209 EIP = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rip)); in helper_vmrun()
211 ESP = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rsp)); in helper_vmrun()
212 EAX = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rax)); in helper_vmrun()
213 env->dr[7] = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.dr7)); in helper_vmrun()
214 env->dr[6] = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.dr6)); in helper_vmrun()
215 cpu_x86_set_cpl(env, ldub_phys(env->vm_vmcb + offsetof(struct vmcb, save.cpl))); in helper_vmrun()
299 addr, ldq_phys(addr + offsetof(struct vmcb, save.fs.base)), in helper_vmload()
302 svm_load_seg_cache(addr + offsetof(struct vmcb, save.fs), in helper_vmload()
304 svm_load_seg_cache(addr + offsetof(struct vmcb, save.gs), in helper_vmload()
306 svm_load_seg(addr + offsetof(struct vmcb, save.tr), in helper_vmload()
308 svm_load_seg(addr + offsetof(struct vmcb, save.ldtr), in helper_vmload()
312 env->kernelgsbase = ldq_phys(addr + offsetof(struct vmcb, save.kernel_gs_base)); in helper_vmload()
313 env->lstar = ldq_phys(addr + offsetof(struct vmcb, save.lstar)); in helper_vmload()
314 env->cstar = ldq_phys(addr + offsetof(struct vmcb, save.cstar)); in helper_vmload()
315 env->fmask = ldq_phys(addr + offsetof(struct vmcb, save.sfmask)); in helper_vmload()
317 env->star = ldq_phys(addr + offsetof(struct vmcb, save.star)); in helper_vmload()
318 env->sysenter_cs = ldq_phys(addr + offsetof(struct vmcb, save.sysenter_cs)); in helper_vmload()
319 env->sysenter_esp = ldq_phys(addr + offsetof(struct vmcb, save.sysenter_esp)); in helper_vmload()
320 env->sysenter_eip = ldq_phys(addr + offsetof(struct vmcb, save.sysenter_eip)); in helper_vmload()
334 addr, ldq_phys(addr + offsetof(struct vmcb, save.fs.base)), in helper_vmsave()
337 svm_save_seg(addr + offsetof(struct vmcb, save.fs), in helper_vmsave()
339 svm_save_seg(addr + offsetof(struct vmcb, save.gs), in helper_vmsave()
341 svm_save_seg(addr + offsetof(struct vmcb, save.tr), in helper_vmsave()
343 svm_save_seg(addr + offsetof(struct vmcb, save.ldtr), in helper_vmsave()
347 stq_phys(addr + offsetof(struct vmcb, save.kernel_gs_base), env->kernelgsbase); in helper_vmsave()
348 stq_phys(addr + offsetof(struct vmcb, save.lstar), env->lstar); in helper_vmsave()
349 stq_phys(addr + offsetof(struct vmcb, save.cstar), env->cstar); in helper_vmsave()
350 stq_phys(addr + offsetof(struct vmcb, save.sfmask), env->fmask); in helper_vmsave()
352 stq_phys(addr + offsetof(struct vmcb, save.star), env->star); in helper_vmsave()
353 stq_phys(addr + offsetof(struct vmcb, save.sysenter_cs), env->sysenter_cs); in helper_vmsave()
354 stq_phys(addr + offsetof(struct vmcb, save.sysenter_esp), env->sysenter_esp); in helper_vmsave()
355 stq_phys(addr + offsetof(struct vmcb, save.sysenter_eip), env->sysenter_eip); in helper_vmsave()
502 svm_save_seg(env->vm_vmcb + offsetof(struct vmcb, save.es), in helper_vmexit()
504 svm_save_seg(env->vm_vmcb + offsetof(struct vmcb, save.cs), in helper_vmexit()
506 svm_save_seg(env->vm_vmcb + offsetof(struct vmcb, save.ss), in helper_vmexit()
508 svm_save_seg(env->vm_vmcb + offsetof(struct vmcb, save.ds), in helper_vmexit()
511 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.gdtr.base), env->gdt.base); in helper_vmexit()
512 stl_phys(env->vm_vmcb + offsetof(struct vmcb, save.gdtr.limit), env->gdt.limit); in helper_vmexit()
514 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.idtr.base), env->idt.base); in helper_vmexit()
515 stl_phys(env->vm_vmcb + offsetof(struct vmcb, save.idtr.limit), env->idt.limit); in helper_vmexit()
517 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.efer), env->efer); in helper_vmexit()
518 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.cr0), env->cr[0]); in helper_vmexit()
519 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.cr2), env->cr[2]); in helper_vmexit()
520 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.cr3), env->cr[3]); in helper_vmexit()
521 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.cr4), env->cr[4]); in helper_vmexit()
530 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rflags), cpu_compute_eflags(env)); in helper_vmexit()
531 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rip), env->eip); in helper_vmexit()
532 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rsp), ESP); in helper_vmexit()
533 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rax), EAX); in helper_vmexit()
534 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.dr7), env->dr[7]); in helper_vmexit()
535 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.dr6), env->dr[6]); in helper_vmexit()
536 stb_phys(env->vm_vmcb + offsetof(struct vmcb, save.cpl), env->hflags & HF_CPL_MASK); in helper_vmexit()
546 env->gdt.base = ldq_phys(env->vm_hsave + offsetof(struct vmcb, save.gdtr.base)); in helper_vmexit()
547 env->gdt.limit = ldl_phys(env->vm_hsave + offsetof(struct vmcb, save.gdtr.limit)); in helper_vmexit()
549 env->idt.base = ldq_phys(env->vm_hsave + offsetof(struct vmcb, save.idtr.base)); in helper_vmexit()
550 env->idt.limit = ldl_phys(env->vm_hsave + offsetof(struct vmcb, save.idtr.limit)); in helper_vmexit()
552 … cpu_x86_update_cr0(env, ldq_phys(env->vm_hsave + offsetof(struct vmcb, save.cr0)) | CR0_PE_MASK); in helper_vmexit()
553 cpu_x86_update_cr4(env, ldq_phys(env->vm_hsave + offsetof(struct vmcb, save.cr4))); in helper_vmexit()
554 cpu_x86_update_cr3(env, ldq_phys(env->vm_hsave + offsetof(struct vmcb, save.cr3))); in helper_vmexit()
558 ldq_phys(env->vm_hsave + offsetof(struct vmcb, save.efer))); in helper_vmexit()
560 cpu_load_eflags(env, ldq_phys(env->vm_hsave + offsetof(struct vmcb, save.rflags)), in helper_vmexit()
564 svm_load_seg_cache(env->vm_hsave + offsetof(struct vmcb, save.es), in helper_vmexit()
566 svm_load_seg_cache(env->vm_hsave + offsetof(struct vmcb, save.cs), in helper_vmexit()
568 svm_load_seg_cache(env->vm_hsave + offsetof(struct vmcb, save.ss), in helper_vmexit()
570 svm_load_seg_cache(env->vm_hsave + offsetof(struct vmcb, save.ds), in helper_vmexit()
573 EIP = ldq_phys(env->vm_hsave + offsetof(struct vmcb, save.rip)); in helper_vmexit()
574 ESP = ldq_phys(env->vm_hsave + offsetof(struct vmcb, save.rsp)); in helper_vmexit()
575 EAX = ldq_phys(env->vm_hsave + offsetof(struct vmcb, save.rax)); in helper_vmexit()
577 env->dr[6] = ldq_phys(env->vm_hsave + offsetof(struct vmcb, save.dr6)); in helper_vmexit()
578 env->dr[7] = ldq_phys(env->vm_hsave + offsetof(struct vmcb, save.dr7)); in helper_vmexit()