optab.c 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. /*
  2. * This file is part of the UCB release of Plan 9. It is subject to the license
  3. * terms in the LICENSE file found in the top-level directory of this
  4. * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
  5. * part of the UCB release of Plan 9, including this file, may be copied,
  6. * modified, propagated, or distributed except according to the terms contained
  7. * in the LICENSE file.
  8. */
  9. #include "l.h"
  10. Optab optab[] =
  11. {
  12. { ATEXT, C_LEXT, C_NONE, C_NONE, C_LCON, 0, 0, 0 },
  13. { ATEXT, C_LEXT, C_REG, C_NONE, C_LCON, 0, 0, 0 },
  14. { ATEXT, C_LEXT, C_NONE, C_LCON, C_LCON, 0, 0, 0 },
  15. { ATEXT, C_LEXT, C_REG, C_LCON, C_LCON, 0, 0, 0 },
  16. { ATEXT, C_ADDR, C_NONE, C_NONE, C_LCON, 0, 0, 0 },
  17. { ATEXT, C_ADDR, C_REG, C_NONE, C_LCON, 0, 0, 0 },
  18. { ATEXT, C_ADDR, C_NONE, C_LCON, C_LCON, 0, 0, 0 },
  19. { ATEXT, C_ADDR, C_REG, C_LCON, C_LCON, 0, 0, 0 },
  20. { AMOVW, C_REG, C_NONE, C_NONE, C_REG, 1, 4, 0 },
  21. { AMOVB, C_REG, C_NONE, C_NONE, C_REG, 12, 4, 0 },
  22. { AMOVBZ, C_REG, C_NONE, C_NONE, C_REG, 13, 4, 0 },
  23. { AADD, C_REG, C_REG, C_NONE, C_REG, 2, 4, 0 },
  24. { AADD, C_REG, C_NONE, C_NONE, C_REG, 2, 4, 0 },
  25. { AADD, C_ADDCON,C_REG, C_NONE, C_REG, 4, 4, 0 },
  26. { AADD, C_ADDCON,C_NONE, C_NONE, C_REG, 4, 4, 0 },
  27. { AADD, C_UCON, C_REG, C_NONE, C_REG, 20, 4, 0 },
  28. { AADD, C_UCON, C_NONE, C_NONE, C_REG, 20, 4, 0 },
  29. { AADD, C_LCON, C_REG, C_NONE, C_REG, 22, 12, 0 },
  30. { AADD, C_LCON, C_NONE, C_NONE, C_REG, 22, 12, 0 },
  31. { AADDC, C_REG, C_REG, C_NONE, C_REG, 2, 4, 0 },
  32. { AADDC, C_REG, C_NONE, C_NONE, C_REG, 2, 4, 0 },
  33. { AADDC, C_ADDCON,C_REG, C_NONE, C_REG, 4, 4, 0 },
  34. { AADDC, C_ADDCON,C_NONE, C_NONE, C_REG, 4, 4, 0 },
  35. { AADDC, C_LCON, C_REG, C_NONE, C_REG, 22, 12, 0 },
  36. { AADDC, C_LCON, C_NONE, C_NONE, C_REG, 22, 12, 0 },
  37. { AAND, C_REG, C_REG, C_NONE, C_REG, 6, 4, 0 }, /* logical, no literal */
  38. { AAND, C_REG, C_NONE, C_NONE, C_REG, 6, 4, 0 },
  39. { AANDCC, C_REG, C_REG, C_NONE, C_REG, 6, 4, 0 },
  40. { AANDCC, C_REG, C_NONE, C_NONE, C_REG, 6, 4, 0 },
  41. { AANDCC, C_ANDCON,C_NONE, C_NONE, C_REG, 58, 4, 0 },
  42. { AANDCC, C_ANDCON,C_REG, C_NONE, C_REG, 58, 4, 0 },
  43. { AANDCC, C_UCON, C_NONE, C_NONE, C_REG, 59, 4, 0 },
  44. { AANDCC, C_UCON, C_REG, C_NONE, C_REG, 59, 4, 0 },
  45. { AANDCC, C_LCON, C_NONE, C_NONE, C_REG, 23, 12, 0 },
  46. { AANDCC, C_LCON, C_REG, C_NONE, C_REG, 23, 12, 0 },
  47. { AMULLW, C_REG, C_REG, C_NONE, C_REG, 2, 4, 0 },
  48. { AMULLW, C_REG, C_NONE, C_NONE, C_REG, 2, 4, 0 },
  49. { AMULLW, C_ADDCON,C_REG, C_NONE, C_REG, 4, 4, 0 },
  50. { AMULLW, C_ADDCON,C_NONE, C_NONE, C_REG, 4, 4, 0 },
  51. { AMULLW, C_ANDCON,C_REG, C_NONE, C_REG, 4, 4, 0 },
  52. { AMULLW, C_ANDCON, C_NONE, C_NONE, C_REG, 4, 4, 0 },
  53. { AMULLW, C_LCON, C_REG, C_NONE, C_REG, 22, 12, 0},
  54. { AMULLW, C_LCON, C_NONE, C_NONE, C_REG, 22, 12, 0},
  55. { ASUBC, C_REG, C_REG, C_NONE, C_REG, 10, 4, 0 },
  56. { ASUBC, C_REG, C_NONE, C_NONE, C_REG, 10, 4, 0 },
  57. { ASUBC, C_REG, C_NONE, C_ADDCON, C_REG, 27, 4, 0 },
  58. { ASUBC, C_REG, C_NONE, C_LCON, C_REG, 28, 12, 0},
  59. { AOR, C_REG, C_REG, C_NONE, C_REG, 6, 4, 0 }, /* logical, literal not cc (or/xor) */
  60. { AOR, C_REG, C_NONE, C_NONE, C_REG, 6, 4, 0 },
  61. { AOR, C_ANDCON, C_NONE, C_NONE, C_REG, 58, 4, 0 },
  62. { AOR, C_ANDCON, C_REG, C_NONE, C_REG, 58, 4, 0 },
  63. { AOR, C_UCON, C_NONE, C_NONE, C_REG, 59, 4, 0 },
  64. { AOR, C_UCON, C_REG, C_NONE, C_REG, 59, 4, 0 },
  65. { AOR, C_LCON, C_NONE, C_NONE, C_REG, 23, 12, 0 },
  66. { AOR, C_LCON, C_REG, C_NONE, C_REG, 23, 12, 0 },
  67. { ADIVW, C_REG, C_REG, C_NONE, C_REG, 2, 4, 0 }, /* op r1[,r2],r3 */
  68. { ADIVW, C_REG, C_NONE, C_NONE, C_REG, 2, 4, 0 },
  69. { ASUB, C_REG, C_REG, C_NONE, C_REG, 10, 4, 0 }, /* op r2[,r1],r3 */
  70. { ASUB, C_REG, C_NONE, C_NONE, C_REG, 10, 4, 0 },
  71. { ASLW, C_REG, C_NONE, C_NONE, C_REG, 6, 4, 0 },
  72. { ASLW, C_REG, C_REG, C_NONE, C_REG, 6, 4, 0 },
  73. { ASLW, C_SCON, C_REG, C_NONE, C_REG, 57, 4, 0 },
  74. { ASLW, C_SCON, C_NONE, C_NONE, C_REG, 57, 4, 0 },
  75. { ASRAW, C_REG, C_NONE, C_NONE, C_REG, 6, 4, 0 },
  76. { ASRAW, C_REG, C_REG, C_NONE, C_REG, 6, 4, 0 },
  77. { ASRAW, C_SCON, C_REG, C_NONE, C_REG, 56, 4, 0 },
  78. { ASRAW, C_SCON, C_NONE, C_NONE, C_REG, 56, 4, 0 },
  79. { ARLWMI, C_SCON, C_REG, C_LCON, C_REG, 62, 4, 0 },
  80. { ARLWMI, C_REG, C_REG, C_LCON, C_REG, 63, 4, 0 },
  81. { AFADD, C_FREG, C_NONE, C_NONE, C_FREG, 2, 4, 0 },
  82. { AFADD, C_FREG, C_REG, C_NONE, C_FREG, 2, 4, 0 },
  83. { AFABS, C_FREG, C_NONE, C_NONE, C_FREG, 33, 4, 0 },
  84. { AFABS, C_NONE, C_NONE, C_NONE, C_FREG, 33, 4, 0 },
  85. { AFMOVD, C_FREG, C_NONE, C_NONE, C_FREG, 33, 4, 0 },
  86. { AFMADD, C_FREG, C_REG, C_FREG, C_FREG, 34, 4, 0 },
  87. { AFMUL, C_FREG, C_NONE, C_NONE, C_FREG, 32, 4, 0 },
  88. { AFMUL, C_FREG, C_REG, C_NONE, C_FREG, 32, 4, 0 },
  89. { AMOVW, C_REG, C_REG, C_NONE, C_ZOREG, 7, 4, REGZERO },
  90. { AMOVBZ, C_REG, C_REG, C_NONE, C_ZOREG, 7, 4, REGZERO },
  91. { AMOVBZU, C_REG, C_REG, C_NONE, C_ZOREG, 7, 4, REGZERO },
  92. { AMOVB, C_REG, C_REG, C_NONE, C_ZOREG, 7, 4, REGZERO },
  93. { AMOVBU, C_REG, C_REG, C_NONE, C_ZOREG, 7, 4, REGZERO },
  94. { AMOVW, C_REG, C_NONE, C_NONE, C_SEXT, 7, 4, REGSB },
  95. { AMOVBZ, C_REG, C_NONE, C_NONE, C_SEXT, 7, 4, REGSB },
  96. { AMOVB, C_REG, C_NONE, C_NONE, C_SEXT, 7, 4, REGSB },
  97. { AMOVW, C_REG, C_NONE, C_NONE, C_SAUTO, 7, 4, REGSP },
  98. { AMOVBZ, C_REG, C_NONE, C_NONE, C_SAUTO, 7, 4, REGSP },
  99. { AMOVB, C_REG, C_NONE, C_NONE, C_SAUTO, 7, 4, REGSP },
  100. { AMOVW, C_REG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO },
  101. { AMOVBZ, C_REG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO },
  102. { AMOVBZU, C_REG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO },
  103. { AMOVB, C_REG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO },
  104. { AMOVBU, C_REG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO },
  105. { AMOVW, C_ZOREG,C_REG, C_NONE, C_REG, 8, 4, REGZERO },
  106. { AMOVBZ, C_ZOREG,C_REG, C_NONE, C_REG, 8, 4, REGZERO },
  107. { AMOVBZU, C_ZOREG,C_REG, C_NONE, C_REG, 8, 4, REGZERO },
  108. { AMOVB, C_ZOREG,C_REG, C_NONE, C_REG, 9, 8, REGZERO },
  109. { AMOVBU, C_ZOREG,C_REG, C_NONE, C_REG, 9, 8, REGZERO },
  110. { AMOVW, C_SEXT, C_NONE, C_NONE, C_REG, 8, 4, REGSB },
  111. { AMOVBZ, C_SEXT, C_NONE, C_NONE, C_REG, 8, 4, REGSB },
  112. { AMOVB, C_SEXT, C_NONE, C_NONE, C_REG, 9, 8, REGSB },
  113. { AMOVW, C_SAUTO,C_NONE, C_NONE, C_REG, 8, 4, REGSP },
  114. { AMOVBZ, C_SAUTO,C_NONE, C_NONE, C_REG, 8, 4, REGSP },
  115. { AMOVB, C_SAUTO,C_NONE, C_NONE, C_REG, 9, 8, REGSP },
  116. { AMOVW, C_SOREG,C_NONE, C_NONE, C_REG, 8, 4, REGZERO },
  117. { AMOVBZ, C_SOREG,C_NONE, C_NONE, C_REG, 8, 4, REGZERO },
  118. { AMOVBZU, C_SOREG,C_NONE, C_NONE, C_REG, 8, 4, REGZERO },
  119. { AMOVB, C_SOREG,C_NONE, C_NONE, C_REG, 9, 8, REGZERO },
  120. { AMOVBU, C_SOREG,C_NONE, C_NONE, C_REG, 9, 8, REGZERO },
  121. { AMOVW, C_REG, C_NONE, C_NONE, C_LEXT, 35, 8, REGSB },
  122. { AMOVBZ, C_REG, C_NONE, C_NONE, C_LEXT, 35, 8, REGSB },
  123. { AMOVB, C_REG, C_NONE, C_NONE, C_LEXT, 35, 8, REGSB },
  124. { AMOVW, C_REG, C_NONE, C_NONE, C_LAUTO, 35, 8, REGSP },
  125. { AMOVBZ, C_REG, C_NONE, C_NONE, C_LAUTO, 35, 8, REGSP },
  126. { AMOVB, C_REG, C_NONE, C_NONE, C_LAUTO, 35, 8, REGSP },
  127. { AMOVW, C_REG, C_NONE, C_NONE, C_LOREG, 35, 8, REGZERO },
  128. { AMOVBZ, C_REG, C_NONE, C_NONE, C_LOREG, 35, 8, REGZERO },
  129. { AMOVB, C_REG, C_NONE, C_NONE, C_LOREG, 35, 8, REGZERO },
  130. { AMOVW, C_REG, C_NONE, C_NONE, C_ADDR, 74, 8, 0 },
  131. { AMOVBZ, C_REG, C_NONE, C_NONE, C_ADDR, 74, 8, 0 },
  132. { AMOVB, C_REG, C_NONE, C_NONE, C_ADDR, 74, 8, 0 },
  133. { AMOVW, C_LEXT, C_NONE, C_NONE, C_REG, 36, 8, REGSB },
  134. { AMOVBZ, C_LEXT, C_NONE, C_NONE, C_REG, 36, 8, REGSB },
  135. { AMOVB, C_LEXT, C_NONE, C_NONE, C_REG, 37, 12, REGSB },
  136. { AMOVW, C_LAUTO,C_NONE, C_NONE, C_REG, 36, 8, REGSP },
  137. { AMOVBZ, C_LAUTO,C_NONE, C_NONE, C_REG, 36, 8, REGSP },
  138. { AMOVB, C_LAUTO,C_NONE, C_NONE, C_REG, 37, 12, REGSP },
  139. { AMOVW, C_LOREG,C_NONE, C_NONE, C_REG, 36, 8, REGZERO },
  140. { AMOVBZ, C_LOREG,C_NONE, C_NONE, C_REG, 36, 8, REGZERO },
  141. { AMOVB, C_LOREG,C_NONE, C_NONE, C_REG, 37, 12, REGZERO },
  142. { AMOVW, C_ADDR, C_NONE, C_NONE, C_REG, 75, 8, 0 },
  143. { AMOVBZ, C_ADDR, C_NONE, C_NONE, C_REG, 75, 8, 0 },
  144. { AMOVB, C_ADDR, C_NONE, C_NONE, C_REG, 76, 12, 0 },
  145. { AMOVW, C_SECON,C_NONE, C_NONE, C_REG, 3, 4, REGSB },
  146. { AMOVW, C_SACON,C_NONE, C_NONE, C_REG, 3, 4, REGSP },
  147. { AMOVW, C_LECON,C_NONE, C_NONE, C_REG, 26, 8, REGSB },
  148. { AMOVW, C_LACON,C_NONE, C_NONE, C_REG, 26, 8, REGSP },
  149. { AMOVW, C_ADDCON,C_NONE, C_NONE, C_REG, 3, 4, REGZERO },
  150. { AMOVW, C_UCON, C_NONE, C_NONE, C_REG, 3, 4, REGZERO },
  151. { AMOVW, C_LCON, C_NONE, C_NONE, C_REG, 19, 8, 0 },
  152. { AMOVHBR, C_ZOREG, C_REG, C_NONE, C_REG, 45, 4, 0 },
  153. { AMOVHBR, C_ZOREG, C_NONE, C_NONE, C_REG, 45, 4, 0 },
  154. { AMOVHBR, C_REG, C_REG, C_NONE, C_ZOREG, 44, 4, 0 },
  155. { AMOVHBR, C_REG, C_NONE, C_NONE, C_ZOREG, 44, 4, 0 },
  156. { ASYSCALL, C_NONE, C_NONE, C_NONE, C_NONE, 5, 4, 0 },
  157. { ABEQ, C_NONE, C_NONE, C_NONE, C_SBRA, 16, 4, 0 },
  158. { ABEQ, C_CREG, C_NONE, C_NONE, C_SBRA, 16, 4, 0 },
  159. { ABR, C_NONE, C_NONE, C_NONE, C_LBRA, 11, 4, 0 },
  160. { ABC, C_SCON, C_REG, C_NONE, C_SBRA, 16, 4, 0 },
  161. { ABC, C_SCON, C_REG, C_NONE, C_LBRA, 17, 4, 0 },
  162. { ABR, C_NONE, C_NONE, C_NONE, C_LR, 18, 4, 0 },
  163. { ABR, C_NONE, C_NONE, C_NONE, C_CTR, 18, 4, 0 },
  164. { ABR, C_NONE, C_NONE, C_NONE, C_ZOREG, 15, 8, 0 },
  165. { ABC, C_NONE, C_REG, C_NONE, C_LR, 18, 4, 0 },
  166. { ABC, C_NONE, C_REG, C_NONE, C_CTR, 18, 4, 0 },
  167. { ABC, C_SCON, C_REG, C_NONE, C_LR, 18, 4, 0 },
  168. { ABC, C_SCON, C_REG, C_NONE, C_CTR, 18, 4, 0 },
  169. { ABC, C_NONE, C_NONE, C_NONE, C_ZOREG, 15, 8, 0 },
  170. { AFMOVD, C_SEXT, C_NONE, C_NONE, C_FREG, 8, 4, REGSB },
  171. { AFMOVD, C_SAUTO,C_NONE, C_NONE, C_FREG, 8, 4, REGSP },
  172. { AFMOVD, C_SOREG,C_NONE, C_NONE, C_FREG, 8, 4, REGZERO },
  173. { AFMOVD, C_LEXT, C_NONE, C_NONE, C_FREG, 8, 4, REGSB },
  174. { AFMOVD, C_LAUTO,C_NONE, C_NONE, C_FREG, 8, 4, REGSP },
  175. { AFMOVD, C_LOREG,C_NONE, C_NONE, C_FREG, 8, 4, REGZERO },
  176. { AFMOVD, C_ADDR, C_NONE, C_NONE, C_FREG, 75, 8, 0 },
  177. { AFMOVD, C_FREG, C_NONE, C_NONE, C_SEXT, 7, 4, REGSB },
  178. { AFMOVD, C_FREG, C_NONE, C_NONE, C_SAUTO, 7, 4, REGSP },
  179. { AFMOVD, C_FREG, C_NONE, C_NONE, C_SOREG, 7, 4, REGZERO },
  180. { AFMOVD, C_FREG, C_NONE, C_NONE, C_LEXT, 7, 4, REGSB },
  181. { AFMOVD, C_FREG, C_NONE, C_NONE, C_LAUTO, 7, 4, REGSP },
  182. { AFMOVD, C_FREG, C_NONE, C_NONE, C_LOREG, 7, 4, REGZERO },
  183. { AFMOVD, C_FREG, C_NONE, C_NONE, C_ADDR, 74, 8, 0 },
  184. { ASYNC, C_NONE, C_NONE, C_NONE, C_NONE, 46, 4, 0 },
  185. { AWORD, C_LCON, C_NONE, C_NONE, C_NONE, 40, 4, 0 },
  186. { AADDME, C_REG, C_NONE, C_NONE, C_REG, 47, 4, 0 },
  187. { AEXTSB, C_REG, C_NONE, C_NONE, C_REG, 48, 4, 0 },
  188. { AEXTSB, C_NONE, C_NONE, C_NONE, C_REG, 48, 4, 0 },
  189. { ANEG, C_REG, C_NONE, C_NONE, C_REG, 47, 4, 0 },
  190. { ANEG, C_NONE, C_NONE, C_NONE, C_REG, 47, 4, 0 },
  191. { AREM, C_REG, C_NONE, C_NONE, C_REG, 51, 12, 0 },
  192. { AREM, C_REG, C_REG, C_NONE, C_REG, 51, 12, 0 },
  193. { AMTFSB0, C_SCON, C_NONE, C_NONE, C_NONE, 52, 4, 0 },
  194. { AMOVFL, C_FPSCR, C_NONE, C_NONE, C_FREG, 53, 4, 0 },
  195. { AMOVFL, C_FREG, C_NONE, C_NONE, C_FPSCR, 64, 4, 0 },
  196. { AMOVFL, C_FREG, C_NONE, C_LCON, C_FPSCR, 64, 4, 0 },
  197. { AMOVFL, C_LCON, C_NONE, C_NONE, C_FPSCR, 65, 4, 0 },
  198. { AMOVW, C_REG, C_NONE, C_NONE, C_MSR, 54, 4, 0 },
  199. { AMOVW, C_MSR, C_NONE, C_NONE, C_REG, 54, 4, 0 },
  200. { AMOVW, C_SREG, C_NONE, C_NONE, C_REG, 55, 4, 0 },
  201. { AMOVW, C_REG, C_NONE, C_NONE, C_SREG, 55, 4, 0 },
  202. { AMOVW, C_SREG, C_REG, C_NONE, C_REG, 55, 4, 0 }, /* MOVW SR(Rn), Rm and v.v.*/
  203. { AMOVW, C_REG, C_REG, C_NONE, C_SREG, 55, 4, 0 },
  204. { AMOVW, C_REG, C_NONE, C_NONE, C_SPR, 66, 4, 0 },
  205. { AMOVW, C_REG, C_NONE, C_NONE, C_LR, 66, 4, 0 },
  206. { AMOVW, C_REG, C_NONE, C_NONE, C_CTR, 66, 4, 0 },
  207. { AMOVW, C_REG, C_NONE, C_NONE, C_XER, 66, 4, 0 },
  208. { AMOVW, C_SPR, C_NONE, C_NONE, C_REG, 66, 4, 0 },
  209. { AMOVW, C_LR, C_NONE, C_NONE, C_REG, 66, 4, 0 },
  210. { AMOVW, C_CTR, C_NONE, C_NONE, C_REG, 66, 4, 0 },
  211. { AMOVW, C_XER, C_NONE, C_NONE, C_REG, 66, 4, 0 },
  212. { AMOVFL, C_FPSCR, C_NONE, C_NONE, C_CREG, 73, 4, 0 },
  213. { AMOVFL, C_CREG, C_NONE, C_NONE, C_CREG, 67, 4, 0 },
  214. { AMOVW, C_XER, C_NONE, C_NONE, C_CREG, 72, 4, 0 },
  215. { AMOVW, C_CREG, C_NONE, C_NONE, C_REG, 68, 4, 0 },
  216. { AMOVFL, C_REG, C_NONE, C_LCON, C_CREG, 69, 4, 0 },
  217. { AMOVFL, C_REG, C_NONE, C_NONE, C_CREG, 69, 4, 0 },
  218. { AMOVW, C_REG, C_NONE, C_NONE, C_CREG, 69, 4, 0 },
  219. { ACMP, C_REG, C_NONE, C_NONE, C_REG, 70, 4, 0 },
  220. { ACMP, C_REG, C_REG, C_NONE, C_REG, 70, 4, 0 },
  221. { ACMP, C_REG, C_NONE, C_NONE, C_ADDCON, 71, 4, 0 },
  222. { ACMP, C_REG, C_REG, C_NONE, C_ADDCON, 71, 4, 0 },
  223. { ACMPU, C_REG, C_NONE, C_NONE, C_REG, 70, 4, 0 },
  224. { ACMPU, C_REG, C_REG, C_NONE, C_REG, 70, 4, 0 },
  225. { ACMPU, C_REG, C_NONE, C_NONE, C_ANDCON, 71, 4, 0 },
  226. { ACMPU, C_REG, C_REG, C_NONE, C_ANDCON, 71, 4, 0 },
  227. { AFCMPO, C_FREG, C_NONE, C_NONE, C_FREG, 70, 4, 0 },
  228. { AFCMPO, C_FREG, C_REG, C_NONE, C_FREG, 70, 4, 0 },
  229. { ATW, C_LCON, C_REG, C_NONE, C_REG, 60, 4, 0 },
  230. { ATW, C_LCON, C_REG, C_NONE, C_ADDCON, 61, 4, 0 },
  231. { ADCBF, C_ZOREG, C_NONE, C_NONE, C_NONE, 43, 4, 0 },
  232. { ADCBF, C_ZOREG, C_REG, C_NONE, C_NONE, 43, 4, 0 },
  233. { AECOWX, C_REG, C_REG, C_NONE, C_ZOREG, 44, 4, 0 },
  234. { AECIWX, C_ZOREG, C_REG, C_NONE, C_REG, 45, 4, 0 },
  235. { AECOWX, C_REG, C_NONE, C_NONE, C_ZOREG, 44, 4, 0 },
  236. { AECIWX, C_ZOREG, C_NONE, C_NONE, C_REG, 45, 4, 0 },
  237. { AEIEIO, C_NONE, C_NONE, C_NONE, C_NONE, 46, 4, 0 },
  238. { ATLBIE, C_REG, C_NONE, C_NONE, C_NONE, 49, 4, 0 },
  239. { ASTSW, C_REG, C_NONE, C_NONE, C_ZOREG, 44, 4, 0 },
  240. { ASTSW, C_REG, C_NONE, C_LCON, C_ZOREG, 41, 4, 0 },
  241. { ALSW, C_ZOREG, C_NONE, C_NONE, C_REG, 45, 4, 0 },
  242. { ALSW, C_ZOREG, C_NONE, C_LCON, C_REG, 42, 4, 0 },
  243. { AMACCHW, C_REG, C_REG, C_NONE, C_REG, 2, 4, 0 }, /* op rb,ra,rt */
  244. { AFSMOVS, C_ZOREG, C_REG, C_NONE, C_FREG, 45, 4, 0 },
  245. { AFSMOVS, C_ZOREG, C_NONE, C_NONE, C_FREG, 45, 4, 0 },
  246. { AFSMOVS, C_FREG, C_REG, C_NONE, C_ZOREG, 44, 4, 0 },
  247. { AFSMOVS, C_FREG, C_NONE, C_NONE, C_ZOREG, 44, 4, 0 },
  248. { AFPMOVD, C_ZOREG, C_REG, C_NONE, C_FREG, 45, 4, 0 },
  249. { AFPMOVD, C_ZOREG, C_NONE, C_NONE, C_FREG, 45, 4, 0 },
  250. { AFPMOVD, C_FREG, C_REG, C_NONE, C_ZOREG, 44, 4, 0 },
  251. { AFPMOVD, C_FREG, C_NONE, C_NONE, C_ZOREG, 44, 4, 0 },
  252. { AFPMOVD, C_FREG, C_NONE, C_NONE, C_FREG, 33, 4, 0 }, /* f[xps]mr */
  253. { AFMOVSPD, C_FREG, C_NONE, C_NONE, C_FREG, 33, 4, 0 }, /* fsm[tf]p */
  254. { AXXX, C_NONE, C_NONE, C_NONE, C_NONE, 0, 4, 0 },
  255. };