PIC aopput was using #00 as a register name.
authorsdattalo <sdattalo@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 31 May 2002 05:55:29 +0000 (05:55 +0000)
committersdattalo <sdattalo@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 31 May 2002 05:55:29 +0000 (05:55 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2020 4a8a32a2-be11-0410-ad9d-d568d2c75423

src/pic/gen.c

index 71f087dbb7f260337c72c2ea8980ac5a50a8a206..975ead83e0f7c7a5aa13781fa3bbdecf716dc4d7 100644 (file)
@@ -1434,13 +1434,16 @@ void aopPut (asmop *aop, char *s, int offset)
            else
          */
 
-         if(strcmp(s,"W"))
+         if(strcmp(s,"W")==0 )
            pic14_emitcode("movf","%s,w  ; %d",s,__LINE__);
 
          pic14_emitcode("movwf","%s",
                   aop->aopu.aop_reg[offset]->name);
 
-         if(strcmp(s,"W")) {
+         if(strcmp(s,zero)==0) {
+           emitpcode(POC_CLRF,popGet(aop,offset));
+
+         } else if(strcmp(s,"W")==0) {
            pCodeOp *pcop = Safe_calloc(1,sizeof(pCodeOpReg) );
            pcop->type = PO_GPR_REGISTER;
 
@@ -1450,9 +1453,13 @@ void aopPut (asmop *aop, char *s, int offset)
            DEBUGpic14_emitcode(";","%d",__LINE__);
            pcop->name = Safe_strdup(s);
            emitpcode(POC_MOVFW,pcop);
+           emitpcode(POC_MOVWF,popGet(aop,offset));
+         } else if(strcmp(s,one)==0) {
+           emitpcode(POC_CLRF,popGet(aop,offset));
+           emitpcode(POC_INCF,popGet(aop,offset));
+         } else {
+           emitpcode(POC_MOVWF,popGet(aop,offset));
          }
-         emitpcode(POC_MOVWF,popGet(aop,offset));
-
        }
        break;