Commit a0ae05aa6390fe363e70355c9375a9b9149dab14

Authored by ths
1 parent 455204eb

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
target-ppc/helper.c
@@ -1113,8 +1113,6 @@ void do_interrupt (CPUState *env) @@ -1113,8 +1113,6 @@ void do_interrupt (CPUState *env)
1113 } 1113 }
1114 goto store_next; 1114 goto store_next;
1115 case EXCP_TRACE: /* 0x0D00 */ 1115 case EXCP_TRACE: /* 0x0D00 */
1116 - /* XXX: TODO */  
1117 - cpu_abort(env, "Trace exception is not implemented yet !\n");  
1118 goto store_next; 1116 goto store_next;
1119 case EXCP_PERF: /* 0x0F00 */ 1117 case EXCP_PERF: /* 0x0F00 */
1120 /* XXX: TODO */ 1118 /* XXX: TODO */
target-ppc/translate.c
@@ -1956,6 +1956,8 @@ GEN_HANDLER(tw, 0x1F, 0x04, 0xFF, 0x00000001, PPC_FLOW) @@ -1956,6 +1956,8 @@ GEN_HANDLER(tw, 0x1F, 0x04, 0xFF, 0x00000001, PPC_FLOW)
1956 { 1956 {
1957 gen_op_load_gpr_T0(rA(ctx->opcode)); 1957 gen_op_load_gpr_T0(rA(ctx->opcode));
1958 gen_op_load_gpr_T1(rB(ctx->opcode)); 1958 gen_op_load_gpr_T1(rB(ctx->opcode));
  1959 + /* Update the nip since this might generate a trap exception */
  1960 + gen_op_update_nip(ctx->nip);
1959 gen_op_tw(TO(ctx->opcode)); 1961 gen_op_tw(TO(ctx->opcode));
1960 } 1962 }
1961 1963