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