Revision a78d0eab target-i386/svm_helper.c

b/target-i386/svm_helper.c
170 170
                 &env->segs[R_DS]);
171 171

  
172 172
    stq_phys(env->vm_hsave + offsetof(struct vmcb, save.rip),
173
             EIP + next_eip_addend);
173
             env->eip + next_eip_addend);
174 174
    stq_phys(env->vm_hsave + offsetof(struct vmcb, save.rsp), env->regs[R_ESP]);
175 175
    stq_phys(env->vm_hsave + offsetof(struct vmcb, save.rax), env->regs[R_EAX]);
176 176

  
......
248 248
    svm_load_seg_cache(env, env->vm_vmcb + offsetof(struct vmcb, save.ds),
249 249
                       R_DS);
250 250

  
251
    EIP = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rip));
252
    env->eip = EIP;
251
    env->eip = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rip));
252
    env->eip = env->eip;
253 253
    env->regs[R_ESP] = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rsp));
254 254
    env->regs[R_EAX] = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.rax));
255 255
    env->dr[7] = ldq_phys(env->vm_vmcb + offsetof(struct vmcb, save.dr7));
......
302 302
            env->exception_index = EXCP02_NMI;
303 303
            env->error_code = event_inj_err;
304 304
            env->exception_is_int = 0;
305
            env->exception_next_eip = EIP;
305
            env->exception_next_eip = env->eip;
306 306
            qemu_log_mask(CPU_LOG_TB_IN_ASM, "NMI");
307 307
            cpu_loop_exit(env);
308 308
            break;
......
318 318
            env->exception_index = vector;
319 319
            env->error_code = event_inj_err;
320 320
            env->exception_is_int = 1;
321
            env->exception_next_eip = EIP;
321
            env->exception_next_eip = env->eip;
322 322
            qemu_log_mask(CPU_LOG_TB_IN_ASM, "SOFT");
323 323
            cpu_loop_exit(env);
324 324
            break;
......
539 539
        uint16_t mask = (1 << ((param >> 4) & 7)) - 1;
540 540

  
541 541
        if (lduw_phys(addr + port / 8) & (mask << (port & 7))) {
542
            /* next EIP */
542
            /* next env->eip */
543 543
            stq_phys(env->vm_vmcb + offsetof(struct vmcb, control.exit_info_2),
544 544
                     env->eip + next_eip_addend);
545 545
            helper_vmexit(env, SVM_EXIT_IOIO, param | (port << 16));
......
558 558
                  exit_code, exit_info_1,
559 559
                  ldq_phys(env->vm_vmcb + offsetof(struct vmcb,
560 560
                                                   control.exit_info_2)),
561
                  EIP);
561
                  env->eip);
562 562

  
563 563
    if (env->hflags & HF_INHIBIT_IRQ_MASK) {
564 564
        stl_phys(env->vm_vmcb + offsetof(struct vmcb, control.int_state),
......
657 657
    svm_load_seg_cache(env, env->vm_hsave + offsetof(struct vmcb, save.ds),
658 658
                       R_DS);
659 659

  
660
    EIP = ldq_phys(env->vm_hsave + offsetof(struct vmcb, save.rip));
660
    env->eip = ldq_phys(env->vm_hsave + offsetof(struct vmcb, save.rip));
661 661
    env->regs[R_ESP] = ldq_phys(env->vm_hsave + offsetof(struct vmcb, save.rsp));
662 662
    env->regs[R_EAX] = ldq_phys(env->vm_hsave + offsetof(struct vmcb, save.rax));
663 663

  

Also available in: Unified diff