Added NULL entry for port->cseOk
[fw/sdcc] / src / pic / main.c
index 7a6f7687e023bc03b75594556c5fa21a5c113f5b..596f5cb25e8effa3016ddac723ce97f68329aac0 100644 (file)
@@ -7,7 +7,8 @@
 #include "common.h"
 #include "main.h"
 #include "ralloc.h"
-#include "gen.h"
+//#include "gen.h"
+
 
 static char _defaultRules[] =
 {
@@ -42,6 +43,7 @@ static char *_pic14_keywords[] =
   NULL
 };
 
+void  pCodeInitRegisters(void);
 
 void pic14_assignRegisters (eBBlock ** ebbs, int count);
 
@@ -51,6 +53,7 @@ static void
 _pic14_init (void)
 {
   asm_addTree (&asm_asxxxx_mapping);
+  pCodeInitRegisters();
 }
 
 static void
@@ -64,10 +67,10 @@ _pic14_regparm (sym_link * l)
 {
   /* for this processor it is simple
      can pass only the first parameter in a register */
-  if (regParmFlg)
-    return 0;
+  //if (regParmFlg)
+  //  return 0;
 
-  regParmFlg = 1;
+  regParmFlg++;// = 1;
   return 1;
 }
 
@@ -159,9 +162,9 @@ _pic14_getRegName (struct regs *reg)
 static void
 _pic14_genAssemblerPreamble (FILE * of)
 {
-  fprintf (of, "\tlist\tp=16c84\n");
+  fprintf (of, "\tlist\tp=16f877\n");
   fprintf (of, "\t__config _wdt_off\n");
-  fprintf (of, "\ninclude \"p16c84.inc\"\n");
+  fprintf (of, "\ninclude \"p16f877.inc\"\n");
 }
 
 /* Generate interrupt vector table. */
@@ -225,6 +228,7 @@ PORT pic_port =
   {
     _asmCmd,
     NULL,
+    NULL,
     NULL,
        //"-plosgffc",          /* Options with debug */
        //"-plosgff",           /* Options without debug */
@@ -234,6 +238,7 @@ PORT pic_port =
   {
     _linkCmd,
     NULL,
+    NULL,
     ".rel"
   },
   {
@@ -241,7 +246,7 @@ PORT pic_port =
   },
   {
        /* Sizes: char, short, int, long, ptr, fptr, gptr, bit, float, max */
-    1, 1, 2, 4, 1, 2, 1, 1, 4, 4
+    1, 2, 2, 4, 1, 2, 1, 1, 4, 4
        /* TSD - I changed the size of gptr from 3 to 1. However, it should be
           2 so that we can accomodate the PIC's with 4 register banks (like the
           16f877)
@@ -269,7 +274,7 @@ PORT pic_port =
   },
     /* pic14 has an 8 bit mul */
   {
-    1, 0
+    1, -1
   },
   "_",
   _pic14_init,
@@ -284,6 +289,8 @@ PORT pic_port =
   _pic14_reset_regparm,
   _pic14_regparm,
   NULL,
+  NULL,
+  NULL,
   FALSE,
   0,                           /* leave lt */
   0,                           /* leave gt */
@@ -291,5 +298,7 @@ PORT pic_port =
   1,                           /* transform >= to ! < */
   1,                           /* transform != to !(a == b) */
   0,                           /* leave == */
+  FALSE,                        /* No array initializer support. */
+  0,                            /* no CSE cost estimation yet */
   PORT_MAGIC
 };