Revision 49d9fdcc target-i386/translate.c

b/target-i386/translate.c
7305 7305
#endif
7306 7306
        {
7307 7307
            int label1;
7308
            TCGv t0, t1, t2;
7308
            TCGv t0, t1, t2, a0;
7309 7309

  
7310 7310
            if (!s->pe || s->vm86)
7311 7311
                goto illegal_op;
......
7320 7320
            if (mod != 3) {
7321 7321
                gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
7322 7322
                gen_op_ld_v(ot + s->mem_index, t0, cpu_A0);
7323
                a0 = tcg_temp_local_new();
7324
                tcg_gen_mov_tl(a0, cpu_A0);
7323 7325
            } else {
7324 7326
                gen_op_mov_v_reg(ot, t0, rm);
7327
                TCGV_UNUSED(a0);
7325 7328
            }
7326 7329
            gen_op_mov_v_reg(ot, t1, reg);
7327 7330
            tcg_gen_andi_tl(cpu_tmp0, t0, 3);
......
7334 7337
            tcg_gen_movi_tl(t2, CC_Z);
7335 7338
            gen_set_label(label1);
7336 7339
            if (mod != 3) {
7337
                gen_op_st_v(ot + s->mem_index, t0, cpu_A0);
7338
            } else {
7340
                gen_op_st_v(ot + s->mem_index, t0, a0);
7341
                tcg_temp_free(a0);
7342
           } else {
7339 7343
                gen_op_mov_reg_v(ot, rm, t0);
7340 7344
            }
7341 7345
            if (s->cc_op != CC_OP_DYNAMIC)

Also available in: Unified diff