* device/lib/z80/printf.c (sprintf): Added.
[fw/sdcc] / src / avr / main.c
index 5ddc571edb913f02886b5e2474415998c047fe6a..9ce3cd8ab26424614859d38fd92aebb0b25a2c51 100644 (file)
@@ -38,7 +38,7 @@ static int regParmFlg = 0;    /* determine if we can register a parameter */
 static void
 _avr_init (void)
 {
-       asm_addTree (&asm_gas_mapping);
+       asm_addTree (&asm_asxxxx_mapping);
 }
 
 static void
@@ -138,11 +138,12 @@ _avr_genIVT (FILE * of, symbol ** interrupts, int maxInterrupts)
     MUST be terminated with a NULL.
 */
 static const char *_linkCmd[] = {
-       "avr-ld", "", "$1", NULL
+       "linkavr", "", "$1", NULL
 };
 
+/* $3 is replaced by assembler.debug_opts resp. port->assembler.plain_opts */
 static const char *_asmCmd[] = {
-       "avr-as", "-mmcu=avr3" , "$1.s", NULL
+       "asavr", "$l" , "$3", "$1.s", NULL
 };
 
 /* Globals */
@@ -150,18 +151,23 @@ PORT avr_port = {
         TARGET_ID_AVR,
        "avr",
        "ATMEL AVR",            /* Target name */
+       NULL,                   /* processor */
        {
         TRUE,                  /* Emit glue around main */
         MODEL_LARGE | MODEL_SMALL,
         MODEL_SMALL},
        {
         _asmCmd,
-        "-plosgffc",           /* Options with debug */
+         NULL,
+        "-plosgff",            /* Options with debug */
         "-plosgff",            /* Options without debug */
         0,
-       ".s"},
+       ".s",
+        NULL,                  /* no do_assemble */
+       },
        {
         _linkCmd,
+         NULL,
         NULL,
         ".rel"},
        {
@@ -182,6 +188,8 @@ PORT avr_port = {
         "OSEG",
         "GSFINAL",
         "HOME",
+        NULL, // initialized xdata
+        NULL, // a code copy of xiseg
         NULL,
         NULL,
         0,
@@ -190,21 +198,26 @@ PORT avr_port = {
         -1, 1, 4, 1, 1, 0},
        /* avr has an 8 bit mul */
        {
-        1, 0},
+          1, -1
+        },
        "_",
        _avr_init,
        _avr_parseOptions,
+       NULL,
        _avr_finaliseOptions,
        _avr_setDefaultOptions,
        avr_assignRegisters,
        _avr_getRegName,
        _avr_keywords,
        _avr_genAssemblerPreamble,
+       NULL,                           /* no genAssemblerEnd */
        _avr_genIVT,
+       NULL, // _avr_genXINIT
        _avr_reset_regparm,
        _avr_regparm,
         NULL,
        NULL,
+        NULL,
        FALSE,
        0,                      /* leave lt */
        1,                      /* transform gt ==> not le */
@@ -212,5 +225,11 @@ PORT avr_port = {
        0,                      /* leave ge */
        0,                      /* leave !=  */
        0,                      /* leave == */
+       FALSE,                  /* No array initializer support. */
+       0,                      /* no CSE cost estimation yet */
+       NULL,                   /* no builtin functions */
+       GPOINTER,               /* treat unqualified pointers as "generic" pointers */
+       1,                      /* reset labelKey to 1 */
+       1,                      /* globals & local static allowed */
        PORT_MAGIC
 };