Subversion Repositories Kolibri OS

Rev

Rev 5191 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /* Vax opcde list.
  2.    Copyright (C) 1989-2015 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.