Commit 90f11f95fe41c1b0ec3c70f11f93efeec8a34611
1 parent
fa15e030
pusha, popa and enter fix
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1261 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
3 additions
and
3 deletions
target-i386/translate.c
... | ... | @@ -2074,7 +2074,7 @@ static void gen_pusha(DisasContext *s) |
2074 | 2074 | gen_op_st_T0_A0[OT_WORD + s->dflag + s->mem_index](); |
2075 | 2075 | gen_op_addl_A0_im(2 << s->dflag); |
2076 | 2076 | } |
2077 | - gen_op_mov_reg_T1[OT_WORD + s->dflag][R_ESP](); | |
2077 | + gen_op_mov_reg_T1[OT_WORD + s->ss32][R_ESP](); | |
2078 | 2078 | } |
2079 | 2079 | |
2080 | 2080 | /* NOTE: wrap around in 16 bit not fully handled */ |
... | ... | @@ -2096,7 +2096,7 @@ static void gen_popa(DisasContext *s) |
2096 | 2096 | } |
2097 | 2097 | gen_op_addl_A0_im(2 << s->dflag); |
2098 | 2098 | } |
2099 | - gen_op_mov_reg_T1[OT_WORD + s->dflag][R_ESP](); | |
2099 | + gen_op_mov_reg_T1[OT_WORD + s->ss32][R_ESP](); | |
2100 | 2100 | } |
2101 | 2101 | |
2102 | 2102 | static void gen_enter(DisasContext *s, int esp_addend, int level) |
... | ... | @@ -2122,7 +2122,7 @@ static void gen_enter(DisasContext *s, int esp_addend, int level) |
2122 | 2122 | } |
2123 | 2123 | gen_op_mov_reg_T1[ot][R_EBP](); |
2124 | 2124 | gen_op_addl_T1_im( -esp_addend + (-opsize * level) ); |
2125 | - gen_op_mov_reg_T1[ot][R_ESP](); | |
2125 | + gen_op_mov_reg_T1[OT_WORD + s->ss32][R_ESP](); | |
2126 | 2126 | } |
2127 | 2127 | |
2128 | 2128 | static void gen_exception(DisasContext *s, int trapno, target_ulong cur_eip) | ... | ... |