@@ -382,18 +382,14 @@ static void gen_jump_slot(DisasContext *dc, TCGv dest, int slot)
382
382
if (dc -> icount ) {
383
383
tcg_gen_mov_i32 (cpu_SR [ICOUNT ], dc -> next_icount );
384
384
}
385
- if (dc -> base .singlestep_enabled ) {
386
- gen_exception (dc , EXCP_DEBUG );
385
+ if (dc -> op_flags & XTENSA_OP_POSTPROCESS ) {
386
+ slot = gen_postprocess (dc , slot );
387
+ }
388
+ if (slot >= 0 ) {
389
+ tcg_gen_goto_tb (slot );
390
+ tcg_gen_exit_tb (dc -> base .tb , slot );
387
391
} else {
388
- if (dc -> op_flags & XTENSA_OP_POSTPROCESS ) {
389
- slot = gen_postprocess (dc , slot );
390
- }
391
- if (slot >= 0 ) {
392
- tcg_gen_goto_tb (slot );
393
- tcg_gen_exit_tb (dc -> base .tb , slot );
394
- } else {
395
- tcg_gen_exit_tb (NULL , 0 );
396
- }
392
+ tcg_gen_exit_tb (NULL , 0 );
397
393
}
398
394
dc -> base .is_jmp = DISAS_NORETURN ;
399
395
}
@@ -1293,12 +1289,7 @@ static void xtensa_tr_tb_stop(DisasContextBase *dcbase, CPUState *cpu)
1293
1289
case DISAS_NORETURN :
1294
1290
break ;
1295
1291
case DISAS_TOO_MANY :
1296
- if (dc -> base .singlestep_enabled ) {
1297
- tcg_gen_movi_i32 (cpu_pc , dc -> pc );
1298
- gen_exception (dc , EXCP_DEBUG );
1299
- } else {
1300
- gen_jumpi (dc , dc -> pc , 0 );
1301
- }
1292
+ gen_jumpi (dc , dc -> pc , 0 );
1302
1293
break ;
1303
1294
default :
1304
1295
g_assert_not_reached ();
0 commit comments