Back to index

cell-binutils  2.17cvs20070401
vax.h
Go to the documentation of this file.
00001 /* Vax opcde list.
00002    Copyright 1989, 1991, 1992, 1995 Free Software Foundation, Inc.
00003 
00004 This file is part of GDB and GAS.
00005 
00006 GDB and GAS are free software; you can redistribute it and/or modify
00007 it under the terms of the GNU General Public License as published by
00008 the Free Software Foundation; either version 1, or (at your option)
00009 any later version.
00010 
00011 GDB and GAS are distributed in the hope that it will be useful,
00012 but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 GNU General Public License for more details.
00015 
00016 You should have received a copy of the GNU General Public License
00017 along with GDB or GAS; see the file COPYING.  If not, write to
00018 the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
00019 
00020 #ifndef vax_opcodeT
00021 #define vax_opcodeT int
00022 #endif /* no vax_opcodeT */
00023 
00024 struct vot_wot                     /* vax opcode table: wot to do with this */
00025                             /* particular opcode */
00026 {
00027   const char       *args;   /* how to compile said opcode */
00028   vax_opcodeT       code;   /* op-code (may be > 8 bits!) */
00029 };
00030 
00031 struct vot                  /* vax opcode text */
00032 {
00033   const char       *name;   /* opcode name: lowercase string  [key]  */
00034   struct vot_wot    detail; /* rest of opcode table          [datum] */
00035 };
00036 
00037 #define vot_how args
00038 #define vot_code code
00039 #define vot_detail detail
00040 #define vot_name name
00041 
00042 static const struct vot
00043 votstrs[] =
00044 {
00045 {    "halt",  {"",                 0x00   } },
00046 {    "nop",   {"",                 0x01   } },
00047 {    "rei",   {"",                 0x02   } },
00048 {    "bpt",   {"",                 0x03   } },
00049 {    "ret",   {"",                 0x04   } },
00050 {    "rsb",   {"",                 0x05   } },
00051 {    "ldpctx",       {"",                 0x06   } },
00052 {    "svpctx",       {"",                 0x07   } },
00053 {    "cvtps", {"rwabrwab",         0x08   } },
00054 {    "cvtsp", {"rwabrwab",         0x09   } },
00055 {    "index", {"rlrlrlrlrlwl",     0x0a   } },
00056 {    "crc",   {"abrlrwab",         0x0b   } },
00057 {    "prober",       {"rbrwab",           0x0c   } },
00058 {    "probew",       {"rbrwab",            0x0d  } },
00059 {    "insque",       {"abab",             0x0e   } },
00060 {    "remque",       {"abwl",             0x0f   } },
00061 {    "bsbb",  {"bb",               0x10   } },
00062 {    "brb",   {"bb",               0x11   } },
00063 {    "bneq",  {"bb",               0x12   } },
00064 {    "bnequ", {"bb",               0x12   } },
00065 {    "beql",  {"bb",               0x13   } },
00066 {    "beqlu", {"bb",               0x13   } },
00067 {    "bgtr",  {"bb",               0x14   } },
00068 {    "bleq",  {"bb",               0x15   } },
00069 {    "jsb",   {"ab",               0x16   } },
00070 {    "jmp",   {"ab",               0x17   } },
00071 {    "bgeq",  {"bb",               0x18   } },
00072 {    "blss",  {"bb",               0x19   } },
00073 {    "bgtru", {"bb",               0x1a   } },
00074 {    "blequ", {"bb",               0x1b   } },
00075 {    "bvc",   {"bb",               0x1c   } },
00076 {    "bvs",   {"bb",               0x1d   } },
00077 {    "bcc",   {"bb",               0x1e   } },
00078 {    "bgequ", {"bb",               0x1e   } },
00079 {    "blssu", {"bb",               0x1f   } },
00080 {    "bcs",   {"bb",               0x1f   } },
00081 {    "addp4", {"rwabrwab",         0x20   } },
00082 {    "addp6", {"rwabrwabrwab",     0x21   } },
00083 {    "subp4", {"rwabrwab",         0x22   } },
00084 {    "subp6", {"rwabrwabrwab",     0x23   } },
00085 {    "cvtpt", {"rwababrwab",              0x24   } },
00086 {    "mulp",  {"rwabrwabrwab",     0x25   } },
00087 {    "cvttp", {"rwababrwab",              0x26   } },
00088 {    "divp",  {"rwabrwabrwab",     0x27   } },
00089 {    "movc3", {"rwabab",           0x28   } },
00090 {    "cmpc3", {"rwabab",           0x29   } },
00091 {    "scanc", {"rwababrb",         0x2a   } },
00092 {    "spanc", {"rwababrb",         0x2b   } },
00093 {    "movc5", {"rwabrbrwab",              0x2c   } },
00094 {    "cmpc5", {"rwabrbrwab",              0x2d   } },
00095 {    "movtc", {"rwabrbabrwab",     0x2e   } },
00096 {    "movtuc",       {"rwabrbabrwab",     0x2f   } },
00097 {    "bsbw",  {"bw",               0x30   } },
00098 {    "brw",   {"bw",               0x31   } },
00099 {    "cvtwl", {"rwwl",             0x32   } },
00100 {    "cvtwb", {"rwwb",             0x33   } },
00101 {    "movp",  {"rwabab",           0x34   } },
00102 {    "cmpp3", {"rwabab",           0x35   } },
00103 {    "cvtpl", {"rwabwl",           0x36   } },
00104 {    "cmpp4", {"rwabrwab",         0x37   } },
00105 {    "editpc",       {"rwababab",         0x38   } },
00106 {    "matchc",       {"rwabrwab",         0x39   } },
00107 {    "locc",  {"rbrwab",           0x3a   } },
00108 {    "skpc",  {"rbrwab",           0x3b   } },
00109 {    "movzwl",       {"rwwl",             0x3c   } },
00110 {    "acbw",  {"rwrwmwbw",         0x3d   } },
00111 {    "movaw", {"awwl",             0x3e   } },
00112 {    "pushaw",       {"aw",               0x3f   } },
00113 {    "addf2", {"rfmf",             0x40   } },
00114 {    "addf3", {"rfrfwf",           0x41   } },
00115 {    "subf2", {"rfmf",             0x42   } },
00116 {    "subf3", {"rfrfwf",           0x43   } },
00117 {    "mulf2", {"rfmf",             0x44   } },
00118 {    "mulf3", {"rfrfwf",           0x45   } },
00119 {    "divf2", {"rfmf",             0x46   } },
00120 {    "divf3", {"rfrfwf",           0x47   } },
00121 {    "cvtfb", {"rfwb",             0x48   } },
00122 {    "cvtfw", {"rfww",             0x49   } },
00123 {    "cvtfl", {"rfwl",             0x4a   } },
00124 {    "cvtrfl",       {"rfwl",             0x4b   } },
00125 {    "cvtbf", {"rbwf",             0x4c   } },
00126 {    "cvtwf", {"rwwf",             0x4d   } },
00127 {    "cvtlf", {"rlwf",             0x4e   } },
00128 {    "acbf",  {"rfrfmfbw",         0x4f   } },
00129 {    "movf",  {"rfwf",             0x50   } },
00130 {    "cmpf",  {"rfrf",             0x51   } },
00131 {    "mnegf", {"rfwf",             0x52   } },
00132 {    "tstf",  {"rf",               0x53   } },
00133 {    "emodf", {"rfrbrfwlwf",              0x54   } },
00134 {    "polyf", {"rfrwab",           0x55   } },
00135 {    "cvtfd", {"rfwd",             0x56   } },
00136                                         /* opcode 57 is not defined yet */
00137 {    "adawi", {"rwmw",             0x58   } },
00138                                         /* opcode 59 is not defined yet */
00139                                         /* opcode 5a is not defined yet */
00140                                         /* opcode 5b is not defined yet */
00141 {    "insqhi",       {"abaq",             0x5c   } },
00142 {    "insqti",       {"abaq",             0x5d   } },
00143 {    "remqhi",       {"aqwl",             0x5e   } },
00144 {    "remqti",       {"aqwl",             0x5f   } },
00145 {    "addd2", {"rdmd",             0x60   } },
00146 {    "addd3", {"rdrdwd",           0x61   } },
00147 {    "subd2", {"rdmd",             0x62   } },
00148 {    "subd3", {"rdrdwd",           0x63   } },
00149 {    "muld2", {"rdmd",             0x64   } },
00150 {    "muld3", {"rdrdwd",           0x65   } },
00151 {    "divd2", {"rdmd",             0x66   } },
00152 {    "divd3", {"rdrdwd",           0x67   } },
00153 {    "cvtdb", {"rdwb",             0x68   } },
00154 {    "cvtdw", {"rdww",             0x69   } },
00155 {    "cvtdl", {"rdwl",             0x6a   } },
00156 {    "cvtrdl",       {"rdwl",             0x6b   } },
00157 {    "cvtbd", {"rbwd",             0x6c   } },
00158 {    "cvtwd", {"rwwd",             0x6d   } },
00159 {    "cvtld", {"rlwd",             0x6e   } },
00160 {    "acbd",  {"rdrdmdbw",         0x6f   } },
00161 {    "movd",  {"rdwd",             0x70   } },
00162 {    "cmpd",  {"rdrd",             0x71   } },
00163 {    "mnegd", {"rdwd",             0x72   } },
00164 {    "tstd",  {"rd",               0x73   } },
00165 {    "emodd", {"rdrbrdwlwd",              0x74   } },
00166 {    "polyd", {"rdrwab",           0x75   } },
00167 {    "cvtdf", {"rdwf",             0x76   } },
00168                                         /* opcode 77 is not defined yet */
00169 {    "ashl",  {"rbrlwl",           0x78   } },
00170 {    "ashq",  {"rbrqwq",           0x79   } },
00171 {    "emul",  {"rlrlrlwq",         0x7a   } },
00172 {    "ediv",  {"rlrqwlwl",         0x7b   } },
00173 {    "clrd",  {"wd",               0x7c   } },
00174 {    "clrg",  {"wg",               0x7c   } },
00175 {    "clrq",  {"wd",               0x7c   } },
00176 {    "movq",  {"rqwq",             0x7d   } },
00177 {    "movaq", {"aqwl",             0x7e   } },
00178 {    "movad", {"adwl",             0x7e   } },
00179 {    "pushaq",       {"aq",               0x7f   } },
00180 {    "pushad",       {"ad",               0x7f   } },
00181 {    "addb2", {"rbmb",             0x80   } },
00182 {    "addb3", {"rbrbwb",           0x81   } },
00183 {    "subb2", {"rbmb",             0x82   } },
00184 {    "subb3", {"rbrbwb",           0x83   } },
00185 {    "mulb2", {"rbmb",             0x84   } },
00186 {    "mulb3", {"rbrbwb",           0x85   } },
00187 {    "divb2", {"rbmb",             0x86   } },
00188 {    "divb3", {"rbrbwb",           0x87   } },
00189 {    "bisb2", {"rbmb",             0x88   } },
00190 {    "bisb3", {"rbrbwb",           0x89   } },
00191 {    "bicb2", {"rbmb",             0x8a   } },
00192 {    "bicb3", {"rbrbwb",           0x8b   } },
00193 {    "xorb2", {"rbmb",             0x8c   } },
00194 {    "xorb3", {"rbrbwb",           0x8d   } },
00195 {    "mnegb", {"rbwb",             0x8e   } },
00196 {    "caseb", {"rbrbrb",           0x8f   } },
00197 {    "movb",  {"rbwb",             0x90   } },
00198 {    "cmpb",  {"rbrb",             0x91   } },
00199 {    "mcomb", {"rbwb",             0x92   } },
00200 {    "bitb",  {"rbrb",             0x93   } },
00201 {    "clrb",  {"wb",               0x94   } },
00202 {    "tstb",  {"rb",               0x95   } },
00203 {    "incb",  {"mb",               0x96   } },
00204 {    "decb",  {"mb",               0x97   } },
00205 {    "cvtbl", {"rbwl",             0x98   } },
00206 {    "cvtbw", {"rbww",             0x99   } },
00207 {    "movzbl",       {"rbwl",             0x9a   } },
00208 {    "movzbw",       {"rbww",             0x9b   } },
00209 {    "rotl",  {"rbrlwl",           0x9c   } },
00210 {    "acbb",  {"rbrbmbbw",         0x9d   } },
00211 {    "movab", {"abwl",             0x9e   } },
00212 {    "pushab",       {"ab",               0x9f   } },
00213 {    "addw2", {"rwmw",             0xa0   } },
00214 {    "addw3", {"rwrwww",           0xa1   } },
00215 {    "subw2", {"rwmw",             0xa2   } },
00216 {    "subw3", {"rwrwww",           0xa3   } },
00217 {    "mulw2", {"rwmw",             0xa4   } },
00218 {    "mulw3", {"rwrwww",           0xa5   } },
00219 {    "divw2", {"rwmw",             0xa6   } },
00220 {    "divw3", {"rwrwww",           0xa7   } },
00221 {    "bisw2", {"rwmw",             0xa8   } },
00222 {    "bisw3", {"rwrwww",           0xa9   } },
00223 {    "bicw2", {"rwmw",             0xaa   } },
00224 {    "bicw3", {"rwrwww",           0xab   } },
00225 {    "xorw2", {"rwmw",             0xac   } },
00226 {    "xorw3", {"rwrwww",           0xad   } },
00227 {    "mnegw", {"rwww",             0xae   } },
00228 {    "casew", {"rwrwrw",           0xaf   } },
00229 {    "movw",  {"rwww",             0xb0   } },
00230 {    "cmpw",  {"rwrw",             0xb1   } },
00231 {    "mcomw", {"rwww",             0xb2   } },
00232 {    "bitw",  {"rwrw",             0xb3   } },
00233 {    "clrw",  {"ww",               0xb4   } },
00234 {    "tstw",  {"rw",               0xb5   } },
00235 {    "incw",  {"mw",               0xb6   } },
00236 {    "decw",  {"mw",               0xb7   } },
00237 {    "bispsw",       {"rw",               0xb8   } },
00238 {    "bicpsw",       {"rw",               0xb9   } },
00239 {    "popr",  {"rw",               0xba   } },
00240 {    "pushr", {"rw",               0xbb   } },
00241 {    "chmk",  {"rw",               0xbc   } },
00242 {    "chme",  {"rw",               0xbd   } },
00243 {    "chms",  {"rw",               0xbe   } },
00244 {    "chmu",  {"rw",               0xbf   } },
00245 {    "addl2", {"rlml",             0xc0   } },
00246 {    "addl3", {"rlrlwl",           0xc1   } },
00247 {    "subl2", {"rlml",             0xc2   } },
00248 {    "subl3", {"rlrlwl",           0xc3   } },
00249 {    "mull2", {"rlml",             0xc4   } },
00250 {    "mull3", {"rlrlwl",           0xc5   } },
00251 {    "divl2", {"rlml",             0xc6   } },
00252 {    "divl3", {"rlrlwl",           0xc7   } },
00253 {    "bisl2", {"rlml",             0xc8   } },
00254 {    "bisl3", {"rlrlwl",           0xc9   } },
00255 {    "bicl2", {"rlml",             0xca   } },
00256 {    "bicl3", {"rlrlwl",           0xcb   } },
00257 {    "xorl2", {"rlml",             0xcc   } },
00258 {    "xorl3", {"rlrlwl",           0xcd   } },
00259 {    "mnegl", {"rlwl",             0xce   } },
00260 {    "casel", {"rlrlrl",           0xcf   } },
00261 {    "movl",  {"rlwl",             0xd0   } },
00262 {    "cmpl",  {"rlrl",             0xd1   } },
00263 {    "mcoml", {"rlwl",             0xd2   } },
00264 {    "bitl",  {"rlrl",             0xd3   } },
00265 {    "clrf",  {"wf",               0xd4   } },
00266 {    "clrl",  {"wl",               0xd4   } },
00267 {    "tstl",  {"rl",               0xd5   } },
00268 {    "incl",  {"ml",               0xd6   } },
00269 {    "decl",  {"ml",               0xd7   } },
00270 {    "adwc",  {"rlml",             0xd8   } },
00271 {    "sbwc",  {"rlml",             0xd9   } },
00272 {    "mtpr",  {"rlrl",             0xda   } },
00273 {    "mfpr",  {"rlwl",             0xdb   } },
00274 {    "movpsl",       {"wl",               0xdc   } },
00275 {    "pushl", {"rl",               0xdd   } },
00276 {    "moval", {"alwl",             0xde   } },
00277 {    "movaf", {"afwl",             0xde   } },
00278 {    "pushal",       {"al",               0xdf   } },
00279 {    "pushaf",       {"af",               0xdf   } },
00280 {    "bbs",   {"rlvbbb",           0xe0   } },
00281 {    "bbc",   {"rlvbbb",           0xe1   } },
00282 {    "bbss",  {"rlvbbb",           0xe2   } },
00283 {    "bbcs",  {"rlvbbb",           0xe3   } },
00284 {    "bbsc",  {"rlvbbb",           0xe4   } },
00285 {    "bbcc",  {"rlvbbb",           0xe5   } },
00286 {    "bbssi", {"rlvbbb",           0xe6   } },
00287 {    "bbcci", {"rlvbbb",           0xe7   } },
00288 {    "blbs",  {"rlbb",             0xe8   } },
00289 {    "blbc",  {"rlbb",             0xe9   } },
00290 {    "ffs",   {"rlrbvbwl",         0xea   } },
00291 {    "ffc",   {"rlrbvbwl",         0xeb   } },
00292 {    "cmpv",  {"rlrbvbrl",         0xec   } },
00293 {    "cmpzv", {"rlrbvbrl",         0xed   } },
00294 {    "extv",  {"rlrbvbwl",         0xee   } },
00295 {    "extzv", {"rlrbvbwl",         0xef   } },
00296 {    "insv",  {"rlrlrbvb",         0xf0   } },
00297 {    "acbl",  {"rlrlmlbw",         0xf1   } },
00298 {    "aoblss",       {"rlmlbb",           0xf2   } },
00299 {    "aobleq",       {"rlmlbb",           0xf3   } },
00300 {    "sobgeq",       {"mlbb",             0xf4   } },
00301 {    "sobgtr",       {"mlbb",             0xf5   } },
00302 {    "cvtlb", {"rlwb",             0xf6   } },
00303 {    "cvtlw", {"rlww",             0xf7   } },
00304 {    "ashp",  {"rbrwabrbrwab",     0xf8   } },
00305 {    "cvtlp", {"rlrwab",           0xf9   } },
00306 {    "callg", {"abab",             0xfa   } },
00307 {    "calls", {"rlab",             0xfb   } },
00308 {    "xfc",   {"",                 0xfc   } },
00309                                         /* undefined opcodes here */
00310 {    "cvtdh", {"rdwh",             0x32fd } },
00311 {    "cvtgf", {"rgwh",             0x33fd } },
00312 {    "addg2", {"rgmg",             0x40fd } },
00313 {    "addg3", {"rgrgwg",           0x41fd } },
00314 {    "subg2", {"rgmg",             0x42fd } },
00315 {    "subg3", {"rgrgwg",           0x43fd } },
00316 {    "mulg2", {"rgmg",             0x44fd } },
00317 {    "mulg3", {"rgrgwg",           0x45fd } },
00318 {    "divg2", {"rgmg",             0x46fd } },
00319 {    "divg3", {"rgrgwg",           0x47fd } },
00320 {    "cvtgb", {"rgwb",             0x48fd } },
00321 {    "cvtgw", {"rgww",             0x49fd } },
00322 {    "cvtgl", {"rgwl",             0x4afd } },
00323 {    "cvtrgl",       {"rgwl",             0x4bfd } },
00324 {    "cvtbg", {"rbwg",             0x4cfd } },
00325 {    "cvtwg", {"rwwg",             0x4dfd } },
00326 {    "cvtlg", {"rlwg",             0x4efd } },
00327 {    "acbg",  {"rgrgmgbw",         0x4ffd } },
00328 {    "movg",  {"rgwg",             0x50fd } },
00329 {    "cmpg",  {"rgrg",             0x51fd } },
00330 {    "mnegg", {"rgwg",             0x52fd } },
00331 {    "tstg",  {"rg",               0x53fd } },
00332 {    "emodg", {"rgrwrgwlwg",              0x54fd } },
00333 {    "polyg", {"rgrwab",           0x55fd } },
00334 {    "cvtgh", {"rgwh",             0x56fd } },
00335                                         /* undefined opcodes here */
00336 {    "addh2", {"rhmh",             0x60fd } },
00337 {    "addh3", {"rhrhwh",           0x61fd } },
00338 {    "subh2", {"rhmh",             0x62fd } },
00339 {    "subh3", {"rhrhwh",           0x63fd } },
00340 {    "mulh2", {"rhmh",             0x64fd } },
00341 {    "mulh3", {"rhrhwh",           0x65fd } },
00342 {    "divh2", {"rhmh",             0x66fd } },
00343 {    "divh3", {"rhrhwh",           0x67fd } },
00344 {    "cvthb", {"rhwb",             0x68fd } },
00345 {    "cvthw", {"rhww",             0x69fd } },
00346 {    "cvthl", {"rhwl",             0x6afd } },
00347 {    "cvtrhl",       {"rhwl",             0x6bfd } },
00348 {    "cvtbh", {"rbwh",             0x6cfd } },
00349 {    "cvtwh", {"rwwh",             0x6dfd } },
00350 {    "cvtlh", {"rlwh",             0x6efd } },
00351 {    "acbh",  {"rhrhmhbw",         0x6ffd } },
00352 {    "movh",  {"rhwh",             0x70fd } },
00353 {    "cmph",  {"rhrh",             0x71fd } },
00354 {    "mnegh", {"rhwh",             0x72fd } },
00355 {    "tsth",  {"rh",               0x73fd } },
00356 {    "emodh", {"rhrwrhwlwh",              0x74fd } },
00357 {    "polyh", {"rhrwab",           0x75fd } },
00358 {    "cvthg", {"rhwg",             0x76fd } },
00359                                         /* undefined opcodes here */
00360 {    "clrh",  {"wh",               0x7cfd } },
00361 {    "clro",  {"wo",               0x7cfd } },
00362 {    "movo",  {"rowo",             0x7dfd } },
00363 {    "movah", {"ahwl",             0x7efd } },
00364 {    "movao", {"aowl",             0x7efd } },
00365 {    "pushah",       {"ah",               0x7ffd } },
00366 {    "pushao",       {"ao",               0x7ffd } },
00367                                         /* undefined opcodes here */
00368 {    "cvtfh", {"rfwh",             0x98fd } },
00369 {    "cvtfg", {"rfwg",             0x99fd } },
00370                                         /* undefined opcodes here */
00371 {    "cvthf", {"rhwf",             0xf6fd } },
00372 {    "cvthd", {"rhwd",             0xf7fd } },
00373                                         /* undefined opcodes here */
00374 {    "bugl",  {"rl",               0xfdff } },
00375 {    "bugw",  {"rw",               0xfeff } },
00376                                         /* undefined opcodes here */
00377 
00378 {      "",    {"", 0} }            /* empty is end sentinel */
00379 
00380 };                          /* votstrs */
00381 
00382 /* end: vax.opcode.h */