summaryrefslogtreecommitdiff
path: root/devel/msp430-binutils/files/patch-gas::config::tc-msp430.c
blob: f533a2d78172da31bdc832d9a8501e394b4ee0c4 (plain) (blame)
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