+static const char *_asmCmd[] =
+{
+ "asx8051", "$l", "-plosgffc", "$1.asm", NULL
+};
+
+/* Globals */
+PORT mcs51_port =
+{
+ TARGET_ID_MCS51,
+ "mcs51",
+ "MCU 8051", /* Target name */
+ {
+ TRUE, /* Emit glue around main */
+ MODEL_SMALL | MODEL_LARGE,
+ MODEL_SMALL
+ },
+ {
+ _asmCmd,
+ "-plosgffc", /* Options with debug */
+ "-plosgff", /* Options without debug */
+ 0,
+ ".asm"
+ },
+ {
+ _linkCmd,
+ NULL,
+ ".rel"
+ },
+ {
+ _defaultRules
+ },
+ {
+ /* Sizes: char, short, int, long, ptr, fptr, gptr, bit, float, max */
+ 1, 2, 2, 4, 1, 2, 3, 1, 4, 4
+ },
+ {
+ "XSEG (XDATA)",
+ "STACK (DATA)",
+ "CSEG (CODE)",
+ "DSEG (DATA)",
+ "ISEG (DATA)",
+ "XSEG (XDATA)",
+ "BSEG (BIT)",
+ "RSEG (DATA)",
+ "GSINIT (CODE)",
+ "OSEG (OVR,DATA)",
+ "GSFINAL (CODE)",
+ "HOME (CODE)",
+ NULL,
+ NULL,
+ 1
+ },
+ {
+ +1, 1, 4, 1, 1, 0
+ },
+ /* mcs51 has an 8 bit mul */
+ {
+ 1, -1
+ },
+ "_",
+ _mcs51_init,
+ _mcs51_parseOptions,
+ _mcs51_finaliseOptions,
+ _mcs51_setDefaultOptions,
+ mcs51_assignRegisters,
+ _mcs51_getRegName,
+ _mcs51_keywords,
+ _mcs51_genAssemblerPreamble,
+ _mcs51_genIVT,
+ _mcs51_reset_regparm,
+ _mcs51_regparm,
+ NULL,
+ NULL,
+ FALSE,
+ 0, /* leave lt */
+ 0, /* leave gt */
+ 1, /* transform <= to ! > */
+ 1, /* transform >= to ! < */
+ 1, /* transform != to !(a == b) */
+ 0, /* leave == */
+ FALSE, /* No array initializer support. */
+ PORT_MAGIC