optab.c 16 KB

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