Commit cb63669a54fdd926da7d07768f21f515acd4ad2a
1 parent
455f9004
Fix ARM conditional branch bug.
Add tcg_gen_brcondi. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4552 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
6 changed files
with
131 additions
and
121 deletions
target-arm/translate.c
| ... | ... | @@ -662,94 +662,92 @@ static void gen_test_cc(int cc, int label) |
| 662 | 662 | { |
| 663 | 663 | TCGv tmp; |
| 664 | 664 | TCGv tmp2; |
| 665 | - TCGv zero; | |
| 666 | 665 | int inv; |
| 667 | 666 | |
| 668 | - zero = tcg_const_i32(0); | |
| 669 | 667 | switch (cc) { |
| 670 | 668 | case 0: /* eq: Z */ |
| 671 | 669 | tmp = load_cpu_field(ZF); |
| 672 | - tcg_gen_brcond_i32(TCG_COND_EQ, tmp, zero, label); | |
| 670 | + tcg_gen_brcondi_i32(TCG_COND_EQ, tmp, 0, label); | |
| 673 | 671 | break; |
| 674 | 672 | case 1: /* ne: !Z */ |
| 675 | 673 | tmp = load_cpu_field(ZF); |
| 676 | - tcg_gen_brcond_i32(TCG_COND_NE, tmp, zero, label); | |
| 674 | + tcg_gen_brcondi_i32(TCG_COND_NE, tmp, 0, label); | |
| 677 | 675 | break; |
| 678 | 676 | case 2: /* cs: C */ |
| 679 | 677 | tmp = load_cpu_field(CF); |
| 680 | - tcg_gen_brcond_i32(TCG_COND_NE, tmp, zero, label); | |
| 678 | + tcg_gen_brcondi_i32(TCG_COND_NE, tmp, 0, label); | |
| 681 | 679 | break; |
| 682 | 680 | case 3: /* cc: !C */ |
| 683 | 681 | tmp = load_cpu_field(CF); |
| 684 | - tcg_gen_brcond_i32(TCG_COND_EQ, tmp, zero, label); | |
| 682 | + tcg_gen_brcondi_i32(TCG_COND_EQ, tmp, 0, label); | |
| 685 | 683 | break; |
| 686 | 684 | case 4: /* mi: N */ |
| 687 | 685 | tmp = load_cpu_field(NF); |
| 688 | - tcg_gen_brcond_i32(TCG_COND_LT, tmp, zero, label); | |
| 686 | + tcg_gen_brcondi_i32(TCG_COND_LT, tmp, 0, label); | |
| 689 | 687 | break; |
| 690 | 688 | case 5: /* pl: !N */ |
| 691 | 689 | tmp = load_cpu_field(NF); |
| 692 | - tcg_gen_brcond_i32(TCG_COND_GE, tmp, zero, label); | |
| 690 | + tcg_gen_brcondi_i32(TCG_COND_GE, tmp, 0, label); | |
| 693 | 691 | break; |
| 694 | 692 | case 6: /* vs: V */ |
| 695 | 693 | tmp = load_cpu_field(VF); |
| 696 | - tcg_gen_brcond_i32(TCG_COND_LT, tmp, zero, label); | |
| 694 | + tcg_gen_brcondi_i32(TCG_COND_LT, tmp, 0, label); | |
| 697 | 695 | break; |
| 698 | 696 | case 7: /* vc: !V */ |
| 699 | 697 | tmp = load_cpu_field(VF); |
| 700 | - tcg_gen_brcond_i32(TCG_COND_GE, tmp, zero, label); | |
| 698 | + tcg_gen_brcondi_i32(TCG_COND_GE, tmp, 0, label); | |
| 701 | 699 | break; |
| 702 | 700 | case 8: /* hi: C && !Z */ |
| 703 | 701 | inv = gen_new_label(); |
| 704 | 702 | tmp = load_cpu_field(CF); |
| 705 | - tcg_gen_brcond_i32(TCG_COND_EQ, tmp, zero, inv); | |
| 703 | + tcg_gen_brcondi_i32(TCG_COND_EQ, tmp, 0, inv); | |
| 706 | 704 | dead_tmp(tmp); |
| 707 | 705 | tmp = load_cpu_field(ZF); |
| 708 | - tcg_gen_brcond_i32(TCG_COND_NE, tmp, zero, label); | |
| 706 | + tcg_gen_brcondi_i32(TCG_COND_NE, tmp, 0, label); | |
| 709 | 707 | gen_set_label(inv); |
| 710 | 708 | break; |
| 711 | 709 | case 9: /* ls: !C || Z */ |
| 712 | 710 | tmp = load_cpu_field(CF); |
| 713 | - tcg_gen_brcond_i32(TCG_COND_EQ, tmp, zero, label); | |
| 711 | + tcg_gen_brcondi_i32(TCG_COND_EQ, tmp, 0, label); | |
| 714 | 712 | dead_tmp(tmp); |
| 715 | 713 | tmp = load_cpu_field(ZF); |
| 716 | - tcg_gen_brcond_i32(TCG_COND_EQ, tmp, zero, label); | |
| 714 | + tcg_gen_brcondi_i32(TCG_COND_EQ, tmp, 0, label); | |
| 717 | 715 | break; |
| 718 | 716 | case 10: /* ge: N == V -> N ^ V == 0 */ |
| 719 | 717 | tmp = load_cpu_field(VF); |
| 720 | 718 | tmp2 = load_cpu_field(NF); |
| 721 | 719 | tcg_gen_xor_i32(tmp, tmp, tmp2); |
| 722 | 720 | dead_tmp(tmp2); |
| 723 | - tcg_gen_brcond_i32(TCG_COND_GE, tmp, zero, label); | |
| 721 | + tcg_gen_brcondi_i32(TCG_COND_GE, tmp, 0, label); | |
| 724 | 722 | break; |
| 725 | 723 | case 11: /* lt: N != V -> N ^ V != 0 */ |
| 726 | 724 | tmp = load_cpu_field(VF); |
| 727 | 725 | tmp2 = load_cpu_field(NF); |
| 728 | 726 | tcg_gen_xor_i32(tmp, tmp, tmp2); |
| 729 | 727 | dead_tmp(tmp2); |
| 730 | - tcg_gen_brcond_i32(TCG_COND_LT, tmp, zero, label); | |
| 728 | + tcg_gen_brcondi_i32(TCG_COND_LT, tmp, 0, label); | |
| 731 | 729 | break; |
| 732 | 730 | case 12: /* gt: !Z && N == V */ |
| 733 | 731 | inv = gen_new_label(); |
| 734 | 732 | tmp = load_cpu_field(ZF); |
| 735 | - tcg_gen_brcond_i32(TCG_COND_EQ, tmp, zero, inv); | |
| 733 | + tcg_gen_brcondi_i32(TCG_COND_EQ, tmp, 0, inv); | |
| 736 | 734 | dead_tmp(tmp); |
| 737 | 735 | tmp = load_cpu_field(VF); |
| 738 | 736 | tmp2 = load_cpu_field(NF); |
| 739 | 737 | tcg_gen_xor_i32(tmp, tmp, tmp2); |
| 740 | 738 | dead_tmp(tmp2); |
| 741 | - tcg_gen_brcond_i32(TCG_COND_GE, tmp, zero, label); | |
| 739 | + tcg_gen_brcondi_i32(TCG_COND_GE, tmp, 0, label); | |
| 742 | 740 | gen_set_label(inv); |
| 743 | 741 | break; |
| 744 | 742 | case 13: /* le: Z || N != V */ |
| 745 | 743 | tmp = load_cpu_field(ZF); |
| 746 | - tcg_gen_brcond_i32(TCG_COND_EQ, tmp, zero, label); | |
| 744 | + tcg_gen_brcondi_i32(TCG_COND_EQ, tmp, 0, label); | |
| 747 | 745 | dead_tmp(tmp); |
| 748 | 746 | tmp = load_cpu_field(VF); |
| 749 | 747 | tmp2 = load_cpu_field(NF); |
| 750 | 748 | tcg_gen_xor_i32(tmp, tmp, tmp2); |
| 751 | 749 | dead_tmp(tmp2); |
| 752 | - tcg_gen_brcond_i32(TCG_COND_LT, tmp, zero, label); | |
| 750 | + tcg_gen_brcondi_i32(TCG_COND_LT, tmp, 0, label); | |
| 753 | 751 | break; |
| 754 | 752 | default: |
| 755 | 753 | fprintf(stderr, "Bad condition code 0x%x\n", cc); |
| ... | ... | @@ -6233,8 +6231,8 @@ static void disas_arm_insn(CPUState * env, DisasContext *s) |
| 6233 | 6231 | int label = gen_new_label(); |
| 6234 | 6232 | rm = insn & 0xf; |
| 6235 | 6233 | gen_helper_test_exclusive(cpu_T[0], cpu_env, addr); |
| 6236 | - tcg_gen_brcond_i32(TCG_COND_NE, cpu_T[0], | |
| 6237 | - tcg_const_i32(0), label); | |
| 6234 | + tcg_gen_brcondi_i32(TCG_COND_NE, cpu_T[0], | |
| 6235 | + 0, label); | |
| 6238 | 6236 | tmp = load_reg(s,rm); |
| 6239 | 6237 | gen_st32(tmp, cpu_T[1], IS_USER(s)); |
| 6240 | 6238 | gen_set_label(label); |
| ... | ... | @@ -6984,8 +6982,8 @@ static int disas_thumb2_insn(CPUState *env, DisasContext *s, uint16_t insn_hw1) |
| 6984 | 6982 | } else { |
| 6985 | 6983 | int label = gen_new_label(); |
| 6986 | 6984 | gen_helper_test_exclusive(cpu_T[0], cpu_env, addr); |
| 6987 | - tcg_gen_brcond_i32(TCG_COND_NE, cpu_T[0], | |
| 6988 | - tcg_const_i32(0), label); | |
| 6985 | + tcg_gen_brcondi_i32(TCG_COND_NE, cpu_T[0], | |
| 6986 | + 0, label); | |
| 6989 | 6987 | tmp = load_reg(s, rs); |
| 6990 | 6988 | gen_st32(tmp, cpu_T[1], IS_USER(s)); |
| 6991 | 6989 | gen_set_label(label); |
| ... | ... | @@ -7047,8 +7045,7 @@ static int disas_thumb2_insn(CPUState *env, DisasContext *s, uint16_t insn_hw1) |
| 7047 | 7045 | int label = gen_new_label(); |
| 7048 | 7046 | /* Must use a global that is not killed by the branch. */ |
| 7049 | 7047 | gen_helper_test_exclusive(cpu_T[0], cpu_env, addr); |
| 7050 | - tcg_gen_brcond_i32(TCG_COND_NE, cpu_T[0], tcg_const_i32(0), | |
| 7051 | - label); | |
| 7048 | + tcg_gen_brcondi_i32(TCG_COND_NE, cpu_T[0], 0, label); | |
| 7052 | 7049 | tmp = load_reg(s, rs); |
| 7053 | 7050 | switch (op) { |
| 7054 | 7051 | case 0: |
| ... | ... | @@ -8364,13 +8361,12 @@ static void disas_thumb_insn(CPUState *env, DisasContext *s) |
| 8364 | 8361 | case 1: case 3: case 9: case 11: /* czb */ |
| 8365 | 8362 | rm = insn & 7; |
| 8366 | 8363 | tmp = load_reg(s, rm); |
| 8367 | - tmp2 = tcg_const_i32(0); | |
| 8368 | 8364 | s->condlabel = gen_new_label(); |
| 8369 | 8365 | s->condjmp = 1; |
| 8370 | 8366 | if (insn & (1 << 11)) |
| 8371 | - tcg_gen_brcond_i32(TCG_COND_EQ, tmp, tmp2, s->condlabel); | |
| 8367 | + tcg_gen_brcondi_i32(TCG_COND_EQ, tmp, 0, s->condlabel); | |
| 8372 | 8368 | else |
| 8373 | - tcg_gen_brcond_i32(TCG_COND_NE, tmp, tmp2, s->condlabel); | |
| 8369 | + tcg_gen_brcondi_i32(TCG_COND_NE, tmp, 0, s->condlabel); | |
| 8374 | 8370 | dead_tmp(tmp); |
| 8375 | 8371 | offset = ((insn & 0xf8) >> 2) | (insn & 0x200) >> 3; |
| 8376 | 8372 | val = (uint32_t)s->pc + 2; | ... | ... |
target-cris/translate.c
| ... | ... | @@ -219,7 +219,7 @@ static void t_gen_lsl(TCGv d, TCGv a, TCGv b) |
| 219 | 219 | l1 = gen_new_label(); |
| 220 | 220 | /* Speculative shift. */ |
| 221 | 221 | tcg_gen_shl_tl(d, a, b); |
| 222 | - tcg_gen_brcond_tl(TCG_COND_LEU, b, tcg_const_tl(31), l1); | |
| 222 | + tcg_gen_brcondi_tl(TCG_COND_LEU, b, 31, l1); | |
| 223 | 223 | /* Clear dst if shift operands were to large. */ |
| 224 | 224 | tcg_gen_movi_tl(d, 0); |
| 225 | 225 | gen_set_label(l1); |
| ... | ... | @@ -232,7 +232,7 @@ static void t_gen_lsr(TCGv d, TCGv a, TCGv b) |
| 232 | 232 | l1 = gen_new_label(); |
| 233 | 233 | /* Speculative shift. */ |
| 234 | 234 | tcg_gen_shr_tl(d, a, b); |
| 235 | - tcg_gen_brcond_tl(TCG_COND_LEU, b, tcg_const_tl(31), l1); | |
| 235 | + tcg_gen_brcondi_tl(TCG_COND_LEU, b, 31, l1); | |
| 236 | 236 | /* Clear dst if shift operands were to large. */ |
| 237 | 237 | tcg_gen_movi_tl(d, 0); |
| 238 | 238 | gen_set_label(l1); |
| ... | ... | @@ -245,7 +245,7 @@ static void t_gen_asr(TCGv d, TCGv a, TCGv b) |
| 245 | 245 | l1 = gen_new_label(); |
| 246 | 246 | /* Speculative shift. */ |
| 247 | 247 | tcg_gen_sar_tl(d, a, b); |
| 248 | - tcg_gen_brcond_tl(TCG_COND_LEU, b, tcg_const_tl(31), l1); | |
| 248 | + tcg_gen_brcondi_tl(TCG_COND_LEU, b, 31, l1); | |
| 249 | 249 | /* Clear dst if shift operands were to large. */ |
| 250 | 250 | tcg_gen_sar_tl(d, a, tcg_const_tl(30)); |
| 251 | 251 | gen_set_label(l1); |
| ... | ... | @@ -406,7 +406,7 @@ static void t_gen_btst(TCGv d, TCGv s) |
| 406 | 406 | tcg_gen_andi_tl(d, cpu_PR[PR_CCS], ~(X_FLAG | N_FLAG | Z_FLAG)); |
| 407 | 407 | /* or in the N_FLAG. */ |
| 408 | 408 | tcg_gen_or_tl(d, d, bset); |
| 409 | - tcg_gen_brcond_tl(TCG_COND_NE, sbit, tcg_const_tl(0), l1); | |
| 409 | + tcg_gen_brcondi_tl(TCG_COND_NE, sbit, 0, l1); | |
| 410 | 410 | /* or in the Z_FLAG. */ |
| 411 | 411 | tcg_gen_ori_tl(d, d, Z_FLAG); |
| 412 | 412 | gen_set_label(l1); |
| ... | ... | @@ -591,7 +591,7 @@ static void t_gen_cc_jmp(TCGv pc_true, TCGv pc_false) |
| 591 | 591 | /* Conditional jmp. */ |
| 592 | 592 | t_gen_mov_TN_env(btaken, btaken); |
| 593 | 593 | tcg_gen_mov_tl(env_pc, pc_false); |
| 594 | - tcg_gen_brcond_tl(TCG_COND_EQ, btaken, tcg_const_tl(0), l1); | |
| 594 | + tcg_gen_brcondi_tl(TCG_COND_EQ, btaken, 0, l1); | |
| 595 | 595 | tcg_gen_mov_tl(env_pc, pc_true); |
| 596 | 596 | gen_set_label(l1); |
| 597 | 597 | |
| ... | ... | @@ -902,8 +902,8 @@ static void gen_tst_cc (DisasContext *dc, int cond) |
| 902 | 902 | int l1; |
| 903 | 903 | l1 = gen_new_label(); |
| 904 | 904 | tcg_gen_movi_tl(cpu_T[0], 0); |
| 905 | - tcg_gen_brcond_tl(TCG_COND_NE, cc_result, | |
| 906 | - tcg_const_tl(0), l1); | |
| 905 | + tcg_gen_brcondi_tl(TCG_COND_NE, cc_result, | |
| 906 | + 0, l1); | |
| 907 | 907 | tcg_gen_movi_tl(cpu_T[0], 1); |
| 908 | 908 | gen_set_label(l1); |
| 909 | 909 | } |
| ... | ... | @@ -1461,7 +1461,7 @@ static unsigned int dec_scc_r(DisasContext *dc) |
| 1461 | 1461 | |
| 1462 | 1462 | l1 = gen_new_label(); |
| 1463 | 1463 | tcg_gen_movi_tl(cpu_R[dc->op1], 0); |
| 1464 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T[0], tcg_const_tl(0), l1); | |
| 1464 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_T[0], 0, l1); | |
| 1465 | 1465 | tcg_gen_movi_tl(cpu_R[dc->op1], 1); |
| 1466 | 1466 | gen_set_label(l1); |
| 1467 | 1467 | } |
| ... | ... | @@ -1618,7 +1618,7 @@ static unsigned int dec_abs_r(DisasContext *dc) |
| 1618 | 1618 | |
| 1619 | 1619 | /* TODO: consider a branch free approach. */ |
| 1620 | 1620 | l1 = gen_new_label(); |
| 1621 | - tcg_gen_brcond_tl(TCG_COND_GE, cpu_T[1], tcg_const_tl(0), l1); | |
| 1621 | + tcg_gen_brcondi_tl(TCG_COND_GE, cpu_T[1], 0, l1); | |
| 1622 | 1622 | tcg_gen_neg_tl(cpu_T[1], cpu_T[1]); |
| 1623 | 1623 | gen_set_label(l1); |
| 1624 | 1624 | crisv32_alu_op(dc, CC_OP_MOVE, dc->op2, 4); | ... | ... |
target-i386/translate.c
| ... | ... | @@ -703,14 +703,14 @@ static inline void gen_op_jnz_ecx(int size, int label1) |
| 703 | 703 | { |
| 704 | 704 | tcg_gen_ld_tl(cpu_tmp0, cpu_env, offsetof(CPUState, regs[R_ECX])); |
| 705 | 705 | gen_extu(size + 1, cpu_tmp0); |
| 706 | - tcg_gen_brcond_tl(TCG_COND_NE, cpu_tmp0, tcg_const_tl(0), label1); | |
| 706 | + tcg_gen_brcondi_tl(TCG_COND_NE, cpu_tmp0, 0, label1); | |
| 707 | 707 | } |
| 708 | 708 | |
| 709 | 709 | static inline void gen_op_jz_ecx(int size, int label1) |
| 710 | 710 | { |
| 711 | 711 | tcg_gen_ld_tl(cpu_tmp0, cpu_env, offsetof(CPUState, regs[R_ECX])); |
| 712 | 712 | gen_extu(size + 1, cpu_tmp0); |
| 713 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_tmp0, tcg_const_tl(0), label1); | |
| 713 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_tmp0, 0, label1); | |
| 714 | 714 | } |
| 715 | 715 | |
| 716 | 716 | static void *helper_in_func[3] = { |
| ... | ... | @@ -1000,32 +1000,31 @@ static inline void gen_jcc1(DisasContext *s, int cc_op, int b, int l1) |
| 1000 | 1000 | t0 = cpu_cc_dst; |
| 1001 | 1001 | break; |
| 1002 | 1002 | } |
| 1003 | - tcg_gen_brcond_tl(inv ? TCG_COND_NE : TCG_COND_EQ, t0, | |
| 1004 | - tcg_const_tl(0), l1); | |
| 1003 | + tcg_gen_brcondi_tl(inv ? TCG_COND_NE : TCG_COND_EQ, t0, 0, l1); | |
| 1005 | 1004 | break; |
| 1006 | 1005 | case JCC_S: |
| 1007 | 1006 | fast_jcc_s: |
| 1008 | 1007 | switch(size) { |
| 1009 | 1008 | case 0: |
| 1010 | 1009 | tcg_gen_andi_tl(cpu_tmp0, cpu_cc_dst, 0x80); |
| 1011 | - tcg_gen_brcond_tl(inv ? TCG_COND_EQ : TCG_COND_NE, cpu_tmp0, | |
| 1012 | - tcg_const_tl(0), l1); | |
| 1010 | + tcg_gen_brcondi_tl(inv ? TCG_COND_EQ : TCG_COND_NE, cpu_tmp0, | |
| 1011 | + 0, l1); | |
| 1013 | 1012 | break; |
| 1014 | 1013 | case 1: |
| 1015 | 1014 | tcg_gen_andi_tl(cpu_tmp0, cpu_cc_dst, 0x8000); |
| 1016 | - tcg_gen_brcond_tl(inv ? TCG_COND_EQ : TCG_COND_NE, cpu_tmp0, | |
| 1017 | - tcg_const_tl(0), l1); | |
| 1015 | + tcg_gen_brcondi_tl(inv ? TCG_COND_EQ : TCG_COND_NE, cpu_tmp0, | |
| 1016 | + 0, l1); | |
| 1018 | 1017 | break; |
| 1019 | 1018 | #ifdef TARGET_X86_64 |
| 1020 | 1019 | case 2: |
| 1021 | 1020 | tcg_gen_andi_tl(cpu_tmp0, cpu_cc_dst, 0x80000000); |
| 1022 | - tcg_gen_brcond_tl(inv ? TCG_COND_EQ : TCG_COND_NE, cpu_tmp0, | |
| 1023 | - tcg_const_tl(0), l1); | |
| 1021 | + tcg_gen_brcondi_tl(inv ? TCG_COND_EQ : TCG_COND_NE, cpu_tmp0, | |
| 1022 | + 0, l1); | |
| 1024 | 1023 | break; |
| 1025 | 1024 | #endif |
| 1026 | 1025 | default: |
| 1027 | - tcg_gen_brcond_tl(inv ? TCG_COND_GE : TCG_COND_LT, cpu_cc_dst, | |
| 1028 | - tcg_const_tl(0), l1); | |
| 1026 | + tcg_gen_brcondi_tl(inv ? TCG_COND_GE : TCG_COND_LT, cpu_cc_dst, | |
| 1027 | + 0, l1); | |
| 1029 | 1028 | break; |
| 1030 | 1029 | } |
| 1031 | 1030 | break; |
| ... | ... | @@ -1153,8 +1152,8 @@ static inline void gen_jcc1(DisasContext *s, int cc_op, int b, int l1) |
| 1153 | 1152 | default: |
| 1154 | 1153 | slow_jcc: |
| 1155 | 1154 | gen_setcc_slow_T0(jcc_op); |
| 1156 | - tcg_gen_brcond_tl(inv ? TCG_COND_EQ : TCG_COND_NE, | |
| 1157 | - cpu_T[0], tcg_const_tl(0), l1); | |
| 1155 | + tcg_gen_brcondi_tl(inv ? TCG_COND_EQ : TCG_COND_NE, | |
| 1156 | + cpu_T[0], 0, l1); | |
| 1158 | 1157 | break; |
| 1159 | 1158 | } |
| 1160 | 1159 | } |
| ... | ... | @@ -1479,7 +1478,7 @@ static void gen_shift_rm_T1(DisasContext *s, int ot, int op1, |
| 1479 | 1478 | gen_op_set_cc_op(s->cc_op); |
| 1480 | 1479 | |
| 1481 | 1480 | shift_label = gen_new_label(); |
| 1482 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T[1], tcg_const_tl(0), shift_label); | |
| 1481 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_T[1], 0, shift_label); | |
| 1483 | 1482 | |
| 1484 | 1483 | tcg_gen_mov_tl(cpu_cc_src, cpu_T3); |
| 1485 | 1484 | tcg_gen_mov_tl(cpu_cc_dst, cpu_T[0]); |
| ... | ... | @@ -1574,7 +1573,7 @@ static void gen_rot_rm_T1(DisasContext *s, int ot, int op1, |
| 1574 | 1573 | /* Must test zero case to avoid using undefined behaviour in TCG |
| 1575 | 1574 | shifts. */ |
| 1576 | 1575 | label1 = gen_new_label(); |
| 1577 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T[1], tcg_const_tl(0), label1); | |
| 1576 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_T[1], 0, label1); | |
| 1578 | 1577 | |
| 1579 | 1578 | if (ot <= OT_WORD) |
| 1580 | 1579 | tcg_gen_andi_tl(cpu_tmp0, cpu_T[1], (1 << (3 + ot)) - 1); |
| ... | ... | @@ -1610,7 +1609,7 @@ static void gen_rot_rm_T1(DisasContext *s, int ot, int op1, |
| 1610 | 1609 | gen_op_set_cc_op(s->cc_op); |
| 1611 | 1610 | |
| 1612 | 1611 | label2 = gen_new_label(); |
| 1613 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T[1], tcg_const_tl(0), label2); | |
| 1612 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_T[1], 0, label2); | |
| 1614 | 1613 | |
| 1615 | 1614 | gen_compute_eflags(cpu_cc_src); |
| 1616 | 1615 | tcg_gen_andi_tl(cpu_cc_src, cpu_cc_src, ~(CC_O | CC_C)); |
| ... | ... | @@ -1667,7 +1666,7 @@ static void gen_rotc_rm_T1(DisasContext *s, int ot, int op1, |
| 1667 | 1666 | |
| 1668 | 1667 | /* update eflags */ |
| 1669 | 1668 | label1 = gen_new_label(); |
| 1670 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T3, tcg_const_tl(-1), label1); | |
| 1669 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_T3, -1, label1); | |
| 1671 | 1670 | |
| 1672 | 1671 | tcg_gen_mov_tl(cpu_cc_src, cpu_T3); |
| 1673 | 1672 | tcg_gen_discard_tl(cpu_cc_dst); |
| ... | ... | @@ -1699,7 +1698,7 @@ static void gen_shiftd_rm_T1_T3(DisasContext *s, int ot, int op1, |
| 1699 | 1698 | /* Must test zero case to avoid using undefined behaviour in TCG |
| 1700 | 1699 | shifts. */ |
| 1701 | 1700 | label1 = gen_new_label(); |
| 1702 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T3, tcg_const_tl(0), label1); | |
| 1701 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_T3, 0, label1); | |
| 1703 | 1702 | |
| 1704 | 1703 | tcg_gen_addi_tl(cpu_tmp5, cpu_T3, -1); |
| 1705 | 1704 | if (ot == OT_WORD) { |
| ... | ... | @@ -1775,7 +1774,7 @@ static void gen_shiftd_rm_T1_T3(DisasContext *s, int ot, int op1, |
| 1775 | 1774 | gen_op_set_cc_op(s->cc_op); |
| 1776 | 1775 | |
| 1777 | 1776 | label2 = gen_new_label(); |
| 1778 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T3, tcg_const_tl(0), label2); | |
| 1777 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_T3, 0, label2); | |
| 1779 | 1778 | |
| 1780 | 1779 | tcg_gen_mov_tl(cpu_cc_src, cpu_T[1]); |
| 1781 | 1780 | tcg_gen_mov_tl(cpu_cc_dst, cpu_T[0]); |
| ... | ... | @@ -4375,7 +4374,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) |
| 4375 | 4374 | tcg_gen_ld_tl(cpu_T3, cpu_env, offsetof(CPUState, regs[R_EAX])); |
| 4376 | 4375 | tcg_gen_sub_tl(cpu_T3, cpu_T3, cpu_T[0]); |
| 4377 | 4376 | gen_extu(ot, cpu_T3); |
| 4378 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T3, tcg_const_tl(0), label1); | |
| 4377 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_T3, 0, label1); | |
| 4379 | 4378 | if (mod == 3) { |
| 4380 | 4379 | label2 = gen_new_label(); |
| 4381 | 4380 | gen_op_mov_reg_T0(ot, R_EAX); |
| ... | ... | @@ -5461,7 +5460,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) |
| 5461 | 5460 | op1 = fcmov_cc[op & 3] | ((op >> 3) & 1); |
| 5462 | 5461 | gen_setcc(s, op1); |
| 5463 | 5462 | l1 = gen_new_label(); |
| 5464 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T[0], tcg_const_tl(0), l1); | |
| 5463 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_T[0], 0, l1); | |
| 5465 | 5464 | tcg_gen_helper_0_1(helper_fmov_ST0_STN, tcg_const_i32(opreg)); |
| 5466 | 5465 | gen_set_label(l1); |
| 5467 | 5466 | } |
| ... | ... | @@ -6047,7 +6046,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) |
| 6047 | 6046 | gen_extu(ot, cpu_T[0]); |
| 6048 | 6047 | label1 = gen_new_label(); |
| 6049 | 6048 | tcg_gen_movi_tl(cpu_cc_dst, 0); |
| 6050 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T[0], tcg_const_tl(0), label1); | |
| 6049 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_T[0], 0, label1); | |
| 6051 | 6050 | if (b & 1) { |
| 6052 | 6051 | tcg_gen_helper_1_1(helper_bsr, cpu_T[0], cpu_T[0]); |
| 6053 | 6052 | } else { |
| ... | ... | @@ -6289,11 +6288,9 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) |
| 6289 | 6288 | gen_compute_eflags(cpu_tmp0); |
| 6290 | 6289 | tcg_gen_andi_tl(cpu_tmp0, cpu_tmp0, CC_Z); |
| 6291 | 6290 | if (b == 0) { |
| 6292 | - tcg_gen_brcond_tl(TCG_COND_EQ, | |
| 6293 | - cpu_tmp0, tcg_const_tl(0), l1); | |
| 6291 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_tmp0, 0, l1); | |
| 6294 | 6292 | } else { |
| 6295 | - tcg_gen_brcond_tl(TCG_COND_NE, | |
| 6296 | - cpu_tmp0, tcg_const_tl(0), l1); | |
| 6293 | + tcg_gen_brcondi_tl(TCG_COND_NE, cpu_tmp0, 0, l1); | |
| 6297 | 6294 | } |
| 6298 | 6295 | break; |
| 6299 | 6296 | case 2: /* loop */ |
| ... | ... | @@ -6782,7 +6779,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) |
| 6782 | 6779 | tcg_gen_helper_1_1(helper_lsl, cpu_T[0], cpu_T[0]); |
| 6783 | 6780 | tcg_gen_andi_tl(cpu_tmp0, cpu_cc_src, CC_Z); |
| 6784 | 6781 | label1 = gen_new_label(); |
| 6785 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_tmp0, tcg_const_tl(0), label1); | |
| 6782 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_tmp0, 0, label1); | |
| 6786 | 6783 | gen_op_mov_reg_T0(ot, reg); |
| 6787 | 6784 | gen_set_label(label1); |
| 6788 | 6785 | s->cc_op = CC_OP_EFLAGS; | ... | ... |
target-mips/translate.c
| ... | ... | @@ -679,7 +679,7 @@ void glue(gen_op_, name) (target_ulong val) \ |
| 679 | 679 | int l1 = gen_new_label(); \ |
| 680 | 680 | int l2 = gen_new_label(); \ |
| 681 | 681 | \ |
| 682 | - tcg_gen_brcond_tl(cond, cpu_T[0], tcg_const_tl(val), l1); \ | |
| 682 | + tcg_gen_brcondi_tl(cond, cpu_T[0], val, l1); \ | |
| 683 | 683 | tcg_gen_movi_tl(cpu_T[0], 0); \ |
| 684 | 684 | tcg_gen_br(l2); \ |
| 685 | 685 | gen_set_label(l1); \ |
| ... | ... | @@ -696,7 +696,7 @@ void glue(gen_op_, name) (void) \ |
| 696 | 696 | int l1 = gen_new_label(); \ |
| 697 | 697 | int l2 = gen_new_label(); \ |
| 698 | 698 | \ |
| 699 | - tcg_gen_brcond_tl(cond, cpu_T[0], tcg_const_tl(0), l1); \ | |
| 699 | + tcg_gen_brcondi_tl(cond, cpu_T[0], 0, l1); \ | |
| 700 | 700 | tcg_gen_movi_tl(cpu_T[0], 0); \ |
| 701 | 701 | tcg_gen_br(l2); \ |
| 702 | 702 | gen_set_label(l1); \ |
| ... | ... | @@ -831,10 +831,10 @@ static inline void gen_op_addr_add (void) |
| 831 | 831 | |
| 832 | 832 | tcg_gen_ld_i32(r_tmp, cpu_env, offsetof(CPUState, hflags)); |
| 833 | 833 | tcg_gen_andi_i32(r_tmp, r_tmp, MIPS_HFLAG_KSU); |
| 834 | - tcg_gen_brcond_i32(TCG_COND_NE, r_tmp, tcg_const_i32(MIPS_HFLAG_UM), l1); | |
| 834 | + tcg_gen_brcondi_i32(TCG_COND_NE, r_tmp, MIPS_HFLAG_UM, l1); | |
| 835 | 835 | tcg_gen_ld_i32(r_tmp, cpu_env, offsetof(CPUState, CP0_Status)); |
| 836 | 836 | tcg_gen_andi_i32(r_tmp, r_tmp, (1 << CP0St_UX)); |
| 837 | - tcg_gen_brcond_i32(TCG_COND_NE, r_tmp, tcg_const_i32(0), l1); | |
| 837 | + tcg_gen_brcondi_i32(TCG_COND_NE, r_tmp, 0, l1); | |
| 838 | 838 | tcg_gen_ext32s_i64(cpu_T[0], cpu_T[0]); |
| 839 | 839 | gen_set_label(l1); |
| 840 | 840 | dead_tmp(r_tmp); |
| ... | ... | @@ -995,7 +995,7 @@ void inline op_ldst_##insn(DisasContext *ctx) \ |
| 995 | 995 | int l3 = gen_new_label(); \ |
| 996 | 996 | \ |
| 997 | 997 | tcg_gen_andi_tl(r_tmp, cpu_T[0], almask); \ |
| 998 | - tcg_gen_brcond_tl(TCG_COND_EQ, r_tmp, tcg_const_tl(0), l1); \ | |
| 998 | + tcg_gen_brcondi_tl(TCG_COND_EQ, r_tmp, 0, l1); \ | |
| 999 | 999 | tcg_gen_st_tl(cpu_T[0], cpu_env, offsetof(CPUState, CP0_BadVAddr)); \ |
| 1000 | 1000 | generate_exception(ctx, EXCP_AdES); \ |
| 1001 | 1001 | gen_set_label(l1); \ |
| ... | ... | @@ -1296,7 +1296,7 @@ static void gen_arith_imm (CPUState *env, DisasContext *ctx, uint32_t opc, |
| 1296 | 1296 | tcg_gen_xori_tl(r_tmp2, cpu_T[0], uimm); |
| 1297 | 1297 | tcg_gen_and_tl(r_tmp1, r_tmp1, r_tmp2); |
| 1298 | 1298 | tcg_gen_shri_tl(r_tmp1, r_tmp1, 31); |
| 1299 | - tcg_gen_brcond_tl(TCG_COND_EQ, r_tmp1, tcg_const_tl(0), l1); | |
| 1299 | + tcg_gen_brcondi_tl(TCG_COND_EQ, r_tmp1, 0, l1); | |
| 1300 | 1300 | /* operands of same sign, result different sign */ |
| 1301 | 1301 | generate_exception(ctx, EXCP_OVERFLOW); |
| 1302 | 1302 | gen_set_label(l1); |
| ... | ... | @@ -1327,7 +1327,7 @@ static void gen_arith_imm (CPUState *env, DisasContext *ctx, uint32_t opc, |
| 1327 | 1327 | tcg_gen_xori_tl(r_tmp2, cpu_T[0], uimm); |
| 1328 | 1328 | tcg_gen_and_tl(r_tmp1, r_tmp1, r_tmp2); |
| 1329 | 1329 | tcg_gen_shri_tl(r_tmp1, r_tmp1, 63); |
| 1330 | - tcg_gen_brcond_tl(TCG_COND_EQ, r_tmp1, tcg_const_tl(0), l1); | |
| 1330 | + tcg_gen_brcondi_tl(TCG_COND_EQ, r_tmp1, 0, l1); | |
| 1331 | 1331 | /* operands of same sign, result different sign */ |
| 1332 | 1332 | generate_exception(ctx, EXCP_OVERFLOW); |
| 1333 | 1333 | gen_set_label(l1); |
| ... | ... | @@ -1539,7 +1539,7 @@ static void gen_arith (CPUState *env, DisasContext *ctx, uint32_t opc, |
| 1539 | 1539 | tcg_gen_xor_tl(r_tmp2, cpu_T[0], cpu_T[1]); |
| 1540 | 1540 | tcg_gen_and_tl(r_tmp1, r_tmp1, r_tmp2); |
| 1541 | 1541 | tcg_gen_shri_tl(r_tmp1, r_tmp1, 31); |
| 1542 | - tcg_gen_brcond_tl(TCG_COND_EQ, r_tmp1, tcg_const_tl(0), l1); | |
| 1542 | + tcg_gen_brcondi_tl(TCG_COND_EQ, r_tmp1, 0, l1); | |
| 1543 | 1543 | /* operands of same sign, result different sign */ |
| 1544 | 1544 | generate_exception(ctx, EXCP_OVERFLOW); |
| 1545 | 1545 | gen_set_label(l1); |
| ... | ... | @@ -1570,7 +1570,7 @@ static void gen_arith (CPUState *env, DisasContext *ctx, uint32_t opc, |
| 1570 | 1570 | tcg_gen_xor_tl(r_tmp1, r_tmp1, cpu_T[0]); |
| 1571 | 1571 | tcg_gen_and_tl(r_tmp1, r_tmp1, r_tmp2); |
| 1572 | 1572 | tcg_gen_shri_tl(r_tmp1, r_tmp1, 31); |
| 1573 | - tcg_gen_brcond_tl(TCG_COND_EQ, r_tmp1, tcg_const_tl(0), l1); | |
| 1573 | + tcg_gen_brcondi_tl(TCG_COND_EQ, r_tmp1, 0, l1); | |
| 1574 | 1574 | /* operands of different sign, first operand and result different sign */ |
| 1575 | 1575 | generate_exception(ctx, EXCP_OVERFLOW); |
| 1576 | 1576 | gen_set_label(l1); |
| ... | ... | @@ -1602,7 +1602,7 @@ static void gen_arith (CPUState *env, DisasContext *ctx, uint32_t opc, |
| 1602 | 1602 | tcg_gen_xor_tl(r_tmp2, cpu_T[0], cpu_T[1]); |
| 1603 | 1603 | tcg_gen_and_tl(r_tmp1, r_tmp1, r_tmp2); |
| 1604 | 1604 | tcg_gen_shri_tl(r_tmp1, r_tmp1, 63); |
| 1605 | - tcg_gen_brcond_tl(TCG_COND_EQ, r_tmp1, tcg_const_tl(0), l1); | |
| 1605 | + tcg_gen_brcondi_tl(TCG_COND_EQ, r_tmp1, 0, l1); | |
| 1606 | 1606 | /* operands of same sign, result different sign */ |
| 1607 | 1607 | generate_exception(ctx, EXCP_OVERFLOW); |
| 1608 | 1608 | gen_set_label(l1); |
| ... | ... | @@ -1627,7 +1627,7 @@ static void gen_arith (CPUState *env, DisasContext *ctx, uint32_t opc, |
| 1627 | 1627 | tcg_gen_xor_tl(r_tmp1, r_tmp1, cpu_T[0]); |
| 1628 | 1628 | tcg_gen_and_tl(r_tmp1, r_tmp1, r_tmp2); |
| 1629 | 1629 | tcg_gen_shri_tl(r_tmp1, r_tmp1, 63); |
| 1630 | - tcg_gen_brcond_tl(TCG_COND_EQ, r_tmp1, tcg_const_tl(0), l1); | |
| 1630 | + tcg_gen_brcondi_tl(TCG_COND_EQ, r_tmp1, 0, l1); | |
| 1631 | 1631 | /* operands of different sign, first operand and result different sign */ |
| 1632 | 1632 | generate_exception(ctx, EXCP_OVERFLOW); |
| 1633 | 1633 | gen_set_label(l1); |
| ... | ... | @@ -1675,7 +1675,7 @@ static void gen_arith (CPUState *env, DisasContext *ctx, uint32_t opc, |
| 1675 | 1675 | { |
| 1676 | 1676 | int l1 = gen_new_label(); |
| 1677 | 1677 | |
| 1678 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T[1], tcg_const_tl(0), l1); | |
| 1678 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_T[1], 0, l1); | |
| 1679 | 1679 | gen_store_gpr(cpu_T[0], rd); |
| 1680 | 1680 | gen_set_label(l1); |
| 1681 | 1681 | } |
| ... | ... | @@ -1685,7 +1685,7 @@ static void gen_arith (CPUState *env, DisasContext *ctx, uint32_t opc, |
| 1685 | 1685 | { |
| 1686 | 1686 | int l1 = gen_new_label(); |
| 1687 | 1687 | |
| 1688 | - tcg_gen_brcond_tl(TCG_COND_NE, cpu_T[1], tcg_const_tl(0), l1); | |
| 1688 | + tcg_gen_brcondi_tl(TCG_COND_NE, cpu_T[1], 0, l1); | |
| 1689 | 1689 | gen_store_gpr(cpu_T[0], rd); |
| 1690 | 1690 | gen_set_label(l1); |
| 1691 | 1691 | } |
| ... | ... | @@ -1722,7 +1722,7 @@ static void gen_arith (CPUState *env, DisasContext *ctx, uint32_t opc, |
| 1722 | 1722 | int l2 = gen_new_label(); |
| 1723 | 1723 | |
| 1724 | 1724 | tcg_gen_andi_tl(cpu_T[0], cpu_T[0], 0x1f); |
| 1725 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T[0], tcg_const_tl(0), l1); | |
| 1725 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_T[0], 0, l1); | |
| 1726 | 1726 | { |
| 1727 | 1727 | TCGv r_tmp1 = new_tmp(); |
| 1728 | 1728 | TCGv r_tmp2 = new_tmp(); |
| ... | ... | @@ -1784,7 +1784,7 @@ static void gen_arith (CPUState *env, DisasContext *ctx, uint32_t opc, |
| 1784 | 1784 | int l2 = gen_new_label(); |
| 1785 | 1785 | |
| 1786 | 1786 | tcg_gen_andi_tl(cpu_T[0], cpu_T[0], 0x3f); |
| 1787 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T[0], tcg_const_tl(0), l1); | |
| 1787 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_T[0], 0, l1); | |
| 1788 | 1788 | { |
| 1789 | 1789 | TCGv r_tmp1 = tcg_temp_new(TCG_TYPE_TL); |
| 1790 | 1790 | |
| ... | ... | @@ -1873,7 +1873,7 @@ static void gen_muldiv (DisasContext *ctx, uint32_t opc, |
| 1873 | 1873 | { |
| 1874 | 1874 | int l1 = gen_new_label(); |
| 1875 | 1875 | |
| 1876 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T[1], tcg_const_tl(0), l1); | |
| 1876 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_T[1], 0, l1); | |
| 1877 | 1877 | { |
| 1878 | 1878 | TCGv r_tmp1 = new_tmp(); |
| 1879 | 1879 | TCGv r_tmp2 = new_tmp(); |
| ... | ... | @@ -1907,7 +1907,7 @@ static void gen_muldiv (DisasContext *ctx, uint32_t opc, |
| 1907 | 1907 | { |
| 1908 | 1908 | int l1 = gen_new_label(); |
| 1909 | 1909 | |
| 1910 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T[1], tcg_const_tl(0), l1); | |
| 1910 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_T[1], 0, l1); | |
| 1911 | 1911 | { |
| 1912 | 1912 | TCGv r_tmp1 = new_tmp(); |
| 1913 | 1913 | TCGv r_tmp2 = new_tmp(); |
| ... | ... | @@ -1950,7 +1950,7 @@ static void gen_muldiv (DisasContext *ctx, uint32_t opc, |
| 1950 | 1950 | { |
| 1951 | 1951 | int l1 = gen_new_label(); |
| 1952 | 1952 | |
| 1953 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T[1], tcg_const_tl(0), l1); | |
| 1953 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_T[1], 0, l1); | |
| 1954 | 1954 | { |
| 1955 | 1955 | TCGv r_tc_off = new_tmp(); |
| 1956 | 1956 | TCGv r_tc_off_tl = tcg_temp_new(TCG_TYPE_TL); |
| ... | ... | @@ -1958,8 +1958,8 @@ static void gen_muldiv (DisasContext *ctx, uint32_t opc, |
| 1958 | 1958 | int l2 = gen_new_label(); |
| 1959 | 1959 | int l3 = gen_new_label(); |
| 1960 | 1960 | |
| 1961 | - tcg_gen_brcond_tl(TCG_COND_NE, cpu_T[0], tcg_const_tl(1ULL << 63), l2); | |
| 1962 | - tcg_gen_brcond_tl(TCG_COND_NE, cpu_T[1], tcg_const_tl(-1ULL), l2); | |
| 1961 | + tcg_gen_brcondi_tl(TCG_COND_NE, cpu_T[0], 1ULL << 63, l2); | |
| 1962 | + tcg_gen_brcondi_tl(TCG_COND_NE, cpu_T[1], -1ULL, l2); | |
| 1963 | 1963 | tcg_gen_div_i64(cpu_T[0], cpu_T[0], cpu_T[1]); |
| 1964 | 1964 | tcg_gen_movi_tl(cpu_T[1], 0); |
| 1965 | 1965 | tcg_gen_br(l3); |
| ... | ... | @@ -1984,7 +1984,7 @@ static void gen_muldiv (DisasContext *ctx, uint32_t opc, |
| 1984 | 1984 | { |
| 1985 | 1985 | int l1 = gen_new_label(); |
| 1986 | 1986 | |
| 1987 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T[1], tcg_const_tl(0), l1); | |
| 1987 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_T[1], 0, l1); | |
| 1988 | 1988 | { |
| 1989 | 1989 | TCGv r_tmp1 = tcg_temp_new(TCG_TYPE_I64); |
| 1990 | 1990 | TCGv r_tmp2 = tcg_temp_new(TCG_TYPE_I64); |
| ... | ... | @@ -5569,7 +5569,7 @@ static void gen_movci (DisasContext *ctx, int rd, int rs, int cc, int tf) |
| 5569 | 5569 | tcg_gen_ld_ptr(r_ptr, cpu_env, offsetof(CPUState, fpu)); |
| 5570 | 5570 | tcg_gen_ld_i32(r_tmp, r_ptr, offsetof(CPUMIPSFPUContext, fcr31)); |
| 5571 | 5571 | tcg_gen_andi_i32(r_tmp, r_tmp, ccbit); |
| 5572 | - tcg_gen_brcond_i32(cond, r_tmp, tcg_const_i32(0), l1); | |
| 5572 | + tcg_gen_brcondi_i32(cond, r_tmp, 0, l1); | |
| 5573 | 5573 | tcg_gen_mov_tl(t0, t1); |
| 5574 | 5574 | gen_set_label(l1); |
| 5575 | 5575 | dead_tmp(r_tmp); |
| ... | ... | @@ -6656,7 +6656,7 @@ static void decode_opc (CPUState *env, DisasContext *ctx) |
| 6656 | 6656 | |
| 6657 | 6657 | MIPS_DEBUG("blikely condition (" TARGET_FMT_lx ")", ctx->pc + 4); |
| 6658 | 6658 | tcg_gen_ld_tl(r_tmp, cpu_env, offsetof(CPUState, bcond)); |
| 6659 | - tcg_gen_brcond_tl(TCG_COND_NE, r_tmp, tcg_const_tl(0), l1); | |
| 6659 | + tcg_gen_brcondi_tl(TCG_COND_NE, r_tmp, 0, l1); | |
| 6660 | 6660 | gen_op_save_state(ctx->hflags & ~MIPS_HFLAG_BMASK); |
| 6661 | 6661 | gen_goto_tb(ctx, 1, ctx->pc + 4); |
| 6662 | 6662 | gen_set_label(l1); |
| ... | ... | @@ -7214,7 +7214,7 @@ static void decode_opc (CPUState *env, DisasContext *ctx) |
| 7214 | 7214 | int l1 = gen_new_label(); |
| 7215 | 7215 | |
| 7216 | 7216 | tcg_gen_ld_tl(r_tmp, cpu_env, offsetof(CPUState, bcond)); |
| 7217 | - tcg_gen_brcond_tl(TCG_COND_NE, r_tmp, tcg_const_tl(0), l1); | |
| 7217 | + tcg_gen_brcondi_tl(TCG_COND_NE, r_tmp, 0, l1); | |
| 7218 | 7218 | gen_goto_tb(ctx, 1, ctx->pc + 4); |
| 7219 | 7219 | gen_set_label(l1); |
| 7220 | 7220 | gen_goto_tb(ctx, 0, ctx->btarget); | ... | ... |
target-sparc/translate.c
| ... | ... | @@ -304,11 +304,11 @@ static inline void gen_cc_NZ_icc(TCGv dst) |
| 304 | 304 | l2 = gen_new_label(); |
| 305 | 305 | r_temp = tcg_temp_new(TCG_TYPE_TL); |
| 306 | 306 | tcg_gen_andi_tl(r_temp, dst, 0xffffffffULL); |
| 307 | - tcg_gen_brcond_tl(TCG_COND_NE, r_temp, tcg_const_tl(0), l1); | |
| 307 | + tcg_gen_brcondi_tl(TCG_COND_NE, r_temp, 0, l1); | |
| 308 | 308 | tcg_gen_ori_i32(cpu_psr, cpu_psr, PSR_ZERO); |
| 309 | 309 | gen_set_label(l1); |
| 310 | 310 | tcg_gen_ext_i32_tl(r_temp, dst); |
| 311 | - tcg_gen_brcond_tl(TCG_COND_GE, r_temp, tcg_const_tl(0), l2); | |
| 311 | + tcg_gen_brcondi_tl(TCG_COND_GE, r_temp, 0, l2); | |
| 312 | 312 | tcg_gen_ori_i32(cpu_psr, cpu_psr, PSR_NEG); |
| 313 | 313 | gen_set_label(l2); |
| 314 | 314 | } |
| ... | ... | @@ -320,10 +320,10 @@ static inline void gen_cc_NZ_xcc(TCGv dst) |
| 320 | 320 | |
| 321 | 321 | l1 = gen_new_label(); |
| 322 | 322 | l2 = gen_new_label(); |
| 323 | - tcg_gen_brcond_tl(TCG_COND_NE, dst, tcg_const_tl(0), l1); | |
| 323 | + tcg_gen_brcondi_tl(TCG_COND_NE, dst, 0, l1); | |
| 324 | 324 | tcg_gen_ori_i32(cpu_xcc, cpu_xcc, PSR_ZERO); |
| 325 | 325 | gen_set_label(l1); |
| 326 | - tcg_gen_brcond_tl(TCG_COND_GE, dst, tcg_const_tl(0), l2); | |
| 326 | + tcg_gen_brcondi_tl(TCG_COND_GE, dst, 0, l2); | |
| 327 | 327 | tcg_gen_ori_i32(cpu_xcc, cpu_xcc, PSR_NEG); |
| 328 | 328 | gen_set_label(l2); |
| 329 | 329 | } |
| ... | ... | @@ -407,7 +407,7 @@ static inline void gen_add_tv(TCGv dst, TCGv src1, TCGv src2) |
| 407 | 407 | tcg_gen_xor_tl(cpu_tmp0, src1, dst); |
| 408 | 408 | tcg_gen_and_tl(r_temp, r_temp, cpu_tmp0); |
| 409 | 409 | tcg_gen_andi_tl(r_temp, r_temp, (1 << 31)); |
| 410 | - tcg_gen_brcond_tl(TCG_COND_EQ, r_temp, tcg_const_tl(0), l1); | |
| 410 | + tcg_gen_brcondi_tl(TCG_COND_EQ, r_temp, 0, l1); | |
| 411 | 411 | tcg_gen_helper_0_1(raise_exception, tcg_const_i32(TT_TOVF)); |
| 412 | 412 | gen_set_label(l1); |
| 413 | 413 | } |
| ... | ... | @@ -419,7 +419,7 @@ static inline void gen_cc_V_tag(TCGv src1, TCGv src2) |
| 419 | 419 | l1 = gen_new_label(); |
| 420 | 420 | tcg_gen_or_tl(cpu_tmp0, src1, src2); |
| 421 | 421 | tcg_gen_andi_tl(cpu_tmp0, cpu_tmp0, 0x3); |
| 422 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_tmp0, tcg_const_tl(0), l1); | |
| 422 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_tmp0, 0, l1); | |
| 423 | 423 | tcg_gen_ori_i32(cpu_psr, cpu_psr, PSR_OVF); |
| 424 | 424 | gen_set_label(l1); |
| 425 | 425 | } |
| ... | ... | @@ -431,7 +431,7 @@ static inline void gen_tag_tv(TCGv src1, TCGv src2) |
| 431 | 431 | l1 = gen_new_label(); |
| 432 | 432 | tcg_gen_or_tl(cpu_tmp0, src1, src2); |
| 433 | 433 | tcg_gen_andi_tl(cpu_tmp0, cpu_tmp0, 0x3); |
| 434 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_tmp0, tcg_const_tl(0), l1); | |
| 434 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_tmp0, 0, l1); | |
| 435 | 435 | tcg_gen_helper_0_1(raise_exception, tcg_const_i32(TT_TOVF)); |
| 436 | 436 | gen_set_label(l1); |
| 437 | 437 | } |
| ... | ... | @@ -593,7 +593,7 @@ static inline void gen_sub_tv(TCGv dst, TCGv src1, TCGv src2) |
| 593 | 593 | tcg_gen_xor_tl(cpu_tmp0, src1, dst); |
| 594 | 594 | tcg_gen_and_tl(r_temp, r_temp, cpu_tmp0); |
| 595 | 595 | tcg_gen_andi_tl(r_temp, r_temp, (1 << 31)); |
| 596 | - tcg_gen_brcond_tl(TCG_COND_EQ, r_temp, tcg_const_tl(0), l1); | |
| 596 | + tcg_gen_brcondi_tl(TCG_COND_EQ, r_temp, 0, l1); | |
| 597 | 597 | tcg_gen_helper_0_1(raise_exception, tcg_const_i32(TT_TOVF)); |
| 598 | 598 | gen_set_label(l1); |
| 599 | 599 | } |
| ... | ... | @@ -696,7 +696,7 @@ static inline void gen_op_mulscc(TCGv dst, TCGv src1, TCGv src2) |
| 696 | 696 | tcg_gen_trunc_tl_i32(r_temp2, r_temp); |
| 697 | 697 | tcg_gen_andi_i32(r_temp2, r_temp2, 0x1); |
| 698 | 698 | tcg_gen_mov_tl(cpu_cc_src2, src2); |
| 699 | - tcg_gen_brcond_i32(TCG_COND_NE, r_temp2, tcg_const_i32(0), l1); | |
| 699 | + tcg_gen_brcondi_i32(TCG_COND_NE, r_temp2, 0, l1); | |
| 700 | 700 | tcg_gen_movi_tl(cpu_cc_src2, 0); |
| 701 | 701 | gen_set_label(l1); |
| 702 | 702 | |
| ... | ... | @@ -779,7 +779,7 @@ static inline void gen_trap_ifdivzero_tl(TCGv divisor) |
| 779 | 779 | int l1; |
| 780 | 780 | |
| 781 | 781 | l1 = gen_new_label(); |
| 782 | - tcg_gen_brcond_tl(TCG_COND_NE, divisor, tcg_const_tl(0), l1); | |
| 782 | + tcg_gen_brcondi_tl(TCG_COND_NE, divisor, 0, l1); | |
| 783 | 783 | tcg_gen_helper_0_1(raise_exception, tcg_const_i32(TT_DIV_ZERO)); |
| 784 | 784 | gen_set_label(l1); |
| 785 | 785 | } |
| ... | ... | @@ -793,8 +793,8 @@ static inline void gen_op_sdivx(TCGv dst, TCGv src1, TCGv src2) |
| 793 | 793 | tcg_gen_mov_tl(cpu_cc_src, src1); |
| 794 | 794 | tcg_gen_mov_tl(cpu_cc_src2, src2); |
| 795 | 795 | gen_trap_ifdivzero_tl(src2); |
| 796 | - tcg_gen_brcond_tl(TCG_COND_NE, cpu_cc_src, tcg_const_tl(INT64_MIN), l1); | |
| 797 | - tcg_gen_brcond_tl(TCG_COND_NE, cpu_cc_src2, tcg_const_tl(-1), l1); | |
| 796 | + tcg_gen_brcondi_tl(TCG_COND_NE, cpu_cc_src, INT64_MIN, l1); | |
| 797 | + tcg_gen_brcondi_tl(TCG_COND_NE, cpu_cc_src2, -1, l1); | |
| 798 | 798 | tcg_gen_movi_i64(dst, INT64_MIN); |
| 799 | 799 | tcg_gen_br(l2); |
| 800 | 800 | gen_set_label(l1); |
| ... | ... | @@ -812,7 +812,7 @@ static inline void gen_op_div_cc(TCGv dst) |
| 812 | 812 | gen_cc_NZ_icc(cpu_cc_dst); |
| 813 | 813 | l1 = gen_new_label(); |
| 814 | 814 | tcg_gen_ld_tl(cpu_tmp0, cpu_env, offsetof(CPUSPARCState, cc_src2)); |
| 815 | - tcg_gen_brcond_tl(TCG_COND_EQ, cpu_tmp0, tcg_const_tl(0), l1); | |
| 815 | + tcg_gen_brcondi_tl(TCG_COND_EQ, cpu_tmp0, 0, l1); | |
| 816 | 816 | tcg_gen_ori_i32(cpu_psr, cpu_psr, PSR_OVF); |
| 817 | 817 | gen_set_label(l1); |
| 818 | 818 | } |
| ... | ... | @@ -1107,7 +1107,7 @@ static inline void gen_branch2(DisasContext *dc, target_ulong pc1, |
| 1107 | 1107 | |
| 1108 | 1108 | l1 = gen_new_label(); |
| 1109 | 1109 | |
| 1110 | - tcg_gen_brcond_tl(TCG_COND_EQ, r_cond, tcg_const_tl(0), l1); | |
| 1110 | + tcg_gen_brcondi_tl(TCG_COND_EQ, r_cond, 0, l1); | |
| 1111 | 1111 | |
| 1112 | 1112 | gen_goto_tb(dc, 0, pc1, pc1 + 4); |
| 1113 | 1113 | |
| ... | ... | @@ -1122,7 +1122,7 @@ static inline void gen_branch_a(DisasContext *dc, target_ulong pc1, |
| 1122 | 1122 | |
| 1123 | 1123 | l1 = gen_new_label(); |
| 1124 | 1124 | |
| 1125 | - tcg_gen_brcond_tl(TCG_COND_EQ, r_cond, tcg_const_tl(0), l1); | |
| 1125 | + tcg_gen_brcondi_tl(TCG_COND_EQ, r_cond, 0, l1); | |
| 1126 | 1126 | |
| 1127 | 1127 | gen_goto_tb(dc, 0, pc2, pc1); |
| 1128 | 1128 | |
| ... | ... | @@ -1138,7 +1138,7 @@ static inline void gen_generic_branch(target_ulong npc1, target_ulong npc2, |
| 1138 | 1138 | l1 = gen_new_label(); |
| 1139 | 1139 | l2 = gen_new_label(); |
| 1140 | 1140 | |
| 1141 | - tcg_gen_brcond_tl(TCG_COND_EQ, r_cond, tcg_const_tl(0), l1); | |
| 1141 | + tcg_gen_brcondi_tl(TCG_COND_EQ, r_cond, 0, l1); | |
| 1142 | 1142 | |
| 1143 | 1143 | tcg_gen_movi_tl(cpu_npc, npc1); |
| 1144 | 1144 | tcg_gen_br(l2); |
| ... | ... | @@ -1349,7 +1349,7 @@ static inline void gen_cond_reg(TCGv r_dst, int cond, TCGv r_src) |
| 1349 | 1349 | |
| 1350 | 1350 | l1 = gen_new_label(); |
| 1351 | 1351 | tcg_gen_movi_tl(r_dst, 0); |
| 1352 | - tcg_gen_brcond_tl(gen_tcg_cond_reg[cond], r_src, tcg_const_tl(0), l1); | |
| 1352 | + tcg_gen_brcondi_tl(gen_tcg_cond_reg[cond], r_src, 0, l1); | |
| 1353 | 1353 | tcg_gen_movi_tl(r_dst, 1); |
| 1354 | 1354 | gen_set_label(l1); |
| 1355 | 1355 | } |
| ... | ... | @@ -2603,8 +2603,8 @@ static void disas_sparc_insn(DisasContext * dc) |
| 2603 | 2603 | l1 = gen_new_label(); |
| 2604 | 2604 | cond = GET_FIELD_SP(insn, 14, 17); |
| 2605 | 2605 | cpu_src1 = get_src1(insn, cpu_src1); |
| 2606 | - tcg_gen_brcond_tl(gen_tcg_cond_reg[cond], cpu_src1, | |
| 2607 | - tcg_const_tl(0), l1); | |
| 2606 | + tcg_gen_brcondi_tl(gen_tcg_cond_reg[cond], cpu_src1, | |
| 2607 | + 0, l1); | |
| 2608 | 2608 | gen_op_load_fpr_FT0(rs2); |
| 2609 | 2609 | gen_op_store_FT0_fpr(rd); |
| 2610 | 2610 | gen_set_label(l1); |
| ... | ... | @@ -2615,8 +2615,8 @@ static void disas_sparc_insn(DisasContext * dc) |
| 2615 | 2615 | l1 = gen_new_label(); |
| 2616 | 2616 | cond = GET_FIELD_SP(insn, 14, 17); |
| 2617 | 2617 | cpu_src1 = get_src1(insn, cpu_src1); |
| 2618 | - tcg_gen_brcond_tl(gen_tcg_cond_reg[cond], cpu_src1, | |
| 2619 | - tcg_const_tl(0), l1); | |
| 2618 | + tcg_gen_brcondi_tl(gen_tcg_cond_reg[cond], cpu_src1, | |
| 2619 | + 0, l1); | |
| 2620 | 2620 | gen_op_load_fpr_DT0(DFPREG(rs2)); |
| 2621 | 2621 | gen_op_store_DT0_fpr(DFPREG(rd)); |
| 2622 | 2622 | gen_set_label(l1); |
| ... | ... | @@ -2628,8 +2628,8 @@ static void disas_sparc_insn(DisasContext * dc) |
| 2628 | 2628 | l1 = gen_new_label(); |
| 2629 | 2629 | cond = GET_FIELD_SP(insn, 14, 17); |
| 2630 | 2630 | cpu_src1 = get_src1(insn, cpu_src1); |
| 2631 | - tcg_gen_brcond_tl(gen_tcg_cond_reg[cond], cpu_src1, | |
| 2632 | - tcg_const_tl(0), l1); | |
| 2631 | + tcg_gen_brcondi_tl(gen_tcg_cond_reg[cond], cpu_src1, | |
| 2632 | + 0, l1); | |
| 2633 | 2633 | gen_op_load_fpr_QT0(QFPREG(rs2)); |
| 2634 | 2634 | gen_op_store_QT0_fpr(QFPREG(rd)); |
| 2635 | 2635 | gen_set_label(l1); |
| ... | ... | @@ -2647,8 +2647,8 @@ static void disas_sparc_insn(DisasContext * dc) |
| 2647 | 2647 | r_cond = tcg_temp_new(TCG_TYPE_TL); \ |
| 2648 | 2648 | cond = GET_FIELD_SP(insn, 14, 17); \ |
| 2649 | 2649 | gen_fcond(r_cond, fcc, cond); \ |
| 2650 | - tcg_gen_brcond_tl(TCG_COND_EQ, r_cond, \ | |
| 2651 | - tcg_const_tl(0), l1); \ | |
| 2650 | + tcg_gen_brcondi_tl(TCG_COND_EQ, r_cond, \ | |
| 2651 | + 0, l1); \ | |
| 2652 | 2652 | glue(glue(gen_op_load_fpr_, size_FDQ), T0) \ |
| 2653 | 2653 | (glue(size_FDQ, FPREG(rs2))); \ |
| 2654 | 2654 | glue(glue(gen_op_store_, size_FDQ), T0_fpr) \ |
| ... | ... | @@ -2705,8 +2705,8 @@ static void disas_sparc_insn(DisasContext * dc) |
| 2705 | 2705 | r_cond = tcg_temp_new(TCG_TYPE_TL); \ |
| 2706 | 2706 | cond = GET_FIELD_SP(insn, 14, 17); \ |
| 2707 | 2707 | gen_cond(r_cond, icc, cond); \ |
| 2708 | - tcg_gen_brcond_tl(TCG_COND_EQ, r_cond, \ | |
| 2709 | - tcg_const_tl(0), l1); \ | |
| 2708 | + tcg_gen_brcondi_tl(TCG_COND_EQ, r_cond, \ | |
| 2709 | + 0, l1); \ | |
| 2710 | 2710 | glue(glue(gen_op_load_fpr_, size_FDQ), T0) \ |
| 2711 | 2711 | (glue(size_FDQ, FPREG(rs2))); \ |
| 2712 | 2712 | glue(glue(gen_op_store_, size_FDQ), T0_fpr) \ |
| ... | ... | @@ -3411,8 +3411,7 @@ static void disas_sparc_insn(DisasContext * dc) |
| 3411 | 3411 | |
| 3412 | 3412 | l1 = gen_new_label(); |
| 3413 | 3413 | |
| 3414 | - tcg_gen_brcond_tl(TCG_COND_EQ, r_cond, | |
| 3415 | - tcg_const_tl(0), l1); | |
| 3414 | + tcg_gen_brcondi_tl(TCG_COND_EQ, r_cond, 0, l1); | |
| 3416 | 3415 | if (IS_IMM) { /* immediate */ |
| 3417 | 3416 | rs2 = GET_FIELD_SPs(insn, 0, 10); |
| 3418 | 3417 | gen_movl_TN_reg(rd, tcg_const_tl((int)rs2)); |
| ... | ... | @@ -3444,8 +3443,8 @@ static void disas_sparc_insn(DisasContext * dc) |
| 3444 | 3443 | |
| 3445 | 3444 | l1 = gen_new_label(); |
| 3446 | 3445 | |
| 3447 | - tcg_gen_brcond_tl(gen_tcg_cond_reg[cond], cpu_src1, | |
| 3448 | - tcg_const_tl(0), l1); | |
| 3446 | + tcg_gen_brcondi_tl(gen_tcg_cond_reg[cond], | |
| 3447 | + cpu_src1, 0, l1); | |
| 3449 | 3448 | if (IS_IMM) { /* immediate */ |
| 3450 | 3449 | rs2 = GET_FIELD_SPs(insn, 0, 9); |
| 3451 | 3450 | gen_movl_TN_reg(rd, tcg_const_tl((int)rs2)); | ... | ... |
tcg/tcg-op.h
| ... | ... | @@ -491,6 +491,14 @@ static inline void tcg_gen_brcond_i32(int cond, TCGv arg1, TCGv arg2, |
| 491 | 491 | tcg_gen_op4ii(INDEX_op_brcond_i32, arg1, arg2, cond, label_index); |
| 492 | 492 | } |
| 493 | 493 | |
| 494 | +static inline void tcg_gen_brcondi_i32(int cond, TCGv arg1, int32_t arg2, | |
| 495 | + int label_index) | |
| 496 | +{ | |
| 497 | + TCGv t0 = tcg_const_i32(arg2); | |
| 498 | + tcg_gen_brcond_i32(cond, arg1, t0, label_index); | |
| 499 | + tcg_temp_free(t0); | |
| 500 | +} | |
| 501 | + | |
| 494 | 502 | static inline void tcg_gen_mul_i32(TCGv ret, TCGv arg1, TCGv arg2) |
| 495 | 503 | { |
| 496 | 504 | tcg_gen_op3(INDEX_op_mul_i32, ret, arg1, arg2); |
| ... | ... | @@ -1063,6 +1071,14 @@ static inline void tcg_gen_remu_i64(TCGv ret, TCGv arg1, TCGv arg2) |
| 1063 | 1071 | |
| 1064 | 1072 | #endif |
| 1065 | 1073 | |
| 1074 | +static inline void tcg_gen_brcondi_i64(int cond, TCGv arg1, int64_t arg2, | |
| 1075 | + int label_index) | |
| 1076 | +{ | |
| 1077 | + TCGv t0 = tcg_const_i64(arg2); | |
| 1078 | + tcg_gen_brcond_i64(cond, arg1, t0, label_index); | |
| 1079 | + tcg_temp_free(t0); | |
| 1080 | +} | |
| 1081 | + | |
| 1066 | 1082 | /***************************************/ |
| 1067 | 1083 | /* optional operations */ |
| 1068 | 1084 | |
| ... | ... | @@ -1614,6 +1630,7 @@ static inline void tcg_gen_qemu_st64(TCGv arg, TCGv addr, int mem_index) |
| 1614 | 1630 | #define tcg_gen_sar_tl tcg_gen_sar_i64 |
| 1615 | 1631 | #define tcg_gen_sari_tl tcg_gen_sari_i64 |
| 1616 | 1632 | #define tcg_gen_brcond_tl tcg_gen_brcond_i64 |
| 1633 | +#define tcg_gen_brcondi_tl tcg_gen_brcondi_i64 | |
| 1617 | 1634 | #define tcg_gen_mul_tl tcg_gen_mul_i64 |
| 1618 | 1635 | #define tcg_gen_muli_tl tcg_gen_muli_i64 |
| 1619 | 1636 | #define tcg_gen_discard_tl tcg_gen_discard_i64 |
| ... | ... | @@ -1664,6 +1681,7 @@ static inline void tcg_gen_qemu_st64(TCGv arg, TCGv addr, int mem_index) |
| 1664 | 1681 | #define tcg_gen_sar_tl tcg_gen_sar_i32 |
| 1665 | 1682 | #define tcg_gen_sari_tl tcg_gen_sari_i32 |
| 1666 | 1683 | #define tcg_gen_brcond_tl tcg_gen_brcond_i32 |
| 1684 | +#define tcg_gen_brcondi_tl tcg_gen_brcondi_i32 | |
| 1667 | 1685 | #define tcg_gen_mul_tl tcg_gen_mul_i32 |
| 1668 | 1686 | #define tcg_gen_muli_tl tcg_gen_muli_i32 |
| 1669 | 1687 | #define tcg_gen_discard_tl tcg_gen_discard_i32 | ... | ... |