aboutsummaryrefslogtreecommitdiff
path: root/target-ppc
diff options
context:
space:
mode:
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>2007-01-05 16:54:16 +0000
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>2007-01-05 16:54:16 +0000
commita0ae05aa6390fe363e70355c9375a9b9149dab14 (patch)
treed22de7f17ea2cb9abaeda2d271900469f2504881 /target-ppc
parent455204eb1a0880a5e4474acf07d4641f51123a1d (diff)
PPC32 Trace Exception and Trap instruction, by Jason Wessel.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2291 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc')
-rw-r--r--target-ppc/helper.c2
-rw-r--r--target-ppc/translate.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/target-ppc/helper.c b/target-ppc/helper.c
index 3f7a708712..70b0a49156 100644
--- a/target-ppc/helper.c
+++ b/target-ppc/helper.c
@@ -1113,8 +1113,6 @@ void do_interrupt (CPUState *env)
}
goto store_next;
case EXCP_TRACE: /* 0x0D00 */
- /* XXX: TODO */
- cpu_abort(env, "Trace exception is not implemented yet !\n");
goto store_next;
case EXCP_PERF: /* 0x0F00 */
/* XXX: TODO */
diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index 046f168bf9..41737d4a84 100644
--- a/target-ppc/translate.c
+++ b/target-ppc/translate.c
@@ -1956,6 +1956,8 @@ GEN_HANDLER(tw, 0x1F, 0x04, 0xFF, 0x00000001, PPC_FLOW)
{
gen_op_load_gpr_T0(rA(ctx->opcode));
gen_op_load_gpr_T1(rB(ctx->opcode));
+ /* Update the nip since this might generate a trap exception */
+ gen_op_update_nip(ctx->nip);
gen_op_tw(TO(ctx->opcode));
}