1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
--- gas/config/tc-msp430.c.orig Tue Mar 4 19:34:40 2003
+++ gas/config/tc-msp430.c Mon Aug 11 17:21:43 2003
@@ -69,72 +69,85 @@
int isa;
int mach;
};
#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)
static struct mcu_type_s mcu_types[] =
{
{"msp1", MSP430_ISA_11, bfd_mach_msp11},
{"msp2", MSP430_ISA_14, bfd_mach_msp14},
{"msp430x110", MSP430_ISA_11, bfd_mach_msp11},
{"msp430x112", MSP430_ISA_11, bfd_mach_msp11},
- {"msp430x122", MSP430_ISA_12, bfd_mach_msp12},
- {"msp430x122", MSP430_ISA_12, bfd_mach_msp12},
- {"msp430x1222",MSP430_ISA_12, bfd_mach_msp12},
+ {"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},
{"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},
{"msp430x314", MSP430_ISA_31, bfd_mach_msp31},
{"msp430x315", MSP430_ISA_31, bfd_mach_msp31},
{"msp430x323", MSP430_ISA_32, bfd_mach_msp32},
{"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}
};
@@ -184,18 +197,22 @@
" -mmcu=[msp430-name] select microcontroller type\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);
}
@@ -977,15 +994,11 @@
op->mode = OP_REG;
}
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
@@ -998,15 +1011,11 @@
}
}
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")); */
}
else
|