diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2014-08-19 18:56:26 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2014-08-19 19:02:03 +0100 |
commit | cc9c1ed14e876d724107fe72f74dcac71a003fbc (patch) | |
tree | c141b05ba8626bded1294efecc57766ead3c3289 /target-mips/cpu.c | |
parent | 3a2982038afa0f04fc99b259e8ad8c18be0b04cb (diff) |
target-arm: A64: Avoid duplicate exit_tb(0) in non-linked goto_tb
If gen_goto_tb() decides not to link the two TBs, then the
fallback path generates unnecessary code:
* if singlestep is enabled then we generate unreachable code
after the gen_exception_internal(EXCP_DEBUG)
* if singlestep is disabled then we will generate exit_tb(0)
twice, once in gen_goto_tb() and once coming out of the
main loop with is_jmp set to DISAS_JUMP
Correct these deficiencies by only emitting exit_tb() in the
non-singlestep case, in which case we can use DISAS_TB_JUMP
to suppress the main-loop exit_tb().
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Diffstat (limited to 'target-mips/cpu.c')
0 files changed, 0 insertions, 0 deletions