aboutsummaryrefslogtreecommitdiff
path: root/target-sparc/translate.c
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-11-11 00:24:58 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-11-11 00:24:58 +0000
commit9e61bde56a65c92ff67559f8ab94887f8aa57a4d (patch)
tree243d5f584c5d9b6066393c4831472ed38f897893 /target-sparc/translate.c
parent4787c71d179ae9b67b0e682a2a95b6ceca4e68c4 (diff)
sparc merge (Blue Swirl)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1620 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-sparc/translate.c')
-rw-r--r--target-sparc/translate.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/target-sparc/translate.c b/target-sparc/translate.c
index c2ba2e35cd..9abcedda73 100644
--- a/target-sparc/translate.c
+++ b/target-sparc/translate.c
@@ -1897,6 +1897,11 @@ static void disas_sparc_insn(DisasContext * dc)
#else
gen_op_xor_T1_T0();
gen_op_wrpsr();
+ save_state(dc);
+ gen_op_next_insn();
+ gen_op_movl_T0_0();
+ gen_op_exit_tb();
+ dc->is_br = 1;
#endif
}
break;
@@ -2343,8 +2348,8 @@ static void disas_sparc_insn(DisasContext * dc)
gen_op_store_FT0_fpr(rd);
break;
case 0x21: /* load fsr */
+ gen_op_ldst(ldf);
gen_op_ldfsr();
- gen_op_store_FT0_fpr(rd);
break;
case 0x22: /* load quad fpreg */
goto nfpu_insn;
@@ -2426,9 +2431,8 @@ static void disas_sparc_insn(DisasContext * dc)
gen_op_ldst(stf);
break;
case 0x25: /* stfsr, V9 stxfsr */
- gen_op_load_fpr_FT0(rd);
- // XXX
gen_op_stfsr();
+ gen_op_ldst(stf);
break;
case 0x26: /* stdfq */
goto nfpu_insn;