Applied a code patch supplied by Paul Ashmore in comments for Bugs item #954788.
authorslade_rich <slade_rich@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 12 Oct 2004 00:42:08 +0000 (00:42 +0000)
committerslade_rich <slade_rich@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 12 Oct 2004 00:42:08 +0000 (00:42 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3531 4a8a32a2-be11-0410-ad9d-d568d2c75423

src/pic/pcode.c

index 33eb3d723ec69a3327fdb47f6a9a81f3d83eee8c..d711d83addb7e780ccbf9eef753a7c91ae6d7aa9 100644 (file)
@@ -2806,10 +2806,13 @@ pCodeOp *popCopyReg(pCodeOpReg *pc)
        } else
                pcor->pcop.name = NULL;
        
-       pcor->r = pc->r;
-       pcor->rIdx = pc->rIdx;
-       pcor->r->wasUsed=1;
-       
+       if (pcor->pcop.type == PO_IMMEDIATE){
+               PCOL(pcor)->lit = PCOL(pc)->lit;
+       } else {
+               pcor->r = pc->r;
+               pcor->rIdx = pc->rIdx;
+               pcor->r->wasUsed=1;
+       }       
        //DEBUGpic14_emitcode ("; ***","%s  , copying %s, rIdx=%d",__FUNCTION__,pc->pcop.name,pc->rIdx);
        
        return PCOP(pcor);