git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1635
4a8a32a2-be11-0410-ad9d-
d568d2c75423
(!isOperandInFarSpace(IC_RIGHT(ic)) ||
isOperandInReg(IC_RIGHT(ic)))) continue ;
(!isOperandInFarSpace(IC_RIGHT(ic)) ||
isOperandInReg(IC_RIGHT(ic)))) continue ;
/* pointerGet */
if (POINTER_GET(ic) && !isOperandEqual(IC_LEFT(ic),op) &&
getSize(operandType(IC_LEFT(ic))) > 1 ) return NULL ;
/* pointerGet */
if (POINTER_GET(ic) && !isOperandEqual(IC_LEFT(ic),op) &&
getSize(operandType(IC_LEFT(ic))) > 1 ) return NULL ;
if (POINTER_SET(ic) && !isOperandEqual(IC_RESULT(ic),op) &&
getSize(operandType(IC_RESULT(ic))) > 1 ) return NULL;
if (POINTER_SET(ic) && !isOperandEqual(IC_RESULT(ic),op) &&
getSize(operandType(IC_RESULT(ic))) > 1 ) return NULL;
- /* conditionals can destroy 'b' */
- if (IS_CONDITIONAL(ic) && getSize(operandType(op)) > 3) return NULL;
+ /* conditionals can destroy 'b' - make sure B wont be used in this one*/
+ if ((IS_CONDITIONAL(ic) || ic->op == '*' || ic->op == '/' ) &&
+ getSize(operandType(op)) > 3) return NULL;
/* general case */
if (IC_RESULT(ic) && IS_SYMOP(IC_RESULT(ic)) &&
/* general case */
if (IC_RESULT(ic) && IS_SYMOP(IC_RESULT(ic)) &&