optab.c 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654
  1. #include "l.h"
  2. uchar ynone[] =
  3. {
  4. Ynone, Ynone, Zlit, 1,
  5. 0
  6. };
  7. uchar ytext[] =
  8. {
  9. Ymb, Yi32, Zpseudo,1,
  10. 0
  11. };
  12. uchar ynop[] =
  13. {
  14. Ynone, Ynone, Zpseudo,1,
  15. Ynone, Yml, Zpseudo,1,
  16. Ynone, Yrf, Zpseudo,1,
  17. Yml, Ynone, Zpseudo,1,
  18. Yrf, Ynone, Zpseudo,1,
  19. 0
  20. };
  21. uchar yxorb[] =
  22. {
  23. Yi32, Yal, Zib_, 1,
  24. Yi32, Ymb, Zibo_m, 2,
  25. Yrb, Ymb, Zr_m, 1,
  26. Ymb, Yrb, Zm_r, 1,
  27. 0
  28. };
  29. uchar yxorl[] =
  30. {
  31. Yi8, Yml, Zibo_m, 2,
  32. Yi32, Yax, Zil_, 1,
  33. Yi32, Yml, Zilo_m, 2,
  34. Yrl, Yml, Zr_m, 1,
  35. Yml, Yrl, Zm_r, 1,
  36. 0
  37. };
  38. uchar yaddl[] =
  39. {
  40. Yi8, Yml, Zibo_m, 2,
  41. Yi32, Yax, Zil_, 1,
  42. Yi32, Yml, Zilo_m, 2,
  43. Yrl, Yml, Zr_m, 1,
  44. Yml, Yrl, Zm_r, 1,
  45. 0
  46. };
  47. uchar yincb[] =
  48. {
  49. Ynone, Ymb, Zo_m, 2,
  50. 0
  51. };
  52. uchar yincl[] =
  53. {
  54. Ynone, Yrl, Z_rp, 1,
  55. Ynone, Yml, Zo_m, 2,
  56. 0
  57. };
  58. uchar ycmpb[] =
  59. {
  60. Yal, Yi32, Z_ib, 1,
  61. Ymb, Yi32, Zm_ibo, 2,
  62. Ymb, Yrb, Zm_r, 1,
  63. Yrb, Ymb, Zr_m, 1,
  64. 0
  65. };
  66. uchar ycmpl[] =
  67. {
  68. Yml, Yi8, Zm_ibo, 2,
  69. Yax, Yi32, Z_il, 1,
  70. Yml, Yi32, Zm_ilo, 2,
  71. Yml, Yrl, Zm_r, 1,
  72. Yrl, Yml, Zr_m, 1,
  73. 0
  74. };
  75. uchar yshb[] =
  76. {
  77. Yi1, Ymb, Zo_m, 2,
  78. Yi32, Ymb, Zibo_m, 2,
  79. Ycx, Ymb, Zo_m, 2,
  80. 0
  81. };
  82. uchar yshl[] =
  83. {
  84. Yi1, Yml, Zo_m, 2,
  85. Yi32, Yml, Zibo_m, 2,
  86. Ycl, Yml, Zo_m, 2,
  87. Ycx, Yml, Zo_m, 2,
  88. 0
  89. };
  90. uchar ytestb[] =
  91. {
  92. Yi32, Yal, Zib_, 1,
  93. Yi32, Ymb, Zibo_m, 2,
  94. Yrb, Ymb, Zr_m, 1,
  95. Ymb, Yrb, Zm_r, 1,
  96. 0
  97. };
  98. uchar ytestl[] =
  99. {
  100. Yi32, Yax, Zil_, 1,
  101. Yi32, Yml, Zilo_m, 2,
  102. Yrl, Yml, Zr_m, 1,
  103. Yml, Yrl, Zm_r, 1,
  104. 0
  105. };
  106. uchar ymovb[] =
  107. {
  108. Yrb, Ymb, Zr_m, 1,
  109. Ymb, Yrb, Zm_r, 1,
  110. Yi32, Yrb, Zib_rp, 1,
  111. Yi32, Ymb, Zibo_m, 2,
  112. 0
  113. };
  114. uchar ymovl[] =
  115. {
  116. Yrl, Yml, Zr_m, 1,
  117. Yml, Yrl, Zm_r, 1,
  118. Yi0, Yrl, Zclr, 1+2,
  119. // Yi0, Yml, Zibo_m, 2, // shorter but slower AND $0,dst
  120. Yi32, Yrl, Zil_rp, 1,
  121. Yi32, Yml, Zilo_m, 2,
  122. Yiauto, Yrl, Zaut_r, 2,
  123. 0
  124. };
  125. uchar ym_rl[] =
  126. {
  127. Ym, Yrl, Zm_r, 1,
  128. 0
  129. };
  130. uchar yrl_m[] =
  131. {
  132. Yrl, Ym, Zr_m, 1,
  133. 0
  134. };
  135. uchar ymb_rl[] =
  136. {
  137. Ymb, Yrl, Zm_r, 1,
  138. 0
  139. };
  140. uchar yml_rl[] =
  141. {
  142. Yml, Yrl, Zm_r, 1,
  143. 0
  144. };
  145. uchar yrl_ml[] =
  146. {
  147. Yrl, Yml, Zr_m, 1,
  148. 0
  149. };
  150. uchar yml_mb[] =
  151. {
  152. Yrb, Ymb, Zr_m, 1,
  153. Ymb, Yrb, Zm_r, 1,
  154. 0
  155. };
  156. uchar yml_ml[] =
  157. {
  158. Yrl, Yml, Zr_m, 1,
  159. Yml, Yrl, Zm_r, 1,
  160. 0
  161. };
  162. uchar ydivl[] =
  163. {
  164. Yml, Ynone, Zm_o, 2,
  165. 0
  166. };
  167. uchar ydivb[] =
  168. {
  169. Ymb, Ynone, Zm_o, 2,
  170. 0
  171. };
  172. uchar yimul[] =
  173. {
  174. Yml, Ynone, Zm_o, 2,
  175. Yi8, Yrl, Zib_rr, 1,
  176. Yi32, Yrl, Zil_rr, 1,
  177. 0
  178. };
  179. uchar ybyte[] =
  180. {
  181. Yi32, Ynone, Zbyte, 1,
  182. 0
  183. };
  184. uchar yin[] =
  185. {
  186. Yi32, Ynone, Zib_, 1,
  187. Ynone, Ynone, Zlit, 1,
  188. 0
  189. };
  190. uchar yint[] =
  191. {
  192. Yi32, Ynone, Zib_, 1,
  193. 0
  194. };
  195. uchar ypushl[] =
  196. {
  197. Yrl, Ynone, Zrp_, 1,
  198. Ym, Ynone, Zm_o, 2,
  199. Yi8, Ynone, Zib_, 1,
  200. Yi32, Ynone, Zil_, 1,
  201. 0
  202. };
  203. uchar ypopl[] =
  204. {
  205. Ynone, Yrl, Z_rp, 1,
  206. Ynone, Ym, Zo_m, 2,
  207. 0
  208. };
  209. uchar yscond[] =
  210. {
  211. Ynone, Ymb, Zo_m, 2,
  212. 0
  213. };
  214. uchar yjcond[] =
  215. {
  216. Ynone, Ybr, Zbr, 1,
  217. 0
  218. };
  219. uchar yloop[] =
  220. {
  221. Ynone, Ybr, Zloop, 1,
  222. 0
  223. };
  224. uchar ycall[] =
  225. {
  226. Ynone, Yml, Zo_m, 2,
  227. Ynone, Ybr, Zcall, 1,
  228. 0
  229. };
  230. uchar yjmp[] =
  231. {
  232. Ynone, Yml, Zo_m, 2,
  233. Ynone, Ybr, Zjmp, 1,
  234. 0
  235. };
  236. uchar yfmvd[] =
  237. {
  238. Ym, Yf0, Zm_o, 2,
  239. Yf0, Ym, Zo_m, 2,
  240. Yrf, Yf0, Zm_o, 2,
  241. Yf0, Yrf, Zo_m, 2,
  242. 0
  243. };
  244. uchar yfmvdp[] =
  245. {
  246. Yf0, Ym, Zo_m, 2,
  247. Yf0, Yrf, Zo_m, 2,
  248. 0
  249. };
  250. uchar yfmvf[] =
  251. {
  252. Ym, Yf0, Zm_o, 2,
  253. Yf0, Ym, Zo_m, 2,
  254. 0
  255. };
  256. uchar yfmvx[] =
  257. {
  258. Ym, Yf0, Zm_o, 2,
  259. 0
  260. };
  261. uchar yfmvp[] =
  262. {
  263. Yf0, Ym, Zo_m, 2,
  264. 0
  265. };
  266. uchar yfadd[] =
  267. {
  268. Ym, Yf0, Zm_o, 2,
  269. Yrf, Yf0, Zm_o, 2,
  270. Yf0, Yrf, Zo_m, 2,
  271. 0
  272. };
  273. uchar yfaddp[] =
  274. {
  275. Yf0, Yrf, Zo_m, 2,
  276. 0
  277. };
  278. uchar yfxch[] =
  279. {
  280. Yf0, Yrf, Zo_m, 2,
  281. Yrf, Yf0, Zm_o, 2,
  282. 0
  283. };
  284. uchar ycompp[] =
  285. {
  286. Yf0, Yrf, Zo_m, 2, /* botch is really f0,f1 */
  287. 0
  288. };
  289. uchar ystsw[] =
  290. {
  291. Ynone, Ym, Zo_m, 2,
  292. Ynone, Yax, Zlit, 1,
  293. 0
  294. };
  295. uchar ystcw[] =
  296. {
  297. Ynone, Ym, Zo_m, 2,
  298. Ym, Ynone, Zm_o, 2,
  299. 0
  300. };
  301. uchar ysvrs[] =
  302. {
  303. Ynone, Ym, Zo_m, 2,
  304. Ym, Ynone, Zm_o, 2,
  305. 0
  306. };
  307. Optab optab[] =
  308. /* as, ytab, andproto, opcode */
  309. {
  310. { AXXX },
  311. { AAAA, ynone, Px, 0x37 },
  312. { AAAD, ynone, Px, 0xd5,0x0a },
  313. { AAAM, ynone, Px, 0xd4,0x0a },
  314. { AAAS, ynone, Px, 0x3f },
  315. { AADCB, yxorb, Pb, 0x14,0x80,(02),0x10,0x10 },
  316. { AADCL, yxorl, Px, 0x83,(02),0x15,0x81,(02),0x11,0x13 },
  317. { AADCW, yxorl, Pe, 0x83,(02),0x15,0x81,(02),0x11,0x13 },
  318. { AADDB, yxorb, Px, 0x04,0x80,(00),0x00,0x02 },
  319. { AADDL, yaddl, Px, 0x83,(00),0x05,0x81,(00),0x01,0x03 },
  320. { AADDW, yaddl, Pe, 0x83,(00),0x05,0x81,(00),0x01,0x03 },
  321. { AADJSP },
  322. { AANDB, yxorb, Pb, 0x24,0x80,(04),0x20,0x22 },
  323. { AANDL, yxorl, Px, 0x83,(04),0x25,0x81,(04),0x21,0x23 },
  324. { AANDW, yxorl, Pe, 0x83,(04),0x25,0x81,(04),0x21,0x23 },
  325. { AARPL, yrl_ml, Px, 0x63 },
  326. { ABOUNDL, yrl_m, Px, 0x62 },
  327. { ABOUNDW, yrl_m, Pe, 0x62 },
  328. { ABSFL, yml_rl, Pm, 0xbc },
  329. { ABSFW, yml_rl, Pq, 0xbc },
  330. { ABSRL, yml_rl, Pm, 0xbd },
  331. { ABSRW, yml_rl, Pq, 0xbd },
  332. { ABTL, yml_rl, Pm, 0xa3 },
  333. { ABTW, yml_rl, Pq, 0xa3 },
  334. { ABTCL, yml_rl, Pm, 0xbb },
  335. { ABTCW, yml_rl, Pq, 0xbb },
  336. { ABTRL, yml_rl, Pm, 0xb3 },
  337. { ABTRW, yml_rl, Pq, 0xb3 },
  338. { ABTSL, yml_rl, Pm, 0xab },
  339. { ABTSW, yml_rl, Pq, 0xab },
  340. { ABYTE, ybyte, Px, 1 },
  341. { ACALL, ycall, Px, 0xff,(02),0xe8 },
  342. { ACLC, ynone, Px, 0xf8 },
  343. { ACLD, ynone, Px, 0xfc },
  344. { ACLI, ynone, Px, 0xfa },
  345. { ACLTS, ynone, Pm, 0x06 },
  346. { ACMC, ynone, Px, 0xf5 },
  347. { ACMPB, ycmpb, Pb, 0x3c,0x80,(07),0x38,0x3a },
  348. { ACMPL, ycmpl, Px, 0x83,(07),0x3d,0x81,(07),0x39,0x3b },
  349. { ACMPW, ycmpl, Pe, 0x83,(07),0x3d,0x81,(07),0x39,0x3b },
  350. { ACMPSB, ynone, Pb, 0xa6 },
  351. { ACMPSL, ynone, Px, 0xa7 },
  352. { ACMPSW, ynone, Pe, 0xa7 },
  353. { ADAA, ynone, Px, 0x27 },
  354. { ADAS, ynone, Px, 0x2f },
  355. { ADATA },
  356. { ADECB, yincb, Pb, 0xfe,(01) },
  357. { ADECL, yincl, Px, 0x48,0xff,(01) },
  358. { ADECW, yincl, Pe, 0x48,0xff,(01) },
  359. { ADIVB, ydivb, Pb, 0xf6,(06) },
  360. { ADIVL, ydivl, Px, 0xf7,(06) },
  361. { ADIVW, ydivl, Pe, 0xf7,(06) },
  362. { AENTER }, /* botch */
  363. { AGLOBL },
  364. { AGOK },
  365. { AHISTORY },
  366. { AHLT, ynone, Px, 0xf4 },
  367. { AIDIVB, ydivb, Pb, 0xf6,(07) },
  368. { AIDIVL, ydivl, Px, 0xf7,(07) },
  369. { AIDIVW, ydivl, Pe, 0xf7,(07) },
  370. { AIMULB, ydivb, Pb, 0xf6,(05) },
  371. { AIMULL, yimul, Px, 0xf7,(05),0x6b,0x69 },
  372. { AIMULW, yimul, Pe, 0xf7,(05),0x6b,0x69 },
  373. { AINB, yin, Pb, 0xe4,0xec },
  374. { AINL, yin, Px, 0xe5,0xed },
  375. { AINW, yin, Pe, 0xe5,0xed },
  376. { AINCB, yincb, Pb, 0xfe,(00) },
  377. { AINCL, yincl, Px, 0x40,0xff,(00) },
  378. { AINCW, yincl, Pe, 0x40,0xff,(00) },
  379. { AINSB, ynone, Pb, 0x6c },
  380. { AINSL, ynone, Px, 0x6d },
  381. { AINSW, ynone, Pe, 0x6d },
  382. { AINT, yint, Px, 0xcd },
  383. { AINTO, ynone, Px, 0xce },
  384. { AIRETL, ynone, Px, 0xcf },
  385. { AIRETW, ynone, Pe, 0xcf },
  386. { AJCC, yjcond, Px, 0x73,0x83,(00) },
  387. { AJCS, yjcond, Px, 0x72,0x82 },
  388. { AJCXZ, yloop, Px, 0xe3 },
  389. { AJEQ, yjcond, Px, 0x74,0x84 },
  390. { AJGE, yjcond, Px, 0x7d,0x8d },
  391. { AJGT, yjcond, Px, 0x7f,0x8f },
  392. { AJHI, yjcond, Px, 0x77,0x87 },
  393. { AJLE, yjcond, Px, 0x7e,0x8e },
  394. { AJLS, yjcond, Px, 0x76,0x86 },
  395. { AJLT, yjcond, Px, 0x7c,0x8c },
  396. { AJMI, yjcond, Px, 0x78,0x88 },
  397. { AJMP, yjmp, Px, 0xff,(04),0xeb,0xe9 },
  398. { AJNE, yjcond, Px, 0x75,0x85 },
  399. { AJOC, yjcond, Px, 0x71,0x81,(00) },
  400. { AJOS, yjcond, Px, 0x70,0x80,(00) },
  401. { AJPC, yjcond, Px, 0x7b,0x8b },
  402. { AJPL, yjcond, Px, 0x79,0x89 },
  403. { AJPS, yjcond, Px, 0x7a,0x8a },
  404. { ALAHF, ynone, Px, 0x9f },
  405. { ALARL, yml_rl, Pm, 0x02 },
  406. { ALARW, yml_rl, Pq, 0x02 },
  407. { ALEAL, ym_rl, Px, 0x8d },
  408. { ALEAW, ym_rl, Pe, 0x8d },
  409. { ALEAVEL, ynone, Px, 0xc9 },
  410. { ALEAVEW, ynone, Pe, 0xc9 },
  411. { ALOCK, ynone, Px, 0xf0 },
  412. { ALODSB, ynone, Pb, 0xac },
  413. { ALODSL, ynone, Px, 0xad },
  414. { ALODSW, ynone, Pe, 0xad },
  415. { ALONG, ybyte, Px, 4 },
  416. { ALOOP, yloop, Px, 0xe2 },
  417. { ALOOPEQ, yloop, Px, 0xe1 },
  418. { ALOOPNE, yloop, Px, 0xe0 },
  419. { ALSLL, yml_rl, Pm, 0x03 },
  420. { ALSLW, yml_rl, Pq, 0x03 },
  421. { AMOVB, ymovb, Pb, 0x88,0x8a,0xb0,0xc6,(00) },
  422. { AMOVL, ymovl, Px, 0x89,0x8b,0x31,0x83,(04),0xb8,0xc7,(00) },
  423. { AMOVW, ymovl, Pe, 0x89,0x8b,0x31,0x83,(04),0xb8,0xc7,(00) },
  424. { AMOVBLSX, ymb_rl, Pm, 0xbe },
  425. { AMOVBLZX, ymb_rl, Pm, 0xb6 },
  426. { AMOVBWSX, ymb_rl, Pq, 0xbe },
  427. { AMOVBWZX, ymb_rl, Pq, 0xb6 },
  428. { AMOVWLSX, yml_rl, Pm, 0xbf },
  429. { AMOVWLZX, yml_rl, Pm, 0xb7 },
  430. { AMOVSB, ynone, Pb, 0xa4 },
  431. { AMOVSL, ynone, Px, 0xa5 },
  432. { AMOVSW, ynone, Pe, 0xa5 },
  433. { AMULB, ydivb, Pb, 0xf6,(04) },
  434. { AMULL, ydivl, Px, 0xf7,(04) },
  435. { AMULW, ydivl, Pe, 0xf7,(04) },
  436. { ANAME },
  437. { ANEGB, yscond, Px, 0xf6,(03) },
  438. { ANEGL, yscond, Px, 0xf7,(03) },
  439. { ANEGW, yscond, Pe, 0xf7,(03) },
  440. { ANOP, ynop, Px,0,0 },
  441. { ANOTB, yscond, Px, 0xf6,(02) },
  442. { ANOTL, yscond, Px, 0xf7,(02) },
  443. { ANOTW, yscond, Pe, 0xf7,(02) },
  444. { AORB, yxorb, Pb, 0x0c,0x80,(01),0x08,0x0a },
  445. { AORL, yxorl, Px, 0x83,(01),0x0d,0x81,(01),0x09,0x0b },
  446. { AORW, yxorl, Pe, 0x83,(01),0x0d,0x81,(01),0x09,0x0b },
  447. { AOUTB, yin, Pb, 0xe6,0xee },
  448. { AOUTL, yin, Px, 0xe7,0xef },
  449. { AOUTW, yin, Pe, 0xe7,0xef },
  450. { AOUTSB, ynone, Pb, 0x6e },
  451. { AOUTSL, ynone, Px, 0x6f },
  452. { AOUTSW, ynone, Pe, 0x6f },
  453. { APOPAL, ynone, Px, 0x61 },
  454. { APOPAW, ynone, Pe, 0x61 },
  455. { APOPFL, ynone, Px, 0x9d },
  456. { APOPFW, ynone, Pe, 0x9d },
  457. { APOPL, ypopl, Px, 0x58,0x8f,(00) },
  458. { APOPW, ypopl, Pe, 0x58,0x8f,(00) },
  459. { APUSHAL, ynone, Px, 0x60 },
  460. { APUSHAW, ynone, Pe, 0x60 },
  461. { APUSHFL, ynone, Px, 0x9c },
  462. { APUSHFW, ynone, Pe, 0x9c },
  463. { APUSHL, ypushl, Px, 0x50,0xff,(06),0x6a,0x68 },
  464. { APUSHW, ypushl, Pe, 0x50,0xff,(06),0x6a,0x68 },
  465. { ARCLB, yshb, Pb, 0xd0,(02),0xc0,(02),0xd2,(02) },
  466. { ARCLL, yshl, Px, 0xd1,(02),0xc1,(02),0xd3,(02),0xd3,(02) },
  467. { ARCLW, yshl, Pe, 0xd1,(02),0xc1,(02),0xd3,(02),0xd3,(02) },
  468. { ARCRB, yshb, Pb, 0xd0,(03),0xc0,(03),0xd2,(03) },
  469. { ARCRL, yshl, Px, 0xd1,(03),0xc1,(03),0xd3,(03),0xd3,(03) },
  470. { ARCRW, yshl, Pe, 0xd1,(03),0xc1,(03),0xd3,(03),0xd3,(03) },
  471. { AREP, ynone, Px, 0xf3 },
  472. { AREPN, ynone, Px, 0xf2 },
  473. { ARET, ynone, Px, 0xc3 },
  474. { AROLB, yshb, Pb, 0xd0,(00),0xc0,(00),0xd2,(00) },
  475. { AROLL, yshl, Px, 0xd1,(00),0xc1,(00),0xd3,(00),0xd3,(00) },
  476. { AROLW, yshl, Pe, 0xd1,(00),0xc1,(00),0xd3,(00),0xd3,(00) },
  477. { ARORB, yshb, Pb, 0xd0,(01),0xc0,(01),0xd2,(01) },
  478. { ARORL, yshl, Px, 0xd1,(01),0xc1,(01),0xd3,(01),0xd3,(01) },
  479. { ARORW, yshl, Pe, 0xd1,(01),0xc1,(01),0xd3,(01),0xd3,(01) },
  480. { ASAHF, ynone, Px, 0x9e },
  481. { ASALB, yshb, Pb, 0xd0,(04),0xc0,(04),0xd2,(04) },
  482. { ASALL, yshl, Px, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) },
  483. { ASALW, yshl, Pe, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) },
  484. { ASARB, yshb, Pb, 0xd0,(07),0xc0,(07),0xd2,(07) },
  485. { ASARL, yshl, Px, 0xd1,(07),0xc1,(07),0xd3,(07),0xd3,(07) },
  486. { ASARW, yshl, Pe, 0xd1,(07),0xc1,(07),0xd3,(07),0xd3,(07) },
  487. { ASBBB, yxorb, Pb, 0x1c,0x80,(03),0x18,0x1a },
  488. { ASBBL, yxorl, Px, 0x83,(03),0x1d,0x81,(03),0x19,0x1b },
  489. { ASBBW, yxorl, Pe, 0x83,(03),0x1d,0x81,(03),0x19,0x1b },
  490. { ASCASB, ynone, Pb, 0xae },
  491. { ASCASL, ynone, Px, 0xaf },
  492. { ASCASW, ynone, Pe, 0xaf },
  493. { ASETCC, yscond, Pm, 0x93,(00) },
  494. { ASETCS, yscond, Pm, 0x92,(00) },
  495. { ASETEQ, yscond, Pm, 0x94,(00) },
  496. { ASETGE, yscond, Pm, 0x9d,(00) },
  497. { ASETGT, yscond, Pm, 0x9f,(00) },
  498. { ASETHI, yscond, Pm, 0x97,(00) },
  499. { ASETLE, yscond, Pm, 0x9e,(00) },
  500. { ASETLS, yscond, Pm, 0x96,(00) },
  501. { ASETLT, yscond, Pm, 0x9c,(00) },
  502. { ASETMI, yscond, Pm, 0x98,(00) },
  503. { ASETNE, yscond, Pm, 0x95,(00) },
  504. { ASETOC, yscond, Pm, 0x91,(00) },
  505. { ASETOS, yscond, Pm, 0x90,(00) },
  506. { ASETPC, yscond, Pm, 0x96,(00) },
  507. { ASETPL, yscond, Pm, 0x99,(00) },
  508. { ASETPS, yscond, Pm, 0x9a,(00) },
  509. { ACDQ, ynone, Px, 0x99 },
  510. { ACWD, ynone, Pe, 0x99 },
  511. { ASHLB, yshb, Pb, 0xd0,(04),0xc0,(04),0xd2,(04) },
  512. { ASHLL, yshl, Px, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) },
  513. { ASHLW, yshl, Pe, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) },
  514. { ASHRB, yshb, Pb, 0xd0,(05),0xc0,(05),0xd2,(05) },
  515. { ASHRL, yshl, Px, 0xd1,(05),0xc1,(05),0xd3,(05),0xd3,(05) },
  516. { ASHRW, yshl, Pe, 0xd1,(05),0xc1,(05),0xd3,(05),0xd3,(05) },
  517. { ASTC, ynone, Px, 0xf9 },
  518. { ASTD, ynone, Px, 0xfd },
  519. { ASTI, ynone, Px, 0xfb },
  520. { ASTOSB, ynone, Pb, 0xaa },
  521. { ASTOSL, ynone, Px, 0xab },
  522. { ASTOSW, ynone, Pe, 0xab },
  523. { ASUBB, yxorb, Pb, 0x2c,0x80,(05),0x28,0x2a },
  524. { ASUBL, yaddl, Px, 0x83,(05),0x2d,0x81,(05),0x29,0x2b },
  525. { ASUBW, yaddl, Pe, 0x83,(05),0x2d,0x81,(05),0x29,0x2b },
  526. { ASYSCALL, ynone, Px, 0xcd,100 },
  527. { ATESTB, ytestb, Pb, 0xa8,0xf6,(00),0x84,0x84 },
  528. { ATESTL, ytestl, Px, 0xa9,0xf7,(00),0x85,0x85 },
  529. { ATESTW, ytestl, Pe, 0xa9,0xf7,(00),0x85,0x85 },
  530. { ATEXT, ytext, Px },
  531. { AVERR, ydivl, Pm, 0x00,(04) },
  532. { AVERW, ydivl, Pm, 0x00,(05) },
  533. { AWAIT, ynone, Px, 0x9b },
  534. { AWORD, ybyte, Px, 2 },
  535. { AXCHGB, yml_mb, Pb, 0x86,0x86 },
  536. { AXCHGL, yml_ml, Px, 0x87,0x87 },
  537. { AXCHGW, yml_ml, Pe, 0x87,0x87 },
  538. { AXLAT, ynone, Px, 0xd7 },
  539. { AXORB, yxorb, Pb, 0x34,0x80,(06),0x30,0x32 },
  540. { AXORL, yxorl, Px, 0x83,(06),0x35,0x81,(06),0x31,0x33 },
  541. { AXORW, yxorl, Pe, 0x83,(06),0x35,0x81,(06),0x31,0x33 },
  542. { AFMOVB, yfmvx, Px, 0xdf,(04) },
  543. { AFMOVBP, yfmvp, Px, 0xdf,(06) },
  544. { AFMOVD, yfmvd, Px, 0xdd,(00),0xdd,(02),0xd9,(00),0xdd,(02) },
  545. { AFMOVDP, yfmvdp, Px, 0xdd,(03),0xdd,(03) },
  546. { AFMOVF, yfmvf, Px, 0xd9,(00),0xd9,(02) },
  547. { AFMOVFP, yfmvp, Px, 0xd9,(03) },
  548. { AFMOVL, yfmvf, Px, 0xdb,(00),0xdb,(02) },
  549. { AFMOVLP, yfmvp, Px, 0xdb,(03) },
  550. { AFMOVV, yfmvx, Px, 0xdf,(05) },
  551. { AFMOVVP, yfmvp, Px, 0xdf,(07) },
  552. { AFMOVW, yfmvf, Px, 0xdf,(00),0xdf,(02) },
  553. { AFMOVWP, yfmvp, Px, 0xdf,(03) },
  554. { AFMOVX, yfmvx, Px, 0xdb,(05) },
  555. { AFMOVXP, yfmvp, Px, 0xdb,(07) },
  556. { AFCOMB },
  557. { AFCOMBP },
  558. { AFCOMD, yfadd, Px, 0xdc,(02),0xd8,(02),0xdc,(02) }, /* botch */
  559. { AFCOMDP, yfadd, Px, 0xdc,(03),0xd8,(03),0xdc,(03) }, /* botch */
  560. { AFCOMDPP, ycompp, Px, 0xde,(03) },
  561. { AFCOMF, yfmvx, Px, 0xd8,(02) },
  562. { AFCOMFP, yfmvx, Px, 0xd8,(03) },
  563. { AFCOML, yfmvx, Px, 0xda,(02) },
  564. { AFCOMLP, yfmvx, Px, 0xda,(03) },
  565. { AFCOMW, yfmvx, Px, 0xde,(02) },
  566. { AFCOMWP, yfmvx, Px, 0xde,(03) },
  567. { AFUCOM, ycompp, Px, 0xdd,(04) },
  568. { AFUCOMP, ycompp, Px, 0xdd,(05) },
  569. { AFUCOMPP, ycompp, Px, 0xda,(13) },
  570. { AFADDDP, yfaddp, Px, 0xde,(00) },
  571. { AFADDW, yfmvx, Px, 0xde,(00) },
  572. { AFADDL, yfmvx, Px, 0xda,(00) },
  573. { AFADDF, yfmvx, Px, 0xd8,(00) },
  574. { AFADDD, yfadd, Px, 0xdc,(00),0xd8,(00),0xdc,(00) },
  575. { AFMULDP, yfaddp, Px, 0xde,(01) },
  576. { AFMULW, yfmvx, Px, 0xde,(01) },
  577. { AFMULL, yfmvx, Px, 0xda,(01) },
  578. { AFMULF, yfmvx, Px, 0xd8,(01) },
  579. { AFMULD, yfadd, Px, 0xdc,(01),0xd8,(01),0xdc,(01) },
  580. { AFSUBDP, yfaddp, Px, 0xde,(05) },
  581. { AFSUBW, yfmvx, Px, 0xde,(04) },
  582. { AFSUBL, yfmvx, Px, 0xda,(04) },
  583. { AFSUBF, yfmvx, Px, 0xd8,(04) },
  584. { AFSUBD, yfadd, Px, 0xdc,(04),0xd8,(04),0xdc,(05) },
  585. { AFSUBRDP, yfaddp, Px, 0xde,(04) },
  586. { AFSUBRW, yfmvx, Px, 0xde,(05) },
  587. { AFSUBRL, yfmvx, Px, 0xda,(05) },
  588. { AFSUBRF, yfmvx, Px, 0xd8,(05) },
  589. { AFSUBRD, yfadd, Px, 0xdc,(05),0xd8,(05),0xdc,(04) },
  590. { AFDIVDP, yfaddp, Px, 0xde,(07) },
  591. { AFDIVW, yfmvx, Px, 0xde,(06) },
  592. { AFDIVL, yfmvx, Px, 0xda,(06) },
  593. { AFDIVF, yfmvx, Px, 0xd8,(06) },
  594. { AFDIVD, yfadd, Px, 0xdc,(06),0xd8,(06),0xdc,(07) },
  595. { AFDIVRDP, yfaddp, Px, 0xde,(06) },
  596. { AFDIVRW, yfmvx, Px, 0xde,(07) },
  597. { AFDIVRL, yfmvx, Px, 0xda,(07) },
  598. { AFDIVRF, yfmvx, Px, 0xd8,(07) },
  599. { AFDIVRD, yfadd, Px, 0xdc,(07),0xd8,(07),0xdc,(06) },
  600. { AFXCHD, yfxch, Px, 0xd9,(01),0xd9,(01) },
  601. { AFFREE },
  602. { AFLDCW, ystcw, Px, 0xd9,(05),0xd9,(05) },
  603. { AFLDENV, ystcw, Px, 0xd9,(04),0xd9,(04) },
  604. { AFRSTOR, ysvrs, Px, 0xdd,(04),0xdd,(04) },
  605. { AFSAVE, ysvrs, Px, 0xdd,(06),0xdd,(06) },
  606. { AFSTCW, ystcw, Px, 0xd9,(07),0xd9,(07) },
  607. { AFSTENV, ystcw, Px, 0xd9,(06),0xd9,(06) },
  608. { AFSTSW, ystsw, Px, 0xdd,(07),0xdf,0xe0 },
  609. { AF2XM1, ynone, Px, 0xd9, 0xf0 },
  610. { AFABS, ynone, Px, 0xd9, 0xe1 },
  611. { AFCHS, ynone, Px, 0xd9, 0xe0 },
  612. { AFCLEX, ynone, Px, 0xdb, 0xe2 },
  613. { AFCOS, ynone, Px, 0xd9, 0xff },
  614. { AFDECSTP, ynone, Px, 0xd9, 0xf6 },
  615. { AFINCSTP, ynone, Px, 0xd9, 0xf7 },
  616. { AFINIT, ynone, Px, 0xdb, 0xe3 },
  617. { AFLD1, ynone, Px, 0xd9, 0xe8 },
  618. { AFLDL2E, ynone, Px, 0xd9, 0xea },
  619. { AFLDL2T, ynone, Px, 0xd9, 0xe9 },
  620. { AFLDLG2, ynone, Px, 0xd9, 0xec },
  621. { AFLDLN2, ynone, Px, 0xd9, 0xed },
  622. { AFLDPI, ynone, Px, 0xd9, 0xeb },
  623. { AFLDZ, ynone, Px, 0xd9, 0xee },
  624. { AFNOP, ynone, Px, 0xd9, 0xd0 },
  625. { AFPATAN, ynone, Px, 0xd9, 0xf3 },
  626. { AFPREM, ynone, Px, 0xd9, 0xf8 },
  627. { AFPREM1, ynone, Px, 0xd9, 0xf5 },
  628. { AFPTAN, ynone, Px, 0xd9, 0xf2 },
  629. { AFRNDINT, ynone, Px, 0xd9, 0xfc },
  630. { AFSCALE, ynone, Px, 0xd9, 0xfd },
  631. { AFSIN, ynone, Px, 0xd9, 0xfe },
  632. { AFSINCOS, ynone, Px, 0xd9, 0xfb },
  633. { AFSQRT, ynone, Px, 0xd9, 0xfa },
  634. { AFTST, ynone, Px, 0xd9, 0xe4 },
  635. { AFXAM, ynone, Px, 0xd9, 0xe5 },
  636. { AFXTRACT, ynone, Px, 0xd9, 0xf4 },
  637. { AFYL2X, ynone, Px, 0xd9, 0xf1 },
  638. { AFYL2XP1, ynone, Px, 0xd9, 0xf9 },
  639. { AEND },
  640. 0
  641. };