summaryrefslogtreecommitdiffstats
path: root/target-mips/op.c
diff options
context:
space:
mode:
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>2008-05-04 08:16:10 +0000
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>2008-05-04 08:16:10 +0000
commit3945462805beb52cdc3e42eff948afbe2e7c4683 (patch)
treead88300b5a090520568839df676d1ff0e39cdebd /target-mips/op.c
parentf730fd27b8e358efb3f7b31a564ecc6b1543b689 (diff)
downloadhqemu-3945462805beb52cdc3e42eff948afbe2e7c4683.zip
hqemu-3945462805beb52cdc3e42eff948afbe2e7c4683.tar.gz
Simplify mips branch handling. Retire T2 from use. Use TCG for branches.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4320 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-mips/op.c')
-rw-r--r--target-mips/op.c40
1 files changed, 5 insertions, 35 deletions
diff --git a/target-mips/op.c b/target-mips/op.c
index b19c439..00b7799 100644
--- a/target-mips/op.c
+++ b/target-mips/op.c
@@ -247,12 +247,6 @@
#include "fop_template.c"
#undef FTN
-void op_dup_T0 (void)
-{
- T2 = T0;
- FORCE_RET();
-}
-
void op_load_HI (void)
{
T0 = env->HI[env->current_tc][PARAM1];
@@ -1096,19 +1090,13 @@ OP_COND(ltz, (target_long)T0 < 0);
/* Branch to register */
void op_save_breg_target (void)
{
- env->btarget = T2;
- FORCE_RET();
-}
-
-void op_restore_breg_target (void)
-{
- T2 = env->btarget;
+ env->btarget = T1;
FORCE_RET();
}
void op_breg (void)
{
- env->PC[env->current_tc] = T2;
+ env->PC[env->current_tc] = env->btarget;
FORCE_RET();
}
@@ -1129,25 +1117,13 @@ void op_save_btarget64 (void)
/* Conditional branch */
void op_set_bcond (void)
{
- T2 = T0;
- FORCE_RET();
-}
-
-void op_save_bcond (void)
-{
- env->bcond = T2;
- FORCE_RET();
-}
-
-void op_restore_bcond (void)
-{
- T2 = env->bcond;
+ env->bcond = T0;
FORCE_RET();
}
-void op_jnz_T2 (void)
+void op_jnz_bcond (void)
{
- if (T2)
+ if (env->bcond)
GOTO_LABEL_PARAM(1);
FORCE_RET();
}
@@ -3116,12 +3092,6 @@ void op_debug (void)
FORCE_RET();
}
-void op_set_lladdr (void)
-{
- env->CP0_LLAddr = T2;
- FORCE_RET();
-}
-
void debug_pre_eret (void);
void debug_post_eret (void);
void op_eret (void)
OpenPOWER on IntegriCloud