X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fhc08%2Fmain.c;h=a86d3a127bdc1160baf373b2b9931b74e06a475a;hb=a646dcff1ba10145839a6724656269ab5261d99a;hp=5b72405e24ffe8c479f44deacea3f59545627164;hpb=3e6a1de6a8b8e4031ce47445eb9bebed88a283b7;p=fw%2Fsdcc diff --git a/src/hc08/main.c b/src/hc08/main.c index 5b72405e..a86d3a12 100644 --- a/src/hc08/main.c +++ b/src/hc08/main.c @@ -51,7 +51,7 @@ static char *_hc08_keywords[] = }; -void hc08_assignRegisters (eBBlock ** ebbs, int count); +void hc08_assignRegisters (ebbIndex *); static int regParmFlg = 0; /* determine if we can register a parameter */ @@ -62,13 +62,13 @@ _hc08_init (void) } static void -_hc08_reset_regparm () +_hc08_reset_regparm (void) { regParmFlg = 0; } static int -_hc08_regparm (sym_link * l) +_hc08_regparm (sym_link * l, bool reentrant) { int size = getSize(l); @@ -139,7 +139,7 @@ _hc08_setDefaultOptions (void) { options.code_loc = 0x8000; options.data_loc = 0x80; - options.xdata_loc = 0x100; + options.xdata_loc = 0; /* 0 means immediately following data */ options.stack_loc = 0x7fff; options.out_fmt = 1; /* use motorola S19 output */ @@ -164,10 +164,13 @@ _hc08_genAssemblerPreamble (FILE * of) symbol *mainExists=newSymbol("main", 0); mainExists->block=0; - fprintf (of, "\t.area %s\n",port->mem.code_name); + fprintf (of, "\t.area %s\n",HOME_NAME); + fprintf (of, "\t.area GSINIT0 (CODE)\n"); fprintf (of, "\t.area %s\n",port->mem.static_name); fprintf (of, "\t.area %s\n",port->mem.post_static_name); + fprintf (of, "\t.area %s\n",CODE_NAME); fprintf (of, "\t.area %s\n",port->mem.xinit_name); + fprintf (of, "\t.area %s\n",port->mem.const_name); fprintf (of, "\t.area %s\n",port->mem.data_name); fprintf (of, "\t.area %s\n",port->mem.overlay_name); fprintf (of, "\t.area %s\n",port->mem.bit_name); @@ -197,7 +200,7 @@ _hc08_genAssemblerPreamble (FILE * of) fprintf (of, "\t.org\t0xfffe\n"); fprintf (of, "\t.dw\t%s", "__sdcc_gs_init_startup\n\n"); - fprintf (of, "\t.area GSINIT\n"); + fprintf (of, "\t.area GSINIT0\n"); fprintf (of, "__sdcc_gs_init_startup:\n"); if (options.stack_loc) { @@ -422,6 +425,7 @@ PORT hc08_port = "CSEG (CODE)", "DSEG", NULL, /* "ISEG" */ + NULL, /* "PSEG" */ "XSEG", "BSEG", "RSEG", @@ -431,6 +435,7 @@ PORT hc08_port = "HOME (CODE)", "XISEG", // initialized xdata "XINIT", // a code copy of xiseg + "CONST (CODE)", // const_name - const data (code or not) NULL, NULL, 1 @@ -462,6 +467,14 @@ PORT hc08_port = 1, /* offsetSP */ }, }, + { + 256, /* maxCount */ + 2, /* sizeofElement */ + {8,16,32}, /* sizeofMatchJump[] */ + {8,16,32}, /* sizeofRangeCompare[] */ + 5, /* sizeofSubtract */ + 10, /* sizeofDispatch */ + }, "_", _hc08_init, _hc08_parseOptions,