PPC32 Trace Exception and Trap instruction, by Jason Wessel.
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Fri, 5 Jan 2007 16:54:16 +0000 (16:54 +0000)
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Fri, 5 Jan 2007 16:54:16 +0000 (16:54 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2291 c046a42c-6fe2-441c-8c8c-71466251a162

target-ppc/helper.c
target-ppc/translate.c

index 3f7a708..70b0a49 100644 (file)
@@ -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 */
index 046f168..41737d4 100644 (file)
@@ -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));
 }