}
static void
-_avr_reset_regparm ()
+_avr_reset_regparm (void)
{
regParmFlg = 0;
}
static int
-_avr_regparm (sym_link * l)
+_avr_regparm (sym_link * l, bool reentrant)
{
/* the first eight bytes will be passed in
registers r16-r23. but we won't split variables
return 0;
}
-void avr_assignRegisters (eBBlock ** ebbs, int count);
+void avr_assignRegisters (ebbIndex *);
static bool
_avr_parseOptions (int *pargc, char **argv, int *i)
/* Generate interrupt vector table. */
static int
-_avr_genIVT (FILE * of, symbol ** interrupts, int maxInterrupts)
+_avr_genIVT (struct dbuf_s * oBuf, symbol ** interrupts, int maxInterrupts)
{
- return TRUE;
+ return TRUE;
}
/* Indicate which extended bit operations this port supports */
{
/* Sizes: char, short, int, long, ptr, fptr, gptr, bit, float, max */
1, 2, 2, 4, 2, 2, 3, 1, 4, 4},
+
+ /* tags for generic pointers */
+ { 0x00, 0x40, 0x60, 0x80 }, /* far, near, xstack, code */
+
{
"XSEG",
"STACK",
"CSEG",
"DSEG",
"ISEG",
+ NULL, //PSEG
"XSEG",
"BSEG",
"RSEG",
"HOME",
NULL, // initialized xdata
NULL, // a code copy of xiseg
+ "CONST (CODE)", // const_name - const data (code or not)
+ "CABS (ABS,CODE)", // cabs_name - const absolute data (code or not)
+ "XABS (ABS,XDATA)", // xabs_name - absolute xdata/pdata
+ "IABS (ABS,DATA)", // iabs_name - absolute idata/data
NULL,
NULL,
0,
{
avr_emitDebuggerSymbol
},
+ {
+ 255/3, /* maxCount */
+ 3, /* sizeofElement */
+ /* The rest of these costs are bogus. They approximate */
+ /* the behavior of src/SDCCicode.c 1.207 and earlier. */
+ {4,4,4}, /* sizeofMatchJump[] */
+ {0,0,0}, /* sizeofRangeCompare[] */
+ 0, /* sizeofSubtract */
+ 3, /* sizeofDispatch */
+ },
"_",
_avr_init,
_avr_parseOptions,