1
/* This file is tc-m68851.h
3
Copyright 1987, 1988, 1989, 1990, 1991, 1992, 2000, 2005, 2007
4
Free Software Foundation, Inc.
6
This file is part of GAS, the GNU Assembler.
8
GAS is free software; you can redistribute it and/or modify
9
it under the terms of the GNU General Public License as published by
10
the Free Software Foundation; either version 3, or (at your option)
13
GAS is distributed in the hope that it will be useful, but WITHOUT
14
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
16
License for more details.
18
You should have received a copy of the GNU General Public License
19
along with GAS; see the file COPYING. If not, write to the Free
20
Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
26
I didn't use much imagination in choosing the
27
following codes, so many of them aren't very
32
000 TC Translation Control reg
33
100 CAL Current Access Level
34
101 VAL Validate Access Level
35
110 SCC Stack Change Control
40
001 DRP Dma Root Pointer
41
010 SRP Supervisor Root Pointer
42
011 CRP Cpu Root Pointer
44
f function code register
51
100 BAD Breakpoint Acknowledge Data
52
101 BAC Breakpoint Acknowledge Control
57
| memory (modes 2-6, 7.*)
62
* these defines should be in m68k.c but
63
* i put them here to keep all the m68851 stuff
65
* JF--Make sure these #s don't clash with the ones in m68k.c
68
#define TC (FPS+1) /* 48 */
69
#define DRP (TC+1) /* 49 */
70
#define SRP (DRP+1) /* 50 */
71
#define CRP (SRP+1) /* 51 */
72
#define CAL (CRP+1) /* 52 */
73
#define VAL (CAL+1) /* 53 */
74
#define SCC (VAL+1) /* 54 */
75
#define AC (SCC+1) /* 55 */
76
#define BAD (AC+1) /* 56,57,58,59, 60,61,62,63 */
77
#define BAC (BAD+8) /* 64,65,66,67, 68,69,70,71 */
78
#define PSR (BAC+8) /* 72 */
79
#define PCSR (PSR+1) /* 73 */
81
/* name */ /* opcode */ /* match */ /* args */
83
{"pbac", one(0xf0c7), one(0xffbf), "Bc"},
84
{"pbacw", one(0xf087), one(0xffbf), "Bc"},
85
{"pbas", one(0xf0c6), one(0xffbf), "Bc"},
86
{"pbasw", one(0xf086), one(0xffbf), "Bc"},
87
{"pbbc", one(0xf0c1), one(0xffbf), "Bc"},
88
{"pbbcw", one(0xf081), one(0xffbf), "Bc"},
89
{"pbbs", one(0xf0c0), one(0xffbf), "Bc"},
90
{"pbbsw", one(0xf080), one(0xffbf), "Bc"},
91
{"pbcc", one(0xf0cf), one(0xffbf), "Bc"},
92
{"pbccw", one(0xf08f), one(0xffbf), "Bc"},
93
{"pbcs", one(0xf0ce), one(0xffbf), "Bc"},
94
{"pbcsw", one(0xf08e), one(0xffbf), "Bc"},
95
{"pbgc", one(0xf0cd), one(0xffbf), "Bc"},
96
{"pbgcw", one(0xf08d), one(0xffbf), "Bc"},
97
{"pbgs", one(0xf0cc), one(0xffbf), "Bc"},
98
{"pbgsw", one(0xf08c), one(0xffbf), "Bc"},
99
{"pbic", one(0xf0cb), one(0xffbf), "Bc"},
100
{"pbicw", one(0xf08b), one(0xffbf), "Bc"},
101
{"pbis", one(0xf0ca), one(0xffbf), "Bc"},
102
{"pbisw", one(0xf08a), one(0xffbf), "Bc"},
103
{"pblc", one(0xf0c3), one(0xffbf), "Bc"},
104
{"pblcw", one(0xf083), one(0xffbf), "Bc"},
105
{"pbls", one(0xf0c2), one(0xffbf), "Bc"},
106
{"pblsw", one(0xf082), one(0xffbf), "Bc"},
107
{"pbsc", one(0xf0c5), one(0xffbf), "Bc"},
108
{"pbscw", one(0xf085), one(0xffbf), "Bc"},
109
{"pbss", one(0xf0c4), one(0xffbf), "Bc"},
110
{"pbssw", one(0xf084), one(0xffbf), "Bc"},
111
{"pbwc", one(0xf0c9), one(0xffbf), "Bc"},
112
{"pbwcw", one(0xf089), one(0xffbf), "Bc"},
113
{"pbws", one(0xf0c8), one(0xffbf), "Bc"},
114
{"pbwsw", one(0xf088), one(0xffbf), "Bc"},
116
{"pdbac", two(0xf048, 0x0007), two(0xfff8, 0xffff), "DsBw"},
117
{"pdbas", two(0xf048, 0x0006), two(0xfff8, 0xffff), "DsBw"},
118
{"pdbbc", two(0xf048, 0x0001), two(0xfff8, 0xffff), "DsBw"},
119
{"pdbbs", two(0xf048, 0x0000), two(0xfff8, 0xffff), "DsBw"},
120
{"pdbcc", two(0xf048, 0x000f), two(0xfff8, 0xffff), "DsBw"},
121
{"pdbcs", two(0xf048, 0x000e), two(0xfff8, 0xffff), "DsBw"},
122
{"pdbgc", two(0xf048, 0x000d), two(0xfff8, 0xffff), "DsBw"},
123
{"pdbgs", two(0xf048, 0x000c), two(0xfff8, 0xffff), "DsBw"},
124
{"pdbic", two(0xf048, 0x000b), two(0xfff8, 0xffff), "DsBw"},
125
{"pdbis", two(0xf048, 0x000a), two(0xfff8, 0xffff), "DsBw"},
126
{"pdblc", two(0xf048, 0x0003), two(0xfff8, 0xffff), "DsBw"},
127
{"pdbls", two(0xf048, 0x0002), two(0xfff8, 0xffff), "DsBw"},
128
{"pdbsc", two(0xf048, 0x0005), two(0xfff8, 0xffff), "DsBw"},
129
{"pdbss", two(0xf048, 0x0004), two(0xfff8, 0xffff), "DsBw"},
130
{"pdbwc", two(0xf048, 0x0009), two(0xfff8, 0xffff), "DsBw"},
131
{"pdbws", two(0xf048, 0x0008), two(0xfff8, 0xffff), "DsBw"},
133
{"pflusha", two(0xf000, 0x2400), two(0xffff, 0xffff), "" },
135
{"pflush", two(0xf000, 0x3010), two(0xffc0, 0xfe10), "T3T9" },
136
{"pflush", two(0xf000, 0x3810), two(0xffc0, 0xfe10), "T3T9&s" },
137
{"pflush", two(0xf000, 0x3008), two(0xffc0, 0xfe18), "D3T9" },
138
{"pflush", two(0xf000, 0x3808), two(0xffc0, 0xfe18), "D3T9&s" },
139
{"pflush", two(0xf000, 0x3000), two(0xffc0, 0xfe1e), "f3T9" },
140
{"pflush", two(0xf000, 0x3800), two(0xffc0, 0xfe1e), "f3T9&s" },
142
{"pflushs", two(0xf000, 0x3410), two(0xfff8, 0xfe10), "T3T9" },
143
{"pflushs", two(0xf000, 0x3c00), two(0xfff8, 0xfe00), "T3T9&s" },
144
{"pflushs", two(0xf000, 0x3408), two(0xfff8, 0xfe18), "D3T9" },
145
{"pflushs", two(0xf000, 0x3c08), two(0xfff8, 0xfe18), "D3T9&s" },
146
{"pflushs", two(0xf000, 0x3400), two(0xfff8, 0xfe1e), "f3T9" },
147
{"pflushs", two(0xf000, 0x3c00), two(0xfff8, 0xfe1e), "f3T9&s"},
149
{"pflushr", two(0xf000, 0xa000), two(0xffc0, 0xffff), "|s" },
151
{"ploadr", two(0xf000, 0x2210), two(0xffc0, 0xfff0), "T3&s" },
152
{"ploadr", two(0xf000, 0x2208), two(0xffc0, 0xfff8), "D3&s" },
153
{"ploadr", two(0xf000, 0x2200), two(0xffc0, 0xfffe), "f3&s" },
154
{"ploadw", two(0xf000, 0x2010), two(0xffc0, 0xfff0), "T3&s" },
155
{"ploadw", two(0xf000, 0x2008), two(0xffc0, 0xfff8), "D3&s" },
156
{"ploadw", two(0xf000, 0x2000), two(0xffc0, 0xfffe), "f3&s" },
158
/* TC, CRP, DRP, SRP, CAL, VAL, SCC, AC */
159
{"pmove", two(0xf000, 0x4000), two(0xffc0, 0xe3ff), "*sP8" },
160
{"pmove", two(0xf000, 0x4200), two(0xffc0, 0xe3ff), "P8%s" },
161
{"pmove", two(0xf000, 0x4000), two(0xffc0, 0xe3ff), "|sW8" },
162
{"pmove", two(0xf000, 0x4200), two(0xffc0, 0xe3ff), "W8~s" },
165
{"pmove", two(0xf000, 0x6200), two(0xffc0, 0xe3e3), "*sX3" },
166
{"pmove", two(0xf000, 0x6000), two(0xffc0, 0xe3e3), "X3%s" },
169
/* {"pmove", two(0xf000, 0x6100), two(oxffc0, oxffff), "*sZ8" }, */
170
{"pmove", two(0xf000, 0x6000), two(0xffc0, 0xffff), "*sY8" },
171
{"pmove", two(0xf000, 0x6200), two(0xffc0, 0xffff), "Y8%s" },
172
{"pmove", two(0xf000, 0x6600), two(0xffc0, 0xffff), "Z8%s" },
174
{"prestore", one(0xf140), one(0xffc0), "&s"},
175
{"prestore", one(0xf158), one(0xfff8), "+s"},
176
{"psave", one(0xf100), one(0xffc0), "&s"},
177
{"psave", one(0xf100), one(0xffc0), "+s"},
179
{"psac", two(0xf040, 0x0007), two(0xffc0, 0xffff), "@s"},
180
{"psas", two(0xf040, 0x0006), two(0xffc0, 0xffff), "@s"},
181
{"psbc", two(0xf040, 0x0001), two(0xffc0, 0xffff), "@s"},
182
{"psbs", two(0xf040, 0x0000), two(0xffc0, 0xffff), "@s"},
183
{"pscc", two(0xf040, 0x000f), two(0xffc0, 0xffff), "@s"},
184
{"pscs", two(0xf040, 0x000e), two(0xffc0, 0xffff), "@s"},
185
{"psgc", two(0xf040, 0x000d), two(0xffc0, 0xffff), "@s"},
186
{"psgs", two(0xf040, 0x000c), two(0xffc0, 0xffff), "@s"},
187
{"psic", two(0xf040, 0x000b), two(0xffc0, 0xffff), "@s"},
188
{"psis", two(0xf040, 0x000a), two(0xffc0, 0xffff), "@s"},
189
{"pslc", two(0xf040, 0x0003), two(0xffc0, 0xffff), "@s"},
190
{"psls", two(0xf040, 0x0002), two(0xffc0, 0xffff), "@s"},
191
{"pssc", two(0xf040, 0x0005), two(0xffc0, 0xffff), "@s"},
192
{"psss", two(0xf040, 0x0004), two(0xffc0, 0xffff), "@s"},
193
{"pswc", two(0xf040, 0x0009), two(0xffc0, 0xffff), "@s"},
194
{"psws", two(0xf040, 0x0008), two(0xffc0, 0xffff), "@s"},
196
{"ptestr", two(0xf000, 0x8210), two(0xffc0, 0xe3f0), "T3&sQ8" },
197
{"ptestr", two(0xf000, 0x8310), two(0xffc0, 0xe310), "T3&sQ8A9" },
198
{"ptestr", two(0xf000, 0x8208), two(0xffc0, 0xe3f8), "D3&sQ8" },
199
{"ptestr", two(0xf000, 0x8308), two(0xffc0, 0xe318), "D3&sQ8A9" },
200
{"ptestr", two(0xf000, 0x8200), two(0xffc0, 0xe3fe), "f3&sQ8" },
201
{"ptestr", two(0xf000, 0x8300), two(0xffc0, 0xe31e), "f3&sQ8A9" },
203
{"ptestw", two(0xf000, 0x8010), two(0xffc0, 0xe3f0), "T3&sQ8" },
204
{"ptestw", two(0xf000, 0x8110), two(0xffc0, 0xe310), "T3&sQ8A9" },
205
{"ptestw", two(0xf000, 0x8008), two(0xffc0, 0xe3f8), "D3&sQ8" },
206
{"ptestw", two(0xf000, 0x8108), two(0xffc0, 0xe318), "D3&sQ8A9" },
207
{"ptestw", two(0xf000, 0x8000), two(0xffc0, 0xe3fe), "f3&sQ8" },
208
{"ptestw", two(0xf000, 0x8100), two(0xffc0, 0xe31e), "f3&sQ8A9" },
210
{"ptrapacw", two(0xf07a, 0x0007), two(0xffff, 0xffff), "#w"},
211
{"ptrapacl", two(0xf07b, 0x0007), two(0xffff, 0xffff), "#l"},
212
{"ptrapac", two(0xf07c, 0x0007), two(0xffff, 0xffff), ""},
214
{"ptrapasw", two(0xf07a, 0x0006), two(0xffff, 0xffff), "#w"},
215
{"ptrapasl", two(0xf07b, 0x0006), two(0xffff, 0xffff), "#l"},
216
{"ptrapas", two(0xf07c, 0x0006), two(0xffff, 0xffff), ""},
218
{"ptrapbcw", two(0xf07a, 0x0001), two(0xffff, 0xffff), "#w"},
219
{"ptrapbcl", two(0xf07b, 0x0001), two(0xffff, 0xffff), "#l"},
220
{"ptrapbc", two(0xf07c, 0x0001), two(0xffff, 0xffff), ""},
222
{"ptrapbsw", two(0xf07a, 0x0000), two(0xffff, 0xffff), "#w"},
223
{"ptrapbsl", two(0xf07b, 0x0000), two(0xffff, 0xffff), "#l"},
224
{"ptrapbs", two(0xf07c, 0x0000), two(0xffff, 0xffff), ""},
226
{"ptrapccw", two(0xf07a, 0x000f), two(0xffff, 0xffff), "#w"},
227
{"ptrapccl", two(0xf07b, 0x000f), two(0xffff, 0xffff), "#l"},
228
{"ptrapcc", two(0xf07c, 0x000f), two(0xffff, 0xffff), ""},
230
{"ptrapcsw", two(0xf07a, 0x000e), two(0xffff, 0xffff), "#w"},
231
{"ptrapcsl", two(0xf07b, 0x000e), two(0xffff, 0xffff), "#l"},
232
{"ptrapcs", two(0xf07c, 0x000e), two(0xffff, 0xffff), ""},
234
{"ptrapgcw", two(0xf07a, 0x000d), two(0xffff, 0xffff), "#w"},
235
{"ptrapgcl", two(0xf07b, 0x000d), two(0xffff, 0xffff), "#l"},
236
{"ptrapgc", two(0xf07c, 0x000d), two(0xffff, 0xffff), ""},
238
{"ptrapgsw", two(0xf07a, 0x000c), two(0xffff, 0xffff), "#w"},
239
{"ptrapgsl", two(0xf07b, 0x000c), two(0xffff, 0xffff), "#l"},
240
{"ptrapgs", two(0xf07c, 0x000c), two(0xffff, 0xffff), ""},
242
{"ptrapicw", two(0xf07a, 0x000b), two(0xffff, 0xffff), "#w"},
243
{"ptrapicl", two(0xf07b, 0x000b), two(0xffff, 0xffff), "#l"},
244
{"ptrapic", two(0xf07c, 0x000b), two(0xffff, 0xffff), ""},
246
{"ptrapisw", two(0xf07a, 0x000a), two(0xffff, 0xffff), "#w"},
247
{"ptrapisl", two(0xf07b, 0x000a), two(0xffff, 0xffff), "#l"},
248
{"ptrapis", two(0xf07c, 0x000a), two(0xffff, 0xffff), ""},
250
{"ptraplcw", two(0xf07a, 0x0003), two(0xffff, 0xffff), "#w"},
251
{"ptraplcl", two(0xf07b, 0x0003), two(0xffff, 0xffff), "#l"},
252
{"ptraplc", two(0xf07c, 0x0003), two(0xffff, 0xffff), ""},
254
{"ptraplsw", two(0xf07a, 0x0002), two(0xffff, 0xffff), "#w"},
255
{"ptraplsl", two(0xf07b, 0x0002), two(0xffff, 0xffff), "#l"},
256
{"ptrapls", two(0xf07c, 0x0002), two(0xffff, 0xffff), ""},
258
{"ptrapscw", two(0xf07a, 0x0005), two(0xffff, 0xffff), "#w"},
259
{"ptrapscl", two(0xf07b, 0x0005), two(0xffff, 0xffff), "#l"},
260
{"ptrapsc", two(0xf07c, 0x0005), two(0xffff, 0xffff), ""},
262
{"ptrapssw", two(0xf07a, 0x0004), two(0xffff, 0xffff), "#w"},
263
{"ptrapssl", two(0xf07b, 0x0004), two(0xffff, 0xffff), "#l"},
264
{"ptrapss", two(0xf07c, 0x0004), two(0xffff, 0xffff), ""},
266
{"ptrapwcw", two(0xf07a, 0x0009), two(0xffff, 0xffff), "#w"},
267
{"ptrapwcl", two(0xf07b, 0x0009), two(0xffff, 0xffff), "#l"},
268
{"ptrapwc", two(0xf07c, 0x0009), two(0xffff, 0xffff), ""},
270
{"ptrapwsw", two(0xf07a, 0x0008), two(0xffff, 0xffff), "#w"},
271
{"ptrapwsl", two(0xf07b, 0x0008), two(0xffff, 0xffff), "#l"},
272
{"ptrapws", two(0xf07c, 0x0008), two(0xffff, 0xffff), ""},
274
{"pvalid", two(0xf000, 0x2800), two(0xffc0, 0xffff), "Vs&s"},
275
{"pvalid", two(0xf000, 0x2c00), two(0xffc0, 0xfff8), "A3&s" },