Lines Matching refs:vm_vmcb
124 env->vm_vmcb = addr;
159 env->intercept = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, control.intercept));
160 env->intercept_cr_read = lduw_phys(env->vm_vmcb + offsetof(struct vmcb, control.intercept_cr_read));
161 env->intercept_cr_write = lduw_phys(env->vm_vmcb + offsetof(struct vmcb, control.intercept_cr_write));
162 env->intercept_dr_read = lduw_phys(env->vm_vmcb + offsetof(struct vmcb, control.intercept_dr_read));
163 env->intercept_dr_write = lduw_phys(env->vm_vmcb + offsetof(struct vmcb, control.intercept_dr_write));
164 env->intercept_exceptions = ldl_phys(env->vm_vmcb + offsetof(struct vmcb, control.intercept_exceptions));
169 env->tsc_offset = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, control.tsc_offset));
171 env->gdt.base = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.gdtr.base));
172 env->gdt.limit = ldl_phys(env->vm_vmcb + offsetof(struct vmcb, save.gdtr.limit));
174 env->idt.base = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.idtr.base));
175 env->idt.limit = ldl_phys(env->vm_vmcb + offsetof(struct vmcb, save.idtr.limit));
178 stq_phys(env->vm_vmcb + offsetof(struct vmcb, control.exit_info_2), 0);
180 cpu_x86_update_cr0(env, ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.cr0)));
181 cpu_x86_update_cr4(env, ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.cr4)));
182 cpu_x86_update_cr3(env, ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.cr3)));
183 env->cr[2] = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.cr2));
184 int_ctl = ldl_phys(env->vm_vmcb + offsetof(struct vmcb, control.int_ctl));
194 ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.efer)));
196 cpu_load_eflags(env, ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rflags)),
200 svm_load_seg_cache(env->vm_vmcb + offsetof(struct vmcb, save.es),
202 svm_load_seg_cache(env->vm_vmcb + offsetof(struct vmcb, save.cs),
204 svm_load_seg_cache(env->vm_vmcb + offsetof(struct vmcb, save.ss),
206 svm_load_seg_cache(env->vm_vmcb + offsetof(struct vmcb, save.ds),
209 EIP = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rip));
211 ESP = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rsp));
212 EAX = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rax));
213 env->dr[7] = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.dr7));
214 env->dr[6] = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.dr6));
215 cpu_x86_set_cpl(env, ldub_phys(env->vm_vmcb + offsetof(struct vmcb, save.cpl)));
219 switch(ldub_phys(env->vm_vmcb + offsetof(struct vmcb, control.tlb_ctl))) {
235 event_inj = ldl_phys(env->vm_vmcb + offsetof(struct vmcb, control.event_inj));
239 uint32_t event_inj_err = ldl_phys(env->vm_vmcb + offsetof(struct vmcb, control.event_inj_err));
426 uint64_t addr = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, control.msrpm_base_pa));
472 uint64_t addr = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, control.iopm_base_pa));
476 stq_phys(env->vm_vmcb + offsetof(struct vmcb, control.exit_info_2),
491 ldq_phys(env->vm_vmcb + offsetof(struct vmcb, control.exit_info_2)),
495 stl_phys(env->vm_vmcb + offsetof(struct vmcb, control.int_state), SVM_INTERRUPT_SHADOW_MASK);
498 stl_phys(env->vm_vmcb + offsetof(struct vmcb, control.int_state), 0);
502 svm_save_seg(env->vm_vmcb + offsetof(struct vmcb, save.es),
504 svm_save_seg(env->vm_vmcb + offsetof(struct vmcb, save.cs),
506 svm_save_seg(env->vm_vmcb + offsetof(struct vmcb, save.ss),
508 svm_save_seg(env->vm_vmcb + offsetof(struct vmcb, save.ds),
511 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.gdtr.base), env->gdt.base);
512 stl_phys(env->vm_vmcb + offsetof(struct vmcb, save.gdtr.limit), env->gdt.limit);
514 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.idtr.base), env->idt.base);
515 stl_phys(env->vm_vmcb + offsetof(struct vmcb, save.idtr.limit), env->idt.limit);
517 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.efer), env->efer);
518 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.cr0), env->cr[0]);
519 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.cr2), env->cr[2]);
520 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.cr3), env->cr[3]);
521 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.cr4), env->cr[4]);
523 int_ctl = ldl_phys(env->vm_vmcb + offsetof(struct vmcb, control.int_ctl));
528 stl_phys(env->vm_vmcb + offsetof(struct vmcb, control.int_ctl), int_ctl);
530 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rflags), cpu_compute_eflags(env));
531 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rip), env->eip);
532 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rsp), ESP);
533 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rax), EAX);
534 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.dr7), env->dr[7]);
535 stq_phys(env->vm_vmcb + offsetof(struct vmcb, save.dr6), env->dr[6]);
536 stb_phys(env->vm_vmcb + offsetof(struct vmcb, save.cpl), env->hflags & HF_CPL_MASK);
582 stq_phys(env->vm_vmcb + offsetof(struct vmcb, control.exit_code), exit_code);
583 stq_phys(env->vm_vmcb + offsetof(struct vmcb, control.exit_info_1), exit_info_1);
585 stl_phys(env->vm_vmcb + offsetof(struct vmcb, control.exit_int_info),
586 ldl_phys(env->vm_vmcb + offsetof(struct vmcb, control.event_inj)));
587 stl_phys(env->vm_vmcb + offsetof(struct vmcb, control.exit_int_info_err),
588 ldl_phys(env->vm_vmcb + offsetof(struct vmcb, control.event_inj_err)));