6 /* I suppose we have to copyright this file. Someone on the net sent it
7 to us as part of the changes for the m68851 Memory Management Unit */
9 /* Copyright (C) 1987 Free Software Foundation, Inc.
11 This file is part of Gas, the GNU Assembler.
13 The GNU assembler is distributed in the hope that it will be
14 useful, but WITHOUT ANY WARRANTY. No author or distributor
15 accepts responsibility to anyone for the consequences of using it
16 or for whether it serves any particular purpose or works at all,
17 unless he says so in writing. Refer to the GNU Assembler General
18 Public License for full details.
20 Everyone is granted permission to copy, modify and redistribute
21 the GNU Assembler, but only under the conditions described in the
22 GNU Assembler General Public License. A copy of this license is
23 supposed to have been given to you along with the GNU Assembler
24 so you can know your rights and responsibilities. It should be
25 in a file named COPYING. Among other things, the copyright
26 notice and this notice must be preserved on all copies. */
31 I didn't use much imagination in choosing the
32 following codes, so many of them aren't very
37 000 TC Translation Control reg
38 100 CAL Current Access Level
39 101 VAL Validate Access Level
40 110 SCC Stack Change Control
45 001 DRP Dma Root Pointer
46 010 SRP Supervisor Root Pointer
47 011 CRP Cpu Root Pointer
49 f function code register
56 100 BAD Breakpoint Acknowledge Data
57 101 BAC Breakpoint Acknowledge Control
62 | memory (modes 2-6, 7.*)
67 * these defines should be in m68k.c but
68 * i put them here to keep all the m68851 stuff
70 * JF--Make sure these #s don't clash with the ones in m68k.c
73 #define TC (FPS+1) /* 48 */
74 #define DRP (TC+1) /* 49 */
75 #define SRP (DRP+1) /* 50 */
76 #define CRP (SRP+1) /* 51 */
77 #define CAL (CRP+1) /* 52 */
78 #define VAL (CAL+1) /* 53 */
79 #define SCC (VAL+1) /* 54 */
80 #define AC (SCC+1) /* 55 */
81 #define BAD (AC+1) /* 56,57,58,59, 60,61,62,63 */
82 #define BAC (BAD+8) /* 64,65,66,67, 68,69,70,71 */
83 #define PSR (BAC+8) /* 72 */
84 #define PCSR (PSR+1) /* 73 */
86 /* name */ /* opcode */ /* match */ /* args */
88 {"pbac", one(0xf0c7), one(0xffbf), "Bc"},
89 {"pbacw", one(0xf087), one(0xffbf), "Bc"},
90 {"pbas", one(0xf0c6), one(0xffbf), "Bc"},
91 {"pbasw", one(0xf086), one(0xffbf), "Bc"},
92 {"pbbc", one(0xf0c1), one(0xffbf), "Bc"},
93 {"pbbcw", one(0xf081), one(0xffbf), "Bc"},
94 {"pbbs", one(0xf0c0), one(0xffbf), "Bc"},
95 {"pbbsw", one(0xf080), one(0xffbf), "Bc"},
96 {"pbcc", one(0xf0cf), one(0xffbf), "Bc"},
97 {"pbccw", one(0xf08f), one(0xffbf), "Bc"},
98 {"pbcs", one(0xf0ce), one(0xffbf), "Bc"},
99 {"pbcsw", one(0xf08e), one(0xffbf), "Bc"},
100 {"pbgc", one(0xf0cd), one(0xffbf), "Bc"},
101 {"pbgcw", one(0xf08d), one(0xffbf), "Bc"},
102 {"pbgs", one(0xf0cc), one(0xffbf), "Bc"},
103 {"pbgsw", one(0xf08c), one(0xffbf), "Bc"},
104 {"pbic", one(0xf0cb), one(0xffbf), "Bc"},
105 {"pbicw", one(0xf08b), one(0xffbf), "Bc"},
106 {"pbis", one(0xf0ca), one(0xffbf), "Bc"},
107 {"pbisw", one(0xf08a), one(0xffbf), "Bc"},
108 {"pblc", one(0xf0c3), one(0xffbf), "Bc"},
109 {"pblcw", one(0xf083), one(0xffbf), "Bc"},
110 {"pbls", one(0xf0c2), one(0xffbf), "Bc"},
111 {"pblsw", one(0xf082), one(0xffbf), "Bc"},
112 {"pbsc", one(0xf0c5), one(0xffbf), "Bc"},
113 {"pbscw", one(0xf085), one(0xffbf), "Bc"},
114 {"pbss", one(0xf0c4), one(0xffbf), "Bc"},
115 {"pbssw", one(0xf084), one(0xffbf), "Bc"},
116 {"pbwc", one(0xf0c9), one(0xffbf), "Bc"},
117 {"pbwcw", one(0xf089), one(0xffbf), "Bc"},
118 {"pbws", one(0xf0c8), one(0xffbf), "Bc"},
119 {"pbwsw", one(0xf088), one(0xffbf), "Bc"},
122 {"pdbac", two(0xf048, 0x0007), two(0xfff8, 0xffff), "DsBw"},
123 {"pdbas", two(0xf048, 0x0006), two(0xfff8, 0xffff), "DsBw"},
124 {"pdbbc", two(0xf048, 0x0001), two(0xfff8, 0xffff), "DsBw"},
125 {"pdbbs", two(0xf048, 0x0000), two(0xfff8, 0xffff), "DsBw"},
126 {"pdbcc", two(0xf048, 0x000f), two(0xfff8, 0xffff), "DsBw"},
127 {"pdbcs", two(0xf048, 0x000e), two(0xfff8, 0xffff), "DsBw"},
128 {"pdbgc", two(0xf048, 0x000d), two(0xfff8, 0xffff), "DsBw"},
129 {"pdbgs", two(0xf048, 0x000c), two(0xfff8, 0xffff), "DsBw"},
130 {"pdbic", two(0xf048, 0x000b), two(0xfff8, 0xffff), "DsBw"},
131 {"pdbis", two(0xf048, 0x000a), two(0xfff8, 0xffff), "DsBw"},
132 {"pdblc", two(0xf048, 0x0003), two(0xfff8, 0xffff), "DsBw"},
133 {"pdbls", two(0xf048, 0x0002), two(0xfff8, 0xffff), "DsBw"},
134 {"pdbsc", two(0xf048, 0x0005), two(0xfff8, 0xffff), "DsBw"},
135 {"pdbss", two(0xf048, 0x0004), two(0xfff8, 0xffff), "DsBw"},
136 {"pdbwc", two(0xf048, 0x0009), two(0xfff8, 0xffff), "DsBw"},
137 {"pdbws", two(0xf048, 0x0008), two(0xfff8, 0xffff), "DsBw"},
139 {"pflusha", two(0xf000, 0x2400), two(0xffff, 0xffff), "" },
141 {"pflush", two(0xf000, 0x3010), two(0xffc0, 0xfe10), "T3T9" },
142 {"pflush", two(0xf000, 0x3810), two(0xffc0, 0xfe10), "T3T9&s" },
143 {"pflush", two(0xf000, 0x3008), two(0xffc0, 0xfe18), "D3T9" },
144 {"pflush", two(0xf000, 0x3808), two(0xffc0, 0xfe18), "D3T9&s" },
145 {"pflush", two(0xf000, 0x3000), two(0xffc0, 0xfe1e), "f3T9" },
146 {"pflush", two(0xf000, 0x3800), two(0xffc0, 0xfe1e), "f3T9&s" },
148 {"pflushs", two(0xf000, 0x3410), two(0xfff8, 0xfe10), "T3T9" },
149 {"pflushs", two(0xf000, 0x3c00), two(0xfff8, 0xfe00), "T3T9&s" },
150 {"pflushs", two(0xf000, 0x3408), two(0xfff8, 0xfe18), "D3T9" },
151 {"pflushs", two(0xf000, 0x3c08), two(0xfff8, 0xfe18), "D3T9&s" },
152 {"pflushs", two(0xf000, 0x3400), two(0xfff8, 0xfe1e), "f3T9" },
153 {"pflushs", two(0xf000, 0x3c00), two(0xfff8, 0xfe1e), "f3T9&s"},
155 {"pflushr", two(0xf000, 0xa000), two(0xffc0, 0xffff), "|s" },
157 {"ploadr", two(0xf000, 0x2210), two(0xffc0, 0xfff0), "T3&s" },
158 {"ploadr", two(0xf000, 0x2208), two(0xffc0, 0xfff8), "D3&s" },
159 {"ploadr", two(0xf000, 0x2200), two(0xffc0, 0xfffe), "f3&s" },
160 {"ploadw", two(0xf000, 0x2010), two(0xffc0, 0xfff0), "T3&s" },
161 {"ploadw", two(0xf000, 0x2008), two(0xffc0, 0xfff8), "D3&s" },
162 {"ploadw", two(0xf000, 0x2000), two(0xffc0, 0xfffe), "f3&s" },
164 /* TC, CRP, DRP, SRP, CAL, VAL, SCC, AC */
165 {"pmove", two(0xf000, 0x4000), two(0xffc0, 0xe3ff), "*sP8" },
166 {"pmove", two(0xf000, 0x4200), two(0xffc0, 0xe3ff), "P8%s" },
167 {"pmove", two(0xf000, 0x4000), two(0xffc0, 0xe3ff), "|sW8" },
168 {"pmove", two(0xf000, 0x4200), two(0xffc0, 0xe3ff), "W8~s" },
171 {"pmove", two(0xf000, 0x6200), two(0xffc0, 0xe3e3), "*sX3" },
172 {"pmove", two(0xf000, 0x6000), two(0xffc0, 0xe3e3), "X3%s" },
175 /* {"pmove", two(0xf000, 0x6100), two(oxffc0, oxffff), "*sZ8" }, */
176 {"pmove", two(0xf000, 0x6000), two(0xffc0, 0xffff), "*sY8" },
177 {"pmove", two(0xf000, 0x6200), two(0xffc0, 0xffff), "Y8%s" },
178 {"pmove", two(0xf000, 0x6600), two(0xffc0, 0xffff), "Z8%s" },
180 {"prestore", one(0xf140), one(0xffc0), "&s"},
181 {"prestore", one(0xf158), one(0xfff8), "+s"},
182 {"psave", one(0xf100), one(0xffc0), "&s"},
183 {"psave", one(0xf100), one(0xffc0), "+s"},
185 {"psac", two(0xf040, 0x0007), two(0xffc0, 0xffff), "@s"},
186 {"psas", two(0xf040, 0x0006), two(0xffc0, 0xffff), "@s"},
187 {"psbc", two(0xf040, 0x0001), two(0xffc0, 0xffff), "@s"},
188 {"psbs", two(0xf040, 0x0000), two(0xffc0, 0xffff), "@s"},
189 {"pscc", two(0xf040, 0x000f), two(0xffc0, 0xffff), "@s"},
190 {"pscs", two(0xf040, 0x000e), two(0xffc0, 0xffff), "@s"},
191 {"psgc", two(0xf040, 0x000d), two(0xffc0, 0xffff), "@s"},
192 {"psgs", two(0xf040, 0x000c), two(0xffc0, 0xffff), "@s"},
193 {"psic", two(0xf040, 0x000b), two(0xffc0, 0xffff), "@s"},
194 {"psis", two(0xf040, 0x000a), two(0xffc0, 0xffff), "@s"},
195 {"pslc", two(0xf040, 0x0003), two(0xffc0, 0xffff), "@s"},
196 {"psls", two(0xf040, 0x0002), two(0xffc0, 0xffff), "@s"},
197 {"pssc", two(0xf040, 0x0005), two(0xffc0, 0xffff), "@s"},
198 {"psss", two(0xf040, 0x0004), two(0xffc0, 0xffff), "@s"},
199 {"pswc", two(0xf040, 0x0009), two(0xffc0, 0xffff), "@s"},
200 {"psws", two(0xf040, 0x0008), two(0xffc0, 0xffff), "@s"},
202 {"ptestr", two(0xf000, 0x8210), two(0xffc0, 0xe3f0), "T3&sQ8" },
203 {"ptestr", two(0xf000, 0x8310), two(0xffc0, 0xe310), "T3&sQ8A9" },
204 {"ptestr", two(0xf000, 0x8208), two(0xffc0, 0xe3f8), "D3&sQ8" },
205 {"ptestr", two(0xf000, 0x8308), two(0xffc0, 0xe318), "D3&sQ8A9" },
206 {"ptestr", two(0xf000, 0x8200), two(0xffc0, 0xe3fe), "f3&sQ8" },
207 {"ptestr", two(0xf000, 0x8300), two(0xffc0, 0xe31e), "f3&sQ8A9" },
209 {"ptestw", two(0xf000, 0x8010), two(0xffc0, 0xe3f0), "T3&sQ8" },
210 {"ptestw", two(0xf000, 0x8110), two(0xffc0, 0xe310), "T3&sQ8A9" },
211 {"ptestw", two(0xf000, 0x8008), two(0xffc0, 0xe3f8), "D3&sQ8" },
212 {"ptestw", two(0xf000, 0x8108), two(0xffc0, 0xe318), "D3&sQ8A9" },
213 {"ptestw", two(0xf000, 0x8000), two(0xffc0, 0xe3fe), "f3&sQ8" },
214 {"ptestw", two(0xf000, 0x8100), two(0xffc0, 0xe31e), "f3&sQ8A9" },
216 {"ptrapacw", two(0xf07a, 0x0007), two(0xffff, 0xffff), "#w"},
217 {"ptrapacl", two(0xf07b, 0x0007), two(0xffff, 0xffff), "#l"},
218 {"ptrapac", two(0xf07c, 0x0007), two(0xffff, 0xffff), ""},
220 {"ptrapasw", two(0xf07a, 0x0006), two(0xffff, 0xffff), "#w"},
221 {"ptrapasl", two(0xf07b, 0x0006), two(0xffff, 0xffff), "#l"},
222 {"ptrapas", two(0xf07c, 0x0006), two(0xffff, 0xffff), ""},
224 {"ptrapbcw", two(0xf07a, 0x0001), two(0xffff, 0xffff), "#w"},
225 {"ptrapbcl", two(0xf07b, 0x0001), two(0xffff, 0xffff), "#l"},
226 {"ptrapbc", two(0xf07c, 0x0001), two(0xffff, 0xffff), ""},
228 {"ptrapbsw", two(0xf07a, 0x0000), two(0xffff, 0xffff), "#w"},
229 {"ptrapbsl", two(0xf07b, 0x0000), two(0xffff, 0xffff), "#l"},
230 {"ptrapbs", two(0xf07c, 0x0000), two(0xffff, 0xffff), ""},
232 {"ptrapccw", two(0xf07a, 0x000f), two(0xffff, 0xffff), "#w"},
233 {"ptrapccl", two(0xf07b, 0x000f), two(0xffff, 0xffff), "#l"},
234 {"ptrapcc", two(0xf07c, 0x000f), two(0xffff, 0xffff), ""},
236 {"ptrapcsw", two(0xf07a, 0x000e), two(0xffff, 0xffff), "#w"},
237 {"ptrapcsl", two(0xf07b, 0x000e), two(0xffff, 0xffff), "#l"},
238 {"ptrapcs", two(0xf07c, 0x000e), two(0xffff, 0xffff), ""},
240 {"ptrapgcw", two(0xf07a, 0x000d), two(0xffff, 0xffff), "#w"},
241 {"ptrapgcl", two(0xf07b, 0x000d), two(0xffff, 0xffff), "#l"},
242 {"ptrapgc", two(0xf07c, 0x000d), two(0xffff, 0xffff), ""},
244 {"ptrapgsw", two(0xf07a, 0x000c), two(0xffff, 0xffff), "#w"},
245 {"ptrapgsl", two(0xf07b, 0x000c), two(0xffff, 0xffff), "#l"},
246 {"ptrapgs", two(0xf07c, 0x000c), two(0xffff, 0xffff), ""},
248 {"ptrapicw", two(0xf07a, 0x000b), two(0xffff, 0xffff), "#w"},
249 {"ptrapicl", two(0xf07b, 0x000b), two(0xffff, 0xffff), "#l"},
250 {"ptrapic", two(0xf07c, 0x000b), two(0xffff, 0xffff), ""},
252 {"ptrapisw", two(0xf07a, 0x000a), two(0xffff, 0xffff), "#w"},
253 {"ptrapisl", two(0xf07b, 0x000a), two(0xffff, 0xffff), "#l"},
254 {"ptrapis", two(0xf07c, 0x000a), two(0xffff, 0xffff), ""},
256 {"ptraplcw", two(0xf07a, 0x0003), two(0xffff, 0xffff), "#w"},
257 {"ptraplcl", two(0xf07b, 0x0003), two(0xffff, 0xffff), "#l"},
258 {"ptraplc", two(0xf07c, 0x0003), two(0xffff, 0xffff), ""},
260 {"ptraplsw", two(0xf07a, 0x0002), two(0xffff, 0xffff), "#w"},
261 {"ptraplsl", two(0xf07b, 0x0002), two(0xffff, 0xffff), "#l"},
262 {"ptrapls", two(0xf07c, 0x0002), two(0xffff, 0xffff), ""},
264 {"ptrapscw", two(0xf07a, 0x0005), two(0xffff, 0xffff), "#w"},
265 {"ptrapscl", two(0xf07b, 0x0005), two(0xffff, 0xffff), "#l"},
266 {"ptrapsc", two(0xf07c, 0x0005), two(0xffff, 0xffff), ""},
268 {"ptrapssw", two(0xf07a, 0x0004), two(0xffff, 0xffff), "#w"},
269 {"ptrapssl", two(0xf07b, 0x0004), two(0xffff, 0xffff), "#l"},
270 {"ptrapss", two(0xf07c, 0x0004), two(0xffff, 0xffff), ""},
272 {"ptrapwcw", two(0xf07a, 0x0009), two(0xffff, 0xffff), "#w"},
273 {"ptrapwcl", two(0xf07b, 0x0009), two(0xffff, 0xffff), "#l"},
274 {"ptrapwc", two(0xf07c, 0x0009), two(0xffff, 0xffff), ""},
276 {"ptrapwsw", two(0xf07a, 0x0008), two(0xffff, 0xffff), "#w"},
277 {"ptrapwsl", two(0xf07b, 0x0008), two(0xffff, 0xffff), "#l"},
278 {"ptrapws", two(0xf07c, 0x0008), two(0xffff, 0xffff), ""},
280 {"pvalid", two(0xf000, 0x2800), two(0xffc0, 0xffff), "Vs&s"},
281 {"pvalid", two(0xf000, 0x2c00), two(0xffc0, 0xfff8), "A3&s" },
285 /* end of tc-m68851.h */
This page took 0.038601 seconds and 4 git commands to generate.