#include "SDCCicode.h"
#include "SDCCargs.h"
+#include "SDCCpeeph.h"
#define TARGET_ID_MCS51 1
#define TARGET_ID_GBZ80 2
void (*do_link) (void);
/** Extension for object files (.rel, .obj, ...) */
const char *rel_ext;
+ /** 1 if port needs the .lnk file, 0 otherwise */
+ const int needLinkerScript;
}
linker;
{
/** Default peephole rules */
char *default_rules;
+ int (*getSize)(lineNode *line);
+ bitVect * (*getRegsRead)(lineNode *line);
+ bitVect * (*getRegsWritten)(lineNode *line);
}
peep;
}
support;
+ struct
+ {
+ void (*emitDebuggerSymbol) (char *);
+ struct
+ {
+ int (*regNum) (struct regs *);
+ bitVect * cfiSame;
+ bitVect * cfiUndef;
+ int addressSize;
+ int regNumRet;
+ int regNumSP;
+ int regNumBP;
+ int offsetSP;
+ }
+ dwarf;
+ }
+ debugger;
+
/** Prefix to add to a C function (eg "_") */
const char *fun_prefix;
/** Optional list of automatically parsed options. Should be
implemented to at least show the help text correctly. */
OPTION *poptions;
+/** Initialise port spectific paths */
+ void (*initPaths)(void);
/** Called after all the options have been parsed. */
void (*finaliseOptions) (void);
/** Called after the port has been selected but before any
int (*genIVT) (FILE * of, symbol ** intTable, int intCount);
void (*genXINIT) (FILE * of);
+
+ /* Write port specific startup code */
+ void (*genInitStartup) (FILE * of);
/* parameter passing in register related functions */
void (*reset_regparms) (); /* reset the register count */