Home | History | Annotate | Download | only in opcode
      1 /* Vax opcde list.
      2    Copyright (C) 1989-2016 Free Software Foundation, Inc.
      3 
      4    This file is part of GDB and GAS.
      5 
      6    GDB and GAS are free software; you can redistribute it and/or modify
      7    it under the terms of the GNU General Public License as published by
      8    the Free Software Foundation; either version 3, or (at your option)
      9    any later version.
     10 
     11    GDB and GAS are distributed in the hope that it will be useful,
     12    but WITHOUT ANY WARRANTY; without even the implied warranty of
     13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     14    GNU General Public License for more details.
     15 
     16    You should have received a copy of the GNU General Public License
     17    along with GDB or GAS; see the file COPYING3.  If not, write to
     18    the Free Software Foundation, 51 Franklin Street - Fifth Floor,
     19    Boston, MA 02110-1301, USA.  */
     20 
     21 #ifndef vax_opcodeT
     22 #define vax_opcodeT int
     23 #endif /* no vax_opcodeT */
     24 
     25 struct vot_wot			/* vax opcode table: wot to do with this */
     26 				/* particular opcode */
     27 {
     28   const char       *args;	/* how to compile said opcode */
     29   vax_opcodeT       code;	/* op-code (may be > 8 bits!) */
     30 };
     31 
     32 struct vot			/* vax opcode text */
     33 {
     34   const char       *name;	/* opcode name: lowercase string  [key]  */
     35   struct vot_wot    detail;	/* rest of opcode table          [datum] */
     36 };
     37 
     38 #define vot_how args
     39 #define vot_code code
     40 #define vot_detail detail
     41 #define vot_name name
     42 
     43 static const struct vot
     44 votstrs[] =
     45 {
     46 {    "halt",	{"",			0x00	} },
     47 {    "nop",	{"",			0x01	} },
     48 {    "rei",	{"",			0x02	} },
     49 {    "bpt",	{"",			0x03	} },
     50 {    "ret",	{"",			0x04	} },
     51 {    "rsb",	{"",			0x05	} },
     52 {    "ldpctx",	{"",			0x06	} },
     53 {    "svpctx",	{"",			0x07	} },
     54 {    "cvtps",	{"rwabrwab",		0x08	} },
     55 {    "cvtsp",	{"rwabrwab",		0x09	} },
     56 {    "index",	{"rlrlrlrlrlwl",	0x0a	} },
     57 {    "crc",	{"abrlrwab",		0x0b	} },
     58 {    "prober",	{"rbrwab",		0x0c	} },
     59 {    "probew",	{"rbrwab",	        0x0d	} },
     60 {    "insque",	{"abab",		0x0e	} },
     61 {    "remque",	{"abwl",		0x0f	} },
     62 {    "bsbb",	{"bb",			0x10	} },
     63 {    "brb",	{"bb",			0x11	} },
     64 {    "bneq",	{"bb",			0x12	} },
     65 {    "bnequ",	{"bb",			0x12	} },
     66 {    "beql",	{"bb",			0x13	} },
     67 {    "beqlu",	{"bb",			0x13	} },
     68 {    "bgtr",	{"bb",			0x14	} },
     69 {    "bleq",	{"bb",			0x15	} },
     70 {    "jsb",	{"ab",			0x16	} },
     71 {    "jmp",	{"ab",			0x17	} },
     72 {    "bgeq",	{"bb",			0x18	} },
     73 {    "blss",	{"bb",			0x19	} },
     74 {    "bgtru",	{"bb",			0x1a	} },
     75 {    "blequ",	{"bb",			0x1b	} },
     76 {    "bvc",	{"bb",			0x1c	} },
     77 {    "bvs",	{"bb",			0x1d	} },
     78 {    "bcc",	{"bb",			0x1e	} },
     79 {    "bgequ",	{"bb",			0x1e	} },
     80 {    "blssu",	{"bb",			0x1f	} },
     81 {    "bcs",	{"bb",			0x1f	} },
     82 {    "addp4",	{"rwabrwab",		0x20	} },
     83 {    "addp6",	{"rwabrwabrwab",	0x21	} },
     84 {    "subp4",	{"rwabrwab",		0x22	} },
     85 {    "subp6",	{"rwabrwabrwab",	0x23	} },
     86 {    "cvtpt",	{"rwababrwab",		0x24	} },
     87 {    "mulp",	{"rwabrwabrwab",	0x25	} },
     88 {    "cvttp",	{"rwababrwab",		0x26	} },
     89 {    "divp",	{"rwabrwabrwab",	0x27	} },
     90 {    "movc3",	{"rwabab",		0x28	} },
     91 {    "cmpc3",	{"rwabab",		0x29	} },
     92 {    "scanc",	{"rwababrb",		0x2a	} },
     93 {    "spanc",	{"rwababrb",		0x2b	} },
     94 {    "movc5",	{"rwabrbrwab",		0x2c	} },
     95 {    "cmpc5",	{"rwabrbrwab",		0x2d	} },
     96 {    "movtc",	{"rwabrbabrwab",	0x2e	} },
     97 {    "movtuc",	{"rwabrbabrwab",	0x2f	} },
     98 {    "bsbw",	{"bw",			0x30	} },
     99 {    "brw",	{"bw",			0x31	} },
    100 {    "cvtwl",	{"rwwl",		0x32	} },
    101 {    "cvtwb",	{"rwwb",		0x33	} },
    102 {    "movp",	{"rwabab",		0x34	} },
    103 {    "cmpp3",	{"rwabab",		0x35	} },
    104 {    "cvtpl",	{"rwabwl",		0x36	} },
    105 {    "cmpp4",	{"rwabrwab",		0x37	} },
    106 {    "editpc",	{"rwababab",		0x38	} },
    107 {    "matchc",	{"rwabrwab",		0x39	} },
    108 {    "locc",	{"rbrwab",		0x3a	} },
    109 {    "skpc",	{"rbrwab",		0x3b	} },
    110 {    "movzwl",	{"rwwl",		0x3c	} },
    111 {    "acbw",	{"rwrwmwbw",		0x3d	} },
    112 {    "movaw",	{"awwl",		0x3e	} },
    113 {    "pushaw",	{"aw",			0x3f	} },
    114 {    "addf2",	{"rfmf",		0x40	} },
    115 {    "addf3",	{"rfrfwf",		0x41	} },
    116 {    "subf2",	{"rfmf",		0x42	} },
    117 {    "subf3",	{"rfrfwf",		0x43	} },
    118 {    "mulf2",	{"rfmf",		0x44	} },
    119 {    "mulf3",	{"rfrfwf",		0x45	} },
    120 {    "divf2",	{"rfmf",		0x46	} },
    121 {    "divf3",	{"rfrfwf",		0x47	} },
    122 {    "cvtfb",	{"rfwb",		0x48	} },
    123 {    "cvtfw",	{"rfww",		0x49	} },
    124 {    "cvtfl",	{"rfwl",		0x4a	} },
    125 {    "cvtrfl",	{"rfwl",		0x4b	} },
    126 {    "cvtbf",	{"rbwf",		0x4c	} },
    127 {    "cvtwf",	{"rwwf",		0x4d	} },
    128 {    "cvtlf",	{"rlwf",		0x4e	} },
    129 {    "acbf",	{"rfrfmfbw",		0x4f	} },
    130 {    "movf",	{"rfwf",		0x50	} },
    131 {    "cmpf",	{"rfrf",		0x51	} },
    132 {    "mnegf",	{"rfwf",		0x52	} },
    133 {    "tstf",	{"rf",			0x53	} },
    134 {    "emodf",	{"rfrbrfwlwf",		0x54	} },
    135 {    "polyf",	{"rfrwab",		0x55	} },
    136 {    "cvtfd",	{"rfwd",		0x56	} },
    137                                         /* opcode 57 is not defined yet */
    138 {    "adawi",	{"rwmw",		0x58	} },
    139                                         /* opcode 59 is not defined yet */
    140                                         /* opcode 5a is not defined yet */
    141                                         /* opcode 5b is not defined yet */
    142 {    "insqhi",	{"abaq",		0x5c	} },
    143 {    "insqti",	{"abaq",		0x5d	} },
    144 {    "remqhi",	{"aqwl",		0x5e	} },
    145 {    "remqti",	{"aqwl",		0x5f	} },
    146 {    "addd2",	{"rdmd",		0x60	} },
    147 {    "addd3",	{"rdrdwd",		0x61	} },
    148 {    "subd2",	{"rdmd",		0x62	} },
    149 {    "subd3",	{"rdrdwd",		0x63	} },
    150 {    "muld2",	{"rdmd",		0x64	} },
    151 {    "muld3",	{"rdrdwd",		0x65	} },
    152 {    "divd2",	{"rdmd",		0x66	} },
    153 {    "divd3",	{"rdrdwd",		0x67	} },
    154 {    "cvtdb",	{"rdwb",		0x68	} },
    155 {    "cvtdw",	{"rdww",		0x69	} },
    156 {    "cvtdl",	{"rdwl",		0x6a	} },
    157 {    "cvtrdl",	{"rdwl",		0x6b	} },
    158 {    "cvtbd",	{"rbwd",		0x6c	} },
    159 {    "cvtwd",	{"rwwd",		0x6d	} },
    160 {    "cvtld",	{"rlwd",		0x6e	} },
    161 {    "acbd",	{"rdrdmdbw",		0x6f	} },
    162 {    "movd",	{"rdwd",		0x70	} },
    163 {    "cmpd",	{"rdrd",		0x71	} },
    164 {    "mnegd",	{"rdwd",		0x72	} },
    165 {    "tstd",	{"rd",			0x73	} },
    166 {    "emodd",	{"rdrbrdwlwd",		0x74	} },
    167 {    "polyd",	{"rdrwab",		0x75	} },
    168 {    "cvtdf",	{"rdwf",		0x76	} },
    169                                         /* opcode 77 is not defined yet */
    170 {    "ashl",	{"rbrlwl",		0x78	} },
    171 {    "ashq",	{"rbrqwq",		0x79	} },
    172 {    "emul",	{"rlrlrlwq",		0x7a	} },
    173 {    "ediv",	{"rlrqwlwl",		0x7b	} },
    174 {    "clrd",	{"wd",			0x7c	} },
    175 {    "clrg",	{"wg",			0x7c	} },
    176 {    "clrq",	{"wd",			0x7c	} },
    177 {    "movq",	{"rqwq",		0x7d	} },
    178 {    "movaq",	{"aqwl",		0x7e	} },
    179 {    "movad",	{"adwl",		0x7e	} },
    180 {    "pushaq",	{"aq",			0x7f	} },
    181 {    "pushad",	{"ad",			0x7f	} },
    182 {    "addb2",	{"rbmb",		0x80	} },
    183 {    "addb3",	{"rbrbwb",		0x81	} },
    184 {    "subb2",	{"rbmb",		0x82	} },
    185 {    "subb3",	{"rbrbwb",		0x83	} },
    186 {    "mulb2",	{"rbmb",		0x84	} },
    187 {    "mulb3",	{"rbrbwb",		0x85	} },
    188 {    "divb2",	{"rbmb",		0x86	} },
    189 {    "divb3",	{"rbrbwb",		0x87	} },
    190 {    "bisb2",	{"rbmb",		0x88	} },
    191 {    "bisb3",	{"rbrbwb",		0x89	} },
    192 {    "bicb2",	{"rbmb",		0x8a	} },
    193 {    "bicb3",	{"rbrbwb",		0x8b	} },
    194 {    "xorb2",	{"rbmb",		0x8c	} },
    195 {    "xorb3",	{"rbrbwb",		0x8d	} },
    196 {    "mnegb",	{"rbwb",		0x8e	} },
    197 {    "caseb",	{"rbrbrb",		0x8f	} },
    198 {    "movb",	{"rbwb",		0x90	} },
    199 {    "cmpb",	{"rbrb",		0x91	} },
    200 {    "mcomb",	{"rbwb",		0x92	} },
    201 {    "bitb",	{"rbrb",		0x93	} },
    202 {    "clrb",	{"wb",			0x94	} },
    203 {    "tstb",	{"rb",			0x95	} },
    204 {    "incb",	{"mb",			0x96	} },
    205 {    "decb",	{"mb",			0x97	} },
    206 {    "cvtbl",	{"rbwl",		0x98	} },
    207 {    "cvtbw",	{"rbww",		0x99	} },
    208 {    "movzbl",	{"rbwl",		0x9a	} },
    209 {    "movzbw",	{"rbww",		0x9b	} },
    210 {    "rotl",	{"rbrlwl",		0x9c	} },
    211 {    "acbb",	{"rbrbmbbw",		0x9d	} },
    212 {    "movab",	{"abwl",		0x9e	} },
    213 {    "pushab",	{"ab",			0x9f	} },
    214 {    "addw2",	{"rwmw",		0xa0	} },
    215 {    "addw3",	{"rwrwww",		0xa1	} },
    216 {    "subw2",	{"rwmw",		0xa2	} },
    217 {    "subw3",	{"rwrwww",		0xa3	} },
    218 {    "mulw2",	{"rwmw",		0xa4	} },
    219 {    "mulw3",	{"rwrwww",		0xa5	} },
    220 {    "divw2",	{"rwmw",		0xa6	} },
    221 {    "divw3",	{"rwrwww",		0xa7	} },
    222 {    "bisw2",	{"rwmw",		0xa8	} },
    223 {    "bisw3",	{"rwrwww",		0xa9	} },
    224 {    "bicw2",	{"rwmw",		0xaa	} },
    225 {    "bicw3",	{"rwrwww",		0xab	} },
    226 {    "xorw2",	{"rwmw",		0xac	} },
    227 {    "xorw3",	{"rwrwww",		0xad	} },
    228 {    "mnegw",	{"rwww",		0xae	} },
    229 {    "casew",	{"rwrwrw",		0xaf	} },
    230 {    "movw",	{"rwww",		0xb0	} },
    231 {    "cmpw",	{"rwrw",		0xb1	} },
    232 {    "mcomw",	{"rwww",		0xb2	} },
    233 {    "bitw",	{"rwrw",		0xb3	} },
    234 {    "clrw",	{"ww",			0xb4	} },
    235 {    "tstw",	{"rw",			0xb5	} },
    236 {    "incw",	{"mw",			0xb6	} },
    237 {    "decw",	{"mw",			0xb7	} },
    238 {    "bispsw",	{"rw",			0xb8	} },
    239 {    "bicpsw",	{"rw",			0xb9	} },
    240 {    "popr",	{"rw",			0xba	} },
    241 {    "pushr",	{"rw",			0xbb	} },
    242 {    "chmk",	{"rw",			0xbc	} },
    243 {    "chme",	{"rw",			0xbd	} },
    244 {    "chms",	{"rw",			0xbe	} },
    245 {    "chmu",	{"rw",			0xbf	} },
    246 {    "addl2",	{"rlml",		0xc0	} },
    247 {    "addl3",	{"rlrlwl",		0xc1	} },
    248 {    "subl2",	{"rlml",		0xc2	} },
    249 {    "subl3",	{"rlrlwl",		0xc3	} },
    250 {    "mull2",	{"rlml",		0xc4	} },
    251 {    "mull3",	{"rlrlwl",		0xc5	} },
    252 {    "divl2",	{"rlml",		0xc6	} },
    253 {    "divl3",	{"rlrlwl",		0xc7	} },
    254 {    "bisl2",	{"rlml",		0xc8	} },
    255 {    "bisl3",	{"rlrlwl",		0xc9	} },
    256 {    "bicl2",	{"rlml",		0xca	} },
    257 {    "bicl3",	{"rlrlwl",		0xcb	} },
    258 {    "xorl2",	{"rlml",		0xcc	} },
    259 {    "xorl3",	{"rlrlwl",		0xcd	} },
    260 {    "mnegl",	{"rlwl",		0xce	} },
    261 {    "casel",	{"rlrlrl",		0xcf	} },
    262 {    "movl",	{"rlwl",		0xd0	} },
    263 {    "cmpl",	{"rlrl",		0xd1	} },
    264 {    "mcoml",	{"rlwl",		0xd2	} },
    265 {    "bitl",	{"rlrl",		0xd3	} },
    266 {    "clrf",	{"wf",			0xd4	} },
    267 {    "clrl",	{"wl",			0xd4	} },
    268 {    "tstl",	{"rl",			0xd5	} },
    269 {    "incl",	{"ml",			0xd6	} },
    270 {    "decl",	{"ml",			0xd7	} },
    271 {    "adwc",	{"rlml",		0xd8	} },
    272 {    "sbwc",	{"rlml",		0xd9	} },
    273 {    "mtpr",	{"rlrl",		0xda	} },
    274 {    "mfpr",	{"rlwl",		0xdb	} },
    275 {    "movpsl",	{"wl",			0xdc	} },
    276 {    "pushl",	{"rl",			0xdd	} },
    277 {    "moval",	{"alwl",		0xde	} },
    278 {    "movaf",	{"afwl",		0xde	} },
    279 {    "pushal",	{"al",			0xdf	} },
    280 {    "pushaf",	{"af",			0xdf	} },
    281 {    "bbs",	{"rlvbbb",		0xe0	} },
    282 {    "bbc",	{"rlvbbb",		0xe1	} },
    283 {    "bbss",	{"rlvbbb",		0xe2	} },
    284 {    "bbcs",	{"rlvbbb",		0xe3	} },
    285 {    "bbsc",	{"rlvbbb",		0xe4	} },
    286 {    "bbcc",	{"rlvbbb",		0xe5	} },
    287 {    "bbssi",	{"rlvbbb",		0xe6	} },
    288 {    "bbcci",	{"rlvbbb",		0xe7	} },
    289 {    "blbs",	{"rlbb",		0xe8	} },
    290 {    "blbc",	{"rlbb",		0xe9	} },
    291 {    "ffs",	{"rlrbvbwl",		0xea	} },
    292 {    "ffc",	{"rlrbvbwl",		0xeb	} },
    293 {    "cmpv",	{"rlrbvbrl",		0xec	} },
    294 {    "cmpzv",	{"rlrbvbrl",		0xed	} },
    295 {    "extv",	{"rlrbvbwl",		0xee	} },
    296 {    "extzv",	{"rlrbvbwl",		0xef	} },
    297 {    "insv",	{"rlrlrbvb",		0xf0	} },
    298 {    "acbl",	{"rlrlmlbw",		0xf1	} },
    299 {    "aoblss",	{"rlmlbb",		0xf2	} },
    300 {    "aobleq",	{"rlmlbb",		0xf3	} },
    301 {    "sobgeq",	{"mlbb",		0xf4	} },
    302 {    "sobgtr",	{"mlbb",		0xf5	} },
    303 {    "cvtlb",	{"rlwb",		0xf6	} },
    304 {    "cvtlw",	{"rlww",		0xf7	} },
    305 {    "ashp",	{"rbrwabrbrwab",	0xf8	} },
    306 {    "cvtlp",	{"rlrwab",		0xf9	} },
    307 {    "callg",	{"abab",		0xfa	} },
    308 {    "calls",	{"rlab",		0xfb	} },
    309 {    "xfc",	{"",			0xfc	} },
    310                                         /* undefined opcodes here */
    311 {    "cvtdh",	{"rdwh",		0x32fd	} },
    312 {    "cvtgf",	{"rgwh",		0x33fd	} },
    313 {    "addg2",	{"rgmg",		0x40fd	} },
    314 {    "addg3",	{"rgrgwg",		0x41fd	} },
    315 {    "subg2",	{"rgmg",		0x42fd	} },
    316 {    "subg3",	{"rgrgwg",		0x43fd	} },
    317 {    "mulg2",	{"rgmg",		0x44fd	} },
    318 {    "mulg3",	{"rgrgwg",		0x45fd	} },
    319 {    "divg2",	{"rgmg",		0x46fd	} },
    320 {    "divg3",	{"rgrgwg",		0x47fd	} },
    321 {    "cvtgb",	{"rgwb",		0x48fd	} },
    322 {    "cvtgw",	{"rgww",		0x49fd	} },
    323 {    "cvtgl",	{"rgwl",		0x4afd	} },
    324 {    "cvtrgl",	{"rgwl",		0x4bfd	} },
    325 {    "cvtbg",	{"rbwg",		0x4cfd	} },
    326 {    "cvtwg",	{"rwwg",		0x4dfd	} },
    327 {    "cvtlg",	{"rlwg",		0x4efd	} },
    328 {    "acbg",	{"rgrgmgbw",		0x4ffd	} },
    329 {    "movg",	{"rgwg",		0x50fd	} },
    330 {    "cmpg",	{"rgrg",		0x51fd	} },
    331 {    "mnegg",	{"rgwg",		0x52fd	} },
    332 {    "tstg",	{"rg",			0x53fd	} },
    333 {    "emodg",	{"rgrwrgwlwg",		0x54fd	} },
    334 {    "polyg",	{"rgrwab",		0x55fd	} },
    335 {    "cvtgh",	{"rgwh",		0x56fd	} },
    336                                         /* undefined opcodes here */
    337 {    "addh2",	{"rhmh",		0x60fd	} },
    338 {    "addh3",	{"rhrhwh",		0x61fd	} },
    339 {    "subh2",	{"rhmh",		0x62fd	} },
    340 {    "subh3",	{"rhrhwh",		0x63fd	} },
    341 {    "mulh2",	{"rhmh",		0x64fd	} },
    342 {    "mulh3",	{"rhrhwh",		0x65fd	} },
    343 {    "divh2",	{"rhmh",		0x66fd	} },
    344 {    "divh3",	{"rhrhwh",		0x67fd	} },
    345 {    "cvthb",	{"rhwb",		0x68fd	} },
    346 {    "cvthw",	{"rhww",		0x69fd	} },
    347 {    "cvthl",	{"rhwl",		0x6afd	} },
    348 {    "cvtrhl",	{"rhwl",		0x6bfd	} },
    349 {    "cvtbh",	{"rbwh",		0x6cfd	} },
    350 {    "cvtwh",	{"rwwh",		0x6dfd	} },
    351 {    "cvtlh",	{"rlwh",		0x6efd	} },
    352 {    "acbh",	{"rhrhmhbw",		0x6ffd	} },
    353 {    "movh",	{"rhwh",		0x70fd	} },
    354 {    "cmph",	{"rhrh",		0x71fd	} },
    355 {    "mnegh",	{"rhwh",		0x72fd	} },
    356 {    "tsth",	{"rh",			0x73fd	} },
    357 {    "emodh",	{"rhrwrhwlwh",		0x74fd	} },
    358 {    "polyh",	{"rhrwab",		0x75fd	} },
    359 {    "cvthg",	{"rhwg",		0x76fd	} },
    360                                         /* undefined opcodes here */
    361 {    "clrh",	{"wh",			0x7cfd	} },
    362 {    "clro",	{"wo",			0x7cfd	} },
    363 {    "movo",	{"rowo",		0x7dfd	} },
    364 {    "movah",	{"ahwl",		0x7efd	} },
    365 {    "movao",	{"aowl",		0x7efd	} },
    366 {    "pushah",	{"ah",			0x7ffd	} },
    367 {    "pushao",	{"ao",			0x7ffd	} },
    368                                         /* undefined opcodes here */
    369 {    "cvtfh",	{"rfwh",		0x98fd	} },
    370 {    "cvtfg",	{"rfwg",		0x99fd	} },
    371                                         /* undefined opcodes here */
    372 {    "cvthf",	{"rhwf",		0xf6fd	} },
    373 {    "cvthd",	{"rhwd",		0xf7fd	} },
    374                                         /* undefined opcodes here */
    375 {    "bugl",	{"rl",			0xfdff	} },
    376 {    "bugw",	{"rw",			0xfeff	} },
    377                                         /* undefined opcodes here */
    378 
    379 {      "",	{"", 0} }		/* empty is end sentinel */
    380 
    381 };				/* votstrs */
    382 
    383 /* end: vax.opcode.h */
    384