xref: /openbsd-src/gnu/usr.bin/binutils/include/opcode/tahoe.h (revision 2159047f7a97bd07d66507696a8b038f6aef0509)
1*2159047fSniklas /*
2*2159047fSniklas  * Ported by the State University of New York at Buffalo by the Distributed
3*2159047fSniklas  * Computer Systems Lab, Department of Computer Science, 1991.
4*2159047fSniklas  */
5*2159047fSniklas 
6*2159047fSniklas #ifndef tahoe_opcodeT
7*2159047fSniklas #define tahoe_opcodeT int
8*2159047fSniklas #endif /* no tahoe_opcodeT */
9*2159047fSniklas 
10*2159047fSniklas struct vot_wot                  /* tahoe opcode table: wot to do with this */
11*2159047fSniklas                                 /* particular opcode */
12*2159047fSniklas {
13*2159047fSniklas   char *            args;       /* how to compile said opcode */
14*2159047fSniklas   tahoe_opcodeT       code;     /* op-code (may be > 8 bits!) */
15*2159047fSniklas };
16*2159047fSniklas 
17*2159047fSniklas struct vot                      /* tahoe opcode text */
18*2159047fSniklas {
19*2159047fSniklas   char *            name;       /* opcode name: lowercase string  [key]  */
20*2159047fSniklas   struct vot_wot    detail;     /* rest of opcode table          [datum] */
21*2159047fSniklas };
22*2159047fSniklas 
23*2159047fSniklas #define vot_how args
24*2159047fSniklas #define vot_code code
25*2159047fSniklas #define vot_detail detail
26*2159047fSniklas #define vot_name name
27*2159047fSniklas 
28*2159047fSniklas static struct vot
29*2159047fSniklas votstrs[] =
30*2159047fSniklas {
31*2159047fSniklas {    "halt",	{"",			0x00	} },
32*2159047fSniklas {    "sinf",    {"",                    0x05    } },
33*2159047fSniklas {    "ldf",     {"rl",                  0x06    } },
34*2159047fSniklas {    "ldd",     {"rq",                  0x07    } },
35*2159047fSniklas {    "addb2",	{"rbmb",		0x08	} },
36*2159047fSniklas {    "movb",	{"rbwb",		0x09	} },
37*2159047fSniklas {    "addw2",	{"rwmw",		0x0a	} },
38*2159047fSniklas {    "movw",	{"rwww",		0x0b	} },
39*2159047fSniklas {    "addl2",	{"rlml",		0x0c	} },
40*2159047fSniklas {    "movl",	{"rlwl",		0x0d	} },
41*2159047fSniklas {    "bbs",	{"rlvlbw",		0x0e	} },
42*2159047fSniklas {    "nop",     {"",                    0x10    } },
43*2159047fSniklas {    "brb",	{"bb",			0x11	} },
44*2159047fSniklas {    "brw",	{"bw",			0x13	} },
45*2159047fSniklas {    "cosf",    {"",                    0x15    } },
46*2159047fSniklas {    "lnf",     {"rl",                  0x16    } },
47*2159047fSniklas {    "lnd",     {"rq",                  0x17    } },
48*2159047fSniklas {    "addb3",	{"rbrbwb",		0x18	} },
49*2159047fSniklas {    "cmpb",	{"rbwb",		0x19	} },
50*2159047fSniklas {    "addw3",	{"rwrwww",		0x1a	} },
51*2159047fSniklas {    "cmpw",	{"rwww",		0x1b	} },
52*2159047fSniklas {    "addl3",	{"rlrlwl",		0x1c	} },
53*2159047fSniklas {    "cmpl",	{"rlwl",		0x1d	} },
54*2159047fSniklas {    "bbc",	{"rlvlbw",		0x1e	} },
55*2159047fSniklas {    "rei",	{"",			0x20	} },
56*2159047fSniklas {    "bneq",	{"bb",			0x21	} },
57*2159047fSniklas {    "bnequ",	{"bb",			0x21	} },
58*2159047fSniklas {    "cvtwl",	{"rwwl",		0x23	} },
59*2159047fSniklas {    "stf",     {"wl",                  0x26    } },
60*2159047fSniklas {    "std",     {"wq",                  0x27    } },
61*2159047fSniklas {    "subb2",	{"rbmb",		0x28	} },
62*2159047fSniklas {    "mcomb",	{"rbwb",		0x29	} },
63*2159047fSniklas {    "subw2",	{"rwmw",		0x2a	} },
64*2159047fSniklas {    "mcomw",	{"rwww",		0x2b	} },
65*2159047fSniklas {    "subl2",   {"rlml",                0x2c    } },
66*2159047fSniklas {    "mcoml",   {"rlwl",                0x2d    } },
67*2159047fSniklas {    "emul",	{"rlrlrlwq",		0x2e	} },
68*2159047fSniklas {    "aoblss",	{"rlmlbw",		0x2f	} },
69*2159047fSniklas {    "bpt",	{"",			0x30	} },
70*2159047fSniklas {    "beql",	{"bb",			0x31	} },
71*2159047fSniklas {    "beqlu",	{"bb",			0x31	} },
72*2159047fSniklas {    "cvtwb",	{"rwwb",		0x33	} },
73*2159047fSniklas {    "logf",    {"",                    0x35    } },
74*2159047fSniklas {    "cmpf",    {"rl",                  0x36    } },
75*2159047fSniklas {    "cmpd",    {"rq",                  0x37    } },
76*2159047fSniklas {    "subb3",	{"rbrbwb",		0x38	} },
77*2159047fSniklas {    "bitb",	{"rbrb",		0x39	} },
78*2159047fSniklas {    "subw3",	{"rwrwww",		0x3a	} },
79*2159047fSniklas {    "bitw",	{"rwrw",		0x3b	} },
80*2159047fSniklas {    "subl3",	{"rlrlwl",		0x3c	} },
81*2159047fSniklas {    "bitl",	{"rlrl",		0x3d	} },
82*2159047fSniklas {    "ediv",	{"rlrqwlwl",		0x3e	} },
83*2159047fSniklas {    "aobleq",	{"rlmlbw",		0x3f	} },
84*2159047fSniklas {    "ret",	{"",			0x40	} },
85*2159047fSniklas {    "bgtr",	{"bb",			0x41	} },
86*2159047fSniklas {    "sqrtf",   {"",                    0x45    } },
87*2159047fSniklas {    "cmpf2",   {"rl",                  0x46    } },
88*2159047fSniklas {    "cmpd2",   {"rqrq",                0x47    } },
89*2159047fSniklas {    "shll",    {"rbrlwl",              0x48    } },
90*2159047fSniklas {    "clrb",	{"wb",			0x49	} },
91*2159047fSniklas {    "shlq",	{"rbrqwq",		0x4a	} },
92*2159047fSniklas {    "clrw",	{"ww",			0x4b	} },
93*2159047fSniklas {    "mull2",	{"rlml",		0x4c	} },
94*2159047fSniklas {    "clrl",	{"wl",			0x4d	} },
95*2159047fSniklas {    "shal",    {"rbrlwl",		0x4e	} },
96*2159047fSniklas {    "bleq",	{"bb",			0x51	} },
97*2159047fSniklas {    "expf",    {"",                    0x55    } },
98*2159047fSniklas {    "tstf",    {"",                    0x56    } },
99*2159047fSniklas {    "tstd",    {"",                    0x57    } },
100*2159047fSniklas {    "shrl",    {"rbrlwl",		0x58	} },
101*2159047fSniklas {    "tstb",	{"rb",			0x59	} },
102*2159047fSniklas {    "shrq",    {"rbrqwq",		0x5a	} },
103*2159047fSniklas {    "tstw",	{"rw",			0x5b	} },
104*2159047fSniklas {    "mull3",	{"rlrlwl",		0x5c	} },
105*2159047fSniklas {    "tstl",	{"rl",			0x5d	} },
106*2159047fSniklas {    "shar",	{"rbrlwl",		0x5e	} },
107*2159047fSniklas {    "bbssi",	{"rlmlbw",		0x5f	} },
108*2159047fSniklas {    "ldpctx",	{"",			0x60	} },
109*2159047fSniklas {    "pushd",   {"",                    0x67    } },
110*2159047fSniklas {    "incb",	{"mb",			0x69	} },
111*2159047fSniklas {    "incw",	{"mw",			0x6b	} },
112*2159047fSniklas {    "divl2",	{"rlml",		0x6c	} },
113*2159047fSniklas {    "incl",	{"ml",			0x6d	} },
114*2159047fSniklas {    "cvtlb",	{"rlwb",		0x6f	} },
115*2159047fSniklas {    "svpctx",	{"",			0x70	} },
116*2159047fSniklas {    "jmp",	{"ab",			0x71	} },
117*2159047fSniklas {    "cvlf",    {"rl",                  0x76    } },
118*2159047fSniklas {    "cvld",    {"rl",                  0x77    } },
119*2159047fSniklas {    "decb",	{"mb",			0x79	} },
120*2159047fSniklas {    "decw",	{"mw",			0x7b	} },
121*2159047fSniklas {    "divl3",	{"rlrlwl",		0x7c	} },
122*2159047fSniklas {    "decl",	{"ml",			0x7d	} },
123*2159047fSniklas {    "cvtlw",	{"rlww",		0x7f	} },
124*2159047fSniklas {    "bgeq",	{"bb",			0x81	} },
125*2159047fSniklas {    "movs2",	{"abab",		0x82	} },
126*2159047fSniklas {    "cvfl",    {"wl",                  0x86    } },
127*2159047fSniklas {    "cvdl",    {"wl",                  0x87    } },
128*2159047fSniklas {    "orb2",	{"rbmb",		0x88	} },
129*2159047fSniklas {    "cvtbl",	{"rbwl",		0x89	} },
130*2159047fSniklas {    "orw2",	{"rwmw",		0x8a	} },
131*2159047fSniklas {    "bispsw",	{"rw",			0x8b	} },
132*2159047fSniklas {    "orl2",    {"rlml",                0x8c    } },
133*2159047fSniklas {    "adwc",	{"rlml",		0x8d	} },
134*2159047fSniklas {    "adda", 	{"rlml",		0x8e	} },
135*2159047fSniklas {    "blss",	{"bb",			0x91	} },
136*2159047fSniklas {    "cmps2",   {"abab",		0x92	} },
137*2159047fSniklas {    "ldfd",    {"rl",                  0x97    } },
138*2159047fSniklas {    "orb3",	{"rbrbwb",		0x98	} },
139*2159047fSniklas {    "cvtbw",	{"rbww",		0x99	} },
140*2159047fSniklas {    "orw3",   	{"rwrwww",		0x9a	} },
141*2159047fSniklas {    "bicpsw",	{"rw",			0x9b	} },
142*2159047fSniklas {    "orl3",    {"rlrlwl",              0x9c    } },
143*2159047fSniklas {    "sbwc",	{"rlml",		0x9d	} },
144*2159047fSniklas {    "suba",    {"rlml",                0x9e    } },
145*2159047fSniklas {    "bgtru",	{"bb",			0xa1	} },
146*2159047fSniklas {    "cvdf",    {"",                    0xa6    } },
147*2159047fSniklas {    "andb2",   {"rbmb",		0xa8    } },
148*2159047fSniklas {    "movzbl",	{"rbwl",		0xa9	} },
149*2159047fSniklas {    "andw2",   {"rwmw",		0xaa    } },
150*2159047fSniklas {    "loadr",   {"rwal",		0xab	} },
151*2159047fSniklas {    "andl2",   {"rlml",		0xac    } },
152*2159047fSniklas {    "mtpr",	{"rlrl",		0xad	} },
153*2159047fSniklas {    "ffs",	{"rlwl",		0xae	} },
154*2159047fSniklas {    "blequ",	{"bb",			0xb1	} },
155*2159047fSniklas {    "negf",    {"",                    0xb6    } },
156*2159047fSniklas {    "negd",    {"",                    0xb7    } },
157*2159047fSniklas {    "andb3",   {"rbrbwb",              0xb8    } },
158*2159047fSniklas {    "movzbw",	{"rbww",		0xb9	} },
159*2159047fSniklas {    "andw3",   {"rwrwww",		0xba    } },
160*2159047fSniklas {    "storer",  {"rwal",                0xbb    } },
161*2159047fSniklas {    "andl3",   {"rlrlwl",		0xbc    } },
162*2159047fSniklas {    "mfpr",	{"rlwl",		0xbd	} },
163*2159047fSniklas {    "ffc",	{"rlwl",		0xbe	} },
164*2159047fSniklas {    "calls",	{"rbab",		0xbf	} },
165*2159047fSniklas {    "prober",	{"rbabrl",		0xc0	} },
166*2159047fSniklas {    "bvc",	{"bb",			0xc1	} },
167*2159047fSniklas {    "movs3",	{"ababrw",		0xc2	} },
168*2159047fSniklas {    "movzwl",	{"rwwl",		0xc3	} },
169*2159047fSniklas {    "addf",    {"rl",                  0xc6    } },
170*2159047fSniklas {    "addd",    {"rq",                  0xc7    } },
171*2159047fSniklas {    "xorb2",   {"rbmb",                0xc8    } },
172*2159047fSniklas {    "movob",   {"rbwb",                0xc9    } },
173*2159047fSniklas {    "xorw2",   {"rwmw",                0xca    } },
174*2159047fSniklas {    "movow",   {"rwww",                0xcb	} },
175*2159047fSniklas {    "xorl2",	{"rlml",                0xcc    } },
176*2159047fSniklas {    "movpsl",  {"wl",                  0xcd    } },
177*2159047fSniklas {    "kcall",   {"rw",			0xcf	} },
178*2159047fSniklas {    "probew",  {"rbabrl",		0xd0	} },
179*2159047fSniklas {    "bvs",     {"bb",			0xd1	} },
180*2159047fSniklas {    "cmps3",   {"ababrw",		0xd2	} },
181*2159047fSniklas {    "subf",    {"rq",                  0xd6    } },
182*2159047fSniklas {    "subd",    {"rq",                  0xd7    } },
183*2159047fSniklas {    "xorb3",	{"rbrbwb",		0xd8	} },
184*2159047fSniklas {    "pushb",   {"rb",			0xd9	} },
185*2159047fSniklas {    "xorw3",	{"rwrwww",		0xda	} },
186*2159047fSniklas {    "pushw",   {"rw", 			0xdb	} },
187*2159047fSniklas {    "xorl3",	{"rlrlwl",		0xdc	} },
188*2159047fSniklas {    "pushl",	{"rl",			0xdd	} },
189*2159047fSniklas {    "insque",	{"abab",		0xe0	} },
190*2159047fSniklas {    "bcs",	{"bb",			0xe1	} },
191*2159047fSniklas {    "bgequ",	{"bb",			0xe1	} },
192*2159047fSniklas {    "mulf",    {"rq",                  0xe6    } },
193*2159047fSniklas {    "muld",    {"rq",                  0xe7    } },
194*2159047fSniklas {    "mnegb",	{"rbwb",		0xe8	} },
195*2159047fSniklas {    "movab",	{"abwl",		0xe9	} },
196*2159047fSniklas {    "mnegw",	{"rwww",		0xea	} },
197*2159047fSniklas {    "movaw",	{"awwl",		0xeb	} },
198*2159047fSniklas {    "mnegl",	{"rlwl",		0xec	} },
199*2159047fSniklas {    "moval",	{"alwl",		0xed	} },
200*2159047fSniklas {    "remque",	{"ab",  		0xf0	} },
201*2159047fSniklas {    "bcc",	{"bb",			0xf1	} },
202*2159047fSniklas {    "blssu",	{"bb",			0xf1	} },
203*2159047fSniklas {    "divf",    {"rq",                  0xf6    } },
204*2159047fSniklas {    "divd",    {"rq",                  0xf7    } },
205*2159047fSniklas {    "movblk",  {"alalrw",              0xf8	} },
206*2159047fSniklas {    "pushab",	{"ab",			0xf9	} },
207*2159047fSniklas {    "pushaw",	{"aw",			0xfb	} },
208*2159047fSniklas {    "casel",	{"rlrlrl",		0xfc	} },
209*2159047fSniklas {    "pushal",	{"al",			0xfd	} },
210*2159047fSniklas {    "callf",	{"rbab",		0xfe	} },
211*2159047fSniklas {      ""       ,   ""          } /* empty is end sentinel */
212*2159047fSniklas 
213*2159047fSniklas };
214