• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revision8d3e670a0d1a4ca21fa99f4ff366ac166e45a723 (tree)
Time2019-01-13 22:57:43
AuthorYoshinori Sato <ysato@user...>
CommiterYoshinori Sato

Log Message

bnot fix

Change Summary

Incremental Difference

--- a/target/rx/translate.c
+++ b/target/rx/translate.c
@@ -1926,15 +1926,6 @@ DEFINE_INSN(bnot1)
19261926 dc->pc += 3;
19271927 }
19281928
1929-DEFINE_INSN(bnot3)
1930-{
1931- int imm, rd;
1932- imm = (insn >> 16) & 31;
1933- rd = (insn >> 8) & 15;
1934- tcg_gen_xori_i32(cpu_regs[rd], cpu_regs[rd], 1 << imm);
1935- dc->pc += 3;
1936-}
1937-
19381929 DEFINE_INSN(bmcnd1)
19391930 {
19401931 int imm, id, rd;
@@ -1975,17 +1966,22 @@ DEFINE_INSN(bmcnd2)
19751966 imm = (insn >> 16) & 31;
19761967 cd = tcg_const_local_i32((insn >> 12) & 15);
19771968 rd = (insn >> 8) & 15;
1978- result = tcg_temp_local_new();
1979- gen_helper_cond(result, cpu_env, cd);
1980- tcg_gen_brcondi_i32(TCG_COND_NE, result, 0, l1);
1981- tcg_gen_andi_i32(cpu_regs[rd], cpu_regs[rd], ~(1 << imm));
1982- tcg_gen_br(l2);
1983- gen_set_label(l1);
1984- tcg_gen_ori_i32(cpu_regs[rd], cpu_regs[rd], 1 << imm);
1985- gen_set_label(l2);
1986- dc->pc += 3;
1969+ if (((insn >> 12) & 15) == 15) {
1970+ /* special case bnot #imm, reg */
1971+ tcg_gen_xori_i32(cpu_regs[rd], cpu_regs[rd], 1 << imm);
1972+ } else {
1973+ result = tcg_temp_local_new();
1974+ gen_helper_cond(result, cpu_env, cd);
1975+ tcg_gen_brcondi_i32(TCG_COND_NE, result, 0, l1);
1976+ tcg_gen_andi_i32(cpu_regs[rd], cpu_regs[rd], ~(1 << imm));
1977+ tcg_gen_br(l2);
1978+ gen_set_label(l1);
1979+ tcg_gen_ori_i32(cpu_regs[rd], cpu_regs[rd], 1 << imm);
1980+ gen_set_label(l2);
1981+ tcg_temp_free(result);
1982+ }
19871983 tcg_temp_free(cd);
1988- tcg_temp_free(result);
1984+ dc->pc += 3;
19891985 }
19901986
19911987 DEFINE_INSN(scmpu)
@@ -2745,7 +2741,6 @@ struct op {
27452741 OPTABLE(0x7a00, 0xfe00, bop3)
27462742 OPTABLE(0xfce0, 0xffe0, bnot1)
27472743 OPTABLE(0xfc6c, 0xfffc, bop2)
2748- OPTABLE(0xfde0, 0xffe0, bnot3)
27492744 OPTABLE(0xf000, 0xfc08, bop1)
27502745 OPTABLE(0xfc60, 0xfffc, bop2)
27512746 OPTABLE(0x7800, 0xfe00, bop3)