+2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/mcs51/gen.c (genCall): fixed bug 1457608
+
2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
* doc/sdccman.lyx: reverted to version 1.129 of december as my latest
bool accuse = FALSE;
bool accPushed = FALSE;
bool resultInF0 = FALSE;
+ bool assignResultGenerated = FALSE;
D(emitcode("; genCall",""));
_G.accInUse--;
accuse = assignResultValue (IC_RESULT (ic), IC_LEFT (ic));
+ assignResultGenerated = TRUE;
freeAsmop (IC_RESULT (ic), NULL, ic, TRUE);
}
accPushed = TRUE;
}
if (IS_BIT (OP_SYM_ETYPE (IC_LEFT (ic))) &&
- IS_BIT (OP_SYM_ETYPE (IC_RESULT (ic))))
+ IS_BIT (OP_SYM_ETYPE (IC_RESULT (ic))) &&
+ !assignResultGenerated)
{
emitcode ("mov", "F0,c");
resultInF0 = TRUE;
// if (restoreBank)
// unsaveRBank (FUNC_REGBANK (dtype), ic, FALSE);
- if (IS_BIT (OP_SYM_ETYPE (IC_RESULT (ic))))
+ if (IS_BIT (OP_SYM_ETYPE (IC_RESULT (ic))) && !assignResultGenerated)
{
if (resultInF0)
emitcode ("mov", "c,F0");