#include "common.h"
#include "main.h"
#include "ralloc.h"
-#include "gen.h"
+//#include "gen.h"
+
static char _defaultRules[] =
{
NULL
};
+void pCodeInitRegisters(void);
void pic14_assignRegisters (eBBlock ** ebbs, int count);
_pic14_init (void)
{
asm_addTree (&asm_asxxxx_mapping);
+ pCodeInitRegisters();
}
static void
{
/* 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;
}
static void
_pic14_finaliseOptions (void)
{
+
+ port->mem.default_local_map = data;
+ port->mem.default_globl_map = data;
#if 0
/* Hack-o-matic: if we are using the flat24 model,
* adjust pointer sizes.
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. */
{
_asmCmd,
NULL,
+ NULL,
NULL,
//"-plosgffc", /* Options with debug */
//"-plosgff", /* Options without debug */
- 0
+ 0,
+ ".asm"
},
{
_linkCmd,
NULL,
+ NULL,
".rel"
},
{
},
{
/* 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)
},
/* pic14 has an 8 bit mul */
{
- 1, 0
+ 1, -1
},
"_",
_pic14_init,
_pic14_reset_regparm,
_pic14_regparm,
NULL,
+ NULL,
+ NULL,
FALSE,
0, /* leave lt */
0, /* leave gt */
1, /* transform >= to ! < */
1, /* transform != to !(a == b) */
0, /* leave == */
+ FALSE, /* No array initializer support. */
+ 0, /* no CSE cost estimation yet */
+ NULL, /* no builtin functions */
PORT_MAGIC
};