#include "SDCCmacro.h"
#include "MySystem.h"
#include "glue.h"
+#include "dbuf_string.h"
#include <errno.h>
//#include "gen.h"
return 1;
}
-static int
-_process_pragma(const char *sz)
-{
- static const char *WHITE = " \t";
- char *ptr = strtok((char *)sz, WHITE);
-
- if (startsWith (ptr, "memmap"))
- {
- char *start;
- char *end;
- char *type;
- char *alias;
-
- start = strtok((char *)NULL, WHITE);
- end = strtok((char *)NULL, WHITE);
- type = strtok((char *)NULL, WHITE);
- alias = strtok((char *)NULL, WHITE);
-
- if (start != (char *)NULL
- && end != (char *)NULL
- && type != (char *)NULL) {
- value *startVal = constVal(start);
- value *endVal = constVal(end);
- value *aliasVal;
- memRange r;
-
- if (alias == (char *)NULL) {
- aliasVal = constVal(0);
- } else {
- aliasVal = constVal(alias);
- }
-
- r.start_address = (int)floatFromVal(startVal);
- r.end_address = (int)floatFromVal(endVal);
- r.alias = (int)floatFromVal(aliasVal);
- r.bank = (r.start_address >> 7) & 3;
-
- if (strcmp(type, "RAM") == 0) {
- addMemRange(&r, 0);
- } else if (strcmp(type, "SFR") == 0) {
- addMemRange(&r, 1);
- } else {
- return 1;
- }
- }
-
- return 0;
- } else if (startsWith (ptr, "maxram")) {
- // not used any more - comes from device config file pic14devices.txt instead
- return 0;
- }
- return 1;
-}
-
extern char *udata_section_name;
static bool
/* Generate interrupt vector table. */
static int
-_pic14_genIVT (FILE * of, symbol ** interrupts, int maxInterrupts)
+_pic14_genIVT (struct dbuf_s * oBuf, symbol ** interrupts, int maxInterrupts)
{
int i;
return FALSE;
}
- fprintf (of, "\t;ajmp\t__sdcc_gsinit_startup\n");
+ dbuf_printf (oBuf, "\t;ajmp\t__sdcc_gsinit_startup\n");
/* now for the other interrupts */
for (i = 0; i < maxInterrupts; i++)
{
if (interrupts[i])
{
- fprintf (of, "\t;ljmp\t%s\n\t.ds\t4\n", interrupts[i]->rname);
+ dbuf_printf (oBuf, "\t;ljmp\t%s\n\t.ds\t4\n", interrupts[i]->rname);
}
else
{
- fprintf (of, "\t;reti\n\t.ds\t7\n");
+ dbuf_printf (oBuf, "\t;reti\n\t.ds\t7\n");
}
}
NULL, // xinit
"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
+ "IABS (ABS,DATA)", // iabs_name - absolute data
NULL,
NULL,
1 // code is read only
NULL, /* genInitStartup */
_pic14_reset_regparm,
_pic14_regparm,
- _process_pragma, /* process a pragma */
+ NULL, /* process a pragma */
NULL,
_hasNativeMulFor,
hasExtBitOp, /* hasExtBitOp */