Subversion Repositories Kolibri OS

Rev

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

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