JIT: fix carry optimization on blocks that end early

I don't know if this shows up currently, but e.g. if you force blocks to be
under a certain length, this problem (a crash) shows up.
This commit is contained in:
Fiora 2014-12-26 12:32:42 -08:00
parent 339383b8dd
commit 354e255827
1 changed files with 2 additions and 2 deletions

View File

@ -57,7 +57,7 @@ void Jit64::FinalizeCarry(CCFlags cond)
if (js.op->wantsCA)
{
// Be careful: a breakpoint kills flags in between instructions
if (js.next_op->wantsCAInFlags && !js.next_inst_bp)
if (!js.isLastInstruction && js.next_op->wantsCAInFlags && !js.next_inst_bp)
{
if (cond == CC_C || cond == CC_NC)
{
@ -86,7 +86,7 @@ void Jit64::FinalizeCarry(bool ca)
js.carryFlagInverted = false;
if (js.op->wantsCA)
{
if (js.next_op->wantsCAInFlags)
if (!js.isLastInstruction && js.next_op->wantsCAInFlags && !js.next_inst_bp)
{
if (ca)
STC();