cellbinutils
2.17cvs20070401

00001 /* This file is tcm68851.h 00002 00003 Copyright 1987, 1988, 1989, 1990, 1991, 1992, 2000 00004 Free Software Foundation, Inc. 00005 00006 This file is part of GAS, the GNU Assembler. 00007 00008 GAS is free software; you can redistribute it and/or modify 00009 it under the terms of the GNU General Public License as published by 00010 the Free Software Foundation; either version 2, or (at your option) 00011 any later version. 00012 00013 GAS is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 GNU General Public License for more details. 00017 00018 You should have received a copy of the GNU General Public License 00019 along with GAS; see the file COPYING. If not, write to the Free 00020 Software Foundation, 51 Franklin Street  Fifth Floor, Boston, MA 00021 021101301, USA. */ 00022 00023 /* 00024 * pmmu.h 00025 */ 00026 00027 /* I suppose we have to copyright this file. Someone on the net sent it 00028 to us as part of the changes for the m68851 Memory Management Unit */ 00029 00030 /* Copyright (C) 1987 Free Software Foundation, Inc. 00031 00032 This file is part of Gas, the GNU Assembler. 00033 00034 The GNU assembler is distributed in the hope that it will be 00035 useful, but WITHOUT ANY WARRANTY. No author or distributor 00036 accepts responsibility to anyone for the consequences of using it 00037 or for whether it serves any particular purpose or works at all, 00038 unless he says so in writing. Refer to the GNU Assembler General 00039 Public License for full details. 00040 00041 Everyone is granted permission to copy, modify and redistribute 00042 the GNU Assembler, but only under the conditions described in the 00043 GNU Assembler General Public License. A copy of this license is 00044 supposed to have been given to you along with the GNU Assembler 00045 so you can know your rights and responsibilities. It should be 00046 in a file named COPYING. Among other things, the copyright 00047 notice and this notice must be preserved on all copies. */ 00048 00049 #ifdef m68851 00050 00051 /* 00052 I didn't use much imagination in choosing the 00053 following codes, so many of them aren't very 00054 mnemonic. rab 00055 00056 P pmmu register 00057 Possible values: 00058 000 TC Translation Control reg 00059 100 CAL Current Access Level 00060 101 VAL Validate Access Level 00061 110 SCC Stack Change Control 00062 111 AC Access Control 00063 00064 W wide pmmu registers 00065 Possible values: 00066 001 DRP Dma Root Pointer 00067 010 SRP Supervisor Root Pointer 00068 011 CRP Cpu Root Pointer 00069 00070 f function code register 00071 0 SFC 00072 1 DFC 00073 00074 V VAL register only 00075 00076 X BADx, BACx 00077 100 BAD Breakpoint Acknowledge Data 00078 101 BAC Breakpoint Acknowledge Control 00079 00080 Y PSR 00081 Z PCSR 00082 00083  memory (modes 26, 7.*) 00084 00085 */ 00086 00087 /* 00088 * these defines should be in m68k.c but 00089 * i put them here to keep all the m68851 stuff 00090 * together rab 00091 * JFMake sure these #s don't clash with the ones in m68k.c 00092 * That would be BAD. 00093 */ 00094 #define TC (FPS+1) /* 48 */ 00095 #define DRP (TC+1) /* 49 */ 00096 #define SRP (DRP+1) /* 50 */ 00097 #define CRP (SRP+1) /* 51 */ 00098 #define CAL (CRP+1) /* 52 */ 00099 #define VAL (CAL+1) /* 53 */ 00100 #define SCC (VAL+1) /* 54 */ 00101 #define AC (SCC+1) /* 55 */ 00102 #define BAD (AC+1) /* 56,57,58,59, 60,61,62,63 */ 00103 #define BAC (BAD+8) /* 64,65,66,67, 68,69,70,71 */ 00104 #define PSR (BAC+8) /* 72 */ 00105 #define PCSR (PSR+1) /* 73 */ 00106 00107 /* name */ /* opcode */ /* match */ /* args */ 00108 00109 {"pbac", one(0xf0c7), one(0xffbf), "Bc"}, 00110 {"pbacw", one(0xf087), one(0xffbf), "Bc"}, 00111 {"pbas", one(0xf0c6), one(0xffbf), "Bc"}, 00112 {"pbasw", one(0xf086), one(0xffbf), "Bc"}, 00113 {"pbbc", one(0xf0c1), one(0xffbf), "Bc"}, 00114 {"pbbcw", one(0xf081), one(0xffbf), "Bc"}, 00115 {"pbbs", one(0xf0c0), one(0xffbf), "Bc"}, 00116 {"pbbsw", one(0xf080), one(0xffbf), "Bc"}, 00117 {"pbcc", one(0xf0cf), one(0xffbf), "Bc"}, 00118 {"pbccw", one(0xf08f), one(0xffbf), "Bc"}, 00119 {"pbcs", one(0xf0ce), one(0xffbf), "Bc"}, 00120 {"pbcsw", one(0xf08e), one(0xffbf), "Bc"}, 00121 {"pbgc", one(0xf0cd), one(0xffbf), "Bc"}, 00122 {"pbgcw", one(0xf08d), one(0xffbf), "Bc"}, 00123 {"pbgs", one(0xf0cc), one(0xffbf), "Bc"}, 00124 {"pbgsw", one(0xf08c), one(0xffbf), "Bc"}, 00125 {"pbic", one(0xf0cb), one(0xffbf), "Bc"}, 00126 {"pbicw", one(0xf08b), one(0xffbf), "Bc"}, 00127 {"pbis", one(0xf0ca), one(0xffbf), "Bc"}, 00128 {"pbisw", one(0xf08a), one(0xffbf), "Bc"}, 00129 {"pblc", one(0xf0c3), one(0xffbf), "Bc"}, 00130 {"pblcw", one(0xf083), one(0xffbf), "Bc"}, 00131 {"pbls", one(0xf0c2), one(0xffbf), "Bc"}, 00132 {"pblsw", one(0xf082), one(0xffbf), "Bc"}, 00133 {"pbsc", one(0xf0c5), one(0xffbf), "Bc"}, 00134 {"pbscw", one(0xf085), one(0xffbf), "Bc"}, 00135 {"pbss", one(0xf0c4), one(0xffbf), "Bc"}, 00136 {"pbssw", one(0xf084), one(0xffbf), "Bc"}, 00137 {"pbwc", one(0xf0c9), one(0xffbf), "Bc"}, 00138 {"pbwcw", one(0xf089), one(0xffbf), "Bc"}, 00139 {"pbws", one(0xf0c8), one(0xffbf), "Bc"}, 00140 {"pbwsw", one(0xf088), one(0xffbf), "Bc"}, 00141 00142 {"pdbac", two(0xf048, 0x0007), two(0xfff8, 0xffff), "DsBw"}, 00143 {"pdbas", two(0xf048, 0x0006), two(0xfff8, 0xffff), "DsBw"}, 00144 {"pdbbc", two(0xf048, 0x0001), two(0xfff8, 0xffff), "DsBw"}, 00145 {"pdbbs", two(0xf048, 0x0000), two(0xfff8, 0xffff), "DsBw"}, 00146 {"pdbcc", two(0xf048, 0x000f), two(0xfff8, 0xffff), "DsBw"}, 00147 {"pdbcs", two(0xf048, 0x000e), two(0xfff8, 0xffff), "DsBw"}, 00148 {"pdbgc", two(0xf048, 0x000d), two(0xfff8, 0xffff), "DsBw"}, 00149 {"pdbgs", two(0xf048, 0x000c), two(0xfff8, 0xffff), "DsBw"}, 00150 {"pdbic", two(0xf048, 0x000b), two(0xfff8, 0xffff), "DsBw"}, 00151 {"pdbis", two(0xf048, 0x000a), two(0xfff8, 0xffff), "DsBw"}, 00152 {"pdblc", two(0xf048, 0x0003), two(0xfff8, 0xffff), "DsBw"}, 00153 {"pdbls", two(0xf048, 0x0002), two(0xfff8, 0xffff), "DsBw"}, 00154 {"pdbsc", two(0xf048, 0x0005), two(0xfff8, 0xffff), "DsBw"}, 00155 {"pdbss", two(0xf048, 0x0004), two(0xfff8, 0xffff), "DsBw"}, 00156 {"pdbwc", two(0xf048, 0x0009), two(0xfff8, 0xffff), "DsBw"}, 00157 {"pdbws", two(0xf048, 0x0008), two(0xfff8, 0xffff), "DsBw"}, 00158 00159 {"pflusha", two(0xf000, 0x2400), two(0xffff, 0xffff), "" }, 00160 00161 {"pflush", two(0xf000, 0x3010), two(0xffc0, 0xfe10), "T3T9" }, 00162 {"pflush", two(0xf000, 0x3810), two(0xffc0, 0xfe10), "T3T9&s" }, 00163 {"pflush", two(0xf000, 0x3008), two(0xffc0, 0xfe18), "D3T9" }, 00164 {"pflush", two(0xf000, 0x3808), two(0xffc0, 0xfe18), "D3T9&s" }, 00165 {"pflush", two(0xf000, 0x3000), two(0xffc0, 0xfe1e), "f3T9" }, 00166 {"pflush", two(0xf000, 0x3800), two(0xffc0, 0xfe1e), "f3T9&s" }, 00167 00168 {"pflushs", two(0xf000, 0x3410), two(0xfff8, 0xfe10), "T3T9" }, 00169 {"pflushs", two(0xf000, 0x3c00), two(0xfff8, 0xfe00), "T3T9&s" }, 00170 {"pflushs", two(0xf000, 0x3408), two(0xfff8, 0xfe18), "D3T9" }, 00171 {"pflushs", two(0xf000, 0x3c08), two(0xfff8, 0xfe18), "D3T9&s" }, 00172 {"pflushs", two(0xf000, 0x3400), two(0xfff8, 0xfe1e), "f3T9" }, 00173 {"pflushs", two(0xf000, 0x3c00), two(0xfff8, 0xfe1e), "f3T9&s"}, 00174 00175 {"pflushr", two(0xf000, 0xa000), two(0xffc0, 0xffff), "s" }, 00176 00177 {"ploadr", two(0xf000, 0x2210), two(0xffc0, 0xfff0), "T3&s" }, 00178 {"ploadr", two(0xf000, 0x2208), two(0xffc0, 0xfff8), "D3&s" }, 00179 {"ploadr", two(0xf000, 0x2200), two(0xffc0, 0xfffe), "f3&s" }, 00180 {"ploadw", two(0xf000, 0x2010), two(0xffc0, 0xfff0), "T3&s" }, 00181 {"ploadw", two(0xf000, 0x2008), two(0xffc0, 0xfff8), "D3&s" }, 00182 {"ploadw", two(0xf000, 0x2000), two(0xffc0, 0xfffe), "f3&s" }, 00183 00184 /* TC, CRP, DRP, SRP, CAL, VAL, SCC, AC */ 00185 {"pmove", two(0xf000, 0x4000), two(0xffc0, 0xe3ff), "*sP8" }, 00186 {"pmove", two(0xf000, 0x4200), two(0xffc0, 0xe3ff), "P8%s" }, 00187 {"pmove", two(0xf000, 0x4000), two(0xffc0, 0xe3ff), "sW8" }, 00188 {"pmove", two(0xf000, 0x4200), two(0xffc0, 0xe3ff), "W8~s" }, 00189 00190 /* BADx, BACx */ 00191 {"pmove", two(0xf000, 0x6200), two(0xffc0, 0xe3e3), "*sX3" }, 00192 {"pmove", two(0xf000, 0x6000), two(0xffc0, 0xe3e3), "X3%s" }, 00193 00194 /* PSR, PCSR */ 00195 /* {"pmove", two(0xf000, 0x6100), two(oxffc0, oxffff), "*sZ8" }, */ 00196 {"pmove", two(0xf000, 0x6000), two(0xffc0, 0xffff), "*sY8" }, 00197 {"pmove", two(0xf000, 0x6200), two(0xffc0, 0xffff), "Y8%s" }, 00198 {"pmove", two(0xf000, 0x6600), two(0xffc0, 0xffff), "Z8%s" }, 00199 00200 {"prestore", one(0xf140), one(0xffc0), "&s"}, 00201 {"prestore", one(0xf158), one(0xfff8), "+s"}, 00202 {"psave", one(0xf100), one(0xffc0), "&s"}, 00203 {"psave", one(0xf100), one(0xffc0), "+s"}, 00204 00205 {"psac", two(0xf040, 0x0007), two(0xffc0, 0xffff), "@s"}, 00206 {"psas", two(0xf040, 0x0006), two(0xffc0, 0xffff), "@s"}, 00207 {"psbc", two(0xf040, 0x0001), two(0xffc0, 0xffff), "@s"}, 00208 {"psbs", two(0xf040, 0x0000), two(0xffc0, 0xffff), "@s"}, 00209 {"pscc", two(0xf040, 0x000f), two(0xffc0, 0xffff), "@s"}, 00210 {"pscs", two(0xf040, 0x000e), two(0xffc0, 0xffff), "@s"}, 00211 {"psgc", two(0xf040, 0x000d), two(0xffc0, 0xffff), "@s"}, 00212 {"psgs", two(0xf040, 0x000c), two(0xffc0, 0xffff), "@s"}, 00213 {"psic", two(0xf040, 0x000b), two(0xffc0, 0xffff), "@s"}, 00214 {"psis", two(0xf040, 0x000a), two(0xffc0, 0xffff), "@s"}, 00215 {"pslc", two(0xf040, 0x0003), two(0xffc0, 0xffff), "@s"}, 00216 {"psls", two(0xf040, 0x0002), two(0xffc0, 0xffff), "@s"}, 00217 {"pssc", two(0xf040, 0x0005), two(0xffc0, 0xffff), "@s"}, 00218 {"psss", two(0xf040, 0x0004), two(0xffc0, 0xffff), "@s"}, 00219 {"pswc", two(0xf040, 0x0009), two(0xffc0, 0xffff), "@s"}, 00220 {"psws", two(0xf040, 0x0008), two(0xffc0, 0xffff), "@s"}, 00221 00222 {"ptestr", two(0xf000, 0x8210), two(0xffc0, 0xe3f0), "T3&sQ8" }, 00223 {"ptestr", two(0xf000, 0x8310), two(0xffc0, 0xe310), "T3&sQ8A9" }, 00224 {"ptestr", two(0xf000, 0x8208), two(0xffc0, 0xe3f8), "D3&sQ8" }, 00225 {"ptestr", two(0xf000, 0x8308), two(0xffc0, 0xe318), "D3&sQ8A9" }, 00226 {"ptestr", two(0xf000, 0x8200), two(0xffc0, 0xe3fe), "f3&sQ8" }, 00227 {"ptestr", two(0xf000, 0x8300), two(0xffc0, 0xe31e), "f3&sQ8A9" }, 00228 00229 {"ptestw", two(0xf000, 0x8010), two(0xffc0, 0xe3f0), "T3&sQ8" }, 00230 {"ptestw", two(0xf000, 0x8110), two(0xffc0, 0xe310), "T3&sQ8A9" }, 00231 {"ptestw", two(0xf000, 0x8008), two(0xffc0, 0xe3f8), "D3&sQ8" }, 00232 {"ptestw", two(0xf000, 0x8108), two(0xffc0, 0xe318), "D3&sQ8A9" }, 00233 {"ptestw", two(0xf000, 0x8000), two(0xffc0, 0xe3fe), "f3&sQ8" }, 00234 {"ptestw", two(0xf000, 0x8100), two(0xffc0, 0xe31e), "f3&sQ8A9" }, 00235 00236 {"ptrapacw", two(0xf07a, 0x0007), two(0xffff, 0xffff), "#w"}, 00237 {"ptrapacl", two(0xf07b, 0x0007), two(0xffff, 0xffff), "#l"}, 00238 {"ptrapac", two(0xf07c, 0x0007), two(0xffff, 0xffff), ""}, 00239 00240 {"ptrapasw", two(0xf07a, 0x0006), two(0xffff, 0xffff), "#w"}, 00241 {"ptrapasl", two(0xf07b, 0x0006), two(0xffff, 0xffff), "#l"}, 00242 {"ptrapas", two(0xf07c, 0x0006), two(0xffff, 0xffff), ""}, 00243 00244 {"ptrapbcw", two(0xf07a, 0x0001), two(0xffff, 0xffff), "#w"}, 00245 {"ptrapbcl", two(0xf07b, 0x0001), two(0xffff, 0xffff), "#l"}, 00246 {"ptrapbc", two(0xf07c, 0x0001), two(0xffff, 0xffff), ""}, 00247 00248 {"ptrapbsw", two(0xf07a, 0x0000), two(0xffff, 0xffff), "#w"}, 00249 {"ptrapbsl", two(0xf07b, 0x0000), two(0xffff, 0xffff), "#l"}, 00250 {"ptrapbs", two(0xf07c, 0x0000), two(0xffff, 0xffff), ""}, 00251 00252 {"ptrapccw", two(0xf07a, 0x000f), two(0xffff, 0xffff), "#w"}, 00253 {"ptrapccl", two(0xf07b, 0x000f), two(0xffff, 0xffff), "#l"}, 00254 {"ptrapcc", two(0xf07c, 0x000f), two(0xffff, 0xffff), ""}, 00255 00256 {"ptrapcsw", two(0xf07a, 0x000e), two(0xffff, 0xffff), "#w"}, 00257 {"ptrapcsl", two(0xf07b, 0x000e), two(0xffff, 0xffff), "#l"}, 00258 {"ptrapcs", two(0xf07c, 0x000e), two(0xffff, 0xffff), ""}, 00259 00260 {"ptrapgcw", two(0xf07a, 0x000d), two(0xffff, 0xffff), "#w"}, 00261 {"ptrapgcl", two(0xf07b, 0x000d), two(0xffff, 0xffff), "#l"}, 00262 {"ptrapgc", two(0xf07c, 0x000d), two(0xffff, 0xffff), ""}, 00263 00264 {"ptrapgsw", two(0xf07a, 0x000c), two(0xffff, 0xffff), "#w"}, 00265 {"ptrapgsl", two(0xf07b, 0x000c), two(0xffff, 0xffff), "#l"}, 00266 {"ptrapgs", two(0xf07c, 0x000c), two(0xffff, 0xffff), ""}, 00267 00268 {"ptrapicw", two(0xf07a, 0x000b), two(0xffff, 0xffff), "#w"}, 00269 {"ptrapicl", two(0xf07b, 0x000b), two(0xffff, 0xffff), "#l"}, 00270 {"ptrapic", two(0xf07c, 0x000b), two(0xffff, 0xffff), ""}, 00271 00272 {"ptrapisw", two(0xf07a, 0x000a), two(0xffff, 0xffff), "#w"}, 00273 {"ptrapisl", two(0xf07b, 0x000a), two(0xffff, 0xffff), "#l"}, 00274 {"ptrapis", two(0xf07c, 0x000a), two(0xffff, 0xffff), ""}, 00275 00276 {"ptraplcw", two(0xf07a, 0x0003), two(0xffff, 0xffff), "#w"}, 00277 {"ptraplcl", two(0xf07b, 0x0003), two(0xffff, 0xffff), "#l"}, 00278 {"ptraplc", two(0xf07c, 0x0003), two(0xffff, 0xffff), ""}, 00279 00280 {"ptraplsw", two(0xf07a, 0x0002), two(0xffff, 0xffff), "#w"}, 00281 {"ptraplsl", two(0xf07b, 0x0002), two(0xffff, 0xffff), "#l"}, 00282 {"ptrapls", two(0xf07c, 0x0002), two(0xffff, 0xffff), ""}, 00283 00284 {"ptrapscw", two(0xf07a, 0x0005), two(0xffff, 0xffff), "#w"}, 00285 {"ptrapscl", two(0xf07b, 0x0005), two(0xffff, 0xffff), "#l"}, 00286 {"ptrapsc", two(0xf07c, 0x0005), two(0xffff, 0xffff), ""}, 00287 00288 {"ptrapssw", two(0xf07a, 0x0004), two(0xffff, 0xffff), "#w"}, 00289 {"ptrapssl", two(0xf07b, 0x0004), two(0xffff, 0xffff), "#l"}, 00290 {"ptrapss", two(0xf07c, 0x0004), two(0xffff, 0xffff), ""}, 00291 00292 {"ptrapwcw", two(0xf07a, 0x0009), two(0xffff, 0xffff), "#w"}, 00293 {"ptrapwcl", two(0xf07b, 0x0009), two(0xffff, 0xffff), "#l"}, 00294 {"ptrapwc", two(0xf07c, 0x0009), two(0xffff, 0xffff), ""}, 00295 00296 {"ptrapwsw", two(0xf07a, 0x0008), two(0xffff, 0xffff), "#w"}, 00297 {"ptrapwsl", two(0xf07b, 0x0008), two(0xffff, 0xffff), "#l"}, 00298 {"ptrapws", two(0xf07c, 0x0008), two(0xffff, 0xffff), ""}, 00299 00300 {"pvalid", two(0xf000, 0x2800), two(0xffc0, 0xffff), "Vs&s"}, 00301 {"pvalid", two(0xf000, 0x2c00), two(0xffc0, 0xfff8), "A3&s" }, 00302 00303 #endif /* m68851 */