From 0b90044af62bc12cd8f43dd1724982a0cbac4a11 Mon Sep 17 00:00:00 2001 From: kvigor Date: Mon, 5 Nov 2001 21:28:55 +0000 Subject: [PATCH] Fix crash compiling vprintf.c git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1511 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- src/ds390/ralloc.c | 2 +- src/mcs51/ralloc.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/ds390/ralloc.c b/src/ds390/ralloc.c index 831612bd..30b84141 100644 --- a/src/ds390/ralloc.c +++ b/src/ds390/ralloc.c @@ -2334,7 +2334,7 @@ packRegisters (eBBlock * ebp) (IS_SYMOP (IC_LEFT (ic)) && IS_ITEMP (IC_RESULT (ic)) && OP_SYMBOL (IC_LEFT (ic))->remat && - !IS_CAST_ICODE(OP_SYMBOL (IC_LEFT (ic))->rematiCode) && + (!IS_SYMOP (IC_RIGHT (ic)) || !IS_CAST_ICODE(OP_SYMBOL (IC_RIGHT (ic))->rematiCode)) && bitVectnBitsOn (OP_DEFS (IC_RESULT (ic))) == 1 && IS_OP_LITERAL (IC_RIGHT (ic)))) { diff --git a/src/mcs51/ralloc.c b/src/mcs51/ralloc.c index 34a12108..4e36fa13 100644 --- a/src/mcs51/ralloc.c +++ b/src/mcs51/ralloc.c @@ -2322,11 +2322,12 @@ packRegisters (eBBlock * ebp) if ((ic->op == '+' || ic->op == '-') && (IS_SYMOP (IC_LEFT (ic)) && IS_ITEMP (IC_RESULT (ic)) && + IS_OP_LITERAL (IC_RIGHT (ic))) && OP_SYMBOL (IC_LEFT (ic))->remat && - !IS_CAST_ICODE(OP_SYMBOL (IC_RIGHT (ic))->rematiCode) && - bitVectnBitsOn (OP_DEFS (IC_RESULT (ic))) == 1 && - IS_OP_LITERAL (IC_RIGHT (ic)))) + (!IS_SYMOP (IC_RIGHT (ic)) || !IS_CAST_ICODE(OP_SYMBOL (IC_RIGHT (ic))->rematiCode)) && + bitVectnBitsOn (OP_DEFS (IC_RESULT (ic))) == 1) { + fprintf(stderr, "ogga booga!\n"); OP_SYMBOL (IC_RESULT (ic))->remat = 1; OP_SYMBOL (IC_RESULT (ic))->rematiCode = ic; OP_SYMBOL (IC_RESULT (ic))->usl.spillLoc = NULL; -- 2.30.2