Revision 2a449d14

b/target-i386/translate.c
1511 1511
        if (is_right) {
1512 1512
            if (is_arith) {
1513 1513
                gen_exts(ot, cpu_T[0]);
1514
                tcg_gen_sari_tl(cpu_tmp0, cpu_T[0], op2 - 1);
1514
                tcg_gen_sari_tl(cpu_tmp4, cpu_T[0], op2 - 1);
1515 1515
                tcg_gen_sari_tl(cpu_T[0], cpu_T[0], op2);
1516 1516
            } else {
1517 1517
                gen_extu(ot, cpu_T[0]);
1518
                tcg_gen_shri_tl(cpu_tmp0, cpu_T[0], op2 - 1);
1518
                tcg_gen_shri_tl(cpu_tmp4, cpu_T[0], op2 - 1);
1519 1519
                tcg_gen_shri_tl(cpu_T[0], cpu_T[0], op2);
1520 1520
            }
1521 1521
        } else {
1522
            tcg_gen_shli_tl(cpu_tmp0, cpu_T[0], op2 - 1);
1522
            tcg_gen_shli_tl(cpu_tmp4, cpu_T[0], op2 - 1);
1523 1523
            tcg_gen_shli_tl(cpu_T[0], cpu_T[0], op2);
1524 1524
        }
1525 1525
    }
......
1532 1532
        
1533 1533
    /* update eflags if non zero shift */
1534 1534
    if (op2 != 0) {
1535
        tcg_gen_mov_tl(cpu_cc_src, cpu_tmp0);
1535
        tcg_gen_mov_tl(cpu_cc_src, cpu_tmp4);
1536 1536
        tcg_gen_mov_tl(cpu_cc_dst, cpu_T[0]);
1537 1537
        if (is_right)
1538 1538
            s->cc_op = CC_OP_SARB + ot;

Also available in: Unified diff