#include "SDCCmacro.h"
#include "MySystem.h"
#include "glue.h"
+#include <errno.h>
//#include "gen.h"
pic14_options_t pic14_options;
+#define ARG_STACKLOC "--stack-loc"
+#define ARG_STACKSIZ "--stack-size"
+
extern int debug_verbose; /* from pcode.c */
static OPTION _pic14_poptions[] = {
{ 0 , "--debug-xtra", &debug_verbose, "show more debug info in assembly output" },
{ 0 , "--no-pcode-opt", &pic14_options.disable_df, "disable (slightly faulty) optimization on pCode" },
+ { 0 , ARG_STACKLOC, NULL, "sets the lowest address of the argument passing stack" },
+ { 0 , ARG_STACKSIZ, NULL, "sets the size if the argument passing stack (default: 16, minimum: 4)" },
{ 0 , NULL, NULL, NULL }
};
*/
static const char *_linkCmd[] =
{
- "gplink", "$l", "-o \"$2\"", "\"$1\"", "$3", NULL
+ "gplink", "$l", "-w", "-r", "-o \"$2\"", "\"$1\"", "$3", NULL
};
static const char *_asmCmd[] =
*
*/
- sprintf(lfrm, "{linker} {incdirs} {sysincdirs} {lflags} -o {outfile} {user_ofile} {spec_ofiles} {ofiles} {libs}");
+ sprintf(lfrm, "{linker} {incdirs} {sysincdirs} {lflags} -w -r -o {outfile} {user_ofile} {spec_ofiles} {ofiles} {libs}");
shash_add(&linkValues, "linker", "gplink");
shash_add(&linkValues, "lflags", joinStrSet(linkOptionsSet));
- shash_add(&linkValues, "outfile", dstFileName);
+ shash_add(&linkValues, "outfile", fullDstFileName ? fullDstFileName : dstFileName);
if(fullSrcFileName) {
- sprintf(temp, "%s.o", dstFileName);
+ sprintf(temp, "%s.o", fullDstFileName ? fullDstFileName : dstFileName );
shash_add(&linkValues, "user_ofile", temp);
}
16f877)
*/
},
+ /* tags for generic pointers */
+ { 0x00, 0x00, 0x00, 0x80 }, /* far, near, xstack, code */
{
"XSEG (XDATA)",
"STACK (DATA)",
NULL, // xidata
NULL, // xinit
"CONST (CODE)", // const_name - const data (code or not)
+ "CABS (ABS,CODE)", // cabs_name - const absolute data (code or not)
NULL,
NULL,
1 // code is read only