* src/pic16/NOTES: moved Vangelis from active developers to people to contact
[fw/sdcc] / src / pic16 / pcodepeep.c
index dbd3558aa5074fc3dcca2631dab81641dee2a186..07fbf87e55d75af801839d2bb257777621a8abb4 100644 (file)
@@ -1739,7 +1739,7 @@ int pic16_pCodeSearchCondition(pCode *pc, unsigned int cond)
  *-----------------------------------------------------------------*/
 static int pCodeOpCompare(pCodeOp *pcops, pCodeOp *pcopd)
 {
-  char b[128], *n2;
+  char b[1024], *n2;
 
   if(!pcops || !pcopd)
     return 0;
@@ -1765,8 +1765,8 @@ static int pCodeOpCompare(pCodeOp *pcops, pCodeOp *pcopd)
     return 0;
   }
 
-  b[0]=0;
-  pic16_get_op(pcops,b,128);
+  memset(b, 0, sizeof(b) );       //b[0]=0;
+  pic16_get_op(pcops,b, sizeof(b) );
 
   n2 = pic16_get_op(pcopd,NULL,0);
 
@@ -2243,6 +2243,9 @@ pCodeOp *pic16_pCodeOpCopy(pCodeOp *pcop)
   case PO_GPR_TEMP:
   case PO_FSR0:
   case PO_INDF0:
+  case PO_WREG: // moved from below
+  case PO_PRODL: // moved from below
+  case PO_PRODH: // moved from below
     //DFPRINTF((stderr,"pCodeOpCopy GPR register\n"));
     pcopnew = Safe_calloc(1,sizeof(pCodeOpReg) );
     PCOR(pcopnew)->r = PCOR(pcop)->r;
@@ -2266,13 +2269,13 @@ pCodeOp *pic16_pCodeOpCopy(pCodeOp *pcop)
   case PO_STR:
   case PO_NONE:
   case PO_W:
-  case PO_WREG:
+  //case PO_WREG: // moved up
   case PO_INTCON:
   case PO_PCL:
   case PO_PCLATH:
   case PO_PCLATU:
-  case PO_PRODL:
-  case PO_PRODH:
+  //case PO_PRODL: // moved up
+  //case PO_PRODH: // moved up
   case PO_REL_ADDR:
     //DFPRINTF((stderr,"pCodeOpCopy register type %d\n", pcop->type));
     pcopnew = Safe_calloc(1,sizeof(pCodeOp) );
@@ -2435,16 +2438,16 @@ int pic16_pCodePeepMatchRule(pCode *pc)
        pcin->prev = pc->prev;
 
 
-#if 0
+#if 1
       {
        /*     DEBUG    */
        /* Converted the deleted pCodes into comments */
 
-       char buf[256];
+       char buf[1024];
        pCodeCSource *pc_cline2=NULL;
 
-       buf[0] = ';';
-       buf[1] = '#';
+//     buf[0] = ';';
+       buf[0] = '#';
 
        while(pc &&  pc!=pcin) {
 
@@ -2458,7 +2461,7 @@ int pic16_pCodePeepMatchRule(pCode *pc)
            }
          }
 
-         pic16_pCode2str(&buf[2], 254, pc);
+         pic16_pCode2str(&buf[1], sizeof( buf )-1, pc);
          pic16_pCodeInsertAfter(pcprev, pic16_newpCodeCharP(buf));
          pcprev = pcprev->next;
          pc = pc->next;