Revision ce62e5ba target-mips/translate.c
b/target-mips/translate.c | ||
---|---|---|
5882 | 5882 |
generate_exception(ctx, EXCP_SYSCALL); |
5883 | 5883 |
break; |
5884 | 5884 |
case OPC_BREAK: |
5885 |
/* XXX: Hack to work around wrong handling of self-modifying code. */ |
|
5886 |
ctx->pc += 4; |
|
5887 |
save_cpu_state(ctx, 1); |
|
5888 |
ctx->pc -= 4; |
|
5889 | 5885 |
generate_exception(ctx, EXCP_BREAK); |
5890 | 5886 |
break; |
5891 | 5887 |
case OPC_SPIM: |
... | ... | |
6433 | 6429 |
save_cpu_state(&ctx, 1); |
6434 | 6430 |
ctx.bstate = BS_BRANCH; |
6435 | 6431 |
gen_op_debug(); |
6432 |
/* Include the breakpoint location or the tb won't |
|
6433 |
* be flushed when it must be. */ |
|
6434 |
ctx.pc += 4; |
|
6436 | 6435 |
goto done_generating; |
6437 | 6436 |
} |
6438 | 6437 |
} |
... | ... | |
6493 | 6492 |
lj++; |
6494 | 6493 |
while (lj <= j) |
6495 | 6494 |
gen_opc_instr_start[lj++] = 0; |
6496 |
tb->size = 0; |
|
6497 | 6495 |
} else { |
6498 | 6496 |
tb->size = ctx.pc - pc_start; |
6499 | 6497 |
} |
Also available in: Unified diff