Revision bdf9f35d target-sparc/translate.c

b/target-sparc/translate.c
459 459
    gen_set_label(l1);
460 460
}
461 461

  
462
static inline void gen_op_add_cc2(TCGv dst)
463
{
464
    gen_cc_clear_icc();
465
    gen_cc_NZ_icc(cpu_cc_dst);
466
    gen_cc_C_add_icc(cpu_cc_dst, cpu_cc_src);
467
    gen_cc_V_add_icc(cpu_cc_dst, cpu_cc_src, cpu_cc_src2);
468
#ifdef TARGET_SPARC64
469
    gen_cc_clear_xcc();
470
    gen_cc_NZ_xcc(cpu_cc_dst);
471
    gen_cc_C_add_xcc(cpu_cc_dst, cpu_cc_src);
472
    gen_cc_V_add_xcc(cpu_cc_dst, cpu_cc_src, cpu_cc_src2);
473
#endif
474
    tcg_gen_mov_tl(dst, cpu_cc_dst);
475
}
476

  
477 462
static inline void gen_op_addi_cc(TCGv dst, TCGv src1, target_long src2)
478 463
{
479 464
    tcg_gen_mov_tl(cpu_cc_src, src1);
480 465
    tcg_gen_movi_tl(cpu_cc_src2, src2);
481 466
    tcg_gen_addi_tl(cpu_cc_dst, cpu_cc_src, src2);
482
    gen_op_add_cc2(dst);
467
    tcg_gen_mov_tl(dst, cpu_cc_dst);
483 468
}
484 469

  
485 470
static inline void gen_op_add_cc(TCGv dst, TCGv src1, TCGv src2)
......
487 472
    tcg_gen_mov_tl(cpu_cc_src, src1);
488 473
    tcg_gen_mov_tl(cpu_cc_src2, src2);
489 474
    tcg_gen_add_tl(cpu_cc_dst, cpu_cc_src, cpu_cc_src2);
490
    gen_op_add_cc2(dst);
475
    tcg_gen_mov_tl(dst, cpu_cc_dst);
491 476
}
492 477

  
493 478
static inline void gen_op_addx_cc2(TCGv dst)
......
3153 3138
                            simm = GET_FIELDs(insn, 19, 31);
3154 3139
                            if (xop & 0x10) {
3155 3140
                                gen_op_addi_cc(cpu_dst, cpu_src1, simm);
3156
                                tcg_gen_movi_i32(cpu_cc_op, CC_OP_FLAGS);
3157
                                dc->cc_op = CC_OP_FLAGS;
3141
                                tcg_gen_movi_i32(cpu_cc_op, CC_OP_ADD);
3142
                                dc->cc_op = CC_OP_ADD;
3158 3143
                            } else {
3159 3144
                                tcg_gen_addi_tl(cpu_dst, cpu_src1, simm);
3160 3145
                            }
3161 3146
                        } else {
3162 3147
                            if (xop & 0x10) {
3163 3148
                                gen_op_add_cc(cpu_dst, cpu_src1, cpu_src2);
3164
                                tcg_gen_movi_i32(cpu_cc_op, CC_OP_FLAGS);
3165
                                dc->cc_op = CC_OP_FLAGS;
3149
                                tcg_gen_movi_i32(cpu_cc_op, CC_OP_ADD);
3150
                                dc->cc_op = CC_OP_ADD;
3166 3151
                            } else {
3167 3152
                                tcg_gen_add_tl(cpu_dst, cpu_src1, cpu_src2);
3168 3153
                            }

Also available in: Unified diff