optab.c 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444
  1. #include "l.h"
  2. #define X1 0
  3. #define X2 0
  4. #define X3 0
  5. #define C 0xf200
  6. Optab optab[] =
  7. /* as, fas, srcsp, dstsp, optype, opcode */
  8. {
  9. { AXXX },
  10. { AABCD, AXXX, X1, X2, X3, 0x4e71 },
  11. { AADDB, AXXX, 2, 0, 3, 0xd000, 0x5000, 0, 0x0600 },
  12. { AADDL, AXXX, 4, 0, 3, 0xd080, 0x5080, 0xd1c0, 0x0680 },
  13. { AADDW, AXXX, 2, 0, 3, 0xd040, 0x5040, 0xd0c0, 0x0640 },
  14. { AADDXB },
  15. { AADDXL },
  16. { AADDXW },
  17. { AADJSP },
  18. { AANDB, AXXX, 2, 0, 9, 0xc000, 0xc100, 0x0200 },
  19. { AANDL, AXXX, 4, 0, 9, 0xc080, 0xc180, 0x0280 },
  20. { AANDW, AXXX, 2, 0, 9, 0xc040, 0xc140, 0x0240 },
  21. { AASLB, AXXX, 0, 2, 12, 0xe100 },
  22. { AASLL, AXXX, 0, 4, 12, 0xe180 },
  23. { AASLW, AXXX, 0, 2, 12, 0xe140 },
  24. { AASRB, AXXX, 0, 2, 12, 0xe000 },
  25. { AASRL, AXXX, 0, 4, 12, 0xe080 },
  26. { AASRW, AXXX, 0, 2, 12, 0xe040 },
  27. { ABCASE },
  28. { ABCC, AXXX, 0, 0, 1, 0x6400 },
  29. { ABCHG, AXXX, 2, 2, 27, 0x0140, 0x0840 },
  30. { ABCLR, AXXX, 2, 2, 27, 0x0180, 0x0880 },
  31. { ABCS, AXXX, 0, 0, 1, 0x6500 },
  32. { ABEQ, AXXX, 0, 0, 1, 0x6700 },
  33. { ABFCHG },
  34. { ABFCLR },
  35. { ABFEXTS },
  36. { ABFEXTU },
  37. { ABFFFO },
  38. { ABFINS },
  39. { ABFSET },
  40. { ABFTST },
  41. { ABGE, AXXX, 0, 0, 1, 0x6c00 },
  42. { ABGT, AXXX, 0, 0, 1, 0x6e00 },
  43. { ABHI, AXXX, 0, 0, 1, 0x6200 },
  44. { ABKPT },
  45. { ABLE, AXXX, 0, 0, 1, 0x6f00 },
  46. { ABLS, AXXX, 0, 0, 1, 0x6300 },
  47. { ABLT, AXXX, 0, 0, 1, 0x6d00 },
  48. { ABMI, AXXX, 0, 0, 1, 0x6b00 },
  49. { ABNE, AXXX, 0, 0, 1, 0x6600 },
  50. { ABPL, AXXX, 0, 0, 1, 0x6a00 },
  51. { ABRA, AXXX, 0, 0, 1, 0x6000, 0x4ec0 },
  52. { ABSET, AXXX, 2, 2, 27, 0x01c0, 0x08c0 },
  53. { ABSR, AXXX, 0, 0, 1, 0x6100, 0x4e80 },
  54. { ABTST, AXXX, 2, 2, 27, 0x0100, 0x0800 },
  55. { ABVC, AXXX, 0, 0, 1, 0x6800 },
  56. { ABVS, AXXX, 0, 0, 1, 0x6900 },
  57. { ACALLM },
  58. { ACAS2B },
  59. { ACAS2L },
  60. { ACAS2W },
  61. { ACASB },
  62. { ACASEW },
  63. { ACASL },
  64. { ACASW },
  65. { ACHK2B },
  66. { ACHK2L },
  67. { ACHK2W },
  68. { ACHKL, AXXX, 4, 4, 26, 0x4100 },
  69. { ACHKW, AXXX, 2, 2, 26, 0x4180 },
  70. { ACLRB, AXXX, 0, -2, 5, 0x4200 },
  71. { ACLRL, AXXX, 0, -4, 5, 0x4280 },
  72. { ACLRW, AXXX, 0, -2, 5, 0x4240 },
  73. { ACMP2B },
  74. { ACMP2L },
  75. { ACMP2W },
  76. { ACMPB, AXXX, 2, 2, 7, 0xb000, 0, 0x0c00, 0xb108 },
  77. { ACMPL, AXXX, 4, 4, 7, 0xb080, 0xb100, 0x0c80, 0xb188 },
  78. { ACMPW, AXXX, 2, 2, 7, 0xb040, 0xb080, 0x0c40, 0xb148 },
  79. { ADATA },
  80. { ADBCC, AXXX, 0, 0, 15, 0x54c8 },
  81. { ADBCS, AXXX, 0, 0, 15, 0x55c8 },
  82. { ADBEQ, AXXX, 0, 0, 15, 0x57c8 },
  83. { ADBF, AXXX, 0, 0, 15, 0x51c8 },
  84. { ADBGE, AXXX, 0, 0, 15, 0x5cc8 },
  85. { ADBGT, AXXX, 0, 0, 15, 0x5ec8 },
  86. { ADBHI, AXXX, 0, 0, 15, 0x52c8 },
  87. { ADBLE, AXXX, 0, 0, 15, 0x5fc8 },
  88. { ADBLS, AXXX, 0, 0, 15, 0x53c8 },
  89. { ADBLT, AXXX, 0, 0, 15, 0x5dc8 },
  90. { ADBMI, AXXX, 0, 0, 15, 0x5bc8 },
  91. { ADBNE, AXXX, 0, 0, 15, 0x56c8 },
  92. { ADBPL, AXXX, 0, 0, 15, 0x5ac8 },
  93. { ADBT, AXXX, 0, 0, 15, 0x50c8 },
  94. { ADBVC, AXXX, 0, 0, 15, 0x58c8 },
  95. { ADBVS, AXXX, 0, 0, 15, 0x59c8 },
  96. { ADIVSL, AXXX, 4, 0, 14, 0x4c40, 0x0800 },
  97. { ADIVSW, AXXX, 2, 0, 13, 0x81c0 },
  98. { ADIVUL, AXXX, 4, 0, 14, 0x4c40, 0x0000 },
  99. { ADIVUW, AXXX, 2, 0, 13, 0x80c0 },
  100. { AEND },
  101. { AEORB, AXXX, 2, 0, 10, 0xb100, 0x0a00 },
  102. { AEORL, AXXX, 4, 0, 10, 0xb180, 0x0a80 },
  103. { AEORW, AXXX, 2, 0, 10, 0xb140, 0x0a40 },
  104. { AEXG },
  105. { AEXTBL },
  106. { AEXTBW, AXXX, 0, 0, 11, 0x4880 },
  107. { AEXTWL, AXXX, 0, 0, 11, 0x48c0 },
  108. { AFABSB, AXXX, 2, 0, 17, C, 0x0018, 0x5818 },
  109. { AFABSD, AFABSL, 8, 0, 17, C, 0x0018, 0x5418 },
  110. { AFABSF, AFABSL, 4, 0, 17, C, 0x0018, 0x4418 },
  111. { AFABSL, AXXX, 4, 0, 17, C, 0x0018, 0x4018 },
  112. { AFABSW, AXXX, 2, 0, 17, C, 0x0018, 0x5018 },
  113. { AFACOSB, AXXX, 2, 0, 17, C, 0x001c, 0x581c },
  114. { AFACOSD, AFACOSL, 8, 0, 17, C, 0x001c, 0x541c },
  115. { AFACOSF, AFACOSL, 4, 0, 17, C, 0x001c, 0x441c },
  116. { AFACOSL, AXXX, 4, 0, 17, C, 0x001c, 0x401c },
  117. { AFACOSW, AXXX, 2, 0, 17, C, 0x001c, 0x501c },
  118. { AFADDB, AXXX, 2, 0, 17, C, 0x0022, 0x5822 },
  119. { AFADDD, AFADDL, 8, 0, 17, C, 0x0022, 0x5422 },
  120. { AFADDF, AFADDL, 4, 0, 17, C, 0x0022, 0x4422 },
  121. { AFADDL, AXXX, 4, 0, 17, C, 0x0022, 0x4022 },
  122. { AFADDW, AXXX, 2, 0, 17, C, 0x0022, 0x5022 },
  123. { AFASINB, AXXX, 2, 0, 17, C, 0x000c, 0x580c },
  124. { AFASIND, AFASINL, 8, 0, 17, C, 0x000c, 0x540c },
  125. { AFASINF, AFASINL, 4, 0, 17, C, 0x000c, 0x440c },
  126. { AFASINL, AXXX, 4, 0, 17, C, 0x000c, 0x400c },
  127. { AFASINW, AXXX, 2, 0, 17, C, 0x000c, 0x500c },
  128. { AFATANB, AXXX, 2, 0, 17, C, 0x000a, 0x580a },
  129. { AFATAND, AFATANL, 8, 0, 17, C, 0x000a, 0x540a },
  130. { AFATANF, AFATANL, 4, 0, 17, C, 0x000a, 0x440a },
  131. { AFATANHB, AXXX, 2, 0, 17, C, 0x000d, 0x580d },
  132. { AFATANHD, AFATANHL, 8, 0, 17, C, 0x000d, 0x540d },
  133. { AFATANHF, AFATANHL, 4, 0, 17, C, 0x000d, 0x440d },
  134. { AFATANHL, AXXX, 4, 0, 17, C, 0x000d, 0x400d },
  135. { AFATANHW, AXXX, 2, 0, 17, C, 0x000d, 0x500d },
  136. { AFATANL, AXXX, 4, 0, 17, C, 0x000a, 0x400a },
  137. { AFATANW, AXXX, 2, 0, 17, C, 0x000a, 0x500a },
  138. { AFBEQ, AXXX, 0, 0, 18, C+0x81 },
  139. { AFBF, AXXX, 0, 0, 18, C+0x8f },
  140. { AFBGE, AXXX, 0, 0, 18, C+0x93 },
  141. { AFBGT, AXXX, 0, 0, 18, C+0x92 },
  142. { AFBLE, AXXX, 0, 0, 18, C+0x95 },
  143. { AFBLT, AXXX, 0, 0, 18, C+0x94 },
  144. { AFBNE, AXXX, 0, 0, 18, C+0x8e },
  145. { AFBT, AXXX, 0, 0, 18, C+0x80 },
  146. { AFCMPB, AXXX, 0, 2, 22, C, 0x0038, 0x5838 },
  147. { AFCMPD, AFCMPL, 0, 8, 22, C, 0x0038, 0x5438 },
  148. { AFCMPF, AFCMPL, 0, 4, 22, C, 0x0038, 0x4438 },
  149. { AFCMPL, AXXX, 0, 4, 22, C, 0x0038, 0x4038 },
  150. { AFCMPW, AXXX, 0, 2, 22, C, 0x0038, 0x5038 },
  151. { AFCOSB, AXXX, 2, 0, 17, C, 0x001d, 0x581d },
  152. { AFCOSD, AFCOSL, 8, 0, 17, C, 0x001d, 0x541d },
  153. { AFCOSF, AFCOSL, 4, 0, 17, C, 0x001d, 0x441d },
  154. { AFCOSHB, AXXX, 2, 0, 17, C, 0x0019, 0x5819 },
  155. { AFCOSHD, AFCOSHL, 8, 0, 17, C, 0x0019, 0x5419 },
  156. { AFCOSHF, AFCOSHL, 4, 0, 17, C, 0x0019, 0x4419 },
  157. { AFCOSHL, AXXX, 4, 0, 17, C, 0x0019, 0x4019 },
  158. { AFCOSHW, AXXX, 2, 0, 17, C, 0x0019, 0x5019 },
  159. { AFCOSL, AXXX, 4, 0, 17, C, 0x001d, 0x401d },
  160. { AFCOSW, AXXX, 2, 0, 17, C, 0x001d, 0x501d },
  161. { AFDBEQ, AXXX, 0, 0, 19, C+0x48, 0x01 },
  162. { AFDBF, AXXX, 0, 0, 19, C+0x48, 0x0f },
  163. { AFDBGE, AXXX, 0, 0, 19, C+0x48, 0x13 },
  164. { AFDBGT, AXXX, 0, 0, 19, C+0x48, 0x12 },
  165. { AFDBLE, AXXX, 0, 0, 19, C+0x48, 0x15 },
  166. { AFDBLT, AXXX, 0, 0, 19, C+0x48, 0x14 },
  167. { AFDBNE, AXXX, 0, 0, 19, C+0x48, 0x0e },
  168. { AFDBT, AXXX, 0, 0, 19, C+0x48, 0x00 },
  169. { AFDIVB, AXXX, 2, 0, 17, C, 0x0020, 0x5820 },
  170. { AFDIVD, AFDIVL, 8, 0, 17, C, 0x0020, 0x5420 },
  171. { AFDIVF, AFDIVL, 4, 0, 17, C, 0x0020, 0x4420 },
  172. { AFDIVL, AXXX, 4, 0, 17, C, 0x0020, 0x4020 },
  173. { AFDIVW, AXXX, 2, 0, 17, C, 0x0020, 0x5020 },
  174. { AFETOXB, AXXX, 2, 0, 17, C, 0x0010, 0x5810 },
  175. { AFETOXD, AFETOXL, 8, 0, 17, C, 0x0010, 0x5410 },
  176. { AFETOXF, AFETOXL, 4, 0, 17, C, 0x0010, 0x4410 },
  177. { AFETOXL, AXXX, 4, 0, 17, C, 0x0010, 0x4010 },
  178. { AFETOXM1B, AXXX, 2, 0, 17, C, 0x0008, 0x5808 },
  179. { AFETOXM1D, AFETOXM1L, 8, 0, 17, C, 0x0008, 0x5408 },
  180. { AFETOXM1F, AFETOXM1L, 4, 0, 17, C, 0x0008, 0x4408 },
  181. { AFETOXM1L, AXXX, 4, 0, 17, C, 0x0008, 0x4008 },
  182. { AFETOXM1W, AXXX, 2, 0, 17, C, 0x0008, 0x5008 },
  183. { AFETOXW, AXXX, 2, 0, 17, C, 0x0010, 0x5010 },
  184. { AFGETEXPB, AXXX, 2, 0, 17, C, 0x001e, 0x581e },
  185. { AFGETEXPD, AFGETEXPL, 8, 0, 17, C, 0x001e, 0x541e },
  186. { AFGETEXPF, AFGETEXPL, 4, 0, 17, C, 0x001e, 0x441e },
  187. { AFGETEXPL, AXXX, 4, 0, 17, C, 0x001e, 0x401e },
  188. { AFGETEXPW, AXXX, 2, 0, 17, C, 0x001e, 0x501e },
  189. { AFGETMANB, AXXX, 2, 0, 17, C, 0x001f, 0x581f },
  190. { AFGETMAND, AFGETMANL, 8, 0, 17, C, 0x001f, 0x541f },
  191. { AFGETMANF, AFGETMANL, 4, 0, 17, C, 0x001f, 0x441f },
  192. { AFGETMANL, AXXX, 4, 0, 17, C, 0x001f, 0x401f },
  193. { AFGETMANW, AXXX, 2, 0, 17, C, 0x001f, 0x501f },
  194. { AFINTB, AXXX, 2, 0, 17, C, 0x0001, 0x5801 },
  195. { AFINTD, AFINTL, 8, 0, 17, C, 0x0001, 0x5401 },
  196. { AFINTF, AFINTL, 4, 0, 17, C, 0x0001, 0x4401 },
  197. { AFINTL, AXXX, 4, 0, 17, C, 0x0001, 0x4001 },
  198. { AFINTRZB, AXXX, 2, 0, 17, C, 0x0003, 0x5803 },
  199. { AFINTRZD, AFINTRZL, 8, 0, 17, C, 0x0003, 0x5403 },
  200. { AFINTRZF, AFINTRZL, 4, 0, 17, C, 0x0003, 0x4403 },
  201. { AFINTRZL, AXXX, 4, 0, 17, C, 0x0003, 0x4003 },
  202. { AFINTRZW, AXXX, 2, 0, 17, C, 0x0003, 0x5003 },
  203. { AFINTW, AXXX, 2, 0, 17, C, 0x0001, 0x5001 },
  204. { AFLOG10B, AXXX, 2, 0, 17, C, 0x0015, 0x5815 },
  205. { AFLOG10D, AFLOG10L, 8, 0, 17, C, 0x0015, 0x5415 },
  206. { AFLOG10F, AFLOG10L, 4, 0, 17, C, 0x0015, 0x4415 },
  207. { AFLOG10L, AXXX, 4, 0, 17, C, 0x0015, 0x4015 },
  208. { AFLOG10W, AXXX, 2, 0, 17, C, 0x0015, 0x5015 },
  209. { AFLOG2B, AXXX, 2, 0, 17, C, 0x0016, 0x5816 },
  210. { AFLOG2D, AFLOG2L, 8, 0, 17, C, 0x0016, 0x5416 },
  211. { AFLOG2F, AFLOG2L, 4, 0, 17, C, 0x0016, 0x4416 },
  212. { AFLOG2L, AXXX, 4, 0, 17, C, 0x0016, 0x4016 },
  213. { AFLOG2W, AXXX, 2, 0, 17, C, 0x0016, 0x5016 },
  214. { AFLOGNB, AXXX, 2, 0, 17, C, 0x0014, 0x5814 },
  215. { AFLOGND, AFLOGNL, 8, 0, 17, C, 0x0014, 0x5414 },
  216. { AFLOGNF, AFLOGNL, 4, 0, 17, C, 0x0014, 0x4414 },
  217. { AFLOGNL, AXXX, 4, 0, 17, C, 0x0014, 0x4014 },
  218. { AFLOGNP1B, AXXX, 2, 0, 17, C, 0x0006, 0x5806 },
  219. { AFLOGNP1D, AFLOGNP1L, 8, 0, 17, C, 0x0006, 0x5406 },
  220. { AFLOGNP1F, AFLOGNP1L, 4, 0, 17, C, 0x0006, 0x4406 },
  221. { AFLOGNP1L, AXXX, 4, 0, 17, C, 0x0006, 0x4006 },
  222. { AFLOGNP1W, AXXX, 2, 0, 17, C, 0x0006, 0x5006 },
  223. { AFLOGNW, AXXX, 2, 0, 17, C, 0x0014, 0x5014 },
  224. { AFMODB, AXXX, 2, 0, 17, C, 0x0021, 0x5821 },
  225. { AFMODD, AFMODL, 8, 0, 17, C, 0x0021, 0x5421 },
  226. { AFMODF, AFMODL, 4, 0, 17, C, 0x0021, 0x4421 },
  227. { AFMODL, AXXX, 4, 0, 17, C, 0x0021, 0x4021 },
  228. { AFMODW, AXXX, 2, 0, 17, C, 0x0021, 0x5021 },
  229. { AFMOVEB, AXXX, 2, -2, 16, C, 0x0000, 0x7800, 0x5800 },
  230. { AFMOVED, AFMOVEL, 8, -8, 16, C, 0x0000, 0x7400, 0x5400 },
  231. { AFMOVEF, AFMOVEL, 4, -4, 16, C, 0x0000, 0x6400, 0x4400 },
  232. { AFMOVEL, AXXX, 4, -4, 16, C, 0x0000, 0x6000, 0x4000 },
  233. { AFMOVEM, AXXX, 2, 2, 28, C },
  234. { AFMOVEMC, AXXX, 2, 2, 29, C },
  235. { AFMOVEW, AXXX, 2, -2, 16, C, 0x0000, 0x7000, 0x5000 },
  236. { AFMULB, AXXX, 2, 0, 17, C, 0x0023, 0x5823 },
  237. { AFMULD, AFMULL, 8, 0, 17, C, 0x0023, 0x5423 },
  238. { AFMULF, AFMULL, 4, 0, 17, C, 0x0023, 0x4423 },
  239. { AFMULL, AXXX, 4, 0, 17, C, 0x0023, 0x4023 },
  240. { AFMULW, AXXX, 2, 0, 17, C, 0x0023, 0x5023 },
  241. { AFNEGB, AXXX, 2, 0, 21, C, 0x001a, 0x581a },
  242. { AFNEGD, AFNEGL, 8, 0, 21, C, 0x001a, 0x541a },
  243. { AFNEGF, AFNEGL, 4, 0, 21, C, 0x001a, 0x441a },
  244. { AFNEGL, AXXX, 4, 0, 21, C, 0x001a, 0x401a },
  245. { AFNEGW, AXXX, 2, 0, 21, C, 0x001a, 0x501a },
  246. { AFREMB, AXXX, 2, 0, 17, C, 0x0025, 0x5825 },
  247. { AFREMD, AFREML, 8, 0, 17, C, 0x0025, 0x5425 },
  248. { AFREMF, AFREML, 4, 0, 17, C, 0x0025, 0x4425 },
  249. { AFREML, AXXX, 4, 0, 17, C, 0x0025, 0x4025 },
  250. { AFREMW, AXXX, 2, 0, 17, C, 0x0025, 0x5025 },
  251. { AFRESTORE, AXXX, 0, 2, 5, C+0x0140 },
  252. { AFSAVE, AXXX, 0, 2, 5, C+0x0100 },
  253. { AFSCALEB, AXXX, 2, 0, 17, C, 0x0026, 0x5826 },
  254. { AFSCALED, AFSCALEL, 8, 0, 17, C, 0x0026, 0x5426 },
  255. { AFSCALEF, AFSCALEL, 4, 0, 17, C, 0x0026, 0x4426 },
  256. { AFSCALEL, AXXX, 4, 0, 17, C, 0x0026, 0x4026 },
  257. { AFSCALEW, AXXX, 2, 0, 17, C, 0x0026, 0x5026 },
  258. { AFSEQ, AXXX, X1, X2, X3, 0xffff },
  259. { AFSF, AXXX, 4, X2, X3, 0xffff },
  260. { AFSGE, AXXX, X1, X2, X3, 0xffff },
  261. { AFSGT, AXXX, X1, X2, X3, 0xffff },
  262. { AFSINB, AXXX, 2, 0, 17, C, 0x000e, 0x580e },
  263. { AFSIND, AFSINL, 8, 0, 17, C, 0x000e, 0x540e },
  264. { AFSINF, AFSINL, 4, 0, 17, C, 0x000e, 0x440e },
  265. { AFSINHB, AXXX, 2, 0, 17, C, 0x0002, 0x5802 },
  266. { AFSINHD, AFSINHL, 8, 0, 17, C, 0x0002, 0x5402 },
  267. { AFSINHF, AFSINHL, 4, 0, 17, C, 0x0002, 0x4402 },
  268. { AFSINHL, AXXX, 4, 0, 17, C, 0x0002, 0x4002 },
  269. { AFSINHW, AXXX, 2, 0, 17, C, 0x0002, 0x5002 },
  270. { AFSINL, AXXX, 4, 0, 17, C, 0x000e, 0x400e },
  271. { AFSINW, AXXX, 2, 0, 17, C, 0x000e, 0x500e },
  272. { AFSLE, AXXX, X1, X2, X3, 0xffff },
  273. { AFSLT, AXXX, X1, X2, X3, 0xffff },
  274. { AFSNE, AXXX, X1, X2, X3, 0xffff },
  275. { AFSQRTB, AXXX, 2, 0, 17, C, 0x0004, 0x5804 },
  276. { AFSQRTD, AFSQRTL, 8, 0, 17, C, 0x0004, 0x5404 },
  277. { AFSQRTF, AFSQRTL, 4, 0, 17, C, 0x0004, 0x4404 },
  278. { AFSQRTL, AXXX, 4, 0, 17, C, 0x0004, 0x4004 },
  279. { AFSQRTW, AXXX, 2, 0, 17, C, 0x0004, 0x5004 },
  280. { AFST, AXXX, X1, X2, X3, 0xffff },
  281. { AFSUBB, AXXX, 2, 0, 17, C, 0x0028, 0x5828 },
  282. { AFSUBD, AFSUBL, 8, 0, 17, C, 0x0028, 0x5428 },
  283. { AFSUBF, AFSUBL, 4, 0, 17, C, 0x0028, 0x4428 },
  284. { AFSUBL, AXXX, 4, 0, 17, C, 0x0028, 0x4028 },
  285. { AFSUBW, AXXX, 2, 0, 17, C, 0x0028, 0x5028 },
  286. { AFTANB, AXXX, 2, 0, 17, C, 0x000f, 0x580f },
  287. { AFTAND, AFTANL, 8, 0, 17, C, 0x000f, 0x540f },
  288. { AFTANF, AFTANL, 4, 0, 17, C, 0x000f, 0x440f },
  289. { AFTANHB, AXXX, 2, 0, 17, C, 0x0009, 0x5809 },
  290. { AFTANHD, AFTANHL, 8, 0, 17, C, 0x0009, 0x5409 },
  291. { AFTANHF, AFTANHL, 4, 0, 17, C, 0x0009, 0x4409 },
  292. { AFTANHL, AXXX, 4, 0, 17, C, 0x0009, 0x4009 },
  293. { AFTANHW, AXXX, 2, 0, 17, C, 0x0009, 0x5009 },
  294. { AFTANL, AXXX, 4, 0, 17, C, 0x000f, 0x400f },
  295. { AFTANW, AXXX, 2, 0, 17, C, 0x000f, 0x500f },
  296. { AFTENTOXB, AXXX, 2, 0, 17, C, 0x0012, 0x5812 },
  297. { AFTENTOXD, AFTENTOXL, 8, 0, 17, C, 0x0012, 0x5412 },
  298. { AFTENTOXF, AFTENTOXL, 4, 0, 17, C, 0x0012, 0x4412 },
  299. { AFTENTOXL, AXXX, 4, 0, 17, C, 0x0012, 0x4012 },
  300. { AFTENTOXW, AXXX, 2, 0, 17, C, 0x0012, 0x5012 },
  301. { AFTSTB, AXXX, 0, 2, 20, C, 0x003a, 0x583a },
  302. { AFTSTD, AFTSTL, 0, 8, 20, C, 0x003a, 0x543a },
  303. { AFTSTF, AFTSTL, 0, 4, 20, C, 0x003a, 0x443a },
  304. { AFTSTL, AXXX, 0, 4, 20, C, 0x003a, 0x403a },
  305. { AFTSTW, AXXX, 0, 2, 20, C, 0x003a, 0x503a },
  306. { AFTWOTOXB, AXXX, 2, 0, 17, C, 0x0011, 0x5811 },
  307. { AFTWOTOXD, AFTWOTOXL, 8, 0, 17, C, 0x0011, 0x5411 },
  308. { AFTWOTOXF, AFTWOTOXL, 4, 0, 17, C, 0x0011, 0x4411 },
  309. { AFTWOTOXL, AXXX, 4, 0, 17, C, 0x0011, 0x4011 },
  310. { AFTWOTOXW, AXXX, 2, 0, 17, C, 0x0011, 0x5011 },
  311. { AGLOBL },
  312. { AGOK },
  313. { AHISTORY },
  314. { AILLEG, AXXX, 0, 0, 4, 0x4efc },
  315. { AINSTR },
  316. { AJMP, AXXX, 0, 0, 5, 0x4ec0 },
  317. { AJSR, AXXX, 0, 0, 5, 0x4e80 },
  318. { ALEA, AXXX, 0, 0, 6, 0x41c0 },
  319. { ALINKL },
  320. { ALINKW },
  321. { ALOCATE },
  322. { ALONG, AXXX, 0, 4, 23 },
  323. { ALSLB, AXXX, 0, 2, 12, 0xe108 },
  324. { ALSLL, AXXX, 0, 4, 12, 0xe188 },
  325. { ALSLW, AXXX, 0, 2, 12, 0xe148 },
  326. { ALSRB, AXXX, 0, 2, 12, 0xe008 },
  327. { ALSRL, AXXX, 0, 4, 12, 0xe088 },
  328. { ALSRW, AXXX, 0, 2, 12, 0xe048 },
  329. { AMOVB, AXXX, 2, -2, 2, 0x1000, 0x7000 },
  330. { AMOVEM, AXXX, 2, 2, 25, 0x48c0 },
  331. { AMOVEPL },
  332. { AMOVEPW },
  333. { AMOVESB },
  334. { AMOVESL },
  335. { AMOVESW, },
  336. { AMOVL, AXXX, 4, -4, 2, 0x2000, 0x7000 },
  337. { AMOVW, AXXX, 2, -2, 2, 0x3000, 0x7000 },
  338. { AMULSL, AXXX, 4, 0, 14, 0x4c00, 0x0800 },
  339. { AMULSW, AXXX, 2, 0, 13, 0xc1c0 },
  340. { AMULUL, AXXX, 4, 0, 14, 0x4c00, 0x0000 },
  341. { AMULUW, AXXX, 2, 0, 13, 0xc0c0 },
  342. { ANAME },
  343. { ANBCD },
  344. { ANEGB, AXXX, 0, 0, 5, 0x4400 },
  345. { ANEGL, AXXX, 0, 0, 5, 0x4480 },
  346. { ANEGW, AXXX, 0, 0, 5, 0x4440 },
  347. { ANEGXB },
  348. { ANEGXL },
  349. { ANEGXW },
  350. { ANOP },
  351. { ANOTB, AXXX, 0, 0, 5, 0x4600 },
  352. { ANOTL, AXXX, 0, 0, 5, 0x4680 },
  353. { ANOTW, AXXX, 0, 0, 5, 0x4640 },
  354. { AORB, AXXX, 2, 0, 9, 0x8000, 0x8100, 0x0000 },
  355. { AORL, AXXX, 4, 0, 9, 0x8080, 0x8180, 0x0080 },
  356. { AORW, AXXX, 2, 0, 9, 0x8040, 0x8140, 0x0040 },
  357. { APACK },
  358. { APEA, AXXX, 0, 0, 5, 0x4840 },
  359. { ARESET },
  360. { AROTLB, AXXX, 0, 2, 12, 0xe118 },
  361. { AROTLL, AXXX, 0, 4, 12, 0xe198 },
  362. { AROTLW, AXXX, 0, 2, 12, 0xe158 },
  363. { AROTRB, AXXX, 0, 2, 12, 0xe018 },
  364. { AROTRL, AXXX, 0, 4, 12, 0xe098 },
  365. { AROTRW, AXXX, 0, 2, 12, 0xe058 },
  366. { AROXLB },
  367. { AROXLL },
  368. { AROXLW },
  369. { AROXRB },
  370. { AROXRL },
  371. { AROXRW },
  372. { ARTD },
  373. { ARTE, AXXX, 0, 0, 4, 0x4e73 },
  374. { ARTM },
  375. { ARTR },
  376. { ARTS, AXXX, 0, 0, 4, 0x4e75 },
  377. { ASBCD },
  378. { ASCC },
  379. { ASCS },
  380. { ASEQ },
  381. { ASF },
  382. { ASGE },
  383. { ASGT },
  384. { ASHI },
  385. { ASLE },
  386. { ASLS },
  387. { ASLT },
  388. { ASMI },
  389. { ASNE },
  390. { ASPL },
  391. { AST },
  392. { ASTOP },
  393. { ASUBB, AXXX, 2, 0, 3, 0x9000, 0x5100, 0, 0x0400 },
  394. { ASUBL, AXXX, 4, 0, 3, 0x9080, 0x5180, 0x91c0, 0x0480 },
  395. { ASUBW, AXXX, 2, 0, 3, 0x9040, 0x5140, 0x90c0, 0x0440 },
  396. { ASUBXB },
  397. { ASUBXL },
  398. { ASUBXW },
  399. { ASVC },
  400. { ASVS },
  401. { ASWAP, AXXX, 0, 0, 35, 0x4840 },
  402. { ASYS, AXXX, 0, 2, 8, 0x4e40 },
  403. { ATAS, AXXX, 0, 2, 5, 0x4ac0 },
  404. { ATEXT },
  405. { ATRAP, AXXX, 0, 0, 30, 0x4e40 },
  406. { ATRAPCC },
  407. { ATRAPCS },
  408. { ATRAPEQ },
  409. { ATRAPF },
  410. { ATRAPGE },
  411. { ATRAPGT },
  412. { ATRAPHI },
  413. { ATRAPLE },
  414. { ATRAPLS },
  415. { ATRAPLT },
  416. { ATRAPMI },
  417. { ATRAPNE },
  418. { ATRAPPL },
  419. { ATRAPT },
  420. { ATRAPV },
  421. { ATRAPVC },
  422. { ATRAPVS },
  423. { ATSTB, AXXX, 0, 2, 5, 0x4a00 },
  424. { ATSTL, AXXX, 0, 4, 5, 0x4a80 },
  425. { ATSTW, AXXX, 0, 2, 5, 0x4a40 },
  426. { AUNLK },
  427. { AUNPK },
  428. { AWORD, AXXX, 0, 2, 23 },
  429. { AXXX }
  430. };
  431. char mmsize[] =
  432. {
  433. /* 0 */ 0, 2, 2, 2, 2,
  434. /* 5 */ 2, 2, 2, 4, 2,
  435. /* 10 */ 2, 2, 2, 2, 4,
  436. /* 15 */ 4, 4, 4, 4, 6,
  437. /* 20 */ 4, 4, 4, 0, 4,
  438. /* 25 */ 2, 2, 2, 2, 2,
  439. /* 30 */ 2, 4, 4, 0, 4,
  440. /* 35 */ 2, 0, 0, 0, 0,
  441. };