Size optimization: don't generate jump_next_A0() code in block chaining

mode since the only case we would reach that is when there are pending
interrupts, thus needing to exit from this basic block ASAP. Otherwise,
we jumped to linker trampolines
This commit is contained in:
gbeauche 2004-05-11 21:53:48 +00:00
parent 08bcd2653d
commit 15a0779328

View File

@ -1425,9 +1425,13 @@ powerpc_cpu::compile_block(uint32 entry_point)
goto again;
}
}
// TODO: optimize this to a direct jump to pregenerated code?
dg.gen_mov_ad_A0_im((uintptr)bi);
dg.gen_jump_next_A0();
// In direct block chaining mode, this code is reached only if
// there are pending spcflags, i.e. get out of this block
if (!use_direct_block_chaining) {
// TODO: optimize this to a direct jump to pregenerated code?
dg.gen_mov_ad_A0_im((uintptr)bi);
dg.gen_jump_next_A0();
}
dg.gen_exec_return();
dg.gen_end();
bi->end_pc = dpc;