#include "SDCCicode.h"
#include "SDCCargs.h"
#include "SDCCpeeph.h"
+#include "dbuf.h"
+#include "mcs51/peep.h"
#define TARGET_ID_MCS51 1
#define TARGET_ID_GBZ80 2
*/
#define TARGET_IS_MCS51 (port->id==TARGET_ID_MCS51)
#define TARGET_IS_GBZ80 (port->id==TARGET_ID_GBZ80)
-#define TARGET_IS_Z80 (port->id==TARGET_ID_Z80)
-#define TARGET_IS_AVR (port->id==TARGET_ID_AVR)
+#define TARGET_IS_Z80 (port->id==TARGET_ID_Z80)
+#define TARGET_Z80_LIKE ((port->id==TARGET_ID_Z80) || (port->id==TARGET_ID_GBZ80))
+#define TARGET_IS_AVR (port->id==TARGET_ID_AVR)
#define TARGET_IS_DS390 (port->id==TARGET_ID_DS390)
#define TARGET_IS_DS400 (port->id==TARGET_ID_DS400)
#define TARGET_IS_PIC (port->id==TARGET_ID_PIC)
#define TARGET_IS_PIC16 (port->id==TARGET_ID_PIC16)
-#define TARGET_IS_XA51 (port->id==TARGET_ID_XA51)
-#define TARGET_IS_HC08 (port->id==TARGET_ID_HC08)
+#define TARGET_IS_XA51 (port->id==TARGET_ID_XA51)
+#define TARGET_IS_HC08 (port->id==TARGET_ID_HC08)
#define MAX_BUILTIN_ARGS 16
/* definition of builtin functions */
typedef struct builtins
{
- char *name; /* name of builtin function */
- char *rtype; /* return type as string : see typefromStr */
- int nParms; /* number of parms : max 8 */
+ char *name; /* name of builtin function */
+ char *rtype; /* return type as string : see typefromStr */
+ int nParms; /* number of parms : max 8 */
char *parm_types[MAX_BUILTIN_ARGS]; /* each parm type as string : see typeFromStr */
} builtins;
int (*getSize)(lineNode *line);
bitVect * (*getRegsRead)(lineNode *line);
bitVect * (*getRegsWritten)(lineNode *line);
+ bool (*deadMove) (const char *reg, lineNode *currPl, lineNode *head);
}
peep;
const char *xinit_name; // a code copy of xidata
const char *const_name; // const data (code or not)
const char *cabs_name; // const absolute data (code or not)
+ const char *xabs_name; // absolute xdata/pdata
+ const char *iabs_name; // absolute idata/data
struct memmap *default_local_map; // default location for auto vars
struct memmap *default_globl_map; // default location for globl vars
int code_ro; /* code space read-only 1=yes */
* it returns zero, default (8051) IVT generation code
* will be used.
*/
- int (*genIVT) (FILE * of, symbol ** intTable, int intCount);
+ int (*genIVT) (struct dbuf_s *oBuf, symbol ** intTable, int intCount);
void (*genXINIT) (FILE * of);