xref: /openbsd-src/gnu/usr.bin/binutils-2.17/include/opcode/pyr.h (revision 3d8817e467ea46cf4772788d6804dd293abfb01a)
1*3d8817e4Smiod /* pyramid.opcode.h -- gdb initial attempt.
2*3d8817e4Smiod 
3*3d8817e4Smiod    Copyright 2001 Free Software Foundation, Inc.
4*3d8817e4Smiod 
5*3d8817e4Smiod    This program is free software; you can redistribute it and/or modify
6*3d8817e4Smiod    it under the terms of the GNU General Public License as published by
7*3d8817e4Smiod    the Free Software Foundation; either version 2, or (at your option)
8*3d8817e4Smiod    any later version.
9*3d8817e4Smiod 
10*3d8817e4Smiod    This program is distributed in the hope that it will be useful,
11*3d8817e4Smiod    but WITHOUT ANY WARRANTY; without even the implied warranty of
12*3d8817e4Smiod    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13*3d8817e4Smiod    GNU General Public License for more details.
14*3d8817e4Smiod 
15*3d8817e4Smiod    You should have received a copy of the GNU General Public License
16*3d8817e4Smiod    along with this program; if not, write to the Free Software
17*3d8817e4Smiod    Foundation, Inc., 51 Franklin Street - Fifth Floor,
18*3d8817e4Smiod    Boston, MA 02110-1301, USA.  */
19*3d8817e4Smiod 
20*3d8817e4Smiod /* pyramid opcode table: wot to do with this
21*3d8817e4Smiod    particular opcode */
22*3d8817e4Smiod 
23*3d8817e4Smiod struct pyr_datum
24*3d8817e4Smiod {
25*3d8817e4Smiod   char              nargs;
26*3d8817e4Smiod   char *            args;	/* how to compile said opcode */
27*3d8817e4Smiod   unsigned long     mask;	/* Bit vector: which operand modes are valid
28*3d8817e4Smiod 				   for this opcode */
29*3d8817e4Smiod   unsigned char     code;	/* op-code (always 6(?) bits */
30*3d8817e4Smiod };
31*3d8817e4Smiod 
32*3d8817e4Smiod typedef struct pyr_insn_format
33*3d8817e4Smiod {
34*3d8817e4Smiod     unsigned int mode :4;
35*3d8817e4Smiod     unsigned int operator :8;
36*3d8817e4Smiod     unsigned int index_scale :2;
37*3d8817e4Smiod     unsigned int index_reg :6;
38*3d8817e4Smiod     unsigned int operand_1 :6;
39*3d8817e4Smiod     unsigned int operand_2:6;
40*3d8817e4Smiod } pyr_insn_format;
41*3d8817e4Smiod 
42*3d8817e4Smiod 
43*3d8817e4Smiod /* We store four bytes of opcode for all opcodes.
44*3d8817e4Smiod    Pyramid is sufficiently RISCy that:
45*3d8817e4Smiod       - insns are always an integral number of words;
46*3d8817e4Smiod       - the length of any insn can be told from the first word of
47*3d8817e4Smiod         the insn. (ie, if there are zero, one, or two words of
48*3d8817e4Smiod 	immediate operand/offset).
49*3d8817e4Smiod 
50*3d8817e4Smiod 
51*3d8817e4Smiod    The args component is a string containing two characters for each
52*3d8817e4Smiod    operand of the instruction.  The first specifies the kind of operand;
53*3d8817e4Smiod    the second, the place it is stored. */
54*3d8817e4Smiod 
55*3d8817e4Smiod /* Kinds of operands:
56*3d8817e4Smiod    mask	 assembler syntax	description
57*3d8817e4Smiod    0x0001:  movw Rn,Rn		register to register
58*3d8817e4Smiod    0x0002:  movw K,Rn		quick immediate to register
59*3d8817e4Smiod    0x0004:  movw I,Rn		long immediate to register
60*3d8817e4Smiod    0x0008:  movw (Rn),Rn	register indirect to register
61*3d8817e4Smiod    	    movw (Rn)[x],Rn	register indirect to register
62*3d8817e4Smiod    0x0010:  movw I(Rn),Rn	offset register indirect to register
63*3d8817e4Smiod    	    movw I(Rn)[x],Rn	offset register indirect, indexed, to register
64*3d8817e4Smiod 
65*3d8817e4Smiod    0x0020:  movw Rn,(Rn)	register to register indirect
66*3d8817e4Smiod    0x0040:  movw K,(Rn)		quick immediate to register indirect
67*3d8817e4Smiod    0x0080:  movw I,(Rn)		long immediate to register indirect
68*3d8817e4Smiod    0x0100:  movw (Rn),(Rn)	register indirect to-register indirect
69*3d8817e4Smiod    0x0100:  movw (Rn),(Rn)	register indirect to-register indirect
70*3d8817e4Smiod    0x0200:  movw I(Rn),(Rn)	register indirect+offset to register indirect
71*3d8817e4Smiod    0x0200:  movw I(Rn),(Rn)	register indirect+offset to register indirect
72*3d8817e4Smiod 
73*3d8817e4Smiod    0x0400:  movw Rn,I(Rn)	register to register indirect+offset
74*3d8817e4Smiod    0x0800:  movw K,I(Rn)	quick immediate to register indirect+offset
75*3d8817e4Smiod    0x1000:  movw I,I(Rn)	long immediate to register indirect+offset
76*3d8817e4Smiod    0x1000:  movw (Rn),I(Rn)	register indirect to-register indirect+offset
77*3d8817e4Smiod    0x1000:  movw I(Rn),I(Rn)	register indirect+offset to register indirect
78*3d8817e4Smiod    					+offset
79*3d8817e4Smiod    0x0000:  (irregular)		???
80*3d8817e4Smiod 
81*3d8817e4Smiod 
82*3d8817e4Smiod    Each insn has a four-bit field encoding the type(s) of its operands.
83*3d8817e4Smiod */
84*3d8817e4Smiod 
85*3d8817e4Smiod /* Some common combinations
86*3d8817e4Smiod    */
87*3d8817e4Smiod 
88*3d8817e4Smiod /* the first 5,(0x1|0x2|0x4|0x8|0x10) ie (1|2|4|8|16), ie ( 32 -1)*/
89*3d8817e4Smiod #define GEN_TO_REG (31)
90*3d8817e4Smiod 
91*3d8817e4Smiod #define	UNKNOWN ((unsigned long)-1)
92*3d8817e4Smiod #define ANY (GEN_TO_REG | (GEN_TO_REG << 5) | (GEN_TO_REG << 15))
93*3d8817e4Smiod 
94*3d8817e4Smiod #define CONVERT (1|8|0x10|0x20|0x200)
95*3d8817e4Smiod 
96*3d8817e4Smiod #define K_TO_REG (2)
97*3d8817e4Smiod #define I_TO_REG (4)
98*3d8817e4Smiod #define NOTK_TO_REG (GEN_TO_REG & ~K_TO_REG)
99*3d8817e4Smiod #define NOTI_TO_REG (GEN_TO_REG & ~I_TO_REG)
100*3d8817e4Smiod 
101*3d8817e4Smiod /* The assembler requires that this array be sorted as follows:
102*3d8817e4Smiod    all instances of the same mnemonic must be consecutive.
103*3d8817e4Smiod    All instances of the same mnemonic with the same number of operands
104*3d8817e4Smiod    must be consecutive.
105*3d8817e4Smiod  */
106*3d8817e4Smiod 
107*3d8817e4Smiod struct pyr_opcode		/* pyr opcode text */
108*3d8817e4Smiod {
109*3d8817e4Smiod   char *            name;	/* opcode name: lowercase string  [key]  */
110*3d8817e4Smiod   struct pyr_datum  datum;	/* rest of opcode table          [datum] */
111*3d8817e4Smiod };
112*3d8817e4Smiod 
113*3d8817e4Smiod #define pyr_how args
114*3d8817e4Smiod #define pyr_nargs nargs
115*3d8817e4Smiod #define pyr_mask mask
116*3d8817e4Smiod #define pyr_name name
117*3d8817e4Smiod 
118*3d8817e4Smiod struct pyr_opcode pyr_opcodes[] =
119*3d8817e4Smiod {
120*3d8817e4Smiod   {"movb",	{ 2, "", UNKNOWN,		0x11}, },
121*3d8817e4Smiod   {"movh",	{ 2, "", UNKNOWN,		0x12} },
122*3d8817e4Smiod   {"movw",	{ 2, "", ANY,			0x10} },
123*3d8817e4Smiod   {"movl",	{ 2, "", ANY,			0x13} },
124*3d8817e4Smiod   {"mnegw",	{ 2, "", (0x1|0x8|0x10),	0x14} },
125*3d8817e4Smiod   {"mnegf",	{ 2, "", 0x1,			0x15} },
126*3d8817e4Smiod   {"mnegd",	{ 2, "", 0x1,			0x16} },
127*3d8817e4Smiod   {"mcomw",	{ 2, "", (0x1|0x8|0x10),	0x17} },
128*3d8817e4Smiod   {"mabsw",	{ 2, "", (0x1|0x8|0x10),	0x18} },
129*3d8817e4Smiod   {"mabsf",	{ 2, "", 0x1,			0x19} },
130*3d8817e4Smiod   {"mabsd",	{ 2, "", 0x1,			0x1a} },
131*3d8817e4Smiod   {"mtstw",	{ 2, "", (0x1|0x8|0x10),	0x1c} },
132*3d8817e4Smiod   {"mtstf",	{ 2, "", 0x1,			0x1d} },
133*3d8817e4Smiod   {"mtstd",	{ 2, "", 0x1,			0x1e} },
134*3d8817e4Smiod   {"mova",	{ 2, "", 0x8|0x10,		0x1f} },
135*3d8817e4Smiod   {"movzbw",	{ 2, "", (0x1|0x8|0x10),	0x20} },
136*3d8817e4Smiod   {"movzhw",	{ 2, "", (0x1|0x8|0x10),	0x21} },
137*3d8817e4Smiod 				/* 2 insns out of order here */
138*3d8817e4Smiod   {"movbl",	{ 2, "", 1,			0x4f} },
139*3d8817e4Smiod   {"filbl",	{ 2, "", 1,			0x4e} },
140*3d8817e4Smiod 
141*3d8817e4Smiod   {"cvtbw",	{ 2, "", CONVERT,		0x22} },
142*3d8817e4Smiod   {"cvthw",	{ 2, "", CONVERT,		0x23} },
143*3d8817e4Smiod   {"cvtwb",	{ 2, "", CONVERT,		0x24} },
144*3d8817e4Smiod   {"cvtwh",	{ 2, "", CONVERT,		0x25} },
145*3d8817e4Smiod   {"cvtwf",	{ 2, "", CONVERT,		0x26} },
146*3d8817e4Smiod   {"cvtwd",	{ 2, "", CONVERT,		0x27} },
147*3d8817e4Smiod   {"cvtfw",	{ 2, "", CONVERT,		0x28} },
148*3d8817e4Smiod   {"cvtfd",	{ 2, "", CONVERT,		0x29} },
149*3d8817e4Smiod   {"cvtdw",	{ 2, "", CONVERT,		0x2a} },
150*3d8817e4Smiod   {"cvtdf",	{ 2, "", CONVERT,		0x2b} },
151*3d8817e4Smiod 
152*3d8817e4Smiod   {"addw",	{ 2, "", GEN_TO_REG,		0x40} },
153*3d8817e4Smiod   {"addwc",	{ 2, "", GEN_TO_REG,		0x41} },
154*3d8817e4Smiod   {"subw",	{ 2, "", GEN_TO_REG,		0x42} },
155*3d8817e4Smiod   {"subwb",	{ 2, "", GEN_TO_REG,		0x43} },
156*3d8817e4Smiod   {"rsubw",	{ 2, "", GEN_TO_REG,		0x44} },
157*3d8817e4Smiod   {"mulw",	{ 2, "", GEN_TO_REG,		0x45} },
158*3d8817e4Smiod   {"emul",	{ 2, "", GEN_TO_REG,		0x47} },
159*3d8817e4Smiod   {"umulw",	{ 2, "", GEN_TO_REG,		0x46} },
160*3d8817e4Smiod   {"divw",	{ 2, "", GEN_TO_REG,		0x48} },
161*3d8817e4Smiod   {"ediv",	{ 2, "", GEN_TO_REG,		0x4a} },
162*3d8817e4Smiod   {"rdivw",	{ 2, "", GEN_TO_REG,		0x4b} },
163*3d8817e4Smiod   {"udivw",	{ 2, "", GEN_TO_REG,		0x49} },
164*3d8817e4Smiod   {"modw",	{ 2, "", GEN_TO_REG,		0x4c} },
165*3d8817e4Smiod   {"umodw",	{ 2, "", GEN_TO_REG,		0x4d} },
166*3d8817e4Smiod 
167*3d8817e4Smiod 
168*3d8817e4Smiod   {"addf",	{ 2, "", 1,			0x50} },
169*3d8817e4Smiod   {"addd",	{ 2, "", 1,			0x51} },
170*3d8817e4Smiod   {"subf",	{ 2, "", 1,			0x52} },
171*3d8817e4Smiod   {"subd",	{ 2, "", 1,			0x53} },
172*3d8817e4Smiod   {"mulf",	{ 2, "", 1,			0x56} },
173*3d8817e4Smiod   {"muld",	{ 2, "", 1,			0x57} },
174*3d8817e4Smiod   {"divf",	{ 2, "", 1,			0x58} },
175*3d8817e4Smiod   {"divd",	{ 2, "", 1,			0x59} },
176*3d8817e4Smiod 
177*3d8817e4Smiod 
178*3d8817e4Smiod   {"cmpb",	{ 2, "", UNKNOWN,		0x61} },
179*3d8817e4Smiod   {"cmph",	{ 2, "", UNKNOWN,		0x62} },
180*3d8817e4Smiod   {"cmpw",	{ 2, "", UNKNOWN,		0x60} },
181*3d8817e4Smiod   {"ucmpb",	{ 2, "", UNKNOWN,		0x66} },
182*3d8817e4Smiod   /* WHY no "ucmph"??? */
183*3d8817e4Smiod   {"ucmpw",	{ 2, "", UNKNOWN,		0x65} },
184*3d8817e4Smiod   {"xchw",	{ 2, "", UNKNOWN,		0x0f} },
185*3d8817e4Smiod 
186*3d8817e4Smiod 
187*3d8817e4Smiod   {"andw",	{ 2, "", GEN_TO_REG,		0x30} },
188*3d8817e4Smiod   {"orw",	{ 2, "", GEN_TO_REG,		0x31} },
189*3d8817e4Smiod   {"xorw",	{ 2, "", GEN_TO_REG,		0x32} },
190*3d8817e4Smiod   {"bicw",	{ 2, "", GEN_TO_REG,		0x33} },
191*3d8817e4Smiod   {"lshlw",	{ 2, "", GEN_TO_REG,		0x38} },
192*3d8817e4Smiod   {"ashlw",	{ 2, "", GEN_TO_REG,		0x3a} },
193*3d8817e4Smiod   {"ashll",	{ 2, "", GEN_TO_REG,		0x3c} },
194*3d8817e4Smiod   {"ashrw",	{ 2, "", GEN_TO_REG,		0x3b} },
195*3d8817e4Smiod   {"ashrl",	{ 2, "", GEN_TO_REG,		0x3d} },
196*3d8817e4Smiod   {"rotlw",	{ 2, "", GEN_TO_REG,		0x3e} },
197*3d8817e4Smiod   {"rotrw",	{ 2, "", GEN_TO_REG,		0x3f} },
198*3d8817e4Smiod 
199*3d8817e4Smiod   /* push and pop insns are "going away next release". */
200*3d8817e4Smiod   {"pushw",	{ 2, "", GEN_TO_REG,		0x0c} },
201*3d8817e4Smiod   {"popw",	{ 2, "", (0x1|0x8|0x10),	0x0d} },
202*3d8817e4Smiod   {"pusha",	{ 2, "", (0x8|0x10),		0x0e} },
203*3d8817e4Smiod 
204*3d8817e4Smiod   {"bitsw",	{ 2, "", UNKNOWN,		0x35} },
205*3d8817e4Smiod   {"bitcw",	{ 2, "", UNKNOWN,		0x36} },
206*3d8817e4Smiod   /* some kind of ibra/dbra insns??*/
207*3d8817e4Smiod   {"icmpw",	{ 2, "", UNKNOWN,		0x67} },
208*3d8817e4Smiod   {"dcmpw",	{ 2, "", (1|4|0x20|0x80|0x400|0x1000),	0x69} },/*FIXME*/
209*3d8817e4Smiod   {"acmpw",	{ 2, "", 1,			0x6b} },
210*3d8817e4Smiod 
211*3d8817e4Smiod   /* Call is written as a 1-op insn, but is always (dis)assembled as a 2-op
212*3d8817e4Smiod      insn with a 2nd op of tr14.   The assembler will have to grok this.  */
213*3d8817e4Smiod   {"call",	{ 2, "", GEN_TO_REG,		0x04} },
214*3d8817e4Smiod   {"call",	{ 1, "", GEN_TO_REG,		0x04} },
215*3d8817e4Smiod 
216*3d8817e4Smiod   {"callk",	{ 1, "", UNKNOWN,		0x06} },/* system call?*/
217*3d8817e4Smiod   /* Ret is usually written as a 0-op insn, but gets disassembled as a
218*3d8817e4Smiod      1-op insn. The operand is always tr15. */
219*3d8817e4Smiod   {"ret",	{ 0, "", UNKNOWN,		0x09} },
220*3d8817e4Smiod   {"ret",	{ 1, "", UNKNOWN,		0x09} },
221*3d8817e4Smiod   {"adsf",	{ 2, "", (1|2|4),		0x08} },
222*3d8817e4Smiod   {"retd",	{ 2, "", UNKNOWN,		0x0a} },
223*3d8817e4Smiod   {"btc",	{ 2, "", UNKNOWN,		0x01} },
224*3d8817e4Smiod   {"bfc",	{ 2, "", UNKNOWN,		0x02} },
225*3d8817e4Smiod   /* Careful: halt is 0x00000000. Jump must have some other (mode?)bit set?? */
226*3d8817e4Smiod   {"jump",	{ 1, "", UNKNOWN,		0x00} },
227*3d8817e4Smiod   {"btp",	{ 2, "", UNKNOWN,		0xf00} },
228*3d8817e4Smiod   /* read control-stack pointer is another 1-or-2 operand insn. */
229*3d8817e4Smiod   {"rcsp",	{ 2, "", UNKNOWN,		0x01f} },
230*3d8817e4Smiod   {"rcsp",	{ 1, "", UNKNOWN,		0x01f} }
231*3d8817e4Smiod };
232*3d8817e4Smiod 
233*3d8817e4Smiod /* end: pyramid.opcode.h */
234*3d8817e4Smiod /* One day I will have to take the time to find out what operands
235*3d8817e4Smiod    are valid for these insns, and guess at what they mean.
236*3d8817e4Smiod 
237*3d8817e4Smiod    I can't imagine what the "I???" insns (iglob, etc) do.
238*3d8817e4Smiod 
239*3d8817e4Smiod    the arithmetic-sounding insns ending in "p" sound awfully like BCD
240*3d8817e4Smiod    arithmetic insns:
241*3d8817e4Smiod    	dshlp -> Decimal SHift Left Packed
242*3d8817e4Smiod 	dshrp -> Decimal SHift Right Packed
243*3d8817e4Smiod    and cvtlp would be convert long to packed.
244*3d8817e4Smiod    I have no idea how the operands are interpreted; but having them be
245*3d8817e4Smiod    a long register with (address, length) of an in-memory packed BCD operand
246*3d8817e4Smiod    would not be surprising.
247*3d8817e4Smiod    They are unlikely to be a packed bcd string: 64 bits of long give
248*3d8817e4Smiod    is only 15 digits+sign, which isn't enough for COBOL.
249*3d8817e4Smiod  */
250*3d8817e4Smiod #if 0
251*3d8817e4Smiod   {"wcsp",	{ 2, "", UNKNOWN,		0x00} }, /*write csp?*/
252*3d8817e4Smiod   /* The OSx Operating System Porting Guide claims SSL does things
253*3d8817e4Smiod      with tr12 (a register reserved to it) to do with static block-structure
254*3d8817e4Smiod      references.  SSL=Set Static Link?  It's "Going away next release". */
255*3d8817e4Smiod   {"ssl",	{ 2, "", UNKNOWN,		0x00} },
256*3d8817e4Smiod   {"ccmps",	{ 2, "", UNKNOWN,		0x00} },
257*3d8817e4Smiod   {"lcd",	{ 2, "", UNKNOWN,		0x00} },
258*3d8817e4Smiod   {"uemul",	{ 2, "", UNKNOWN,		0x00} }, /*unsigned emul*/
259*3d8817e4Smiod   {"srf",	{ 2, "", UNKNOWN,		0x00} }, /*Gidget time???*/
260*3d8817e4Smiod   {"mnegp",	{ 2, "", UNKNOWN,		0x00} }, /move-neg phys?*/
261*3d8817e4Smiod   {"ldp",	{ 2, "", UNKNOWN,		0x00} }, /*load phys?*/
262*3d8817e4Smiod   {"ldti",	{ 2, "", UNKNOWN,		0x00} },
263*3d8817e4Smiod   {"ldb",	{ 2, "", UNKNOWN,		0x00} },
264*3d8817e4Smiod   {"stp",	{ 2, "", UNKNOWN,		0x00} },
265*3d8817e4Smiod   {"stti",	{ 2, "", UNKNOWN,		0x00} },
266*3d8817e4Smiod   {"stb",	{ 2, "", UNKNOWN,		0x00} },
267*3d8817e4Smiod   {"stu",	{ 2, "", UNKNOWN,		0x00} },
268*3d8817e4Smiod   {"addp",	{ 2, "", UNKNOWN,		0x00} },
269*3d8817e4Smiod   {"subp",	{ 2, "", UNKNOWN,		0x00} },
270*3d8817e4Smiod   {"mulp",	{ 2, "", UNKNOWN,		0x00} },
271*3d8817e4Smiod   {"divp",	{ 2, "", UNKNOWN,		0x00} },
272*3d8817e4Smiod   {"dshlp",	{ 2, "", UNKNOWN,		0x00} },  /* dec shl packed? */
273*3d8817e4Smiod   {"dshrp",	{ 2, "", UNKNOWN,		0x00} }, /* dec shr packed? */
274*3d8817e4Smiod   {"movs",	{ 2, "", UNKNOWN,		0x00} }, /*move (string?)?*/
275*3d8817e4Smiod   {"cmpp",	{ 2, "", UNKNOWN,		0x00} }, /* cmp phys?*/
276*3d8817e4Smiod   {"cmps",	{ 2, "", UNKNOWN,		0x00} }, /* cmp (string?)?*/
277*3d8817e4Smiod   {"cvtlp",	{ 2, "", UNKNOWN,		0x00} }, /* cvt long to p??*/
278*3d8817e4Smiod   {"cvtpl",	{ 2, "", UNKNOWN,		0x00} }, /* cvt p to l??*/
279*3d8817e4Smiod   {"dintr",	{ 2, "", UNKNOWN,		0x00} }, /* ?? intr ?*/
280*3d8817e4Smiod   {"rphysw",	{ 2, "", UNKNOWN,		0x00} }, /* read phys word?*/
281*3d8817e4Smiod   {"wphysw",	{ 2, "", UNKNOWN,		0x00} }, /* write phys word?*/
282*3d8817e4Smiod   {"cmovs",	{ 2, "", UNKNOWN,		0x00} },
283*3d8817e4Smiod   {"rsubw",	{ 2, "", UNKNOWN,		0x00} },
284*3d8817e4Smiod   {"bicpsw",	{ 2, "", UNKNOWN,		0x00} }, /* clr bit in psw? */
285*3d8817e4Smiod   {"bispsw",	{ 2, "", UNKNOWN,		0x00} }, /* set bit in psw? */
286*3d8817e4Smiod   {"eio",	{ 2, "", UNKNOWN,		0x00} }, /* ?? ?io ? */
287*3d8817e4Smiod   {"callp",	{ 2, "", UNKNOWN,		0x00} }, /* call phys?*/
288*3d8817e4Smiod   {"callr",	{ 2, "", UNKNOWN,		0x00} },
289*3d8817e4Smiod   {"lpcxt",	{ 2, "", UNKNOWN,		0x00} }, /*load proc context*/
290*3d8817e4Smiod   {"rei",	{ 2, "", UNKNOWN,		0x00} }, /*ret from intrpt*/
291*3d8817e4Smiod   {"rport",	{ 2, "", UNKNOWN,		0x00} }, /*read-port?*/
292*3d8817e4Smiod   {"rtod",	{ 2, "", UNKNOWN,		0x00} }, /*read-time-of-day?*/
293*3d8817e4Smiod   {"ssi",	{ 2, "", UNKNOWN,		0x00} },
294*3d8817e4Smiod   {"vtpa",	{ 2, "", UNKNOWN,		0x00} }, /*virt-to-phys-addr?*/
295*3d8817e4Smiod   {"wicl",	{ 2, "", UNKNOWN,		0x00} }, /* write icl ? */
296*3d8817e4Smiod   {"wport",	{ 2, "", UNKNOWN,		0x00} }, /*write-port?*/
297*3d8817e4Smiod   {"wtod",	{ 2, "", UNKNOWN,		0x00} }, /*write-time-of-day?*/
298*3d8817e4Smiod   {"flic",	{ 2, "", UNKNOWN,		0x00} },
299*3d8817e4Smiod   {"iglob",	{ 2, "", UNKNOWN,		0x00} }, /* I global? */
300*3d8817e4Smiod   {"iphys",	{ 2, "", UNKNOWN,		0x00} }, /* I physical? */
301*3d8817e4Smiod   {"ipid",	{ 2, "", UNKNOWN,		0x00} }, /* I pid? */
302*3d8817e4Smiod   {"ivect",	{ 2, "", UNKNOWN,		0x00} }, /* I vector? */
303*3d8817e4Smiod   {"lamst",	{ 2, "", UNKNOWN,		0x00} },
304*3d8817e4Smiod   {"tio",	{ 2, "", UNKNOWN,		0x00} },
305*3d8817e4Smiod #endif
306