Sparc32/64: fix jmpl followed by branch
Fix a case where 'jmpl' instruction followed by a branch instruction was handled incorrectly. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
10ee2aaa41
commit
c27e27528f
@ -1134,6 +1134,7 @@ static void do_branch(DisasContext *dc, int32_t offset, uint32_t insn, int cc,
|
||||
} else {
|
||||
dc->pc = dc->npc;
|
||||
dc->npc = target;
|
||||
tcg_gen_mov_tl(cpu_pc, cpu_npc);
|
||||
}
|
||||
} else {
|
||||
flush_cond(dc, r_cond);
|
||||
@ -1174,6 +1175,7 @@ static void do_fbranch(DisasContext *dc, int32_t offset, uint32_t insn, int cc,
|
||||
} else {
|
||||
dc->pc = dc->npc;
|
||||
dc->npc = target;
|
||||
tcg_gen_mov_tl(cpu_pc, cpu_npc);
|
||||
}
|
||||
} else {
|
||||
flush_cond(dc, r_cond);
|
||||
|
Loading…
Reference in New Issue
Block a user