diff options
Diffstat (limited to 'target-i386/smm_helper.c')
-rw-r--r-- | target-i386/smm_helper.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/target-i386/smm_helper.c b/target-i386/smm_helper.c index d051f03b6a..248957337e 100644 --- a/target-i386/smm_helper.c +++ b/target-i386/smm_helper.c @@ -89,7 +89,7 @@ void do_smm_enter(CPUX86State *env) stq_phys(sm_state + 0x7fd8, env->regs[R_ESP]); stq_phys(sm_state + 0x7fd0, env->regs[R_EBP]); stq_phys(sm_state + 0x7fc8, env->regs[R_ESI]); - stq_phys(sm_state + 0x7fc0, EDI); + stq_phys(sm_state + 0x7fc0, env->regs[R_EDI]); for (i = 8; i < 16; i++) { stq_phys(sm_state + 0x7ff8 - i * 8, env->regs[i]); } @@ -109,7 +109,7 @@ void do_smm_enter(CPUX86State *env) stl_phys(sm_state + 0x7ff8, env->cr[3]); stl_phys(sm_state + 0x7ff4, cpu_compute_eflags(env)); stl_phys(sm_state + 0x7ff0, env->eip); - stl_phys(sm_state + 0x7fec, EDI); + stl_phys(sm_state + 0x7fec, env->regs[R_EDI]); stl_phys(sm_state + 0x7fe8, env->regs[R_ESI]); stl_phys(sm_state + 0x7fe4, env->regs[R_EBP]); stl_phys(sm_state + 0x7fe0, env->regs[R_ESP]); @@ -220,7 +220,7 @@ void helper_rsm(CPUX86State *env) env->regs[R_ESP] = ldq_phys(sm_state + 0x7fd8); env->regs[R_EBP] = ldq_phys(sm_state + 0x7fd0); env->regs[R_ESI] = ldq_phys(sm_state + 0x7fc8); - EDI = ldq_phys(sm_state + 0x7fc0); + env->regs[R_EDI] = ldq_phys(sm_state + 0x7fc0); for (i = 8; i < 16; i++) { env->regs[i] = ldq_phys(sm_state + 0x7ff8 - i * 8); } @@ -244,7 +244,7 @@ void helper_rsm(CPUX86State *env) cpu_load_eflags(env, ldl_phys(sm_state + 0x7ff4), ~(CC_O | CC_S | CC_Z | CC_A | CC_P | CC_C | DF_MASK)); env->eip = ldl_phys(sm_state + 0x7ff0); - EDI = ldl_phys(sm_state + 0x7fec); + env->regs[R_EDI] = ldl_phys(sm_state + 0x7fec); env->regs[R_ESI] = ldl_phys(sm_state + 0x7fe8); env->regs[R_EBP] = ldl_phys(sm_state + 0x7fe4); env->regs[R_ESP] = ldl_phys(sm_state + 0x7fe0); |