#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;
*/
bool (*hasNativeMulFor) (iCode *ic, sym_link *left, sym_link *right);
+ /** Returns true if the port has implemented certain bit
+ manipulation iCodes (RRC, RLC, SWAP, GETHBIT)
+ */
+ bool (*hasExtBitOp) (int op, int size);
+
+ /** Returns the relative expense of accessing a particular output
+ storage class. Larger values indicate higher expense.
+ */
+ int (*oclsExpense) (struct memmap *oclass);
+
/** If TRUE, then tprintf and !dw will be used for some initalisers
*/
bool use_dw_for_init;