/* tc-msp430.c -- Assembler code for the Texas Instruments MSP430
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003 Free Software Foundation, Inc.
Contributed by Dmitry Diky <diwil@mail.ru>
This file is part of GAS, the GNU Assembler.
};
#define MSP430_ISA_11 11
+#define MSP430_ISA_110 110
#define MSP430_ISA_12 12
#define MSP430_ISA_13 13
#define MSP430_ISA_14 14
-#define MSP430_ISA_41 41
+#define MSP430_ISA_15 15
+#define MSP430_ISA_16 16
#define MSP430_ISA_31 31
#define MSP430_ISA_32 32
#define MSP430_ISA_33 33
-#define MSP430_ISA_110 110
+#define MSP430_ISA_41 41
+#define MSP430_ISA_42 42
#define MSP430_ISA_43 43
#define MSP430_ISA_44 44
-#define MSP430_ISA_15 15
-#define MSP430_ISA_16 16
#define CHECK_RELOC_MSP430 ((imm_op || byte_op)?BFD_RELOC_MSP430_16_BYTE:BFD_RELOC_MSP430_16)
#define CHECK_RELOC_MSP430_PCREL ((imm_op || byte_op)?BFD_RELOC_MSP430_16_PCREL_BYTE:BFD_RELOC_MSP430_16_PCREL)
{"msp2", MSP430_ISA_14, bfd_mach_msp14},
{"msp430x110", MSP430_ISA_11, bfd_mach_msp11},
{"msp430x112", MSP430_ISA_11, bfd_mach_msp11},
+ {"msp430x1101",MSP430_ISA_110, bfd_mach_msp110},
+ {"msp430x1111",MSP430_ISA_110, bfd_mach_msp110},
+ {"msp430x1121",MSP430_ISA_110, bfd_mach_msp110},
+ {"msp430x1122",MSP430_ISA_11, bfd_mach_msp110},
+ {"msp430x1132",MSP430_ISA_11, bfd_mach_msp110},
+
{"msp430x122", MSP430_ISA_12, bfd_mach_msp12},
- {"msp430x122", MSP430_ISA_12, bfd_mach_msp12},
- {"msp430x1222",MSP430_ISA_12, bfd_mach_msp12},
{"msp430x123", MSP430_ISA_12, bfd_mach_msp12},
+ {"msp430x1222",MSP430_ISA_12, bfd_mach_msp12},
{"msp430x1232",MSP430_ISA_12, bfd_mach_msp12},
+
{"msp430x133", MSP430_ISA_13, bfd_mach_msp13},
{"msp430x135", MSP430_ISA_13, bfd_mach_msp13},
+ {"msp430x1331",MSP430_ISA_13, bfd_mach_msp13},
+ {"msp430x1351",MSP430_ISA_13, bfd_mach_msp13},
{"msp430x147", MSP430_ISA_14, bfd_mach_msp14},
{"msp430x148", MSP430_ISA_14, bfd_mach_msp14},
{"msp430x149", MSP430_ISA_14, bfd_mach_msp14},
- {"msp430x412", MSP430_ISA_41, bfd_mach_msp41},
- {"msp430x413", MSP430_ISA_41, bfd_mach_msp41},
+
+ {"msp430x155", MSP430_ISA_15, bfd_mach_msp15},
+ {"msp430x156", MSP430_ISA_15, bfd_mach_msp15},
+ {"msp430x157", MSP430_ISA_15, bfd_mach_msp15},
+ {"msp430x167", MSP430_ISA_16, bfd_mach_msp16},
+ {"msp430x168", MSP430_ISA_16, bfd_mach_msp16},
+ {"msp430x169", MSP430_ISA_16, bfd_mach_msp16},
+
{"msp430x311", MSP430_ISA_31, bfd_mach_msp31},
{"msp430x312", MSP430_ISA_31, bfd_mach_msp31},
{"msp430x313", MSP430_ISA_31, bfd_mach_msp31},
{"msp430x325", MSP430_ISA_32, bfd_mach_msp32},
{"msp430x336", MSP430_ISA_33, bfd_mach_msp33},
{"msp430x337", MSP430_ISA_33, bfd_mach_msp33},
- {"msp430x1101",MSP430_ISA_110, bfd_mach_msp110},
- {"msp430x1111",MSP430_ISA_110, bfd_mach_msp110},
- {"msp430x1121",MSP430_ISA_110, bfd_mach_msp110},
- {"msp430x1331",MSP430_ISA_13, bfd_mach_msp13},
- {"msp430x1351",MSP430_ISA_13, bfd_mach_msp13},
+
+ {"msp430x412", MSP430_ISA_41, bfd_mach_msp41},
+ {"msp430x413", MSP430_ISA_41, bfd_mach_msp41},
+
+ {"msp430xE423", MSP430_ISA_42, bfd_mach_msp42},
+ {"msp430xE425", MSP430_ISA_42, bfd_mach_msp42},
+ {"msp430xE427", MSP430_ISA_42, bfd_mach_msp42},
+ {"msp430xW423", MSP430_ISA_42, bfd_mach_msp42},
+ {"msp430xW425", MSP430_ISA_42, bfd_mach_msp42},
+ {"msp430xW427", MSP430_ISA_42, bfd_mach_msp42},
+
{"msp430x435", MSP430_ISA_43, bfd_mach_msp43},
{"msp430x436", MSP430_ISA_43, bfd_mach_msp43},
+ {"msp430x437", MSP430_ISA_43, bfd_mach_msp43},
{"msp430x447", MSP430_ISA_44, bfd_mach_msp44},
{"msp430x448", MSP430_ISA_44, bfd_mach_msp44},
{"msp430x449", MSP430_ISA_44, bfd_mach_msp44},
- {"msp430x167", MSP430_ISA_16, bfd_mach_msp16},
- {"msp430x168", MSP430_ISA_16, bfd_mach_msp16},
- {"msp430x169", MSP430_ISA_16, bfd_mach_msp16},
- {"msp430x155", MSP430_ISA_15, bfd_mach_msp15},
- {"msp430x156", MSP430_ISA_15, bfd_mach_msp15},
- {"msp430x157", MSP430_ISA_15, bfd_mach_msp15},
{NULL, 0, 0}
};
fprintf (stream,
_("MSP430 options:\n"
" -mmcu=[msp430-name] select microcontroller type\n"
- " msp430x1101 msp430x1111 msp430x1121\n"
- " msp430x1331 msp430x1351\n"
- " msp430x1222 msp430x1232\n"
- " msp430x311 msp430x312 msp430x313 msp430x314 msp430x315\n"
- " msp430x323 msp430x325\n"
- " msp430x336 msp430x337\n"
- " msp430x412 msp430x413\n"
- " msp430x110 msp430x112\n"
- " msp430x122 msp430x123\n"
- " msp430x133 msp430x135\n"
- " msp430x147 msp430x148 msp430x149\n"
- " msp430x167 msp430x168 msp430x169\n"
- " msp430x155 msp430x156 msp430x157\n"
- " msp430x447 msp430x448 msp430x449\n"
- " msp430x435 msp430x436\n"));
+ " msp430x110 msp430x112\n"
+ " msp430x1101 msp430x1111\n"
+ " msp430x1121 msp430x1122 msp430x1132\n"
+ " msp430x122 msp430x123\n"
+ " msp430x1222 msp430x1232\n"
+ " msp430x133 msp430x135\n"
+ " msp430x1331 msp430x1351\n"
+ " msp430x147 msp430x148 msp430x149\n"
+ " msp430x155 msp430x156 msp430x157\n"
+ " msp430x167 msp430x168 msp430x169\n"
+ " msp430x311 msp430x312 msp430x313 msp430x314 msp430x315\n"
+ " msp430x323 msp430x325\n"
+ " msp430x336 msp430x337\n"
+ " msp430x412 msp430x413\n"
+ " msp430xE423 msp430xE425 msp430E427\n"
+ " msp430xW423 msp430xW425 msp430W427\n"
+ " msp430x435 msp430x436 msp430x437\n"
+ " msp430x447 msp430x448 msp430x449\n"));
show_mcu_list (stream);
}
while (cmd[i] && i < sizeof (cmd))
{
- char a = tolower (cmd[i]);
+ char a = TOLOWER (cmd[i]);
cmd[i] = a;
i++;
}
.b @r2+, 5(R1). */
/* Check if byte or word operation. */
- if (*line == '.' && tolower (*(line + 1)) == 'b')
+ if (*line == '.' && TOLOWER (*(line + 1)) == 'b')
{
bin |= BYTE_OPERATION;
byte_op = 1;
else if (x == 4)
{
#ifdef PUSH_1X_WORKAROUND
- if (bin == 0x1200
- && (msp430_mcu->isa == MSP430_ISA_11
- || msp430_mcu->isa == MSP430_ISA_12
- || msp430_mcu->isa == MSP430_ISA_13
- || msp430_mcu->isa == MSP430_ISA_14))
+ if (bin == 0x1200)
{
/* Remove warning as confusing.
as_warn(_("Hardware push bug workaround")); */
else if (x == 8)
{
#ifdef PUSH_1X_WORKAROUND
- if (bin == 0x1200
- && (msp430_mcu->isa == MSP430_ISA_11
- || msp430_mcu->isa == MSP430_ISA_12
- || msp430_mcu->isa == MSP430_ISA_13
- || msp430_mcu->isa == MSP430_ISA_14))
+ if (bin == 0x1200)
{
/* Remove warning as confusing.
as_warn(_("Hardware push bug workaround")); */