Index: C:/home/syd/work/2007q1/trunk/working_vm/vm/jitrino/src/codegenerator/ia32/Ia32BranchTrans.cpp =================================================================== --- C:/home/syd/work/2007q1/trunk/working_vm/vm/jitrino/src/codegenerator/ia32/Ia32BranchTrans.cpp (revision 506879) +++ C:/home/syd/work/2007q1/trunk/working_vm/vm/jitrino/src/codegenerator/ia32/Ia32BranchTrans.cpp (working copy) @@ -230,7 +248,8 @@ bool found = false; for (Inst * prevInst=NULL; nextInst!=NULL && !found; nextInst=prevInst){ Inst::Opnds opnds(nextInst, Inst::OpndRole_Def|Inst::OpndRole_ForIterator); - if (i==-1 && nextInst != cmpInst && nextInst->getMnemonic() != Mnemonic_MOV) { + + if (i==-1 && nextInst != cmpInst && (nextInst->getMnemonic() != Mnemonic_MOV || nextInst->getOpnd(0)->isPlacedIn(OpndKind_Mem) || nextInst->getOpnd(1)->isPlacedIn(OpndKind_Mem))) { stopSearch = true; break; }