i386-reg.tbl 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  1. // i386 register table.
  2. // Copyright (C) 2007-2022 Free Software Foundation, Inc.
  3. //
  4. // This file is part of the GNU opcodes library.
  5. //
  6. // This library is free software; you can redistribute it and/or modify
  7. // it under the terms of the GNU General Public License as published by
  8. // the Free Software Foundation; either version 3, or (at your option)
  9. // any later version.
  10. //
  11. // It is distributed in the hope that it will be useful, but WITHOUT
  12. // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  13. // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
  14. // License for more details.
  15. //
  16. // You should have received a copy of the GNU General Public License
  17. // along with GAS; see the file COPYING. If not, write to the Free
  18. // Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
  19. // 02110-1301, USA.
  20. // 8 bit regs
  21. al, Class=Reg|Instance=Accum|Byte, 0, 0, Dw2Inval, Dw2Inval
  22. cl, Class=Reg|Instance=RegC|Byte, 0, 1, Dw2Inval, Dw2Inval
  23. dl, Class=Reg|Byte, 0, 2, Dw2Inval, Dw2Inval
  24. bl, Class=Reg|Byte, 0, 3, Dw2Inval, Dw2Inval
  25. ah, Class=Reg|Byte, 0, 4, Dw2Inval, Dw2Inval
  26. ch, Class=Reg|Byte, 0, 5, Dw2Inval, Dw2Inval
  27. dh, Class=Reg|Byte, 0, 6, Dw2Inval, Dw2Inval
  28. bh, Class=Reg|Byte, 0, 7, Dw2Inval, Dw2Inval
  29. axl, Class=Reg|Byte, RegRex64, 0, Dw2Inval, Dw2Inval
  30. cxl, Class=Reg|Byte, RegRex64, 1, Dw2Inval, Dw2Inval
  31. dxl, Class=Reg|Byte, RegRex64, 2, Dw2Inval, Dw2Inval
  32. bxl, Class=Reg|Byte, RegRex64, 3, Dw2Inval, Dw2Inval
  33. spl, Class=Reg|Byte, RegRex64, 4, Dw2Inval, Dw2Inval
  34. bpl, Class=Reg|Byte, RegRex64, 5, Dw2Inval, Dw2Inval
  35. sil, Class=Reg|Byte, RegRex64, 6, Dw2Inval, Dw2Inval
  36. dil, Class=Reg|Byte, RegRex64, 7, Dw2Inval, Dw2Inval
  37. r8b, Class=Reg|Byte, RegRex|RegRex64, 0, Dw2Inval, Dw2Inval
  38. r9b, Class=Reg|Byte, RegRex|RegRex64, 1, Dw2Inval, Dw2Inval
  39. r10b, Class=Reg|Byte, RegRex|RegRex64, 2, Dw2Inval, Dw2Inval
  40. r11b, Class=Reg|Byte, RegRex|RegRex64, 3, Dw2Inval, Dw2Inval
  41. r12b, Class=Reg|Byte, RegRex|RegRex64, 4, Dw2Inval, Dw2Inval
  42. r13b, Class=Reg|Byte, RegRex|RegRex64, 5, Dw2Inval, Dw2Inval
  43. r14b, Class=Reg|Byte, RegRex|RegRex64, 6, Dw2Inval, Dw2Inval
  44. r15b, Class=Reg|Byte, RegRex|RegRex64, 7, Dw2Inval, Dw2Inval
  45. // 16 bit regs
  46. ax, Class=Reg|Instance=Accum|Word, 0, 0, Dw2Inval, Dw2Inval
  47. cx, Class=Reg|Word, 0, 1, Dw2Inval, Dw2Inval
  48. dx, Class=Reg|Instance=RegD|Word, 0, 2, Dw2Inval, Dw2Inval
  49. bx, Class=Reg|Word|BaseIndex, 0, 3, Dw2Inval, Dw2Inval
  50. sp, Class=Reg|Word, 0, 4, Dw2Inval, Dw2Inval
  51. bp, Class=Reg|Word|BaseIndex, 0, 5, Dw2Inval, Dw2Inval
  52. si, Class=Reg|Word|BaseIndex, 0, 6, Dw2Inval, Dw2Inval
  53. di, Class=Reg|Word|BaseIndex, 0, 7, Dw2Inval, Dw2Inval
  54. r8w, Class=Reg|Word, RegRex, 0, Dw2Inval, Dw2Inval
  55. r9w, Class=Reg|Word, RegRex, 1, Dw2Inval, Dw2Inval
  56. r10w, Class=Reg|Word, RegRex, 2, Dw2Inval, Dw2Inval
  57. r11w, Class=Reg|Word, RegRex, 3, Dw2Inval, Dw2Inval
  58. r12w, Class=Reg|Word, RegRex, 4, Dw2Inval, Dw2Inval
  59. r13w, Class=Reg|Word, RegRex, 5, Dw2Inval, Dw2Inval
  60. r14w, Class=Reg|Word, RegRex, 6, Dw2Inval, Dw2Inval
  61. r15w, Class=Reg|Word, RegRex, 7, Dw2Inval, Dw2Inval
  62. // 32 bit regs
  63. eax, Class=Reg|Instance=Accum|Dword|BaseIndex, 0, 0, 0, Dw2Inval
  64. ecx, Class=Reg|Instance=RegC|Dword|BaseIndex, 0, 1, 1, Dw2Inval
  65. edx, Class=Reg|Instance=RegD|Dword|BaseIndex, 0, 2, 2, Dw2Inval
  66. ebx, Class=Reg|Instance=RegB|Dword|BaseIndex, 0, 3, 3, Dw2Inval
  67. esp, Class=Reg|Dword, 0, 4, 4, Dw2Inval
  68. ebp, Class=Reg|Dword|BaseIndex, 0, 5, 5, Dw2Inval
  69. esi, Class=Reg|Dword|BaseIndex, 0, 6, 6, Dw2Inval
  70. edi, Class=Reg|Dword|BaseIndex, 0, 7, 7, Dw2Inval
  71. r8d, Class=Reg|Dword|BaseIndex, RegRex, 0, Dw2Inval, Dw2Inval
  72. r9d, Class=Reg|Dword|BaseIndex, RegRex, 1, Dw2Inval, Dw2Inval
  73. r10d, Class=Reg|Dword|BaseIndex, RegRex, 2, Dw2Inval, Dw2Inval
  74. r11d, Class=Reg|Dword|BaseIndex, RegRex, 3, Dw2Inval, Dw2Inval
  75. r12d, Class=Reg|Dword|BaseIndex, RegRex, 4, Dw2Inval, Dw2Inval
  76. r13d, Class=Reg|Dword|BaseIndex, RegRex, 5, Dw2Inval, Dw2Inval
  77. r14d, Class=Reg|Dword|BaseIndex, RegRex, 6, Dw2Inval, Dw2Inval
  78. r15d, Class=Reg|Dword|BaseIndex, RegRex, 7, Dw2Inval, Dw2Inval
  79. rax, Class=Reg|Instance=Accum|Qword|BaseIndex, 0, 0, Dw2Inval, 0
  80. rcx, Class=Reg|Instance=RegC|Qword|BaseIndex, 0, 1, Dw2Inval, 2
  81. rdx, Class=Reg|Instance=RegD|Qword|BaseIndex, 0, 2, Dw2Inval, 1
  82. rbx, Class=Reg|Instance=RegB|Qword|BaseIndex, 0, 3, Dw2Inval, 3
  83. rsp, Class=Reg|Qword, 0, 4, Dw2Inval, 7
  84. rbp, Class=Reg|Qword|BaseIndex, 0, 5, Dw2Inval, 6
  85. rsi, Class=Reg|Qword|BaseIndex, 0, 6, Dw2Inval, 4
  86. rdi, Class=Reg|Qword|BaseIndex, 0, 7, Dw2Inval, 5
  87. r8, Class=Reg|Qword|BaseIndex, RegRex, 0, Dw2Inval, 8
  88. r9, Class=Reg|Qword|BaseIndex, RegRex, 1, Dw2Inval, 9
  89. r10, Class=Reg|Qword|BaseIndex, RegRex, 2, Dw2Inval, 10
  90. r11, Class=Reg|Qword|BaseIndex, RegRex, 3, Dw2Inval, 11
  91. r12, Class=Reg|Qword|BaseIndex, RegRex, 4, Dw2Inval, 12
  92. r13, Class=Reg|Qword|BaseIndex, RegRex, 5, Dw2Inval, 13
  93. r14, Class=Reg|Qword|BaseIndex, RegRex, 6, Dw2Inval, 14
  94. r15, Class=Reg|Qword|BaseIndex, RegRex, 7, Dw2Inval, 15
  95. // Vector mask registers.
  96. k0, Class=RegMask, 0, 0, 93, 118
  97. k1, Class=RegMask, 0, 1, 94, 119
  98. k2, Class=RegMask, 0, 2, 95, 120
  99. k3, Class=RegMask, 0, 3, 96, 121
  100. k4, Class=RegMask, 0, 4, 97, 122
  101. k5, Class=RegMask, 0, 5, 98, 123
  102. k6, Class=RegMask, 0, 6, 99, 124
  103. k7, Class=RegMask, 0, 7, 100, 125
  104. // Segment registers.
  105. es, Class=SReg, 0, 0, 40, 50
  106. cs, Class=SReg, 0, 1, 41, 51
  107. ss, Class=SReg, 0, 2, 42, 52
  108. ds, Class=SReg, 0, 3, 43, 53
  109. fs, Class=SReg, 0, 4, 44, 54
  110. gs, Class=SReg, 0, 5, 45, 55
  111. flat, Class=SReg, 0, RegFlat, Dw2Inval, Dw2Inval
  112. // Control registers.
  113. cr0, Class=RegCR, 0, 0, Dw2Inval, Dw2Inval
  114. cr1, Class=RegCR, 0, 1, Dw2Inval, Dw2Inval
  115. cr2, Class=RegCR, 0, 2, Dw2Inval, Dw2Inval
  116. cr3, Class=RegCR, 0, 3, Dw2Inval, Dw2Inval
  117. cr4, Class=RegCR, 0, 4, Dw2Inval, Dw2Inval
  118. cr5, Class=RegCR, 0, 5, Dw2Inval, Dw2Inval
  119. cr6, Class=RegCR, 0, 6, Dw2Inval, Dw2Inval
  120. cr7, Class=RegCR, 0, 7, Dw2Inval, Dw2Inval
  121. cr8, Class=RegCR, RegRex, 0, Dw2Inval, Dw2Inval
  122. cr9, Class=RegCR, RegRex, 1, Dw2Inval, Dw2Inval
  123. cr10, Class=RegCR, RegRex, 2, Dw2Inval, Dw2Inval
  124. cr11, Class=RegCR, RegRex, 3, Dw2Inval, Dw2Inval
  125. cr12, Class=RegCR, RegRex, 4, Dw2Inval, Dw2Inval
  126. cr13, Class=RegCR, RegRex, 5, Dw2Inval, Dw2Inval
  127. cr14, Class=RegCR, RegRex, 6, Dw2Inval, Dw2Inval
  128. cr15, Class=RegCR, RegRex, 7, Dw2Inval, Dw2Inval
  129. // Debug registers.
  130. db0, Class=RegDR, 0, 0, Dw2Inval, Dw2Inval
  131. db1, Class=RegDR, 0, 1, Dw2Inval, Dw2Inval
  132. db2, Class=RegDR, 0, 2, Dw2Inval, Dw2Inval
  133. db3, Class=RegDR, 0, 3, Dw2Inval, Dw2Inval
  134. db4, Class=RegDR, 0, 4, Dw2Inval, Dw2Inval
  135. db5, Class=RegDR, 0, 5, Dw2Inval, Dw2Inval
  136. db6, Class=RegDR, 0, 6, Dw2Inval, Dw2Inval
  137. db7, Class=RegDR, 0, 7, Dw2Inval, Dw2Inval
  138. db8, Class=RegDR, RegRex, 0, Dw2Inval, Dw2Inval
  139. db9, Class=RegDR, RegRex, 1, Dw2Inval, Dw2Inval
  140. db10, Class=RegDR, RegRex, 2, Dw2Inval, Dw2Inval
  141. db11, Class=RegDR, RegRex, 3, Dw2Inval, Dw2Inval
  142. db12, Class=RegDR, RegRex, 4, Dw2Inval, Dw2Inval
  143. db13, Class=RegDR, RegRex, 5, Dw2Inval, Dw2Inval
  144. db14, Class=RegDR, RegRex, 6, Dw2Inval, Dw2Inval
  145. db15, Class=RegDR, RegRex, 7, Dw2Inval, Dw2Inval
  146. dr0, Class=RegDR, 0, 0, Dw2Inval, Dw2Inval
  147. dr1, Class=RegDR, 0, 1, Dw2Inval, Dw2Inval
  148. dr2, Class=RegDR, 0, 2, Dw2Inval, Dw2Inval
  149. dr3, Class=RegDR, 0, 3, Dw2Inval, Dw2Inval
  150. dr4, Class=RegDR, 0, 4, Dw2Inval, Dw2Inval
  151. dr5, Class=RegDR, 0, 5, Dw2Inval, Dw2Inval
  152. dr6, Class=RegDR, 0, 6, Dw2Inval, Dw2Inval
  153. dr7, Class=RegDR, 0, 7, Dw2Inval, Dw2Inval
  154. dr8, Class=RegDR, RegRex, 0, Dw2Inval, Dw2Inval
  155. dr9, Class=RegDR, RegRex, 1, Dw2Inval, Dw2Inval
  156. dr10, Class=RegDR, RegRex, 2, Dw2Inval, Dw2Inval
  157. dr11, Class=RegDR, RegRex, 3, Dw2Inval, Dw2Inval
  158. dr12, Class=RegDR, RegRex, 4, Dw2Inval, Dw2Inval
  159. dr13, Class=RegDR, RegRex, 5, Dw2Inval, Dw2Inval
  160. dr14, Class=RegDR, RegRex, 6, Dw2Inval, Dw2Inval
  161. dr15, Class=RegDR, RegRex, 7, Dw2Inval, Dw2Inval
  162. // Test registers.
  163. tr0, Class=RegTR, 0, 0, Dw2Inval, Dw2Inval
  164. tr1, Class=RegTR, 0, 1, Dw2Inval, Dw2Inval
  165. tr2, Class=RegTR, 0, 2, Dw2Inval, Dw2Inval
  166. tr3, Class=RegTR, 0, 3, Dw2Inval, Dw2Inval
  167. tr4, Class=RegTR, 0, 4, Dw2Inval, Dw2Inval
  168. tr5, Class=RegTR, 0, 5, Dw2Inval, Dw2Inval
  169. tr6, Class=RegTR, 0, 6, Dw2Inval, Dw2Inval
  170. tr7, Class=RegTR, 0, 7, Dw2Inval, Dw2Inval
  171. // MMX and simd registers.
  172. mm0, Class=RegMMX, 0, 0, 29, 41
  173. mm1, Class=RegMMX, 0, 1, 30, 42
  174. mm2, Class=RegMMX, 0, 2, 31, 43
  175. mm3, Class=RegMMX, 0, 3, 32, 44
  176. mm4, Class=RegMMX, 0, 4, 33, 45
  177. mm5, Class=RegMMX, 0, 5, 34, 46
  178. mm6, Class=RegMMX, 0, 6, 35, 47
  179. mm7, Class=RegMMX, 0, 7, 36, 48
  180. xmm0, Class=RegSIMD|Instance=Accum|Xmmword, 0, 0, 21, 17
  181. xmm1, Class=RegSIMD|Xmmword, 0, 1, 22, 18
  182. xmm2, Class=RegSIMD|Xmmword, 0, 2, 23, 19
  183. xmm3, Class=RegSIMD|Xmmword, 0, 3, 24, 20
  184. xmm4, Class=RegSIMD|Xmmword, 0, 4, 25, 21
  185. xmm5, Class=RegSIMD|Xmmword, 0, 5, 26, 22
  186. xmm6, Class=RegSIMD|Xmmword, 0, 6, 27, 23
  187. xmm7, Class=RegSIMD|Xmmword, 0, 7, 28, 24
  188. xmm8, Class=RegSIMD|Xmmword, RegRex, 0, Dw2Inval, 25
  189. xmm9, Class=RegSIMD|Xmmword, RegRex, 1, Dw2Inval, 26
  190. xmm10, Class=RegSIMD|Xmmword, RegRex, 2, Dw2Inval, 27
  191. xmm11, Class=RegSIMD|Xmmword, RegRex, 3, Dw2Inval, 28
  192. xmm12, Class=RegSIMD|Xmmword, RegRex, 4, Dw2Inval, 29
  193. xmm13, Class=RegSIMD|Xmmword, RegRex, 5, Dw2Inval, 30
  194. xmm14, Class=RegSIMD|Xmmword, RegRex, 6, Dw2Inval, 31
  195. xmm15, Class=RegSIMD|Xmmword, RegRex, 7, Dw2Inval, 32
  196. xmm16, Class=RegSIMD|Xmmword, RegVRex, 0, Dw2Inval, 67
  197. xmm17, Class=RegSIMD|Xmmword, RegVRex, 1, Dw2Inval, 68
  198. xmm18, Class=RegSIMD|Xmmword, RegVRex, 2, Dw2Inval, 69
  199. xmm19, Class=RegSIMD|Xmmword, RegVRex, 3, Dw2Inval, 70
  200. xmm20, Class=RegSIMD|Xmmword, RegVRex, 4, Dw2Inval, 71
  201. xmm21, Class=RegSIMD|Xmmword, RegVRex, 5, Dw2Inval, 72
  202. xmm22, Class=RegSIMD|Xmmword, RegVRex, 6, Dw2Inval, 73
  203. xmm23, Class=RegSIMD|Xmmword, RegVRex, 7, Dw2Inval, 74
  204. xmm24, Class=RegSIMD|Xmmword, RegVRex|RegRex, 0, Dw2Inval, 75
  205. xmm25, Class=RegSIMD|Xmmword, RegVRex|RegRex, 1, Dw2Inval, 76
  206. xmm26, Class=RegSIMD|Xmmword, RegVRex|RegRex, 2, Dw2Inval, 77
  207. xmm27, Class=RegSIMD|Xmmword, RegVRex|RegRex, 3, Dw2Inval, 78
  208. xmm28, Class=RegSIMD|Xmmword, RegVRex|RegRex, 4, Dw2Inval, 79
  209. xmm29, Class=RegSIMD|Xmmword, RegVRex|RegRex, 5, Dw2Inval, 80
  210. xmm30, Class=RegSIMD|Xmmword, RegVRex|RegRex, 6, Dw2Inval, 81
  211. xmm31, Class=RegSIMD|Xmmword, RegVRex|RegRex, 7, Dw2Inval, 82
  212. // AVX registers.
  213. ymm0, Class=RegSIMD|Ymmword, 0, 0, Dw2Inval, Dw2Inval
  214. ymm1, Class=RegSIMD|Ymmword, 0, 1, Dw2Inval, Dw2Inval
  215. ymm2, Class=RegSIMD|Ymmword, 0, 2, Dw2Inval, Dw2Inval
  216. ymm3, Class=RegSIMD|Ymmword, 0, 3, Dw2Inval, Dw2Inval
  217. ymm4, Class=RegSIMD|Ymmword, 0, 4, Dw2Inval, Dw2Inval
  218. ymm5, Class=RegSIMD|Ymmword, 0, 5, Dw2Inval, Dw2Inval
  219. ymm6, Class=RegSIMD|Ymmword, 0, 6, Dw2Inval, Dw2Inval
  220. ymm7, Class=RegSIMD|Ymmword, 0, 7, Dw2Inval, Dw2Inval
  221. ymm8, Class=RegSIMD|Ymmword, RegRex, 0, Dw2Inval, Dw2Inval
  222. ymm9, Class=RegSIMD|Ymmword, RegRex, 1, Dw2Inval, Dw2Inval
  223. ymm10, Class=RegSIMD|Ymmword, RegRex, 2, Dw2Inval, Dw2Inval
  224. ymm11, Class=RegSIMD|Ymmword, RegRex, 3, Dw2Inval, Dw2Inval
  225. ymm12, Class=RegSIMD|Ymmword, RegRex, 4, Dw2Inval, Dw2Inval
  226. ymm13, Class=RegSIMD|Ymmword, RegRex, 5, Dw2Inval, Dw2Inval
  227. ymm14, Class=RegSIMD|Ymmword, RegRex, 6, Dw2Inval, Dw2Inval
  228. ymm15, Class=RegSIMD|Ymmword, RegRex, 7, Dw2Inval, Dw2Inval
  229. ymm16, Class=RegSIMD|Ymmword, RegVRex, 0, Dw2Inval, Dw2Inval
  230. ymm17, Class=RegSIMD|Ymmword, RegVRex, 1, Dw2Inval, Dw2Inval
  231. ymm18, Class=RegSIMD|Ymmword, RegVRex, 2, Dw2Inval, Dw2Inval
  232. ymm19, Class=RegSIMD|Ymmword, RegVRex, 3, Dw2Inval, Dw2Inval
  233. ymm20, Class=RegSIMD|Ymmword, RegVRex, 4, Dw2Inval, Dw2Inval
  234. ymm21, Class=RegSIMD|Ymmword, RegVRex, 5, Dw2Inval, Dw2Inval
  235. ymm22, Class=RegSIMD|Ymmword, RegVRex, 6, Dw2Inval, Dw2Inval
  236. ymm23, Class=RegSIMD|Ymmword, RegVRex, 7, Dw2Inval, Dw2Inval
  237. ymm24, Class=RegSIMD|Ymmword, RegVRex|RegRex, 0, Dw2Inval, Dw2Inval
  238. ymm25, Class=RegSIMD|Ymmword, RegVRex|RegRex, 1, Dw2Inval, Dw2Inval
  239. ymm26, Class=RegSIMD|Ymmword, RegVRex|RegRex, 2, Dw2Inval, Dw2Inval
  240. ymm27, Class=RegSIMD|Ymmword, RegVRex|RegRex, 3, Dw2Inval, Dw2Inval
  241. ymm28, Class=RegSIMD|Ymmword, RegVRex|RegRex, 4, Dw2Inval, Dw2Inval
  242. ymm29, Class=RegSIMD|Ymmword, RegVRex|RegRex, 5, Dw2Inval, Dw2Inval
  243. ymm30, Class=RegSIMD|Ymmword, RegVRex|RegRex, 6, Dw2Inval, Dw2Inval
  244. ymm31, Class=RegSIMD|Ymmword, RegVRex|RegRex, 7, Dw2Inval, Dw2Inval
  245. // AVX512 registers.
  246. zmm0, Class=RegSIMD|Zmmword, 0, 0, Dw2Inval, Dw2Inval
  247. zmm1, Class=RegSIMD|Zmmword, 0, 1, Dw2Inval, Dw2Inval
  248. zmm2, Class=RegSIMD|Zmmword, 0, 2, Dw2Inval, Dw2Inval
  249. zmm3, Class=RegSIMD|Zmmword, 0, 3, Dw2Inval, Dw2Inval
  250. zmm4, Class=RegSIMD|Zmmword, 0, 4, Dw2Inval, Dw2Inval
  251. zmm5, Class=RegSIMD|Zmmword, 0, 5, Dw2Inval, Dw2Inval
  252. zmm6, Class=RegSIMD|Zmmword, 0, 6, Dw2Inval, Dw2Inval
  253. zmm7, Class=RegSIMD|Zmmword, 0, 7, Dw2Inval, Dw2Inval
  254. zmm8, Class=RegSIMD|Zmmword, RegRex, 0, Dw2Inval, Dw2Inval
  255. zmm9, Class=RegSIMD|Zmmword, RegRex, 1, Dw2Inval, Dw2Inval
  256. zmm10, Class=RegSIMD|Zmmword, RegRex, 2, Dw2Inval, Dw2Inval
  257. zmm11, Class=RegSIMD|Zmmword, RegRex, 3, Dw2Inval, Dw2Inval
  258. zmm12, Class=RegSIMD|Zmmword, RegRex, 4, Dw2Inval, Dw2Inval
  259. zmm13, Class=RegSIMD|Zmmword, RegRex, 5, Dw2Inval, Dw2Inval
  260. zmm14, Class=RegSIMD|Zmmword, RegRex, 6, Dw2Inval, Dw2Inval
  261. zmm15, Class=RegSIMD|Zmmword, RegRex, 7, Dw2Inval, Dw2Inval
  262. zmm16, Class=RegSIMD|Zmmword, RegVRex, 0, Dw2Inval, Dw2Inval
  263. zmm17, Class=RegSIMD|Zmmword, RegVRex, 1, Dw2Inval, Dw2Inval
  264. zmm18, Class=RegSIMD|Zmmword, RegVRex, 2, Dw2Inval, Dw2Inval
  265. zmm19, Class=RegSIMD|Zmmword, RegVRex, 3, Dw2Inval, Dw2Inval
  266. zmm20, Class=RegSIMD|Zmmword, RegVRex, 4, Dw2Inval, Dw2Inval
  267. zmm21, Class=RegSIMD|Zmmword, RegVRex, 5, Dw2Inval, Dw2Inval
  268. zmm22, Class=RegSIMD|Zmmword, RegVRex, 6, Dw2Inval, Dw2Inval
  269. zmm23, Class=RegSIMD|Zmmword, RegVRex, 7, Dw2Inval, Dw2Inval
  270. zmm24, Class=RegSIMD|Zmmword, RegVRex|RegRex, 0, Dw2Inval, Dw2Inval
  271. zmm25, Class=RegSIMD|Zmmword, RegVRex|RegRex, 1, Dw2Inval, Dw2Inval
  272. zmm26, Class=RegSIMD|Zmmword, RegVRex|RegRex, 2, Dw2Inval, Dw2Inval
  273. zmm27, Class=RegSIMD|Zmmword, RegVRex|RegRex, 3, Dw2Inval, Dw2Inval
  274. zmm28, Class=RegSIMD|Zmmword, RegVRex|RegRex, 4, Dw2Inval, Dw2Inval
  275. zmm29, Class=RegSIMD|Zmmword, RegVRex|RegRex, 5, Dw2Inval, Dw2Inval
  276. zmm30, Class=RegSIMD|Zmmword, RegVRex|RegRex, 6, Dw2Inval, Dw2Inval
  277. zmm31, Class=RegSIMD|Zmmword, RegVRex|RegRex, 7, Dw2Inval, Dw2Inval
  278. // TMM registers for AMX
  279. tmm0, Class=RegSIMD|Tmmword, 0, 0, Dw2Inval, Dw2Inval
  280. tmm1, Class=RegSIMD|Tmmword, 0, 1, Dw2Inval, Dw2Inval
  281. tmm2, Class=RegSIMD|Tmmword, 0, 2, Dw2Inval, Dw2Inval
  282. tmm3, Class=RegSIMD|Tmmword, 0, 3, Dw2Inval, Dw2Inval
  283. tmm4, Class=RegSIMD|Tmmword, 0, 4, Dw2Inval, Dw2Inval
  284. tmm5, Class=RegSIMD|Tmmword, 0, 5, Dw2Inval, Dw2Inval
  285. tmm6, Class=RegSIMD|Tmmword, 0, 6, Dw2Inval, Dw2Inval
  286. tmm7, Class=RegSIMD|Tmmword, 0, 7, Dw2Inval, Dw2Inval
  287. // Bound registers for MPX
  288. bnd0, Class=RegBND, 0, 0, Dw2Inval, Dw2Inval
  289. bnd1, Class=RegBND, 0, 1, Dw2Inval, Dw2Inval
  290. bnd2, Class=RegBND, 0, 2, Dw2Inval, Dw2Inval
  291. bnd3, Class=RegBND, 0, 3, Dw2Inval, Dw2Inval
  292. // No Class=Reg will make these registers rejected for all purposes except
  293. // for addressing. This saves creating one extra type for RIP/EIP.
  294. rip, Qword, RegRex64, RegIP, Dw2Inval, 16
  295. eip, Dword, RegRex64, RegIP, 8, Dw2Inval
  296. // No Class=Reg will make these registers rejected for all purposes except
  297. // for addressing.
  298. riz, Qword|BaseIndex, RegRex64, RegIZ, Dw2Inval, Dw2Inval
  299. eiz, Dword|BaseIndex, 0, RegIZ, Dw2Inval, Dw2Inval
  300. // fp regs. No need for an explicit st(0) here.
  301. st, Class=Reg|Instance=Accum|Tbyte, 0, 0, 11, 33
  302. st(1), Class=Reg|Tbyte, 0, 1, 12, 34
  303. st(2), Class=Reg|Tbyte, 0, 2, 13, 35
  304. st(3), Class=Reg|Tbyte, 0, 3, 14, 36
  305. st(4), Class=Reg|Tbyte, 0, 4, 15, 37
  306. st(5), Class=Reg|Tbyte, 0, 5, 16, 38
  307. st(6), Class=Reg|Tbyte, 0, 6, 17, 39
  308. st(7), Class=Reg|Tbyte, 0, 7, 18, 40
  309. // Pseudo-register names only used in .cfi_* directives
  310. eflags, 0, 0, 0, 9, 49
  311. rflags, 0, 0, 0, Dw2Inval, 49
  312. fs.base, 0, 0, 0, Dw2Inval, 58
  313. gs.base, 0, 0, 0, Dw2Inval, 59
  314. tr, 0, 0, 0, 48, 62
  315. ldtr, 0, 0, 0, 49, 63
  316. // st0...7 for backward compatibility
  317. st0, 0, 0, 0, 11, 33
  318. st1, 0, 0, 1, 12, 34
  319. st2, 0, 0, 2, 13, 35
  320. st3, 0, 0, 3, 14, 36
  321. st4, 0, 0, 4, 15, 37
  322. st5, 0, 0, 5, 16, 38
  323. st6, 0, 0, 6, 17, 39
  324. st7, 0, 0, 7, 18, 40
  325. fcw, 0, 0, 0, 37, 65
  326. fsw, 0, 0, 0, 38, 66
  327. mxcsr, 0, 0, 0, 39, 64