asmjit 0.2.0 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (204) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/Rakefile +5 -3
  4. data/asmjit.gemspec +1 -3
  5. data/ext/asmjit/asmjit/.editorconfig +10 -0
  6. data/ext/asmjit/asmjit/.github/FUNDING.yml +1 -0
  7. data/ext/asmjit/asmjit/.github/workflows/build-config.json +47 -0
  8. data/ext/asmjit/asmjit/.github/workflows/build.yml +156 -0
  9. data/ext/asmjit/asmjit/.gitignore +6 -0
  10. data/ext/asmjit/asmjit/CMakeLists.txt +611 -0
  11. data/ext/asmjit/asmjit/LICENSE.md +17 -0
  12. data/ext/asmjit/asmjit/README.md +69 -0
  13. data/ext/asmjit/asmjit/src/asmjit/a64.h +62 -0
  14. data/ext/asmjit/asmjit/src/asmjit/arm/a64archtraits_p.h +81 -0
  15. data/ext/asmjit/asmjit/src/asmjit/arm/a64assembler.cpp +5115 -0
  16. data/ext/asmjit/asmjit/src/asmjit/arm/a64assembler.h +72 -0
  17. data/ext/asmjit/asmjit/src/asmjit/arm/a64builder.cpp +51 -0
  18. data/ext/asmjit/asmjit/src/asmjit/arm/a64builder.h +57 -0
  19. data/ext/asmjit/asmjit/src/asmjit/arm/a64compiler.cpp +60 -0
  20. data/ext/asmjit/asmjit/src/asmjit/arm/a64compiler.h +247 -0
  21. data/ext/asmjit/asmjit/src/asmjit/arm/a64emithelper.cpp +464 -0
  22. data/ext/asmjit/asmjit/src/asmjit/arm/a64emithelper_p.h +50 -0
  23. data/ext/asmjit/asmjit/src/asmjit/arm/a64emitter.h +1228 -0
  24. data/ext/asmjit/asmjit/src/asmjit/arm/a64formatter.cpp +298 -0
  25. data/ext/asmjit/asmjit/src/asmjit/arm/a64formatter_p.h +59 -0
  26. data/ext/asmjit/asmjit/src/asmjit/arm/a64func.cpp +189 -0
  27. data/ext/asmjit/asmjit/src/asmjit/arm/a64func_p.h +33 -0
  28. data/ext/asmjit/asmjit/src/asmjit/arm/a64globals.h +1894 -0
  29. data/ext/asmjit/asmjit/src/asmjit/arm/a64instapi.cpp +278 -0
  30. data/ext/asmjit/asmjit/src/asmjit/arm/a64instapi_p.h +41 -0
  31. data/ext/asmjit/asmjit/src/asmjit/arm/a64instdb.cpp +1957 -0
  32. data/ext/asmjit/asmjit/src/asmjit/arm/a64instdb.h +74 -0
  33. data/ext/asmjit/asmjit/src/asmjit/arm/a64instdb_p.h +876 -0
  34. data/ext/asmjit/asmjit/src/asmjit/arm/a64operand.cpp +85 -0
  35. data/ext/asmjit/asmjit/src/asmjit/arm/a64operand.h +312 -0
  36. data/ext/asmjit/asmjit/src/asmjit/arm/a64rapass.cpp +852 -0
  37. data/ext/asmjit/asmjit/src/asmjit/arm/a64rapass_p.h +105 -0
  38. data/ext/asmjit/asmjit/src/asmjit/arm/a64utils.h +179 -0
  39. data/ext/asmjit/asmjit/src/asmjit/arm/armformatter.cpp +143 -0
  40. data/ext/asmjit/asmjit/src/asmjit/arm/armformatter_p.h +44 -0
  41. data/ext/asmjit/asmjit/src/asmjit/arm/armglobals.h +21 -0
  42. data/ext/asmjit/asmjit/src/asmjit/arm/armoperand.h +621 -0
  43. data/ext/asmjit/asmjit/src/asmjit/arm.h +62 -0
  44. data/ext/asmjit/asmjit/src/asmjit/asmjit-scope-begin.h +17 -0
  45. data/ext/asmjit/asmjit/src/asmjit/asmjit-scope-end.h +9 -0
  46. data/ext/asmjit/asmjit/src/asmjit/asmjit.h +33 -0
  47. data/ext/asmjit/asmjit/src/asmjit/core/api-build_p.h +55 -0
  48. data/ext/asmjit/asmjit/src/asmjit/core/api-config.h +613 -0
  49. data/ext/asmjit/asmjit/src/asmjit/core/archcommons.h +229 -0
  50. data/ext/asmjit/asmjit/src/asmjit/core/archtraits.cpp +160 -0
  51. data/ext/asmjit/asmjit/src/asmjit/core/archtraits.h +290 -0
  52. data/ext/asmjit/asmjit/src/asmjit/core/assembler.cpp +406 -0
  53. data/ext/asmjit/asmjit/src/asmjit/core/assembler.h +129 -0
  54. data/ext/asmjit/asmjit/src/asmjit/core/builder.cpp +889 -0
  55. data/ext/asmjit/asmjit/src/asmjit/core/builder.h +1391 -0
  56. data/ext/asmjit/asmjit/src/asmjit/core/codebuffer.h +113 -0
  57. data/ext/asmjit/asmjit/src/asmjit/core/codeholder.cpp +1149 -0
  58. data/ext/asmjit/asmjit/src/asmjit/core/codeholder.h +1035 -0
  59. data/ext/asmjit/asmjit/src/asmjit/core/codewriter.cpp +175 -0
  60. data/ext/asmjit/asmjit/src/asmjit/core/codewriter_p.h +179 -0
  61. data/ext/asmjit/asmjit/src/asmjit/core/compiler.cpp +582 -0
  62. data/ext/asmjit/asmjit/src/asmjit/core/compiler.h +737 -0
  63. data/ext/asmjit/asmjit/src/asmjit/core/compilerdefs.h +173 -0
  64. data/ext/asmjit/asmjit/src/asmjit/core/constpool.cpp +363 -0
  65. data/ext/asmjit/asmjit/src/asmjit/core/constpool.h +250 -0
  66. data/ext/asmjit/asmjit/src/asmjit/core/cpuinfo.cpp +1162 -0
  67. data/ext/asmjit/asmjit/src/asmjit/core/cpuinfo.h +813 -0
  68. data/ext/asmjit/asmjit/src/asmjit/core/emithelper.cpp +323 -0
  69. data/ext/asmjit/asmjit/src/asmjit/core/emithelper_p.h +58 -0
  70. data/ext/asmjit/asmjit/src/asmjit/core/emitter.cpp +333 -0
  71. data/ext/asmjit/asmjit/src/asmjit/core/emitter.h +741 -0
  72. data/ext/asmjit/asmjit/src/asmjit/core/emitterutils.cpp +129 -0
  73. data/ext/asmjit/asmjit/src/asmjit/core/emitterutils_p.h +89 -0
  74. data/ext/asmjit/asmjit/src/asmjit/core/environment.cpp +46 -0
  75. data/ext/asmjit/asmjit/src/asmjit/core/environment.h +508 -0
  76. data/ext/asmjit/asmjit/src/asmjit/core/errorhandler.cpp +14 -0
  77. data/ext/asmjit/asmjit/src/asmjit/core/errorhandler.h +228 -0
  78. data/ext/asmjit/asmjit/src/asmjit/core/formatter.cpp +584 -0
  79. data/ext/asmjit/asmjit/src/asmjit/core/formatter.h +247 -0
  80. data/ext/asmjit/asmjit/src/asmjit/core/formatter_p.h +34 -0
  81. data/ext/asmjit/asmjit/src/asmjit/core/func.cpp +286 -0
  82. data/ext/asmjit/asmjit/src/asmjit/core/func.h +1445 -0
  83. data/ext/asmjit/asmjit/src/asmjit/core/funcargscontext.cpp +293 -0
  84. data/ext/asmjit/asmjit/src/asmjit/core/funcargscontext_p.h +199 -0
  85. data/ext/asmjit/asmjit/src/asmjit/core/globals.cpp +133 -0
  86. data/ext/asmjit/asmjit/src/asmjit/core/globals.h +393 -0
  87. data/ext/asmjit/asmjit/src/asmjit/core/inst.cpp +113 -0
  88. data/ext/asmjit/asmjit/src/asmjit/core/inst.h +772 -0
  89. data/ext/asmjit/asmjit/src/asmjit/core/jitallocator.cpp +1242 -0
  90. data/ext/asmjit/asmjit/src/asmjit/core/jitallocator.h +261 -0
  91. data/ext/asmjit/asmjit/src/asmjit/core/jitruntime.cpp +80 -0
  92. data/ext/asmjit/asmjit/src/asmjit/core/jitruntime.h +89 -0
  93. data/ext/asmjit/asmjit/src/asmjit/core/logger.cpp +69 -0
  94. data/ext/asmjit/asmjit/src/asmjit/core/logger.h +198 -0
  95. data/ext/asmjit/asmjit/src/asmjit/core/misc_p.h +33 -0
  96. data/ext/asmjit/asmjit/src/asmjit/core/operand.cpp +132 -0
  97. data/ext/asmjit/asmjit/src/asmjit/core/operand.h +1611 -0
  98. data/ext/asmjit/asmjit/src/asmjit/core/osutils.cpp +84 -0
  99. data/ext/asmjit/asmjit/src/asmjit/core/osutils.h +61 -0
  100. data/ext/asmjit/asmjit/src/asmjit/core/osutils_p.h +68 -0
  101. data/ext/asmjit/asmjit/src/asmjit/core/raassignment_p.h +418 -0
  102. data/ext/asmjit/asmjit/src/asmjit/core/rabuilders_p.h +612 -0
  103. data/ext/asmjit/asmjit/src/asmjit/core/radefs_p.h +1204 -0
  104. data/ext/asmjit/asmjit/src/asmjit/core/ralocal.cpp +1166 -0
  105. data/ext/asmjit/asmjit/src/asmjit/core/ralocal_p.h +254 -0
  106. data/ext/asmjit/asmjit/src/asmjit/core/rapass.cpp +1969 -0
  107. data/ext/asmjit/asmjit/src/asmjit/core/rapass_p.h +1183 -0
  108. data/ext/asmjit/asmjit/src/asmjit/core/rastack.cpp +184 -0
  109. data/ext/asmjit/asmjit/src/asmjit/core/rastack_p.h +171 -0
  110. data/ext/asmjit/asmjit/src/asmjit/core/string.cpp +559 -0
  111. data/ext/asmjit/asmjit/src/asmjit/core/string.h +372 -0
  112. data/ext/asmjit/asmjit/src/asmjit/core/support.cpp +494 -0
  113. data/ext/asmjit/asmjit/src/asmjit/core/support.h +1773 -0
  114. data/ext/asmjit/asmjit/src/asmjit/core/target.cpp +14 -0
  115. data/ext/asmjit/asmjit/src/asmjit/core/target.h +53 -0
  116. data/ext/asmjit/asmjit/src/asmjit/core/type.cpp +74 -0
  117. data/ext/asmjit/asmjit/src/asmjit/core/type.h +419 -0
  118. data/ext/asmjit/asmjit/src/asmjit/core/virtmem.cpp +722 -0
  119. data/ext/asmjit/asmjit/src/asmjit/core/virtmem.h +242 -0
  120. data/ext/asmjit/asmjit/src/asmjit/core/zone.cpp +353 -0
  121. data/ext/asmjit/asmjit/src/asmjit/core/zone.h +615 -0
  122. data/ext/asmjit/asmjit/src/asmjit/core/zonehash.cpp +309 -0
  123. data/ext/asmjit/asmjit/src/asmjit/core/zonehash.h +186 -0
  124. data/ext/asmjit/asmjit/src/asmjit/core/zonelist.cpp +163 -0
  125. data/ext/asmjit/asmjit/src/asmjit/core/zonelist.h +209 -0
  126. data/ext/asmjit/asmjit/src/asmjit/core/zonestack.cpp +176 -0
  127. data/ext/asmjit/asmjit/src/asmjit/core/zonestack.h +239 -0
  128. data/ext/asmjit/asmjit/src/asmjit/core/zonestring.h +120 -0
  129. data/ext/asmjit/asmjit/src/asmjit/core/zonetree.cpp +99 -0
  130. data/ext/asmjit/asmjit/src/asmjit/core/zonetree.h +380 -0
  131. data/ext/asmjit/asmjit/src/asmjit/core/zonevector.cpp +356 -0
  132. data/ext/asmjit/asmjit/src/asmjit/core/zonevector.h +690 -0
  133. data/ext/asmjit/asmjit/src/asmjit/core.h +1861 -0
  134. data/ext/asmjit/asmjit/src/asmjit/x86/x86archtraits_p.h +148 -0
  135. data/ext/asmjit/asmjit/src/asmjit/x86/x86assembler.cpp +5110 -0
  136. data/ext/asmjit/asmjit/src/asmjit/x86/x86assembler.h +685 -0
  137. data/ext/asmjit/asmjit/src/asmjit/x86/x86builder.cpp +52 -0
  138. data/ext/asmjit/asmjit/src/asmjit/x86/x86builder.h +351 -0
  139. data/ext/asmjit/asmjit/src/asmjit/x86/x86compiler.cpp +61 -0
  140. data/ext/asmjit/asmjit/src/asmjit/x86/x86compiler.h +721 -0
  141. data/ext/asmjit/asmjit/src/asmjit/x86/x86emithelper.cpp +619 -0
  142. data/ext/asmjit/asmjit/src/asmjit/x86/x86emithelper_p.h +60 -0
  143. data/ext/asmjit/asmjit/src/asmjit/x86/x86emitter.h +4315 -0
  144. data/ext/asmjit/asmjit/src/asmjit/x86/x86formatter.cpp +944 -0
  145. data/ext/asmjit/asmjit/src/asmjit/x86/x86formatter_p.h +58 -0
  146. data/ext/asmjit/asmjit/src/asmjit/x86/x86func.cpp +503 -0
  147. data/ext/asmjit/asmjit/src/asmjit/x86/x86func_p.h +33 -0
  148. data/ext/asmjit/asmjit/src/asmjit/x86/x86globals.h +2169 -0
  149. data/ext/asmjit/asmjit/src/asmjit/x86/x86instapi.cpp +1732 -0
  150. data/ext/asmjit/asmjit/src/asmjit/x86/x86instapi_p.h +41 -0
  151. data/ext/asmjit/asmjit/src/asmjit/x86/x86instdb.cpp +4427 -0
  152. data/ext/asmjit/asmjit/src/asmjit/x86/x86instdb.h +563 -0
  153. data/ext/asmjit/asmjit/src/asmjit/x86/x86instdb_p.h +311 -0
  154. data/ext/asmjit/asmjit/src/asmjit/x86/x86opcode_p.h +436 -0
  155. data/ext/asmjit/asmjit/src/asmjit/x86/x86operand.cpp +231 -0
  156. data/ext/asmjit/asmjit/src/asmjit/x86/x86operand.h +1085 -0
  157. data/ext/asmjit/asmjit/src/asmjit/x86/x86rapass.cpp +1509 -0
  158. data/ext/asmjit/asmjit/src/asmjit/x86/x86rapass_p.h +94 -0
  159. data/ext/asmjit/asmjit/src/asmjit/x86.h +93 -0
  160. data/ext/asmjit/asmjit/src/asmjit.natvis +245 -0
  161. data/ext/asmjit/asmjit/test/asmjit_test_assembler.cpp +84 -0
  162. data/ext/asmjit/asmjit/test/asmjit_test_assembler.h +85 -0
  163. data/ext/asmjit/asmjit/test/asmjit_test_assembler_a64.cpp +4006 -0
  164. data/ext/asmjit/asmjit/test/asmjit_test_assembler_x64.cpp +17833 -0
  165. data/ext/asmjit/asmjit/test/asmjit_test_assembler_x86.cpp +8300 -0
  166. data/ext/asmjit/asmjit/test/asmjit_test_compiler.cpp +253 -0
  167. data/ext/asmjit/asmjit/test/asmjit_test_compiler.h +73 -0
  168. data/ext/asmjit/asmjit/test/asmjit_test_compiler_a64.cpp +690 -0
  169. data/ext/asmjit/asmjit/test/asmjit_test_compiler_x86.cpp +4317 -0
  170. data/ext/asmjit/asmjit/test/asmjit_test_emitters.cpp +197 -0
  171. data/ext/asmjit/asmjit/test/asmjit_test_instinfo.cpp +181 -0
  172. data/ext/asmjit/asmjit/test/asmjit_test_misc.h +257 -0
  173. data/ext/asmjit/asmjit/test/asmjit_test_perf.cpp +62 -0
  174. data/ext/asmjit/asmjit/test/asmjit_test_perf.h +61 -0
  175. data/ext/asmjit/asmjit/test/asmjit_test_perf_a64.cpp +699 -0
  176. data/ext/asmjit/asmjit/test/asmjit_test_perf_x86.cpp +5032 -0
  177. data/ext/asmjit/asmjit/test/asmjit_test_unit.cpp +172 -0
  178. data/ext/asmjit/asmjit/test/asmjit_test_x86_sections.cpp +172 -0
  179. data/ext/asmjit/asmjit/test/asmjitutils.h +38 -0
  180. data/ext/asmjit/asmjit/test/broken.cpp +312 -0
  181. data/ext/asmjit/asmjit/test/broken.h +148 -0
  182. data/ext/asmjit/asmjit/test/cmdline.h +61 -0
  183. data/ext/asmjit/asmjit/test/performancetimer.h +41 -0
  184. data/ext/asmjit/asmjit/tools/configure-makefiles.sh +13 -0
  185. data/ext/asmjit/asmjit/tools/configure-ninja.sh +13 -0
  186. data/ext/asmjit/asmjit/tools/configure-sanitizers.sh +13 -0
  187. data/ext/asmjit/asmjit/tools/configure-vs2019-x64.bat +2 -0
  188. data/ext/asmjit/asmjit/tools/configure-vs2019-x86.bat +2 -0
  189. data/ext/asmjit/asmjit/tools/configure-vs2022-x64.bat +2 -0
  190. data/ext/asmjit/asmjit/tools/configure-vs2022-x86.bat +2 -0
  191. data/ext/asmjit/asmjit/tools/configure-xcode.sh +8 -0
  192. data/ext/asmjit/asmjit/tools/enumgen.js +417 -0
  193. data/ext/asmjit/asmjit/tools/enumgen.sh +3 -0
  194. data/ext/asmjit/asmjit/tools/tablegen-arm.js +365 -0
  195. data/ext/asmjit/asmjit/tools/tablegen-arm.sh +3 -0
  196. data/ext/asmjit/asmjit/tools/tablegen-x86.js +2638 -0
  197. data/ext/asmjit/asmjit/tools/tablegen-x86.sh +3 -0
  198. data/ext/asmjit/asmjit/tools/tablegen.js +947 -0
  199. data/ext/asmjit/asmjit/tools/tablegen.sh +4 -0
  200. data/ext/asmjit/asmjit.cc +167 -30
  201. data/ext/asmjit/extconf.rb +9 -9
  202. data/lib/asmjit/version.rb +1 -1
  203. data/lib/asmjit.rb +14 -4
  204. metadata +198 -17
@@ -0,0 +1,4315 @@
1
+ // This file is part of AsmJit project <https://asmjit.com>
2
+ //
3
+ // See asmjit.h or LICENSE.md for license and copyright information
4
+ // SPDX-License-Identifier: Zlib
5
+
6
+ #ifndef ASMJIT_X86_X86EMITTER_H_INCLUDED
7
+ #define ASMJIT_X86_X86EMITTER_H_INCLUDED
8
+
9
+ #include "../core/emitter.h"
10
+ #include "../core/support.h"
11
+ #include "../x86/x86globals.h"
12
+ #include "../x86/x86operand.h"
13
+
14
+ ASMJIT_BEGIN_SUB_NAMESPACE(x86)
15
+
16
+ #define ASMJIT_INST_0x(NAME, ID) \
17
+ inline Error NAME() { return _emitter()->_emitI(Inst::kId##ID); }
18
+
19
+ #define ASMJIT_INST_1x(NAME, ID, T0) \
20
+ inline Error NAME(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID, o0); }
21
+
22
+ #define ASMJIT_INST_1c(NAME, ID, CONV, T0) \
23
+ inline Error NAME(CondCode cc, const T0& o0) { return _emitter()->_emitI(CONV(cc), o0); } \
24
+ inline Error NAME##a(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##a, o0); } \
25
+ inline Error NAME##ae(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##ae, o0); } \
26
+ inline Error NAME##b(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##b, o0); } \
27
+ inline Error NAME##be(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##be, o0); } \
28
+ inline Error NAME##c(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##c, o0); } \
29
+ inline Error NAME##e(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##e, o0); } \
30
+ inline Error NAME##g(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##g, o0); } \
31
+ inline Error NAME##ge(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##ge, o0); } \
32
+ inline Error NAME##l(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##l, o0); } \
33
+ inline Error NAME##le(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##le, o0); } \
34
+ inline Error NAME##na(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##na, o0); } \
35
+ inline Error NAME##nae(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##nae, o0); } \
36
+ inline Error NAME##nb(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##nb, o0); } \
37
+ inline Error NAME##nbe(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##nbe, o0); } \
38
+ inline Error NAME##nc(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##nc, o0); } \
39
+ inline Error NAME##ne(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##ne, o0); } \
40
+ inline Error NAME##ng(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##ng, o0); } \
41
+ inline Error NAME##nge(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##nge, o0); } \
42
+ inline Error NAME##nl(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##nl, o0); } \
43
+ inline Error NAME##nle(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##nle, o0); } \
44
+ inline Error NAME##no(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##no, o0); } \
45
+ inline Error NAME##np(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##np, o0); } \
46
+ inline Error NAME##ns(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##ns, o0); } \
47
+ inline Error NAME##nz(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##nz, o0); } \
48
+ inline Error NAME##o(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##o, o0); } \
49
+ inline Error NAME##p(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##p, o0); } \
50
+ inline Error NAME##pe(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##pe, o0); } \
51
+ inline Error NAME##po(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##po, o0); } \
52
+ inline Error NAME##s(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##s, o0); } \
53
+ inline Error NAME##z(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID##z, o0); }
54
+
55
+ #define ASMJIT_INST_2x(NAME, ID, T0, T1) \
56
+ inline Error NAME(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID, o0, o1); }
57
+
58
+ #define ASMJIT_INST_2c(NAME, ID, CONV, T0, T1) \
59
+ inline Error NAME(CondCode cc, const T0& o0, const T1& o1) { return _emitter()->_emitI(CONV(cc), o0, o1); } \
60
+ inline Error NAME##a(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##a, o0, o1); } \
61
+ inline Error NAME##ae(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##ae, o0, o1); } \
62
+ inline Error NAME##b(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##b, o0, o1); } \
63
+ inline Error NAME##be(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##be, o0, o1); } \
64
+ inline Error NAME##c(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##c, o0, o1); } \
65
+ inline Error NAME##e(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##e, o0, o1); } \
66
+ inline Error NAME##g(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##g, o0, o1); } \
67
+ inline Error NAME##ge(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##ge, o0, o1); } \
68
+ inline Error NAME##l(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##l, o0, o1); } \
69
+ inline Error NAME##le(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##le, o0, o1); } \
70
+ inline Error NAME##na(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##na, o0, o1); } \
71
+ inline Error NAME##nae(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##nae, o0, o1); } \
72
+ inline Error NAME##nb(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##nb, o0, o1); } \
73
+ inline Error NAME##nbe(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##nbe, o0, o1); } \
74
+ inline Error NAME##nc(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##nc, o0, o1); } \
75
+ inline Error NAME##ne(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##ne, o0, o1); } \
76
+ inline Error NAME##ng(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##ng, o0, o1); } \
77
+ inline Error NAME##nge(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##nge, o0, o1); } \
78
+ inline Error NAME##nl(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##nl, o0, o1); } \
79
+ inline Error NAME##nle(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##nle, o0, o1); } \
80
+ inline Error NAME##no(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##no, o0, o1); } \
81
+ inline Error NAME##np(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##np, o0, o1); } \
82
+ inline Error NAME##ns(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##ns, o0, o1); } \
83
+ inline Error NAME##nz(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##nz, o0, o1); } \
84
+ inline Error NAME##o(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##o, o0, o1); } \
85
+ inline Error NAME##p(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##p, o0, o1); } \
86
+ inline Error NAME##pe(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##pe, o0, o1); } \
87
+ inline Error NAME##po(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##po, o0, o1); } \
88
+ inline Error NAME##s(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##s, o0, o1); } \
89
+ inline Error NAME##z(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID##z, o0, o1); }
90
+
91
+ #define ASMJIT_INST_3x(NAME, ID, T0, T1, T2) \
92
+ inline Error NAME(const T0& o0, const T1& o1, const T2& o2) { return _emitter()->_emitI(Inst::kId##ID, o0, o1, o2); }
93
+
94
+ #define ASMJIT_INST_4x(NAME, ID, T0, T1, T2, T3) \
95
+ inline Error NAME(const T0& o0, const T1& o1, const T2& o2, const T3& o3) { return _emitter()->_emitI(Inst::kId##ID, o0, o1, o2, o3); }
96
+
97
+ #define ASMJIT_INST_5x(NAME, ID, T0, T1, T2, T3, T4) \
98
+ inline Error NAME(const T0& o0, const T1& o1, const T2& o2, const T3& o3, const T4& o4) { return _emitter()->_emitI(Inst::kId##ID, o0, o1, o2, o3, o4); }
99
+
100
+ #define ASMJIT_INST_6x(NAME, ID, T0, T1, T2, T3, T4, T5) \
101
+ inline Error NAME(const T0& o0, const T1& o1, const T2& o2, const T3& o3, const T4& o4, const T5& o5) { return _emitter()->_emitI(Inst::kId##ID, o0, o1, o2, o3, o4, o5); }
102
+
103
+ //! \addtogroup asmjit_x86
104
+ //! \{
105
+
106
+ //! Emitter (X86 - explicit).
107
+ template<typename This>
108
+ struct EmitterExplicitT {
109
+ //! \cond
110
+
111
+ // These typedefs are used to describe implicit operands passed explicitly.
112
+ typedef Gp Gp_AL;
113
+ typedef Gp Gp_AH;
114
+ typedef Gp Gp_CL;
115
+ typedef Gp Gp_AX;
116
+ typedef Gp Gp_DX;
117
+
118
+ typedef Gp Gp_EAX;
119
+ typedef Gp Gp_EBX;
120
+ typedef Gp Gp_ECX;
121
+ typedef Gp Gp_EDX;
122
+
123
+ typedef Gp Gp_RAX;
124
+ typedef Gp Gp_RBX;
125
+ typedef Gp Gp_RCX;
126
+ typedef Gp Gp_RDX;
127
+
128
+ typedef Gp Gp_ZAX;
129
+ typedef Gp Gp_ZBX;
130
+ typedef Gp Gp_ZCX;
131
+ typedef Gp Gp_ZDX;
132
+
133
+ typedef Mem DS_ZAX; // ds:[zax]
134
+ typedef Mem DS_ZDI; // ds:[zdi]
135
+ typedef Mem ES_ZDI; // es:[zdi]
136
+ typedef Mem DS_ZSI; // ds:[zsi]
137
+
138
+ typedef Xmm XMM0;
139
+
140
+ // These two are unfortunately reported by the sanitizer. We know what we do, however, the sanitizer doesn't.
141
+ // I have tried to use reinterpret_cast instead, but that would generate bad code when compiled by MSC.
142
+ ASMJIT_ATTRIBUTE_NO_SANITIZE_UNDEF inline This* _emitter() noexcept { return static_cast<This*>(this); }
143
+ ASMJIT_ATTRIBUTE_NO_SANITIZE_UNDEF inline const This* _emitter() const noexcept { return static_cast<const This*>(this); }
144
+
145
+ //! \endcond
146
+
147
+ //! \name Native Registers
148
+ //! \{
149
+
150
+ //! Returns either GPD or GPQ register of the given `id` depending on the emitter's architecture.
151
+ inline Gp gpz(uint32_t id) const noexcept { return Gp(_emitter()->_gpSignature, id); }
152
+
153
+ inline Gp zax() const noexcept { return Gp(_emitter()->_gpSignature, Gp::kIdAx); }
154
+ inline Gp zcx() const noexcept { return Gp(_emitter()->_gpSignature, Gp::kIdCx); }
155
+ inline Gp zdx() const noexcept { return Gp(_emitter()->_gpSignature, Gp::kIdDx); }
156
+ inline Gp zbx() const noexcept { return Gp(_emitter()->_gpSignature, Gp::kIdBx); }
157
+ inline Gp zsp() const noexcept { return Gp(_emitter()->_gpSignature, Gp::kIdSp); }
158
+ inline Gp zbp() const noexcept { return Gp(_emitter()->_gpSignature, Gp::kIdBp); }
159
+ inline Gp zsi() const noexcept { return Gp(_emitter()->_gpSignature, Gp::kIdSi); }
160
+ inline Gp zdi() const noexcept { return Gp(_emitter()->_gpSignature, Gp::kIdDi); }
161
+
162
+ //! \}
163
+
164
+ //! \name Native Pointers
165
+ //! \{
166
+
167
+ //! Creates a target dependent pointer of which base register's id is `baseId`.
168
+ inline Mem ptr_base(uint32_t baseId, int32_t off = 0, uint32_t size = 0) const noexcept {
169
+ return Mem(OperandSignature::fromOpType(OperandType::kMem) |
170
+ OperandSignature::fromMemBaseType(_emitter()->_gpSignature.regType()) |
171
+ OperandSignature::fromSize(size),
172
+ baseId, 0, off);
173
+ }
174
+
175
+ inline Mem ptr_zax(int32_t off = 0, uint32_t size = 0) const noexcept { return ptr_base(Gp::kIdAx, off, size); }
176
+ inline Mem ptr_zcx(int32_t off = 0, uint32_t size = 0) const noexcept { return ptr_base(Gp::kIdCx, off, size); }
177
+ inline Mem ptr_zdx(int32_t off = 0, uint32_t size = 0) const noexcept { return ptr_base(Gp::kIdDx, off, size); }
178
+ inline Mem ptr_zbx(int32_t off = 0, uint32_t size = 0) const noexcept { return ptr_base(Gp::kIdBx, off, size); }
179
+ inline Mem ptr_zsp(int32_t off = 0, uint32_t size = 0) const noexcept { return ptr_base(Gp::kIdSp, off, size); }
180
+ inline Mem ptr_zbp(int32_t off = 0, uint32_t size = 0) const noexcept { return ptr_base(Gp::kIdBp, off, size); }
181
+ inline Mem ptr_zsi(int32_t off = 0, uint32_t size = 0) const noexcept { return ptr_base(Gp::kIdSi, off, size); }
182
+ inline Mem ptr_zdi(int32_t off = 0, uint32_t size = 0) const noexcept { return ptr_base(Gp::kIdDi, off, size); }
183
+
184
+ //! Creates an `intptr_t` memory operand depending on the current architecture.
185
+ inline Mem intptr_ptr(const Gp& base, int32_t offset = 0) const noexcept {
186
+ uint32_t nativeGpSize = _emitter()->registerSize();
187
+ return Mem(base, offset, nativeGpSize);
188
+ }
189
+ //! \overload
190
+ inline Mem intptr_ptr(const Gp& base, const Gp& index, uint32_t shift = 0, int32_t offset = 0) const noexcept {
191
+ uint32_t nativeGpSize = _emitter()->registerSize();
192
+ return Mem(base, index, shift, offset, nativeGpSize);
193
+ }
194
+ //! \overload
195
+ inline Mem intptr_ptr(const Gp& base, const Vec& index, uint32_t shift = 0, int32_t offset = 0) const noexcept {
196
+ uint32_t nativeGpSize = _emitter()->registerSize();
197
+ return Mem(base, index, shift, offset, nativeGpSize);
198
+ }
199
+ //! \overload
200
+ inline Mem intptr_ptr(const Label& base, int32_t offset = 0) const noexcept {
201
+ uint32_t nativeGpSize = _emitter()->registerSize();
202
+ return Mem(base, offset, nativeGpSize);
203
+ }
204
+ //! \overload
205
+ inline Mem intptr_ptr(const Label& base, const Gp& index, uint32_t shift, int32_t offset = 0) const noexcept {
206
+ uint32_t nativeGpSize = _emitter()->registerSize();
207
+ return Mem(base, index, shift, offset, nativeGpSize);
208
+ }
209
+ //! \overload
210
+ inline Mem intptr_ptr(const Label& base, const Vec& index, uint32_t shift, int32_t offset = 0) const noexcept {
211
+ uint32_t nativeGpSize = _emitter()->registerSize();
212
+ return Mem(base, index, shift, offset, nativeGpSize);
213
+ }
214
+ //! \overload
215
+ inline Mem intptr_ptr(const Rip& rip, int32_t offset = 0) const noexcept {
216
+ uint32_t nativeGpSize = _emitter()->registerSize();
217
+ return Mem(rip, offset, nativeGpSize);
218
+ }
219
+ //! \overload
220
+ inline Mem intptr_ptr(uint64_t base) const noexcept {
221
+ uint32_t nativeGpSize = _emitter()->registerSize();
222
+ return Mem(base, nativeGpSize);
223
+ }
224
+ //! \overload
225
+ inline Mem intptr_ptr(uint64_t base, const Gp& index, uint32_t shift = 0) const noexcept {
226
+ uint32_t nativeGpSize = _emitter()->registerSize();
227
+ return Mem(base, index, shift, nativeGpSize);
228
+ }
229
+ //! \overload
230
+ inline Mem intptr_ptr_abs(uint64_t base) const noexcept {
231
+ uint32_t nativeGpSize = _emitter()->registerSize();
232
+ return Mem(base, nativeGpSize, OperandSignature::fromValue<Mem::kSignatureMemAddrTypeMask>(Mem::AddrType::kAbs));
233
+ }
234
+ //! \overload
235
+ inline Mem intptr_ptr_abs(uint64_t base, const Gp& index, uint32_t shift = 0) const noexcept {
236
+ uint32_t nativeGpSize = _emitter()->registerSize();
237
+ return Mem(base, index, shift, nativeGpSize, OperandSignature::fromValue<Mem::kSignatureMemAddrTypeMask>(Mem::AddrType::kRel));
238
+ }
239
+
240
+ //! \}
241
+
242
+ //! \name Embed
243
+ //! \{
244
+
245
+ //! Embeds 8-bit integer data.
246
+ inline Error db(uint8_t x, size_t repeatCount = 1) { return _emitter()->embedUInt8(x, repeatCount); }
247
+ //! Embeds 16-bit integer data.
248
+ inline Error dw(uint16_t x, size_t repeatCount = 1) { return _emitter()->embedUInt16(x, repeatCount); }
249
+ //! Embeds 32-bit integer data.
250
+ inline Error dd(uint32_t x, size_t repeatCount = 1) { return _emitter()->embedUInt32(x, repeatCount); }
251
+ //! Embeds 64-bit integer data.
252
+ inline Error dq(uint64_t x, size_t repeatCount = 1) { return _emitter()->embedUInt64(x, repeatCount); }
253
+
254
+ //! Adds data in a given structure instance to the CodeBuffer.
255
+ template<typename T>
256
+ inline Error dstruct(const T& x) { return _emitter()->embed(&x, uint32_t(sizeof(T))); }
257
+
258
+ //! \}
259
+
260
+ protected:
261
+ //! \cond
262
+ inline This& _addInstOptions(InstOptions options) noexcept {
263
+ _emitter()->addInstOptions(options);
264
+ return *_emitter();
265
+ }
266
+ //! \endcond
267
+
268
+ public:
269
+ //! \name Short/Long Form Options
270
+ //! \{
271
+
272
+ //! Force short form of jmp/jcc instruction.
273
+ inline This& short_() noexcept { return _addInstOptions(InstOptions::kShortForm); }
274
+ //! Force long form of jmp/jcc instruction.
275
+ inline This& long_() noexcept { return _addInstOptions(InstOptions::kLongForm); }
276
+
277
+ //! \}
278
+
279
+ //! \name Encoding Options
280
+ //! \{
281
+
282
+ //! Prefer MOD/RM encoding when both MOD/RM and MOD/MR forms are applicable.
283
+ inline This& mod_rm() noexcept { return _addInstOptions(InstOptions::kX86_ModRM); }
284
+
285
+ //! Prefer MOD/MR encoding when both MOD/RM and MOD/MR forms are applicable.
286
+ inline This& mod_mr() noexcept { return _addInstOptions(InstOptions::kX86_ModMR); }
287
+
288
+ //! \}
289
+
290
+ //! \name Prefix Options
291
+ //! \{
292
+
293
+ //! Condition is likely to be taken (has only benefit on P4).
294
+ inline This& taken() noexcept { return _addInstOptions(InstOptions::kTaken); }
295
+ //! Condition is unlikely to be taken (has only benefit on P4).
296
+ inline This& notTaken() noexcept { return _addInstOptions(InstOptions::kNotTaken); }
297
+
298
+ //! Use LOCK prefix.
299
+ inline This& lock() noexcept { return _addInstOptions(InstOptions::kX86_Lock); }
300
+ //! Use XACQUIRE prefix.
301
+ inline This& xacquire() noexcept { return _addInstOptions(InstOptions::kX86_XAcquire); }
302
+ //! Use XRELEASE prefix.
303
+ inline This& xrelease() noexcept { return _addInstOptions(InstOptions::kX86_XRelease); }
304
+
305
+ //! Use BND/REPNE prefix.
306
+ //!
307
+ //! \note This is the same as using `repne()` or `repnz()` prefix.
308
+ inline This& bnd() noexcept { return _addInstOptions(InstOptions::kX86_Repne); }
309
+
310
+ //! Use REP/REPZ prefix.
311
+ //!
312
+ //! \note This is the same as using `repe()` or `repz()` prefix.
313
+ inline This& rep(const Gp& zcx) noexcept {
314
+ _emitter()->_extraReg.init(zcx);
315
+ return _addInstOptions(InstOptions::kX86_Rep);
316
+ }
317
+
318
+ //! Use REP/REPE prefix.
319
+ //!
320
+ //! \note This is the same as using `rep()` or `repz()` prefix.
321
+ inline This& repe(const Gp& zcx) noexcept { return rep(zcx); }
322
+
323
+ //! Use REP/REPE prefix.
324
+ //!
325
+ //! \note This is the same as using `rep()` or `repe()` prefix.
326
+ inline This& repz(const Gp& zcx) noexcept { return rep(zcx); }
327
+
328
+ //! Use REPNE prefix.
329
+ //!
330
+ //! \note This is the same as using `bnd()` or `repnz()` prefix.
331
+ inline This& repne(const Gp& zcx) noexcept {
332
+ _emitter()->_extraReg.init(zcx);
333
+ return _addInstOptions(InstOptions::kX86_Repne);
334
+ }
335
+
336
+ //! Use REPNE prefix.
337
+ //!
338
+ //! \note This is the same as using `bnd()` or `repne()` prefix.
339
+ inline This& repnz(const Gp& zcx) noexcept { return repne(zcx); }
340
+
341
+ //! \}
342
+
343
+ //! \name REX Options
344
+ //! \{
345
+
346
+ //! Force REX prefix to be emitted even when it's not needed (X86_64).
347
+ //!
348
+ //! \note Don't use when using high 8-bit registers as REX prefix makes them inaccessible and `x86::Assembler`
349
+ //! would fail to encode such instruction.
350
+ inline This& rex() noexcept { return _addInstOptions(InstOptions::kX86_Rex); }
351
+
352
+ //! Force REX.B prefix (X64) [It exists for special purposes only].
353
+ inline This& rex_b() noexcept { return _addInstOptions(InstOptions::kX86_OpCodeB); }
354
+ //! Force REX.X prefix (X64) [It exists for special purposes only].
355
+ inline This& rex_x() noexcept { return _addInstOptions(InstOptions::kX86_OpCodeX); }
356
+ //! Force REX.R prefix (X64) [It exists for special purposes only].
357
+ inline This& rex_r() noexcept { return _addInstOptions(InstOptions::kX86_OpCodeR); }
358
+ //! Force REX.W prefix (X64) [It exists for special purposes only].
359
+ inline This& rex_w() noexcept { return _addInstOptions(InstOptions::kX86_OpCodeW); }
360
+
361
+ //! \}
362
+
363
+ //! \name VEX and EVEX Options
364
+ //! \{
365
+
366
+ //! Use VEX prefix instead of EVEX prefix (useful to select AVX_VNNI instruction instead of AVX512_VNNI).
367
+ inline This& vex() noexcept { return _addInstOptions(InstOptions::kX86_Vex); }
368
+ //! Force 3-byte VEX prefix (AVX+).
369
+ inline This& vex3() noexcept { return _addInstOptions(InstOptions::kX86_Vex3); }
370
+ //! Force 4-byte EVEX prefix (AVX512+).
371
+ inline This& evex() noexcept { return _addInstOptions(InstOptions::kX86_Evex); }
372
+
373
+ //! \}
374
+
375
+ //! \name AVX-512 Options & Masking
376
+ //! \{
377
+
378
+ //! Use masking {k} (AVX512+).
379
+ inline This& k(const KReg& kreg) noexcept {
380
+ _emitter()->_extraReg.init(kreg);
381
+ return *_emitter();
382
+ }
383
+
384
+ //! Use zeroing instead of merging (AVX512+).
385
+ inline This& z() noexcept { return _addInstOptions(InstOptions::kX86_ZMask); }
386
+
387
+ //! Suppress all exceptions (AVX512+).
388
+ inline This& sae() noexcept { return _addInstOptions(InstOptions::kX86_SAE); }
389
+ //! Static rounding mode {rn} (round-to-nearest even) and {sae} (AVX512+).
390
+ inline This& rn_sae() noexcept { return _addInstOptions(InstOptions::kX86_ER | InstOptions::kX86_RN_SAE); }
391
+ //! Static rounding mode {rd} (round-down, toward -inf) and {sae} (AVX512+).
392
+ inline This& rd_sae() noexcept { return _addInstOptions(InstOptions::kX86_ER | InstOptions::kX86_RD_SAE); }
393
+ //! Static rounding mode {ru} (round-up, toward +inf) and {sae} (AVX512+).
394
+ inline This& ru_sae() noexcept { return _addInstOptions(InstOptions::kX86_ER | InstOptions::kX86_RU_SAE); }
395
+ //! Static rounding mode {rz} (round-toward-zero, truncate) and {sae} (AVX512+).
396
+ inline This& rz_sae() noexcept { return _addInstOptions(InstOptions::kX86_ER | InstOptions::kX86_RZ_SAE); }
397
+
398
+ //! \}
399
+
400
+ //! \name Core Instructions
401
+ //! \{
402
+
403
+ ASMJIT_INST_2x(adc, Adc, Gp, Gp) // ANY
404
+ ASMJIT_INST_2x(adc, Adc, Gp, Mem) // ANY
405
+ ASMJIT_INST_2x(adc, Adc, Gp, Imm) // ANY
406
+ ASMJIT_INST_2x(adc, Adc, Mem, Gp) // ANY
407
+ ASMJIT_INST_2x(adc, Adc, Mem, Imm) // ANY
408
+ ASMJIT_INST_2x(add, Add, Gp, Gp) // ANY
409
+ ASMJIT_INST_2x(add, Add, Gp, Mem) // ANY
410
+ ASMJIT_INST_2x(add, Add, Gp, Imm) // ANY
411
+ ASMJIT_INST_2x(add, Add, Mem, Gp) // ANY
412
+ ASMJIT_INST_2x(add, Add, Mem, Imm) // ANY
413
+ ASMJIT_INST_2x(and_, And, Gp, Gp) // ANY
414
+ ASMJIT_INST_2x(and_, And, Gp, Mem) // ANY
415
+ ASMJIT_INST_2x(and_, And, Gp, Imm) // ANY
416
+ ASMJIT_INST_2x(and_, And, Mem, Gp) // ANY
417
+ ASMJIT_INST_2x(and_, And, Mem, Imm) // ANY
418
+ ASMJIT_INST_2x(bound, Bound, Gp, Mem) // X86
419
+ ASMJIT_INST_2x(bsf, Bsf, Gp, Gp) // ANY
420
+ ASMJIT_INST_2x(bsf, Bsf, Gp, Mem) // ANY
421
+ ASMJIT_INST_2x(bsr, Bsr, Gp, Gp) // ANY
422
+ ASMJIT_INST_2x(bsr, Bsr, Gp, Mem) // ANY
423
+ ASMJIT_INST_1x(bswap, Bswap, Gp) // ANY
424
+ ASMJIT_INST_2x(bt, Bt, Gp, Gp) // ANY
425
+ ASMJIT_INST_2x(bt, Bt, Gp, Imm) // ANY
426
+ ASMJIT_INST_2x(bt, Bt, Mem, Gp) // ANY
427
+ ASMJIT_INST_2x(bt, Bt, Mem, Imm) // ANY
428
+ ASMJIT_INST_2x(btc, Btc, Gp, Gp) // ANY
429
+ ASMJIT_INST_2x(btc, Btc, Gp, Imm) // ANY
430
+ ASMJIT_INST_2x(btc, Btc, Mem, Gp) // ANY
431
+ ASMJIT_INST_2x(btc, Btc, Mem, Imm) // ANY
432
+ ASMJIT_INST_2x(btr, Btr, Gp, Gp) // ANY
433
+ ASMJIT_INST_2x(btr, Btr, Gp, Imm) // ANY
434
+ ASMJIT_INST_2x(btr, Btr, Mem, Gp) // ANY
435
+ ASMJIT_INST_2x(btr, Btr, Mem, Imm) // ANY
436
+ ASMJIT_INST_2x(bts, Bts, Gp, Gp) // ANY
437
+ ASMJIT_INST_2x(bts, Bts, Gp, Imm) // ANY
438
+ ASMJIT_INST_2x(bts, Bts, Mem, Gp) // ANY
439
+ ASMJIT_INST_2x(bts, Bts, Mem, Imm) // ANY
440
+ ASMJIT_INST_1x(cbw, Cbw, Gp_AX) // ANY [EXPLICIT] AX <- Sign Extend AL
441
+ ASMJIT_INST_2x(cdq, Cdq, Gp_EDX, Gp_EAX) // ANY [EXPLICIT] EDX:EAX <- Sign Extend EAX
442
+ ASMJIT_INST_1x(cdqe, Cdqe, Gp_EAX) // X64 [EXPLICIT] RAX <- Sign Extend EAX
443
+ ASMJIT_INST_2x(cqo, Cqo, Gp_RDX, Gp_RAX) // X64 [EXPLICIT] RDX:RAX <- Sign Extend RAX
444
+ ASMJIT_INST_2x(cwd, Cwd, Gp_DX, Gp_AX) // ANY [EXPLICIT] DX:AX <- Sign Extend AX
445
+ ASMJIT_INST_1x(cwde, Cwde, Gp_EAX) // ANY [EXPLICIT] EAX <- Sign Extend AX
446
+ ASMJIT_INST_1x(call, Call, Gp) // ANY
447
+ ASMJIT_INST_1x(call, Call, Mem) // ANY
448
+ ASMJIT_INST_1x(call, Call, Label) // ANY
449
+ ASMJIT_INST_1x(call, Call, Imm) // ANY
450
+ ASMJIT_INST_2c(cmov, Cmov, Inst::cmovccFromCond, Gp, Gp) // CMOV
451
+ ASMJIT_INST_2c(cmov, Cmov, Inst::cmovccFromCond, Gp, Mem) // CMOV
452
+ ASMJIT_INST_2x(cmp, Cmp, Gp, Gp) // ANY
453
+ ASMJIT_INST_2x(cmp, Cmp, Gp, Mem) // ANY
454
+ ASMJIT_INST_2x(cmp, Cmp, Gp, Imm) // ANY
455
+ ASMJIT_INST_2x(cmp, Cmp, Mem, Gp) // ANY
456
+ ASMJIT_INST_2x(cmp, Cmp, Mem, Imm) // ANY
457
+ ASMJIT_INST_2x(cmps, Cmps, DS_ZSI, ES_ZDI) // ANY [EXPLICIT]
458
+ ASMJIT_INST_3x(cmpxchg, Cmpxchg, Gp, Gp, Gp_ZAX) // I486 [EXPLICIT]
459
+ ASMJIT_INST_3x(cmpxchg, Cmpxchg, Mem, Gp, Gp_ZAX) // I486 [EXPLICIT]
460
+ ASMJIT_INST_5x(cmpxchg16b, Cmpxchg16b, Mem, Gp_RDX, Gp_RAX, Gp_RCX, Gp_RBX); // CMPXCHG16B [EXPLICIT] m == EDX:EAX ? m <- ECX:EBX
461
+ ASMJIT_INST_5x(cmpxchg8b, Cmpxchg8b, Mem, Gp_EDX, Gp_EAX, Gp_ECX, Gp_EBX); // CMPXCHG8B [EXPLICIT] m == RDX:RAX ? m <- RCX:RBX
462
+ ASMJIT_INST_1x(dec, Dec, Gp) // ANY
463
+ ASMJIT_INST_1x(dec, Dec, Mem) // ANY
464
+ ASMJIT_INST_2x(div, Div, Gp, Gp) // ANY [EXPLICIT] AH[Rem]: AL[Quot] <- AX / r8
465
+ ASMJIT_INST_2x(div, Div, Gp, Mem) // ANY [EXPLICIT] AH[Rem]: AL[Quot] <- AX / m8
466
+ ASMJIT_INST_3x(div, Div, Gp, Gp, Gp) // ANY [EXPLICIT] xDX[Rem]:xAX[Quot] <- xDX:xAX / r16|r32|r64
467
+ ASMJIT_INST_3x(div, Div, Gp, Gp, Mem) // ANY [EXPLICIT] xDX[Rem]:xAX[Quot] <- xDX:xAX / m16|m32|m64
468
+ ASMJIT_INST_2x(idiv, Idiv, Gp, Gp) // ANY [EXPLICIT] AH[Rem]: AL[Quot] <- AX / r8
469
+ ASMJIT_INST_2x(idiv, Idiv, Gp, Mem) // ANY [EXPLICIT] AH[Rem]: AL[Quot] <- AX / m8
470
+ ASMJIT_INST_3x(idiv, Idiv, Gp, Gp, Gp) // ANY [EXPLICIT] xDX[Rem]:xAX[Quot] <- xDX:xAX / r16|r32|r64
471
+ ASMJIT_INST_3x(idiv, Idiv, Gp, Gp, Mem) // ANY [EXPLICIT] xDX[Rem]:xAX[Quot] <- xDX:xAX / m16|m32|m64
472
+ ASMJIT_INST_2x(imul, Imul, Gp, Gp) // ANY [EXPLICIT] AX <- AL * r8 | ra <- ra * rb
473
+ ASMJIT_INST_2x(imul, Imul, Gp, Mem) // ANY [EXPLICIT] AX <- AL * m8 | ra <- ra * m16|m32|m64
474
+ ASMJIT_INST_2x(imul, Imul, Gp, Imm) // ANY
475
+ ASMJIT_INST_3x(imul, Imul, Gp, Gp, Imm) // ANY
476
+ ASMJIT_INST_3x(imul, Imul, Gp, Mem, Imm) // ANY
477
+ ASMJIT_INST_3x(imul, Imul, Gp, Gp, Gp) // ANY [EXPLICIT] xDX:xAX <- xAX * r16|r32|r64
478
+ ASMJIT_INST_3x(imul, Imul, Gp, Gp, Mem) // ANY [EXPLICIT] xDX:xAX <- xAX * m16|m32|m64
479
+ ASMJIT_INST_1x(inc, Inc, Gp) // ANY
480
+ ASMJIT_INST_1x(inc, Inc, Mem) // ANY
481
+ ASMJIT_INST_1c(j, J, Inst::jccFromCond, Label) // ANY
482
+ ASMJIT_INST_1c(j, J, Inst::jccFromCond, Imm) // ANY
483
+ ASMJIT_INST_2x(jecxz, Jecxz, Gp, Label) // ANY [EXPLICIT] Short jump if CX/ECX/RCX is zero.
484
+ ASMJIT_INST_2x(jecxz, Jecxz, Gp, Imm) // ANY [EXPLICIT] Short jump if CX/ECX/RCX is zero.
485
+ ASMJIT_INST_1x(jmp, Jmp, Gp) // ANY
486
+ ASMJIT_INST_1x(jmp, Jmp, Mem) // ANY
487
+ ASMJIT_INST_1x(jmp, Jmp, Label) // ANY
488
+ ASMJIT_INST_1x(jmp, Jmp, Imm) // ANY
489
+ ASMJIT_INST_2x(lcall, Lcall, Imm, Imm) // ANY
490
+ ASMJIT_INST_1x(lcall, Lcall, Mem) // ANY
491
+ ASMJIT_INST_2x(lea, Lea, Gp, Mem) // ANY
492
+ ASMJIT_INST_2x(ljmp, Ljmp, Imm, Imm) // ANY
493
+ ASMJIT_INST_1x(ljmp, Ljmp, Mem) // ANY
494
+ ASMJIT_INST_2x(lods, Lods, Gp_ZAX, DS_ZSI) // ANY [EXPLICIT]
495
+ ASMJIT_INST_2x(loop, Loop, Gp_ZCX, Label) // ANY [EXPLICIT] Decrement xCX; short jump if xCX != 0.
496
+ ASMJIT_INST_2x(loop, Loop, Gp_ZCX, Imm) // ANY [EXPLICIT] Decrement xCX; short jump if xCX != 0.
497
+ ASMJIT_INST_2x(loope, Loope, Gp_ZCX, Label) // ANY [EXPLICIT] Decrement xCX; short jump if xCX != 0 && ZF == 1.
498
+ ASMJIT_INST_2x(loope, Loope, Gp_ZCX, Imm) // ANY [EXPLICIT] Decrement xCX; short jump if xCX != 0 && ZF == 1.
499
+ ASMJIT_INST_2x(loopne, Loopne, Gp_ZCX, Label) // ANY [EXPLICIT] Decrement xCX; short jump if xCX != 0 && ZF == 0.
500
+ ASMJIT_INST_2x(loopne, Loopne, Gp_ZCX, Imm) // ANY [EXPLICIT] Decrement xCX; short jump if xCX != 0 && ZF == 0.
501
+ ASMJIT_INST_2x(mov, Mov, Gp, Gp) // ANY
502
+ ASMJIT_INST_2x(mov, Mov, Gp, Mem) // ANY
503
+ ASMJIT_INST_2x(mov, Mov, Gp, Imm) // ANY
504
+ ASMJIT_INST_2x(mov, Mov, Mem, Gp) // ANY
505
+ ASMJIT_INST_2x(mov, Mov, Mem, Imm) // ANY
506
+ ASMJIT_INST_2x(mov, Mov, Gp, CReg) // ANY
507
+ ASMJIT_INST_2x(mov, Mov, CReg, Gp) // ANY
508
+ ASMJIT_INST_2x(mov, Mov, Gp, DReg) // ANY
509
+ ASMJIT_INST_2x(mov, Mov, DReg, Gp) // ANY
510
+ ASMJIT_INST_2x(mov, Mov, Gp, SReg) // ANY
511
+ ASMJIT_INST_2x(mov, Mov, Mem, SReg) // ANY
512
+ ASMJIT_INST_2x(mov, Mov, SReg, Gp) // ANY
513
+ ASMJIT_INST_2x(mov, Mov, SReg, Mem) // ANY
514
+ ASMJIT_INST_2x(movabs, Movabs, Gp, Mem) // X64
515
+ ASMJIT_INST_2x(movabs, Movabs, Gp, Imm) // X64
516
+ ASMJIT_INST_2x(movabs, Movabs, Mem, Gp) // X64
517
+ ASMJIT_INST_2x(movnti, Movnti, Mem, Gp) // SSE2
518
+ ASMJIT_INST_2x(movs, Movs, ES_ZDI, DS_ZSI) // ANY [EXPLICIT]
519
+ ASMJIT_INST_2x(movsx, Movsx, Gp, Gp) // ANY
520
+ ASMJIT_INST_2x(movsx, Movsx, Gp, Mem) // ANY
521
+ ASMJIT_INST_2x(movsxd, Movsxd, Gp, Gp) // X64
522
+ ASMJIT_INST_2x(movsxd, Movsxd, Gp, Mem) // X64
523
+ ASMJIT_INST_2x(movzx, Movzx, Gp, Gp) // ANY
524
+ ASMJIT_INST_2x(movzx, Movzx, Gp, Mem) // ANY
525
+ ASMJIT_INST_2x(mul, Mul, Gp_AX, Gp) // ANY [EXPLICIT] AX <- AL * r8
526
+ ASMJIT_INST_2x(mul, Mul, Gp_AX, Mem) // ANY [EXPLICIT] AX <- AL * m8
527
+ ASMJIT_INST_3x(mul, Mul, Gp_ZDX, Gp_ZAX, Gp) // ANY [EXPLICIT] xDX:xAX <- xAX * r16|r32|r64
528
+ ASMJIT_INST_3x(mul, Mul, Gp_ZDX, Gp_ZAX, Mem) // ANY [EXPLICIT] xDX:xAX <- xAX * m16|m32|m64
529
+ ASMJIT_INST_1x(neg, Neg, Gp) // ANY
530
+ ASMJIT_INST_1x(neg, Neg, Mem) // ANY
531
+ ASMJIT_INST_0x(nop, Nop) // ANY
532
+ ASMJIT_INST_1x(nop, Nop, Gp) // ANY
533
+ ASMJIT_INST_1x(nop, Nop, Mem) // ANY
534
+ ASMJIT_INST_2x(nop, Nop, Gp, Gp) // ANY
535
+ ASMJIT_INST_2x(nop, Nop, Mem, Gp) // ANY
536
+ ASMJIT_INST_1x(not_, Not, Gp) // ANY
537
+ ASMJIT_INST_1x(not_, Not, Mem) // ANY
538
+ ASMJIT_INST_2x(or_, Or, Gp, Gp) // ANY
539
+ ASMJIT_INST_2x(or_, Or, Gp, Mem) // ANY
540
+ ASMJIT_INST_2x(or_, Or, Gp, Imm) // ANY
541
+ ASMJIT_INST_2x(or_, Or, Mem, Gp) // ANY
542
+ ASMJIT_INST_2x(or_, Or, Mem, Imm) // ANY
543
+ ASMJIT_INST_1x(pop, Pop, Gp) // ANY
544
+ ASMJIT_INST_1x(pop, Pop, Mem) // ANY
545
+ ASMJIT_INST_1x(pop, Pop, SReg); // ANY
546
+ ASMJIT_INST_0x(popa, Popa) // X86
547
+ ASMJIT_INST_0x(popad, Popad) // X86
548
+ ASMJIT_INST_0x(popf, Popf) // ANY
549
+ ASMJIT_INST_0x(popfd, Popfd) // X86
550
+ ASMJIT_INST_0x(popfq, Popfq) // X64
551
+ ASMJIT_INST_1x(push, Push, Gp) // ANY
552
+ ASMJIT_INST_1x(push, Push, Mem) // ANY
553
+ ASMJIT_INST_1x(push, Push, SReg) // ANY
554
+ ASMJIT_INST_1x(push, Push, Imm) // ANY
555
+ ASMJIT_INST_0x(pusha, Pusha) // X86
556
+ ASMJIT_INST_0x(pushad, Pushad) // X86
557
+ ASMJIT_INST_0x(pushf, Pushf) // ANY
558
+ ASMJIT_INST_0x(pushfd, Pushfd) // X86
559
+ ASMJIT_INST_0x(pushfq, Pushfq) // X64
560
+ ASMJIT_INST_2x(rcl, Rcl, Gp, Gp_CL) // ANY
561
+ ASMJIT_INST_2x(rcl, Rcl, Mem, Gp_CL) // ANY
562
+ ASMJIT_INST_2x(rcl, Rcl, Gp, Imm) // ANY
563
+ ASMJIT_INST_2x(rcl, Rcl, Mem, Imm) // ANY
564
+ ASMJIT_INST_2x(rcr, Rcr, Gp, Gp_CL) // ANY
565
+ ASMJIT_INST_2x(rcr, Rcr, Mem, Gp_CL) // ANY
566
+ ASMJIT_INST_2x(rcr, Rcr, Gp, Imm) // ANY
567
+ ASMJIT_INST_2x(rcr, Rcr, Mem, Imm) // ANY
568
+ ASMJIT_INST_2x(rol, Rol, Gp, Gp_CL) // ANY
569
+ ASMJIT_INST_2x(rol, Rol, Mem, Gp_CL) // ANY
570
+ ASMJIT_INST_2x(rol, Rol, Gp, Imm) // ANY
571
+ ASMJIT_INST_2x(rol, Rol, Mem, Imm) // ANY
572
+ ASMJIT_INST_2x(ror, Ror, Gp, Gp_CL) // ANY
573
+ ASMJIT_INST_2x(ror, Ror, Mem, Gp_CL) // ANY
574
+ ASMJIT_INST_2x(ror, Ror, Gp, Imm) // ANY
575
+ ASMJIT_INST_2x(ror, Ror, Mem, Imm) // ANY
576
+ ASMJIT_INST_2x(sbb, Sbb, Gp, Gp) // ANY
577
+ ASMJIT_INST_2x(sbb, Sbb, Gp, Mem) // ANY
578
+ ASMJIT_INST_2x(sbb, Sbb, Gp, Imm) // ANY
579
+ ASMJIT_INST_2x(sbb, Sbb, Mem, Gp) // ANY
580
+ ASMJIT_INST_2x(sbb, Sbb, Mem, Imm) // ANY
581
+ ASMJIT_INST_2x(sal, Sal, Gp, Gp_CL) // ANY
582
+ ASMJIT_INST_2x(sal, Sal, Mem, Gp_CL) // ANY
583
+ ASMJIT_INST_2x(sal, Sal, Gp, Imm) // ANY
584
+ ASMJIT_INST_2x(sal, Sal, Mem, Imm) // ANY
585
+ ASMJIT_INST_2x(sar, Sar, Gp, Gp_CL) // ANY
586
+ ASMJIT_INST_2x(sar, Sar, Mem, Gp_CL) // ANY
587
+ ASMJIT_INST_2x(sar, Sar, Gp, Imm) // ANY
588
+ ASMJIT_INST_2x(sar, Sar, Mem, Imm) // ANY
589
+ ASMJIT_INST_2x(scas, Scas, Gp_ZAX, ES_ZDI) // ANY [EXPLICIT]
590
+ ASMJIT_INST_1c(set, Set, Inst::setccFromCond, Gp) // ANY
591
+ ASMJIT_INST_1c(set, Set, Inst::setccFromCond, Mem) // ANY
592
+ ASMJIT_INST_2x(shl, Shl, Gp, Gp_CL) // ANY
593
+ ASMJIT_INST_2x(shl, Shl, Mem, Gp_CL) // ANY
594
+ ASMJIT_INST_2x(shl, Shl, Gp, Imm) // ANY
595
+ ASMJIT_INST_2x(shl, Shl, Mem, Imm) // ANY
596
+ ASMJIT_INST_2x(shr, Shr, Gp, Gp_CL) // ANY
597
+ ASMJIT_INST_2x(shr, Shr, Mem, Gp_CL) // ANY
598
+ ASMJIT_INST_2x(shr, Shr, Gp, Imm) // ANY
599
+ ASMJIT_INST_2x(shr, Shr, Mem, Imm) // ANY
600
+ ASMJIT_INST_3x(shld, Shld, Gp, Gp, Gp_CL) // ANY
601
+ ASMJIT_INST_3x(shld, Shld, Mem, Gp, Gp_CL) // ANY
602
+ ASMJIT_INST_3x(shld, Shld, Gp, Gp, Imm) // ANY
603
+ ASMJIT_INST_3x(shld, Shld, Mem, Gp, Imm) // ANY
604
+ ASMJIT_INST_3x(shrd, Shrd, Gp, Gp, Gp_CL) // ANY
605
+ ASMJIT_INST_3x(shrd, Shrd, Mem, Gp, Gp_CL) // ANY
606
+ ASMJIT_INST_3x(shrd, Shrd, Gp, Gp, Imm) // ANY
607
+ ASMJIT_INST_3x(shrd, Shrd, Mem, Gp, Imm) // ANY
608
+ ASMJIT_INST_2x(stos, Stos, ES_ZDI, Gp_ZAX) // ANY [EXPLICIT]
609
+ ASMJIT_INST_2x(sub, Sub, Gp, Gp) // ANY
610
+ ASMJIT_INST_2x(sub, Sub, Gp, Mem) // ANY
611
+ ASMJIT_INST_2x(sub, Sub, Gp, Imm) // ANY
612
+ ASMJIT_INST_2x(sub, Sub, Mem, Gp) // ANY
613
+ ASMJIT_INST_2x(sub, Sub, Mem, Imm) // ANY
614
+ ASMJIT_INST_2x(test, Test, Gp, Gp) // ANY
615
+ ASMJIT_INST_2x(test, Test, Gp, Imm) // ANY
616
+ ASMJIT_INST_2x(test, Test, Mem, Gp) // ANY
617
+ ASMJIT_INST_2x(test, Test, Mem, Imm) // ANY
618
+ ASMJIT_INST_2x(ud0, Ud0, Gp, Gp) // ANY
619
+ ASMJIT_INST_2x(ud0, Ud0, Gp, Mem) // ANY
620
+ ASMJIT_INST_2x(ud1, Ud1, Gp, Gp) // ANY
621
+ ASMJIT_INST_2x(ud1, Ud1, Gp, Mem) // ANY
622
+ ASMJIT_INST_0x(ud2, Ud2) // ANY
623
+ ASMJIT_INST_2x(xadd, Xadd, Gp, Gp) // ANY
624
+ ASMJIT_INST_2x(xadd, Xadd, Mem, Gp) // ANY
625
+ ASMJIT_INST_2x(xchg, Xchg, Gp, Gp) // ANY
626
+ ASMJIT_INST_2x(xchg, Xchg, Mem, Gp) // ANY
627
+ ASMJIT_INST_2x(xchg, Xchg, Gp, Mem) // ANY
628
+ ASMJIT_INST_2x(xor_, Xor, Gp, Gp) // ANY
629
+ ASMJIT_INST_2x(xor_, Xor, Gp, Mem) // ANY
630
+ ASMJIT_INST_2x(xor_, Xor, Gp, Imm) // ANY
631
+ ASMJIT_INST_2x(xor_, Xor, Mem, Gp) // ANY
632
+ ASMJIT_INST_2x(xor_, Xor, Mem, Imm) // ANY
633
+
634
+ //! \}
635
+
636
+ //! \name Deprecated 32-bit Instructions
637
+ //! \{
638
+
639
+ ASMJIT_INST_1x(aaa, Aaa, Gp) // X86 [EXPLICIT]
640
+ ASMJIT_INST_2x(aad, Aad, Gp, Imm) // X86 [EXPLICIT]
641
+ ASMJIT_INST_2x(aam, Aam, Gp, Imm) // X86 [EXPLICIT]
642
+ ASMJIT_INST_1x(aas, Aas, Gp) // X86 [EXPLICIT]
643
+ ASMJIT_INST_1x(daa, Daa, Gp) // X86 [EXPLICIT]
644
+ ASMJIT_INST_1x(das, Das, Gp) // X86 [EXPLICIT]
645
+
646
+ //! \}
647
+
648
+ //! \name ENTER/LEAVE Instructions
649
+ //! \{
650
+
651
+ ASMJIT_INST_2x(enter, Enter, Imm, Imm) // ANY
652
+ ASMJIT_INST_0x(leave, Leave) // ANY
653
+
654
+ //! \}
655
+
656
+ //! \name IN/OUT Instructions
657
+ //! \{
658
+
659
+ // NOTE: For some reason Doxygen is messed up here and thinks we are in cond.
660
+ //! \endcond
661
+
662
+ ASMJIT_INST_2x(in, In, Gp_ZAX, Imm) // ANY
663
+ ASMJIT_INST_2x(in, In, Gp_ZAX, Gp_DX) // ANY
664
+ ASMJIT_INST_2x(ins, Ins, ES_ZDI, Gp_DX) // ANY
665
+ ASMJIT_INST_2x(out, Out, Imm, Gp_ZAX) // ANY
666
+ ASMJIT_INST_2x(out, Out, Gp_DX, Gp_ZAX) // ANY
667
+ ASMJIT_INST_2x(outs, Outs, Gp_DX, DS_ZSI) // ANY
668
+
669
+ //! \}
670
+
671
+ //! \name Clear/Set CF/DF Instructions
672
+ //! \{
673
+
674
+ ASMJIT_INST_0x(clc, Clc) // ANY
675
+ ASMJIT_INST_0x(cld, Cld) // ANY
676
+ ASMJIT_INST_0x(cmc, Cmc) // ANY
677
+ ASMJIT_INST_0x(stc, Stc) // ANY
678
+ ASMJIT_INST_0x(std, Std) // ANY
679
+
680
+ //! \}
681
+
682
+ //! \name LAHF/SAHF Instructions
683
+ //! \{
684
+
685
+ ASMJIT_INST_1x(lahf, Lahf, Gp_AH) // LAHFSAHF [EXPLICIT] AH <- EFL
686
+ ASMJIT_INST_1x(sahf, Sahf, Gp_AH) // LAHFSAHF [EXPLICIT] EFL <- AH
687
+
688
+ //! \}
689
+
690
+ //! \name ADX Instructions
691
+ //! \{
692
+
693
+ ASMJIT_INST_2x(adcx, Adcx, Gp, Gp) // ADX
694
+ ASMJIT_INST_2x(adcx, Adcx, Gp, Mem) // ADX
695
+ ASMJIT_INST_2x(adox, Adox, Gp, Gp) // ADX
696
+ ASMJIT_INST_2x(adox, Adox, Gp, Mem) // ADX
697
+
698
+ //! \}
699
+
700
+ //! \name LZCNT/POPCNT Instructions
701
+ //! \{
702
+
703
+ ASMJIT_INST_2x(lzcnt, Lzcnt, Gp, Gp) // LZCNT
704
+ ASMJIT_INST_2x(lzcnt, Lzcnt, Gp, Mem) // LZCNT
705
+ ASMJIT_INST_2x(popcnt, Popcnt, Gp, Gp) // POPCNT
706
+ ASMJIT_INST_2x(popcnt, Popcnt, Gp, Mem) // POPCNT
707
+
708
+ //! \}
709
+
710
+ //! \name BMI Instructions
711
+ //! \{
712
+
713
+ ASMJIT_INST_3x(andn, Andn, Gp, Gp, Gp) // BMI
714
+ ASMJIT_INST_3x(andn, Andn, Gp, Gp, Mem) // BMI
715
+ ASMJIT_INST_3x(bextr, Bextr, Gp, Gp, Gp) // BMI
716
+ ASMJIT_INST_3x(bextr, Bextr, Gp, Mem, Gp) // BMI
717
+ ASMJIT_INST_2x(blsi, Blsi, Gp, Gp) // BMI
718
+ ASMJIT_INST_2x(blsi, Blsi, Gp, Mem) // BMI
719
+ ASMJIT_INST_2x(blsmsk, Blsmsk, Gp, Gp) // BMI
720
+ ASMJIT_INST_2x(blsmsk, Blsmsk, Gp, Mem) // BMI
721
+ ASMJIT_INST_2x(blsr, Blsr, Gp, Gp) // BMI
722
+ ASMJIT_INST_2x(blsr, Blsr, Gp, Mem) // BMI
723
+ ASMJIT_INST_2x(tzcnt, Tzcnt, Gp, Gp) // BMI
724
+ ASMJIT_INST_2x(tzcnt, Tzcnt, Gp, Mem) // BMI
725
+
726
+ //! \}
727
+
728
+ //! \name BMI2 Instructions
729
+ //! \{
730
+
731
+ ASMJIT_INST_3x(bzhi, Bzhi, Gp, Gp, Gp) // BMI2
732
+ ASMJIT_INST_3x(bzhi, Bzhi, Gp, Mem, Gp) // BMI2
733
+ ASMJIT_INST_4x(mulx, Mulx, Gp, Gp, Gp, Gp_ZDX) // BMI2 [EXPLICIT]
734
+ ASMJIT_INST_4x(mulx, Mulx, Gp, Gp, Mem, Gp_ZDX) // BMI2 [EXPLICIT]
735
+ ASMJIT_INST_3x(pdep, Pdep, Gp, Gp, Gp) // BMI2
736
+ ASMJIT_INST_3x(pdep, Pdep, Gp, Gp, Mem) // BMI2
737
+ ASMJIT_INST_3x(pext, Pext, Gp, Gp, Gp) // BMI2
738
+ ASMJIT_INST_3x(pext, Pext, Gp, Gp, Mem) // BMI2
739
+ ASMJIT_INST_3x(rorx, Rorx, Gp, Gp, Imm) // BMI2
740
+ ASMJIT_INST_3x(rorx, Rorx, Gp, Mem, Imm) // BMI2
741
+ ASMJIT_INST_3x(sarx, Sarx, Gp, Gp, Gp) // BMI2
742
+ ASMJIT_INST_3x(sarx, Sarx, Gp, Mem, Gp) // BMI2
743
+ ASMJIT_INST_3x(shlx, Shlx, Gp, Gp, Gp) // BMI2
744
+ ASMJIT_INST_3x(shlx, Shlx, Gp, Mem, Gp) // BMI2
745
+ ASMJIT_INST_3x(shrx, Shrx, Gp, Gp, Gp) // BMI2
746
+ ASMJIT_INST_3x(shrx, Shrx, Gp, Mem, Gp) // BMI2
747
+
748
+ //! \}
749
+
750
+ //! \name TBM Instructions
751
+ //! \{
752
+
753
+ ASMJIT_INST_2x(blcfill, Blcfill, Gp, Gp) // TBM
754
+ ASMJIT_INST_2x(blcfill, Blcfill, Gp, Mem) // TBM
755
+ ASMJIT_INST_2x(blci, Blci, Gp, Gp) // TBM
756
+ ASMJIT_INST_2x(blci, Blci, Gp, Mem) // TBM
757
+ ASMJIT_INST_2x(blcic, Blcic, Gp, Gp) // TBM
758
+ ASMJIT_INST_2x(blcic, Blcic, Gp, Mem) // TBM
759
+ ASMJIT_INST_2x(blcmsk, Blcmsk, Gp, Gp) // TBM
760
+ ASMJIT_INST_2x(blcmsk, Blcmsk, Gp, Mem) // TBM
761
+ ASMJIT_INST_2x(blcs, Blcs, Gp, Gp) // TBM
762
+ ASMJIT_INST_2x(blcs, Blcs, Gp, Mem) // TBM
763
+ ASMJIT_INST_2x(blsfill, Blsfill, Gp, Gp) // TBM
764
+ ASMJIT_INST_2x(blsfill, Blsfill, Gp, Mem) // TBM
765
+ ASMJIT_INST_2x(blsic, Blsic, Gp, Gp) // TBM
766
+ ASMJIT_INST_2x(blsic, Blsic, Gp, Mem) // TBM
767
+ ASMJIT_INST_2x(t1mskc, T1mskc, Gp, Gp) // TBM
768
+ ASMJIT_INST_2x(t1mskc, T1mskc, Gp, Mem) // TBM
769
+ ASMJIT_INST_2x(tzmsk, Tzmsk, Gp, Gp) // TBM
770
+ ASMJIT_INST_2x(tzmsk, Tzmsk, Gp, Mem) // TBM
771
+
772
+ //! \}
773
+
774
+ //! \name CRC32 Instructions (SSE4.2)
775
+ //! \{
776
+
777
+ ASMJIT_INST_2x(crc32, Crc32, Gp, Gp) // SSE4_2
778
+ ASMJIT_INST_2x(crc32, Crc32, Gp, Mem) // SSE4_2
779
+
780
+ //! \}
781
+
782
+ //! \name MOVBE Instructions
783
+ //! \{
784
+
785
+ ASMJIT_INST_2x(movbe, Movbe, Gp, Mem) // MOVBE
786
+ ASMJIT_INST_2x(movbe, Movbe, Mem, Gp) // MOVBE
787
+
788
+ //! \}
789
+
790
+ //! \name MOVDIRI & MOVDIR64B Instructions
791
+ //! \{
792
+
793
+ ASMJIT_INST_2x(movdiri, Movdiri, Mem, Gp) // MOVDIRI
794
+ ASMJIT_INST_2x(movdir64b, Movdir64b, Mem, Mem) // MOVDIR64B
795
+
796
+ //! \}
797
+
798
+ //! \name MXCSR Instructions (SSE)
799
+ //! \{
800
+
801
+ ASMJIT_INST_1x(ldmxcsr, Ldmxcsr, Mem) // SSE
802
+ ASMJIT_INST_1x(stmxcsr, Stmxcsr, Mem) // SSE
803
+
804
+ //! \}
805
+
806
+ //! \name FENCE Instructions (SSE and SSE2)
807
+ //! \{
808
+
809
+ ASMJIT_INST_0x(lfence, Lfence) // SSE2
810
+ ASMJIT_INST_0x(mfence, Mfence) // SSE2
811
+ ASMJIT_INST_0x(sfence, Sfence) // SSE
812
+
813
+ //! \}
814
+
815
+ //! \name PREFETCH Instructions
816
+ //! \{
817
+
818
+ ASMJIT_INST_1x(prefetch, Prefetch, Mem) // 3DNOW
819
+ ASMJIT_INST_1x(prefetchnta, Prefetchnta, Mem) // SSE
820
+ ASMJIT_INST_1x(prefetcht0, Prefetcht0, Mem) // SSE
821
+ ASMJIT_INST_1x(prefetcht1, Prefetcht1, Mem) // SSE
822
+ ASMJIT_INST_1x(prefetcht2, Prefetcht2, Mem) // SSE
823
+ ASMJIT_INST_1x(prefetchw, Prefetchw, Mem) // PREFETCHW
824
+ ASMJIT_INST_1x(prefetchwt1, Prefetchwt1, Mem) // PREFETCHW1
825
+
826
+ //! \}
827
+
828
+ //! \name CPUID Instruction
829
+ //! \{
830
+
831
+ ASMJIT_INST_4x(cpuid, Cpuid, Gp_EAX, Gp_EBX, Gp_ECX, Gp_EDX) // I486 [EXPLICIT] EAX:EBX:ECX:EDX <- CPUID[EAX:ECX]
832
+
833
+ //! \}
834
+
835
+ //! \name CacheLine Instructions
836
+ //! \{
837
+
838
+ ASMJIT_INST_1x(cldemote, Cldemote, Mem) // CLDEMOTE
839
+ ASMJIT_INST_1x(clflush, Clflush, Mem) // CLFLUSH
840
+ ASMJIT_INST_1x(clflushopt, Clflushopt, Mem) // CLFLUSH_OPT
841
+ ASMJIT_INST_1x(clwb, Clwb, Mem) // CLWB
842
+ ASMJIT_INST_1x(clzero, Clzero, DS_ZAX) // CLZERO [EXPLICIT]
843
+
844
+ //! \}
845
+
846
+ //! \name SERIALIZE Instruction
847
+ //! \{
848
+
849
+ ASMJIT_INST_0x(serialize, Serialize) // SERIALIZE
850
+
851
+ //! \}
852
+
853
+ //! \name RDPID Instruction
854
+ //! \{
855
+
856
+ ASMJIT_INST_1x(rdpid, Rdpid, Gp) // RDPID
857
+
858
+ //! \}
859
+
860
+ //! \name RDPRU/RDPKRU Instructions
861
+ //! \{
862
+
863
+ ASMJIT_INST_3x(rdpru, Rdpru, Gp_EDX, Gp_EAX, Gp_ECX) // RDPRU [EXPLICIT] EDX:EAX <- PRU[ECX]
864
+ ASMJIT_INST_3x(rdpkru, Rdpkru, Gp_EDX, Gp_EAX, Gp_ECX) // RDPKRU [EXPLICIT] EDX:EAX <- PKRU[ECX]
865
+
866
+ //! \}
867
+
868
+ //! \name RDTSC/RDTSCP Instructions
869
+ //! \{
870
+
871
+ ASMJIT_INST_2x(rdtsc, Rdtsc, Gp_EDX, Gp_EAX) // RDTSC [EXPLICIT] EDX:EAX <- Counter
872
+ ASMJIT_INST_3x(rdtscp, Rdtscp, Gp_EDX, Gp_EAX, Gp_ECX) // RDTSCP [EXPLICIT] EDX:EAX:EXC <- Counter
873
+
874
+ //! \}
875
+
876
+ //! \name Other User-Mode Instructions
877
+ //! \{
878
+
879
+ ASMJIT_INST_2x(arpl, Arpl, Gp, Gp) // X86
880
+ ASMJIT_INST_2x(arpl, Arpl, Mem, Gp) // X86
881
+ ASMJIT_INST_0x(cli, Cli) // ANY
882
+ ASMJIT_INST_0x(getsec, Getsec) // SMX
883
+ ASMJIT_INST_1x(int_, Int, Imm) // ANY
884
+ ASMJIT_INST_0x(int3, Int3) // ANY
885
+ ASMJIT_INST_0x(into, Into) // ANY
886
+ ASMJIT_INST_2x(lar, Lar, Gp, Gp) // ANY
887
+ ASMJIT_INST_2x(lar, Lar, Gp, Mem) // ANY
888
+ ASMJIT_INST_2x(lds, Lds, Gp, Mem) // X86
889
+ ASMJIT_INST_2x(les, Les, Gp, Mem) // X86
890
+ ASMJIT_INST_2x(lfs, Lfs, Gp, Mem) // ANY
891
+ ASMJIT_INST_2x(lgs, Lgs, Gp, Mem) // ANY
892
+ ASMJIT_INST_2x(lsl, Lsl, Gp, Gp) // ANY
893
+ ASMJIT_INST_2x(lsl, Lsl, Gp, Mem) // ANY
894
+ ASMJIT_INST_2x(lss, Lss, Gp, Mem) // ANY
895
+ ASMJIT_INST_0x(pause, Pause) // SSE2
896
+ ASMJIT_INST_0x(rsm, Rsm) // X86
897
+ ASMJIT_INST_1x(sgdt, Sgdt, Mem) // ANY
898
+ ASMJIT_INST_1x(sidt, Sidt, Mem) // ANY
899
+ ASMJIT_INST_1x(sldt, Sldt, Gp) // ANY
900
+ ASMJIT_INST_1x(sldt, Sldt, Mem) // ANY
901
+ ASMJIT_INST_1x(smsw, Smsw, Gp) // ANY
902
+ ASMJIT_INST_1x(smsw, Smsw, Mem) // ANY
903
+ ASMJIT_INST_0x(sti, Sti) // ANY
904
+ ASMJIT_INST_1x(str, Str, Gp) // ANY
905
+ ASMJIT_INST_1x(str, Str, Mem) // ANY
906
+ ASMJIT_INST_1x(verr, Verr, Gp) // ANY
907
+ ASMJIT_INST_1x(verr, Verr, Mem) // ANY
908
+ ASMJIT_INST_1x(verw, Verw, Gp) // ANY
909
+ ASMJIT_INST_1x(verw, Verw, Mem) // ANY
910
+
911
+ //! \}
912
+
913
+ //! \name FSGSBASE Instructions
914
+ //! \{
915
+
916
+ ASMJIT_INST_1x(rdfsbase, Rdfsbase, Gp) // FSGSBASE
917
+ ASMJIT_INST_1x(rdgsbase, Rdgsbase, Gp) // FSGSBASE
918
+ ASMJIT_INST_1x(wrfsbase, Wrfsbase, Gp) // FSGSBASE
919
+ ASMJIT_INST_1x(wrgsbase, Wrgsbase, Gp) // FSGSBASE
920
+
921
+ //! \}
922
+
923
+ //! \name FXSR Instructions
924
+ //! \{
925
+
926
+ ASMJIT_INST_1x(fxrstor, Fxrstor, Mem) // FXSR
927
+ ASMJIT_INST_1x(fxrstor64, Fxrstor64, Mem) // FXSR
928
+ ASMJIT_INST_1x(fxsave, Fxsave, Mem) // FXSR
929
+ ASMJIT_INST_1x(fxsave64, Fxsave64, Mem) // FXSR
930
+
931
+ //! \}
932
+
933
+ //! \name XSAVE Instructions
934
+ //! \{
935
+
936
+ ASMJIT_INST_3x(xgetbv, Xgetbv, Gp_EDX, Gp_EAX, Gp_ECX) // XSAVE [EXPLICIT] EDX:EAX <- XCR[ECX]
937
+ ASMJIT_INST_3x(xrstor, Xrstor, Mem, Gp_EDX, Gp_EAX) // XSAVE [EXPLICIT]
938
+ ASMJIT_INST_3x(xrstor64, Xrstor64, Mem, Gp_EDX, Gp_EAX) // XSAVE+X64 [EXPLICIT]
939
+ ASMJIT_INST_3x(xrstors, Xrstors, Mem, Gp_EDX, Gp_EAX) // XSAVE [EXPLICIT]
940
+ ASMJIT_INST_3x(xrstors64, Xrstors64, Mem, Gp_EDX, Gp_EAX) // XSAVE+X64 [EXPLICIT]
941
+ ASMJIT_INST_3x(xsave, Xsave, Mem, Gp_EDX, Gp_EAX) // XSAVE [EXPLICIT]
942
+ ASMJIT_INST_3x(xsave64, Xsave64, Mem, Gp_EDX, Gp_EAX) // XSAVE+X64 [EXPLICIT]
943
+ ASMJIT_INST_3x(xsavec, Xsavec, Mem, Gp_EDX, Gp_EAX) // XSAVE [EXPLICIT]
944
+ ASMJIT_INST_3x(xsavec64, Xsavec64, Mem, Gp_EDX, Gp_EAX) // XSAVE+X64 [EXPLICIT]
945
+ ASMJIT_INST_3x(xsaveopt, Xsaveopt, Mem, Gp_EDX, Gp_EAX) // XSAVE [EXPLICIT]
946
+ ASMJIT_INST_3x(xsaveopt64, Xsaveopt64, Mem, Gp_EDX, Gp_EAX) // XSAVE+X64 [EXPLICIT]
947
+ ASMJIT_INST_3x(xsaves, Xsaves, Mem, Gp_EDX, Gp_EAX) // XSAVE [EXPLICIT]
948
+ ASMJIT_INST_3x(xsaves64, Xsaves64, Mem, Gp_EDX, Gp_EAX) // XSAVE+X64 [EXPLICIT]
949
+
950
+ //! \}
951
+
952
+ //! \name MPX Extensions
953
+ //! \{
954
+
955
+ ASMJIT_INST_2x(bndcl, Bndcl, Bnd, Gp) // MPX
956
+ ASMJIT_INST_2x(bndcl, Bndcl, Bnd, Mem) // MPX
957
+ ASMJIT_INST_2x(bndcn, Bndcn, Bnd, Gp) // MPX
958
+ ASMJIT_INST_2x(bndcn, Bndcn, Bnd, Mem) // MPX
959
+ ASMJIT_INST_2x(bndcu, Bndcu, Bnd, Gp) // MPX
960
+ ASMJIT_INST_2x(bndcu, Bndcu, Bnd, Mem) // MPX
961
+ ASMJIT_INST_2x(bndldx, Bndldx, Bnd, Mem) // MPX
962
+ ASMJIT_INST_2x(bndmk, Bndmk, Bnd, Mem) // MPX
963
+ ASMJIT_INST_2x(bndmov, Bndmov, Bnd, Bnd) // MPX
964
+ ASMJIT_INST_2x(bndmov, Bndmov, Bnd, Mem) // MPX
965
+ ASMJIT_INST_2x(bndmov, Bndmov, Mem, Bnd) // MPX
966
+ ASMJIT_INST_2x(bndstx, Bndstx, Mem, Bnd) // MPX
967
+
968
+ //! \}
969
+
970
+ //! \name MONITORX Instructions
971
+ //! \{
972
+
973
+ ASMJIT_INST_3x(monitorx, Monitorx, Mem, Gp, Gp) // MONITORX
974
+ ASMJIT_INST_3x(mwaitx, Mwaitx, Gp, Gp, Gp) // MONITORX
975
+
976
+ //! \}
977
+
978
+ //! \name MCOMMIT Instruction
979
+ //! \{
980
+
981
+ ASMJIT_INST_0x(mcommit, Mcommit) // MCOMMIT
982
+
983
+ //! \}
984
+
985
+ //! \name PTWRITE Instruction
986
+ //! \{
987
+
988
+ ASMJIT_INST_1x(ptwrite, Ptwrite, Gp) // PTWRITE
989
+ ASMJIT_INST_1x(ptwrite, Ptwrite, Mem) // PTWRITE
990
+
991
+ //! \}
992
+
993
+ //! \name ENQCMD Instructions
994
+ //! \{
995
+
996
+ ASMJIT_INST_2x(enqcmd, Enqcmd, Mem, Mem) // ENQCMD
997
+ ASMJIT_INST_2x(enqcmds, Enqcmds, Mem, Mem) // ENQCMD
998
+
999
+ //! \}
1000
+
1001
+ //! \name WAITPKG Instructions
1002
+ //! \{
1003
+
1004
+ ASMJIT_INST_3x(tpause, Tpause, Gp, Gp, Gp) // WAITPKG
1005
+ ASMJIT_INST_1x(umonitor, Umonitor, Mem) // WAITPKG
1006
+ ASMJIT_INST_3x(umwait, Umwait, Gp, Gp, Gp) // WAITPKG
1007
+
1008
+ //! \}
1009
+
1010
+ //! \name RDRAND & RDSEED Instructions
1011
+ //! \{
1012
+
1013
+ ASMJIT_INST_1x(rdrand, Rdrand, Gp) // RDRAND
1014
+ ASMJIT_INST_1x(rdseed, Rdseed, Gp) // RDSEED
1015
+
1016
+ //! \}
1017
+
1018
+ //! \name LWP Instructions
1019
+ //! \{
1020
+
1021
+ ASMJIT_INST_1x(llwpcb, Llwpcb, Gp) // LWP
1022
+ ASMJIT_INST_3x(lwpins, Lwpins, Gp, Gp, Imm) // LWP
1023
+ ASMJIT_INST_3x(lwpins, Lwpins, Gp, Mem, Imm) // LWP
1024
+ ASMJIT_INST_3x(lwpval, Lwpval, Gp, Gp, Imm) // LWP
1025
+ ASMJIT_INST_3x(lwpval, Lwpval, Gp, Mem, Imm) // LWP
1026
+ ASMJIT_INST_1x(slwpcb, Slwpcb, Gp) // LWP
1027
+
1028
+ //! \}
1029
+
1030
+ //! \name RTM & TSX Instructions
1031
+ //! \{
1032
+
1033
+ ASMJIT_INST_1x(xabort, Xabort, Imm) // RTM
1034
+ ASMJIT_INST_1x(xbegin, Xbegin, Label) // RTM
1035
+ ASMJIT_INST_1x(xbegin, Xbegin, Imm) // RTM
1036
+ ASMJIT_INST_0x(xend, Xend) // RTM
1037
+ ASMJIT_INST_0x(xtest, Xtest) // TSX
1038
+
1039
+ //! \}
1040
+
1041
+ //! \name TSXLDTRK Instructions
1042
+ //! \{
1043
+
1044
+ ASMJIT_INST_0x(xresldtrk, Xresldtrk) // TSXLDTRK
1045
+ ASMJIT_INST_0x(xsusldtrk, Xsusldtrk) // TSXLDTRK
1046
+
1047
+ //! \}
1048
+
1049
+ //! \name CET-IBT Instructions
1050
+ //! \{
1051
+
1052
+ ASMJIT_INST_0x(endbr32, Endbr32) // CET_IBT
1053
+ ASMJIT_INST_0x(endbr64, Endbr64) // CET_IBT
1054
+
1055
+ //! \}
1056
+
1057
+ //! \name CET-SS Instructions
1058
+ //! \{
1059
+
1060
+ ASMJIT_INST_1x(clrssbsy, Clrssbsy, Mem) // CET_SS
1061
+ ASMJIT_INST_0x(setssbsy, Setssbsy) // CET_SS
1062
+
1063
+ ASMJIT_INST_1x(rstorssp, Rstorssp, Mem) // CET_SS
1064
+ ASMJIT_INST_0x(saveprevssp, Saveprevssp) // CET_SS
1065
+
1066
+ ASMJIT_INST_1x(incsspd, Incsspd, Gp) // CET_SS
1067
+ ASMJIT_INST_1x(incsspq, Incsspq, Gp) // CET_SS
1068
+ ASMJIT_INST_1x(rdsspd, Rdsspd, Gp) // CET_SS
1069
+ ASMJIT_INST_1x(rdsspq, Rdsspq, Gp) // CET_SS
1070
+ ASMJIT_INST_2x(wrssd, Wrssd, Gp, Gp) // CET_SS
1071
+ ASMJIT_INST_2x(wrssd, Wrssd, Mem, Gp) // CET_SS
1072
+ ASMJIT_INST_2x(wrssq, Wrssq, Gp, Gp) // CET_SS
1073
+ ASMJIT_INST_2x(wrssq, Wrssq, Mem, Gp) // CET_SS
1074
+ ASMJIT_INST_2x(wrussd, Wrussd, Gp, Gp) // CET_SS
1075
+ ASMJIT_INST_2x(wrussd, Wrussd, Mem, Gp) // CET_SS
1076
+ ASMJIT_INST_2x(wrussq, Wrussq, Gp, Gp) // CET_SS
1077
+ ASMJIT_INST_2x(wrussq, Wrussq, Mem, Gp) // CET_SS
1078
+
1079
+ //! \}
1080
+
1081
+ //! \name HRESET Instructions
1082
+ //! \{
1083
+
1084
+ ASMJIT_INST_2x(hreset, Hreset, Imm, Gp) // HRESET
1085
+
1086
+ //! \}
1087
+
1088
+ //! \name UINTR Instructions
1089
+ //! \{
1090
+
1091
+ ASMJIT_INST_0x(clui, Clui) // UINTR
1092
+ ASMJIT_INST_1x(senduipi, Senduipi, Gp) // UINTR
1093
+ ASMJIT_INST_0x(testui, Testui) // UINTR
1094
+ ASMJIT_INST_0x(stui, Stui) // UINTR
1095
+ ASMJIT_INST_0x(uiret, Uiret) // UINTR
1096
+
1097
+ //! \}
1098
+
1099
+ //! \name Core Privileged Instructions
1100
+ //! \{
1101
+
1102
+ ASMJIT_INST_0x(clts, Clts) // ANY
1103
+ ASMJIT_INST_0x(hlt, Hlt) // ANY
1104
+ ASMJIT_INST_0x(invd, Invd) // ANY
1105
+ ASMJIT_INST_1x(invlpg, Invlpg, Mem) // ANY
1106
+ ASMJIT_INST_2x(invpcid, Invpcid, Gp, Mem) // ANY
1107
+ ASMJIT_INST_1x(lgdt, Lgdt, Mem) // ANY
1108
+ ASMJIT_INST_1x(lidt, Lidt, Mem) // ANY
1109
+ ASMJIT_INST_1x(lldt, Lldt, Gp) // ANY
1110
+ ASMJIT_INST_1x(lldt, Lldt, Mem) // ANY
1111
+ ASMJIT_INST_1x(lmsw, Lmsw, Gp) // ANY
1112
+ ASMJIT_INST_1x(lmsw, Lmsw, Mem) // ANY
1113
+ ASMJIT_INST_1x(ltr, Ltr, Gp) // ANY
1114
+ ASMJIT_INST_1x(ltr, Ltr, Mem) // ANY
1115
+ ASMJIT_INST_3x(rdmsr, Rdmsr, Gp_EDX, Gp_EAX, Gp_ECX) // MSR [EXPLICIT] RDX:EAX <- MSR[ECX]
1116
+ ASMJIT_INST_3x(rdpmc, Rdpmc, Gp_EDX, Gp_EAX, Gp_ECX) // ANY [EXPLICIT] RDX:EAX <- PMC[ECX]
1117
+ ASMJIT_INST_0x(swapgs, Swapgs) // X64
1118
+ ASMJIT_INST_0x(wbinvd, Wbinvd) // ANY
1119
+ ASMJIT_INST_0x(wbnoinvd, Wbnoinvd) // WBNOINVD
1120
+ ASMJIT_INST_3x(wrmsr, Wrmsr, Gp_EDX, Gp_EAX, Gp_ECX) // MSR [EXPLICIT] RDX:EAX -> MSR[ECX]
1121
+ ASMJIT_INST_3x(xsetbv, Xsetbv, Gp_EDX, Gp_EAX, Gp_ECX) // XSAVE [EXPLICIT] XCR[ECX] <- EDX:EAX
1122
+
1123
+ //! \}
1124
+
1125
+ //! \name MONITOR Instructions (Privileged)
1126
+ //! \{
1127
+
1128
+ ASMJIT_INST_3x(monitor, Monitor, Mem, Gp, Gp) // MONITOR
1129
+ ASMJIT_INST_2x(mwait, Mwait, Gp, Gp) // MONITOR
1130
+
1131
+ //! \}
1132
+
1133
+ //! \name SMAP Instructions (Privileged)
1134
+ //! \{
1135
+
1136
+ ASMJIT_INST_0x(clac, Clac) // SMAP
1137
+ ASMJIT_INST_0x(stac, Stac) // SMAP
1138
+
1139
+ //! \}
1140
+
1141
+ //! \name SKINIT Instructions (Privileged)
1142
+ //! \{
1143
+
1144
+ ASMJIT_INST_1x(skinit, Skinit, Gp) // SKINIT [EXPLICIT] <eax>
1145
+ ASMJIT_INST_0x(stgi, Stgi) // SKINIT
1146
+
1147
+ //! \}
1148
+
1149
+ //! \name SNP Instructions (Privileged)
1150
+ //! \{
1151
+
1152
+ ASMJIT_INST_0x(psmash, Psmash) // SNP
1153
+ ASMJIT_INST_0x(pvalidate, Pvalidate) // SNP
1154
+ ASMJIT_INST_0x(rmpadjust, Rmpadjust) // SNP
1155
+ ASMJIT_INST_0x(rmpupdate, Rmpupdate) // SNP
1156
+
1157
+ //! \}
1158
+
1159
+ //! \name VMX Instructions (All privileged except vmfunc)
1160
+ //! \{
1161
+
1162
+ ASMJIT_INST_2x(invept, Invept, Gp, Mem) // VMX
1163
+ ASMJIT_INST_2x(invvpid, Invvpid, Gp, Mem) // VMX
1164
+ ASMJIT_INST_0x(vmcall, Vmcall) // VMX
1165
+ ASMJIT_INST_1x(vmclear, Vmclear, Mem) // VMX
1166
+ ASMJIT_INST_0x(vmfunc, Vmfunc) // VMX
1167
+ ASMJIT_INST_0x(vmlaunch, Vmlaunch) // VMX
1168
+ ASMJIT_INST_1x(vmptrld, Vmptrld, Mem) // VMX
1169
+ ASMJIT_INST_1x(vmptrst, Vmptrst, Mem) // VMX
1170
+ ASMJIT_INST_2x(vmread, Vmread, Gp, Gp) // VMX
1171
+ ASMJIT_INST_2x(vmread, Vmread, Mem, Gp) // VMX
1172
+ ASMJIT_INST_0x(vmresume, Vmresume) // VMX
1173
+ ASMJIT_INST_2x(vmwrite, Vmwrite, Gp, Mem) // VMX
1174
+ ASMJIT_INST_2x(vmwrite, Vmwrite, Gp, Gp) // VMX
1175
+ ASMJIT_INST_1x(vmxon, Vmxon, Mem) // VMX
1176
+
1177
+ //! \}
1178
+
1179
+ //! \name SVM Instructions (All privileged except vmmcall)
1180
+ //! \{
1181
+
1182
+ ASMJIT_INST_0x(clgi, Clgi) // SVM
1183
+ ASMJIT_INST_2x(invlpga, Invlpga, Gp, Gp) // SVM [EXPLICIT] <eax|rax, ecx>
1184
+ ASMJIT_INST_1x(vmload, Vmload, Gp) // SVM [EXPLICIT] <zax>
1185
+ ASMJIT_INST_0x(vmmcall, Vmmcall) // SVM
1186
+ ASMJIT_INST_1x(vmrun, Vmrun, Gp) // SVM [EXPLICIT] <zax>
1187
+ ASMJIT_INST_1x(vmsave, Vmsave, Gp) // SVM [EXPLICIT] <zax>
1188
+
1189
+ //! \}
1190
+
1191
+ //! \name FPU Instructions
1192
+ //! \{
1193
+
1194
+ ASMJIT_INST_0x(f2xm1, F2xm1) // FPU
1195
+ ASMJIT_INST_0x(fabs, Fabs) // FPU
1196
+ ASMJIT_INST_2x(fadd, Fadd, St, St) // FPU
1197
+ ASMJIT_INST_1x(fadd, Fadd, Mem) // FPU
1198
+ ASMJIT_INST_1x(faddp, Faddp, St) // FPU
1199
+ ASMJIT_INST_0x(faddp, Faddp) // FPU
1200
+ ASMJIT_INST_1x(fbld, Fbld, Mem) // FPU
1201
+ ASMJIT_INST_1x(fbstp, Fbstp, Mem) // FPU
1202
+ ASMJIT_INST_0x(fchs, Fchs) // FPU
1203
+ ASMJIT_INST_0x(fclex, Fclex) // FPU
1204
+ ASMJIT_INST_1x(fcmovb, Fcmovb, St) // FPU
1205
+ ASMJIT_INST_1x(fcmovbe, Fcmovbe, St) // FPU
1206
+ ASMJIT_INST_1x(fcmove, Fcmove, St) // FPU
1207
+ ASMJIT_INST_1x(fcmovnb, Fcmovnb, St) // FPU
1208
+ ASMJIT_INST_1x(fcmovnbe, Fcmovnbe, St) // FPU
1209
+ ASMJIT_INST_1x(fcmovne, Fcmovne, St) // FPU
1210
+ ASMJIT_INST_1x(fcmovnu, Fcmovnu, St) // FPU
1211
+ ASMJIT_INST_1x(fcmovu, Fcmovu, St) // FPU
1212
+ ASMJIT_INST_1x(fcom, Fcom, St) // FPU
1213
+ ASMJIT_INST_0x(fcom, Fcom) // FPU
1214
+ ASMJIT_INST_1x(fcom, Fcom, Mem) // FPU
1215
+ ASMJIT_INST_1x(fcomp, Fcomp, St) // FPU
1216
+ ASMJIT_INST_0x(fcomp, Fcomp) // FPU
1217
+ ASMJIT_INST_1x(fcomp, Fcomp, Mem) // FPU
1218
+ ASMJIT_INST_0x(fcompp, Fcompp) // FPU
1219
+ ASMJIT_INST_1x(fcomi, Fcomi, St) // FPU
1220
+ ASMJIT_INST_1x(fcomip, Fcomip, St) // FPU
1221
+ ASMJIT_INST_0x(fcos, Fcos) // FPU
1222
+ ASMJIT_INST_0x(fdecstp, Fdecstp) // FPU
1223
+ ASMJIT_INST_2x(fdiv, Fdiv, St, St) // FPU
1224
+ ASMJIT_INST_1x(fdiv, Fdiv, Mem) // FPU
1225
+ ASMJIT_INST_1x(fdivp, Fdivp, St) // FPU
1226
+ ASMJIT_INST_0x(fdivp, Fdivp) // FPU
1227
+ ASMJIT_INST_2x(fdivr, Fdivr, St, St) // FPU
1228
+ ASMJIT_INST_1x(fdivr, Fdivr, Mem) // FPU
1229
+ ASMJIT_INST_1x(fdivrp, Fdivrp, St) // FPU
1230
+ ASMJIT_INST_0x(fdivrp, Fdivrp) // FPU
1231
+ ASMJIT_INST_1x(ffree, Ffree, St) // FPU
1232
+ ASMJIT_INST_1x(fiadd, Fiadd, Mem) // FPU
1233
+ ASMJIT_INST_1x(ficom, Ficom, Mem) // FPU
1234
+ ASMJIT_INST_1x(ficomp, Ficomp, Mem) // FPU
1235
+ ASMJIT_INST_1x(fidiv, Fidiv, Mem) // FPU
1236
+ ASMJIT_INST_1x(fidivr, Fidivr, Mem) // FPU
1237
+ ASMJIT_INST_1x(fild, Fild, Mem) // FPU
1238
+ ASMJIT_INST_1x(fimul, Fimul, Mem) // FPU
1239
+ ASMJIT_INST_0x(fincstp, Fincstp) // FPU
1240
+ ASMJIT_INST_0x(finit, Finit) // FPU
1241
+ ASMJIT_INST_1x(fisub, Fisub, Mem) // FPU
1242
+ ASMJIT_INST_1x(fisubr, Fisubr, Mem) // FPU
1243
+ ASMJIT_INST_0x(fninit, Fninit) // FPU
1244
+ ASMJIT_INST_1x(fist, Fist, Mem) // FPU
1245
+ ASMJIT_INST_1x(fistp, Fistp, Mem) // FPU
1246
+ ASMJIT_INST_1x(fisttp, Fisttp, Mem) // FPU+SSE3
1247
+ ASMJIT_INST_1x(fld, Fld, Mem) // FPU
1248
+ ASMJIT_INST_1x(fld, Fld, St) // FPU
1249
+ ASMJIT_INST_0x(fld1, Fld1) // FPU
1250
+ ASMJIT_INST_0x(fldl2t, Fldl2t) // FPU
1251
+ ASMJIT_INST_0x(fldl2e, Fldl2e) // FPU
1252
+ ASMJIT_INST_0x(fldpi, Fldpi) // FPU
1253
+ ASMJIT_INST_0x(fldlg2, Fldlg2) // FPU
1254
+ ASMJIT_INST_0x(fldln2, Fldln2) // FPU
1255
+ ASMJIT_INST_0x(fldz, Fldz) // FPU
1256
+ ASMJIT_INST_1x(fldcw, Fldcw, Mem) // FPU
1257
+ ASMJIT_INST_1x(fldenv, Fldenv, Mem) // FPU
1258
+ ASMJIT_INST_2x(fmul, Fmul, St, St) // FPU
1259
+ ASMJIT_INST_1x(fmul, Fmul, Mem) // FPU
1260
+ ASMJIT_INST_1x(fmulp, Fmulp, St) // FPU
1261
+ ASMJIT_INST_0x(fmulp, Fmulp) // FPU
1262
+ ASMJIT_INST_0x(fnclex, Fnclex) // FPU
1263
+ ASMJIT_INST_0x(fnop, Fnop) // FPU
1264
+ ASMJIT_INST_1x(fnsave, Fnsave, Mem) // FPU
1265
+ ASMJIT_INST_1x(fnstenv, Fnstenv, Mem) // FPU
1266
+ ASMJIT_INST_1x(fnstcw, Fnstcw, Mem) // FPU
1267
+ ASMJIT_INST_0x(fpatan, Fpatan) // FPU
1268
+ ASMJIT_INST_0x(fprem, Fprem) // FPU
1269
+ ASMJIT_INST_0x(fprem1, Fprem1) // FPU
1270
+ ASMJIT_INST_0x(fptan, Fptan) // FPU
1271
+ ASMJIT_INST_0x(frndint, Frndint) // FPU
1272
+ ASMJIT_INST_1x(frstor, Frstor, Mem) // FPU
1273
+ ASMJIT_INST_1x(fsave, Fsave, Mem) // FPU
1274
+ ASMJIT_INST_0x(fscale, Fscale) // FPU
1275
+ ASMJIT_INST_0x(fsin, Fsin) // FPU
1276
+ ASMJIT_INST_0x(fsincos, Fsincos) // FPU
1277
+ ASMJIT_INST_0x(fsqrt, Fsqrt) // FPU
1278
+ ASMJIT_INST_1x(fst, Fst, Mem) // FPU
1279
+ ASMJIT_INST_1x(fst, Fst, St) // FPU
1280
+ ASMJIT_INST_1x(fstp, Fstp, Mem) // FPU
1281
+ ASMJIT_INST_1x(fstp, Fstp, St) // FPU
1282
+ ASMJIT_INST_1x(fstcw, Fstcw, Mem) // FPU
1283
+ ASMJIT_INST_1x(fstenv, Fstenv, Mem) // FPU
1284
+ ASMJIT_INST_2x(fsub, Fsub, St, St) // FPU
1285
+ ASMJIT_INST_1x(fsub, Fsub, Mem) // FPU
1286
+ ASMJIT_INST_1x(fsubp, Fsubp, St) // FPU
1287
+ ASMJIT_INST_0x(fsubp, Fsubp) // FPU
1288
+ ASMJIT_INST_2x(fsubr, Fsubr, St, St) // FPU
1289
+ ASMJIT_INST_1x(fsubr, Fsubr, Mem) // FPU
1290
+ ASMJIT_INST_1x(fsubrp, Fsubrp, St) // FPU
1291
+ ASMJIT_INST_0x(fsubrp, Fsubrp) // FPU
1292
+ ASMJIT_INST_0x(ftst, Ftst) // FPU
1293
+ ASMJIT_INST_1x(fucom, Fucom, St) // FPU
1294
+ ASMJIT_INST_0x(fucom, Fucom) // FPU
1295
+ ASMJIT_INST_1x(fucomi, Fucomi, St) // FPU
1296
+ ASMJIT_INST_1x(fucomip, Fucomip, St) // FPU
1297
+ ASMJIT_INST_1x(fucomp, Fucomp, St) // FPU
1298
+ ASMJIT_INST_0x(fucomp, Fucomp) // FPU
1299
+ ASMJIT_INST_0x(fucompp, Fucompp) // FPU
1300
+ ASMJIT_INST_0x(fwait, Fwait) // FPU
1301
+ ASMJIT_INST_0x(fxam, Fxam) // FPU
1302
+ ASMJIT_INST_1x(fxch, Fxch, St) // FPU
1303
+ ASMJIT_INST_0x(fxtract, Fxtract) // FPU
1304
+ ASMJIT_INST_0x(fyl2x, Fyl2x) // FPU
1305
+ ASMJIT_INST_0x(fyl2xp1, Fyl2xp1) // FPU
1306
+ ASMJIT_INST_1x(fstsw, Fstsw, Gp) // FPU
1307
+ ASMJIT_INST_1x(fstsw, Fstsw, Mem) // FPU
1308
+ ASMJIT_INST_1x(fnstsw, Fnstsw, Gp) // FPU
1309
+ ASMJIT_INST_1x(fnstsw, Fnstsw, Mem) // FPU
1310
+
1311
+ //! \}
1312
+
1313
+ //! \name MMX & SSE+ Instructions
1314
+ //! \{
1315
+
1316
+ ASMJIT_INST_2x(addpd, Addpd, Xmm, Xmm) // SSE2
1317
+ ASMJIT_INST_2x(addpd, Addpd, Xmm, Mem) // SSE2
1318
+ ASMJIT_INST_2x(addps, Addps, Xmm, Xmm) // SSE
1319
+ ASMJIT_INST_2x(addps, Addps, Xmm, Mem) // SSE
1320
+ ASMJIT_INST_2x(addsd, Addsd, Xmm, Xmm) // SSE2
1321
+ ASMJIT_INST_2x(addsd, Addsd, Xmm, Mem) // SSE2
1322
+ ASMJIT_INST_2x(addss, Addss, Xmm, Xmm) // SSE
1323
+ ASMJIT_INST_2x(addss, Addss, Xmm, Mem) // SSE
1324
+ ASMJIT_INST_2x(addsubpd, Addsubpd, Xmm, Xmm) // SSE3
1325
+ ASMJIT_INST_2x(addsubpd, Addsubpd, Xmm, Mem) // SSE3
1326
+ ASMJIT_INST_2x(addsubps, Addsubps, Xmm, Xmm) // SSE3
1327
+ ASMJIT_INST_2x(addsubps, Addsubps, Xmm, Mem) // SSE3
1328
+ ASMJIT_INST_2x(andnpd, Andnpd, Xmm, Xmm) // SSE2
1329
+ ASMJIT_INST_2x(andnpd, Andnpd, Xmm, Mem) // SSE2
1330
+ ASMJIT_INST_2x(andnps, Andnps, Xmm, Xmm) // SSE
1331
+ ASMJIT_INST_2x(andnps, Andnps, Xmm, Mem) // SSE
1332
+ ASMJIT_INST_2x(andpd, Andpd, Xmm, Xmm) // SSE2
1333
+ ASMJIT_INST_2x(andpd, Andpd, Xmm, Mem) // SSE2
1334
+ ASMJIT_INST_2x(andps, Andps, Xmm, Xmm) // SSE
1335
+ ASMJIT_INST_2x(andps, Andps, Xmm, Mem) // SSE
1336
+ ASMJIT_INST_3x(blendpd, Blendpd, Xmm, Xmm, Imm) // SSE4_1
1337
+ ASMJIT_INST_3x(blendpd, Blendpd, Xmm, Mem, Imm) // SSE4_1
1338
+ ASMJIT_INST_3x(blendps, Blendps, Xmm, Xmm, Imm) // SSE4_1
1339
+ ASMJIT_INST_3x(blendps, Blendps, Xmm, Mem, Imm) // SSE4_1
1340
+ ASMJIT_INST_3x(blendvpd, Blendvpd, Xmm, Xmm, XMM0) // SSE4_1 [EXPLICIT]
1341
+ ASMJIT_INST_3x(blendvpd, Blendvpd, Xmm, Mem, XMM0) // SSE4_1 [EXPLICIT]
1342
+ ASMJIT_INST_3x(blendvps, Blendvps, Xmm, Xmm, XMM0) // SSE4_1 [EXPLICIT]
1343
+ ASMJIT_INST_3x(blendvps, Blendvps, Xmm, Mem, XMM0) // SSE4_1 [EXPLICIT]
1344
+ ASMJIT_INST_3x(cmppd, Cmppd, Xmm, Xmm, Imm) // SSE2
1345
+ ASMJIT_INST_3x(cmppd, Cmppd, Xmm, Mem, Imm) // SSE2
1346
+ ASMJIT_INST_3x(cmpps, Cmpps, Xmm, Xmm, Imm) // SSE
1347
+ ASMJIT_INST_3x(cmpps, Cmpps, Xmm, Mem, Imm) // SSE
1348
+ ASMJIT_INST_3x(cmpsd, Cmpsd, Xmm, Xmm, Imm) // SSE2
1349
+ ASMJIT_INST_3x(cmpsd, Cmpsd, Xmm, Mem, Imm) // SSE2
1350
+ ASMJIT_INST_3x(cmpss, Cmpss, Xmm, Xmm, Imm) // SSE
1351
+ ASMJIT_INST_3x(cmpss, Cmpss, Xmm, Mem, Imm) // SSE
1352
+ ASMJIT_INST_2x(comisd, Comisd, Xmm, Xmm) // SSE2
1353
+ ASMJIT_INST_2x(comisd, Comisd, Xmm, Mem) // SSE2
1354
+ ASMJIT_INST_2x(comiss, Comiss, Xmm, Xmm) // SSE
1355
+ ASMJIT_INST_2x(comiss, Comiss, Xmm, Mem) // SSE
1356
+ ASMJIT_INST_2x(cvtdq2pd, Cvtdq2pd, Xmm, Xmm) // SSE2
1357
+ ASMJIT_INST_2x(cvtdq2pd, Cvtdq2pd, Xmm, Mem) // SSE2
1358
+ ASMJIT_INST_2x(cvtdq2ps, Cvtdq2ps, Xmm, Xmm) // SSE2
1359
+ ASMJIT_INST_2x(cvtdq2ps, Cvtdq2ps, Xmm, Mem) // SSE2
1360
+ ASMJIT_INST_2x(cvtpd2dq, Cvtpd2dq, Xmm, Xmm) // SSE2
1361
+ ASMJIT_INST_2x(cvtpd2dq, Cvtpd2dq, Xmm, Mem) // SSE2
1362
+ ASMJIT_INST_2x(cvtpd2pi, Cvtpd2pi, Mm, Xmm) // SSE2
1363
+ ASMJIT_INST_2x(cvtpd2pi, Cvtpd2pi, Mm, Mem) // SSE2
1364
+ ASMJIT_INST_2x(cvtpd2ps, Cvtpd2ps, Xmm, Xmm) // SSE2
1365
+ ASMJIT_INST_2x(cvtpd2ps, Cvtpd2ps, Xmm, Mem) // SSE2
1366
+ ASMJIT_INST_2x(cvtpi2pd, Cvtpi2pd, Xmm, Mm) // SSE2
1367
+ ASMJIT_INST_2x(cvtpi2pd, Cvtpi2pd, Xmm, Mem) // SSE2
1368
+ ASMJIT_INST_2x(cvtpi2ps, Cvtpi2ps, Xmm, Mm) // SSE
1369
+ ASMJIT_INST_2x(cvtpi2ps, Cvtpi2ps, Xmm, Mem) // SSE
1370
+ ASMJIT_INST_2x(cvtps2dq, Cvtps2dq, Xmm, Xmm) // SSE2
1371
+ ASMJIT_INST_2x(cvtps2dq, Cvtps2dq, Xmm, Mem) // SSE2
1372
+ ASMJIT_INST_2x(cvtps2pd, Cvtps2pd, Xmm, Xmm) // SSE2
1373
+ ASMJIT_INST_2x(cvtps2pd, Cvtps2pd, Xmm, Mem) // SSE2
1374
+ ASMJIT_INST_2x(cvtps2pi, Cvtps2pi, Mm, Xmm) // SSE
1375
+ ASMJIT_INST_2x(cvtps2pi, Cvtps2pi, Mm, Mem) // SSE
1376
+ ASMJIT_INST_2x(cvtsd2si, Cvtsd2si, Gp, Xmm) // SSE2
1377
+ ASMJIT_INST_2x(cvtsd2si, Cvtsd2si, Gp, Mem) // SSE2
1378
+ ASMJIT_INST_2x(cvtsd2ss, Cvtsd2ss, Xmm, Xmm) // SSE2
1379
+ ASMJIT_INST_2x(cvtsd2ss, Cvtsd2ss, Xmm, Mem) // SSE2
1380
+ ASMJIT_INST_2x(cvtsi2sd, Cvtsi2sd, Xmm, Gp) // SSE2
1381
+ ASMJIT_INST_2x(cvtsi2sd, Cvtsi2sd, Xmm, Mem) // SSE2
1382
+ ASMJIT_INST_2x(cvtsi2ss, Cvtsi2ss, Xmm, Gp) // SSE
1383
+ ASMJIT_INST_2x(cvtsi2ss, Cvtsi2ss, Xmm, Mem) // SSE
1384
+ ASMJIT_INST_2x(cvtss2sd, Cvtss2sd, Xmm, Xmm) // SSE2
1385
+ ASMJIT_INST_2x(cvtss2sd, Cvtss2sd, Xmm, Mem) // SSE2
1386
+ ASMJIT_INST_2x(cvtss2si, Cvtss2si, Gp, Xmm) // SSE
1387
+ ASMJIT_INST_2x(cvtss2si, Cvtss2si, Gp, Mem) // SSE
1388
+ ASMJIT_INST_2x(cvttpd2pi, Cvttpd2pi, Mm, Xmm) // SSE2
1389
+ ASMJIT_INST_2x(cvttpd2pi, Cvttpd2pi, Mm, Mem) // SSE2
1390
+ ASMJIT_INST_2x(cvttpd2dq, Cvttpd2dq, Xmm, Xmm) // SSE2
1391
+ ASMJIT_INST_2x(cvttpd2dq, Cvttpd2dq, Xmm, Mem) // SSE2
1392
+ ASMJIT_INST_2x(cvttps2dq, Cvttps2dq, Xmm, Xmm) // SSE2
1393
+ ASMJIT_INST_2x(cvttps2dq, Cvttps2dq, Xmm, Mem) // SSE2
1394
+ ASMJIT_INST_2x(cvttps2pi, Cvttps2pi, Mm, Xmm) // SSE
1395
+ ASMJIT_INST_2x(cvttps2pi, Cvttps2pi, Mm, Mem) // SSE
1396
+ ASMJIT_INST_2x(cvttsd2si, Cvttsd2si, Gp, Xmm) // SSE2
1397
+ ASMJIT_INST_2x(cvttsd2si, Cvttsd2si, Gp, Mem) // SSE2
1398
+ ASMJIT_INST_2x(cvttss2si, Cvttss2si, Gp, Xmm) // SSE
1399
+ ASMJIT_INST_2x(cvttss2si, Cvttss2si, Gp, Mem) // SSE
1400
+ ASMJIT_INST_2x(divpd, Divpd, Xmm, Xmm) // SSE2
1401
+ ASMJIT_INST_2x(divpd, Divpd, Xmm, Mem) // SSE2
1402
+ ASMJIT_INST_2x(divps, Divps, Xmm, Xmm) // SSE
1403
+ ASMJIT_INST_2x(divps, Divps, Xmm, Mem) // SSE
1404
+ ASMJIT_INST_2x(divsd, Divsd, Xmm, Xmm) // SSE2
1405
+ ASMJIT_INST_2x(divsd, Divsd, Xmm, Mem) // SSE2
1406
+ ASMJIT_INST_2x(divss, Divss, Xmm, Xmm) // SSE
1407
+ ASMJIT_INST_2x(divss, Divss, Xmm, Mem) // SSE
1408
+ ASMJIT_INST_3x(dppd, Dppd, Xmm, Xmm, Imm) // SSE4_1
1409
+ ASMJIT_INST_3x(dppd, Dppd, Xmm, Mem, Imm) // SSE4_1
1410
+ ASMJIT_INST_3x(dpps, Dpps, Xmm, Xmm, Imm) // SSE4_1
1411
+ ASMJIT_INST_3x(dpps, Dpps, Xmm, Mem, Imm) // SSE4_1
1412
+ ASMJIT_INST_3x(extractps, Extractps, Gp, Xmm, Imm) // SSE4_1
1413
+ ASMJIT_INST_3x(extractps, Extractps, Mem, Xmm, Imm) // SSE4_1
1414
+ ASMJIT_INST_2x(extrq, Extrq, Xmm, Xmm) // SSE4A
1415
+ ASMJIT_INST_3x(extrq, Extrq, Xmm, Imm, Imm) // SSE4A
1416
+ ASMJIT_INST_2x(haddpd, Haddpd, Xmm, Xmm) // SSE3
1417
+ ASMJIT_INST_2x(haddpd, Haddpd, Xmm, Mem) // SSE3
1418
+ ASMJIT_INST_2x(haddps, Haddps, Xmm, Xmm) // SSE3
1419
+ ASMJIT_INST_2x(haddps, Haddps, Xmm, Mem) // SSE3
1420
+ ASMJIT_INST_2x(hsubpd, Hsubpd, Xmm, Xmm) // SSE3
1421
+ ASMJIT_INST_2x(hsubpd, Hsubpd, Xmm, Mem) // SSE3
1422
+ ASMJIT_INST_2x(hsubps, Hsubps, Xmm, Xmm) // SSE3
1423
+ ASMJIT_INST_2x(hsubps, Hsubps, Xmm, Mem) // SSE3
1424
+ ASMJIT_INST_3x(insertps, Insertps, Xmm, Xmm, Imm) // SSE4_1
1425
+ ASMJIT_INST_3x(insertps, Insertps, Xmm, Mem, Imm) // SSE4_1
1426
+ ASMJIT_INST_2x(insertq, Insertq, Xmm, Xmm) // SSE4A
1427
+ ASMJIT_INST_4x(insertq, Insertq, Xmm, Xmm, Imm, Imm) // SSE4A
1428
+ ASMJIT_INST_2x(lddqu, Lddqu, Xmm, Mem) // SSE3
1429
+ ASMJIT_INST_3x(maskmovq, Maskmovq, Mm, Mm, DS_ZDI) // SSE [EXPLICIT]
1430
+ ASMJIT_INST_3x(maskmovdqu, Maskmovdqu, Xmm, Xmm, DS_ZDI) // SSE2 [EXPLICIT]
1431
+ ASMJIT_INST_2x(maxpd, Maxpd, Xmm, Xmm) // SSE2
1432
+ ASMJIT_INST_2x(maxpd, Maxpd, Xmm, Mem) // SSE2
1433
+ ASMJIT_INST_2x(maxps, Maxps, Xmm, Xmm) // SSE
1434
+ ASMJIT_INST_2x(maxps, Maxps, Xmm, Mem) // SSE
1435
+ ASMJIT_INST_2x(maxsd, Maxsd, Xmm, Xmm) // SSE2
1436
+ ASMJIT_INST_2x(maxsd, Maxsd, Xmm, Mem) // SSE2
1437
+ ASMJIT_INST_2x(maxss, Maxss, Xmm, Xmm) // SSE
1438
+ ASMJIT_INST_2x(maxss, Maxss, Xmm, Mem) // SSE
1439
+ ASMJIT_INST_2x(minpd, Minpd, Xmm, Xmm) // SSE2
1440
+ ASMJIT_INST_2x(minpd, Minpd, Xmm, Mem) // SSE2
1441
+ ASMJIT_INST_2x(minps, Minps, Xmm, Xmm) // SSE
1442
+ ASMJIT_INST_2x(minps, Minps, Xmm, Mem) // SSE
1443
+ ASMJIT_INST_2x(minsd, Minsd, Xmm, Xmm) // SSE2
1444
+ ASMJIT_INST_2x(minsd, Minsd, Xmm, Mem) // SSE2
1445
+ ASMJIT_INST_2x(minss, Minss, Xmm, Xmm) // SSE
1446
+ ASMJIT_INST_2x(minss, Minss, Xmm, Mem) // SSE
1447
+ ASMJIT_INST_2x(movapd, Movapd, Xmm, Xmm) // SSE2
1448
+ ASMJIT_INST_2x(movapd, Movapd, Xmm, Mem) // SSE2
1449
+ ASMJIT_INST_2x(movapd, Movapd, Mem, Xmm) // SSE2
1450
+ ASMJIT_INST_2x(movaps, Movaps, Xmm, Xmm) // SSE
1451
+ ASMJIT_INST_2x(movaps, Movaps, Xmm, Mem) // SSE
1452
+ ASMJIT_INST_2x(movaps, Movaps, Mem, Xmm) // SSE
1453
+ ASMJIT_INST_2x(movd, Movd, Mem, Mm) // MMX
1454
+ ASMJIT_INST_2x(movd, Movd, Mem, Xmm) // SSE
1455
+ ASMJIT_INST_2x(movd, Movd, Gp, Mm) // MMX
1456
+ ASMJIT_INST_2x(movd, Movd, Gp, Xmm) // SSE
1457
+ ASMJIT_INST_2x(movd, Movd, Mm, Mem) // MMX
1458
+ ASMJIT_INST_2x(movd, Movd, Xmm, Mem) // SSE
1459
+ ASMJIT_INST_2x(movd, Movd, Mm, Gp) // MMX
1460
+ ASMJIT_INST_2x(movd, Movd, Xmm, Gp) // SSE
1461
+ ASMJIT_INST_2x(movddup, Movddup, Xmm, Xmm) // SSE3
1462
+ ASMJIT_INST_2x(movddup, Movddup, Xmm, Mem) // SSE3
1463
+ ASMJIT_INST_2x(movdq2q, Movdq2q, Mm, Xmm) // SSE2
1464
+ ASMJIT_INST_2x(movdqa, Movdqa, Xmm, Xmm) // SSE2
1465
+ ASMJIT_INST_2x(movdqa, Movdqa, Xmm, Mem) // SSE2
1466
+ ASMJIT_INST_2x(movdqa, Movdqa, Mem, Xmm) // SSE2
1467
+ ASMJIT_INST_2x(movdqu, Movdqu, Xmm, Xmm) // SSE2
1468
+ ASMJIT_INST_2x(movdqu, Movdqu, Xmm, Mem) // SSE2
1469
+ ASMJIT_INST_2x(movdqu, Movdqu, Mem, Xmm) // SSE2
1470
+ ASMJIT_INST_2x(movhlps, Movhlps, Xmm, Xmm) // SSE
1471
+ ASMJIT_INST_2x(movhpd, Movhpd, Xmm, Mem) // SSE2
1472
+ ASMJIT_INST_2x(movhpd, Movhpd, Mem, Xmm) // SSE2
1473
+ ASMJIT_INST_2x(movhps, Movhps, Xmm, Mem) // SSE
1474
+ ASMJIT_INST_2x(movhps, Movhps, Mem, Xmm) // SSE
1475
+ ASMJIT_INST_2x(movlhps, Movlhps, Xmm, Xmm) // SSE
1476
+ ASMJIT_INST_2x(movlpd, Movlpd, Xmm, Mem) // SSE2
1477
+ ASMJIT_INST_2x(movlpd, Movlpd, Mem, Xmm) // SSE2
1478
+ ASMJIT_INST_2x(movlps, Movlps, Xmm, Mem) // SSE
1479
+ ASMJIT_INST_2x(movlps, Movlps, Mem, Xmm) // SSE
1480
+ ASMJIT_INST_2x(movmskps, Movmskps, Gp, Xmm) // SSE2
1481
+ ASMJIT_INST_2x(movmskpd, Movmskpd, Gp, Xmm) // SSE2
1482
+ ASMJIT_INST_2x(movntdq, Movntdq, Mem, Xmm) // SSE2
1483
+ ASMJIT_INST_2x(movntdqa, Movntdqa, Xmm, Mem) // SSE4_1
1484
+ ASMJIT_INST_2x(movntpd, Movntpd, Mem, Xmm) // SSE2
1485
+ ASMJIT_INST_2x(movntps, Movntps, Mem, Xmm) // SSE
1486
+ ASMJIT_INST_2x(movntsd, Movntsd, Mem, Xmm) // SSE4A
1487
+ ASMJIT_INST_2x(movntss, Movntss, Mem, Xmm) // SSE4A
1488
+ ASMJIT_INST_2x(movntq, Movntq, Mem, Mm) // SSE
1489
+ ASMJIT_INST_2x(movq, Movq, Mm, Mm) // MMX
1490
+ ASMJIT_INST_2x(movq, Movq, Xmm, Xmm) // SSE
1491
+ ASMJIT_INST_2x(movq, Movq, Mem, Mm) // MMX
1492
+ ASMJIT_INST_2x(movq, Movq, Mem, Xmm) // SSE
1493
+ ASMJIT_INST_2x(movq, Movq, Mm, Mem) // MMX
1494
+ ASMJIT_INST_2x(movq, Movq, Xmm, Mem) // SSE
1495
+ ASMJIT_INST_2x(movq, Movq, Gp, Mm) // MMX
1496
+ ASMJIT_INST_2x(movq, Movq, Gp, Xmm) // SSE+X64.
1497
+ ASMJIT_INST_2x(movq, Movq, Mm, Gp) // MMX
1498
+ ASMJIT_INST_2x(movq, Movq, Xmm, Gp) // SSE+X64.
1499
+ ASMJIT_INST_2x(movq2dq, Movq2dq, Xmm, Mm) // SSE2
1500
+ ASMJIT_INST_2x(movsd, Movsd, Xmm, Xmm) // SSE2
1501
+ ASMJIT_INST_2x(movsd, Movsd, Xmm, Mem) // SSE2
1502
+ ASMJIT_INST_2x(movsd, Movsd, Mem, Xmm) // SSE2
1503
+ ASMJIT_INST_2x(movshdup, Movshdup, Xmm, Xmm) // SSE3
1504
+ ASMJIT_INST_2x(movshdup, Movshdup, Xmm, Mem) // SSE3
1505
+ ASMJIT_INST_2x(movsldup, Movsldup, Xmm, Xmm) // SSE3
1506
+ ASMJIT_INST_2x(movsldup, Movsldup, Xmm, Mem) // SSE3
1507
+ ASMJIT_INST_2x(movss, Movss, Xmm, Xmm) // SSE
1508
+ ASMJIT_INST_2x(movss, Movss, Xmm, Mem) // SSE
1509
+ ASMJIT_INST_2x(movss, Movss, Mem, Xmm) // SSE
1510
+ ASMJIT_INST_2x(movupd, Movupd, Xmm, Xmm) // SSE2
1511
+ ASMJIT_INST_2x(movupd, Movupd, Xmm, Mem) // SSE2
1512
+ ASMJIT_INST_2x(movupd, Movupd, Mem, Xmm) // SSE2
1513
+ ASMJIT_INST_2x(movups, Movups, Xmm, Xmm) // SSE
1514
+ ASMJIT_INST_2x(movups, Movups, Xmm, Mem) // SSE
1515
+ ASMJIT_INST_2x(movups, Movups, Mem, Xmm) // SSE
1516
+ ASMJIT_INST_3x(mpsadbw, Mpsadbw, Xmm, Xmm, Imm) // SSE4_1
1517
+ ASMJIT_INST_3x(mpsadbw, Mpsadbw, Xmm, Mem, Imm) // SSE4_1
1518
+ ASMJIT_INST_2x(mulpd, Mulpd, Xmm, Xmm) // SSE2
1519
+ ASMJIT_INST_2x(mulpd, Mulpd, Xmm, Mem) // SSE2
1520
+ ASMJIT_INST_2x(mulps, Mulps, Xmm, Xmm) // SSE
1521
+ ASMJIT_INST_2x(mulps, Mulps, Xmm, Mem) // SSE
1522
+ ASMJIT_INST_2x(mulsd, Mulsd, Xmm, Xmm) // SSE2
1523
+ ASMJIT_INST_2x(mulsd, Mulsd, Xmm, Mem) // SSE2
1524
+ ASMJIT_INST_2x(mulss, Mulss, Xmm, Xmm) // SSE
1525
+ ASMJIT_INST_2x(mulss, Mulss, Xmm, Mem) // SSE
1526
+ ASMJIT_INST_2x(orpd, Orpd, Xmm, Xmm) // SSE2
1527
+ ASMJIT_INST_2x(orpd, Orpd, Xmm, Mem) // SSE2
1528
+ ASMJIT_INST_2x(orps, Orps, Xmm, Xmm) // SSE
1529
+ ASMJIT_INST_2x(orps, Orps, Xmm, Mem) // SSE
1530
+ ASMJIT_INST_2x(packssdw, Packssdw, Mm, Mm) // MMX
1531
+ ASMJIT_INST_2x(packssdw, Packssdw, Mm, Mem) // MMX
1532
+ ASMJIT_INST_2x(packssdw, Packssdw, Xmm, Xmm) // SSE2
1533
+ ASMJIT_INST_2x(packssdw, Packssdw, Xmm, Mem) // SSE2
1534
+ ASMJIT_INST_2x(packsswb, Packsswb, Mm, Mm) // MMX
1535
+ ASMJIT_INST_2x(packsswb, Packsswb, Mm, Mem) // MMX
1536
+ ASMJIT_INST_2x(packsswb, Packsswb, Xmm, Xmm) // SSE2
1537
+ ASMJIT_INST_2x(packsswb, Packsswb, Xmm, Mem) // SSE2
1538
+ ASMJIT_INST_2x(packusdw, Packusdw, Xmm, Xmm) // SSE4_1
1539
+ ASMJIT_INST_2x(packusdw, Packusdw, Xmm, Mem) // SSE4_1
1540
+ ASMJIT_INST_2x(packuswb, Packuswb, Mm, Mm) // MMX
1541
+ ASMJIT_INST_2x(packuswb, Packuswb, Mm, Mem) // MMX
1542
+ ASMJIT_INST_2x(packuswb, Packuswb, Xmm, Xmm) // SSE2
1543
+ ASMJIT_INST_2x(packuswb, Packuswb, Xmm, Mem) // SSE2
1544
+ ASMJIT_INST_2x(pabsb, Pabsb, Mm, Mm) // SSSE3
1545
+ ASMJIT_INST_2x(pabsb, Pabsb, Mm, Mem) // SSSE3
1546
+ ASMJIT_INST_2x(pabsb, Pabsb, Xmm, Xmm) // SSSE3
1547
+ ASMJIT_INST_2x(pabsb, Pabsb, Xmm, Mem) // SSSE3
1548
+ ASMJIT_INST_2x(pabsd, Pabsd, Mm, Mm) // SSSE3
1549
+ ASMJIT_INST_2x(pabsd, Pabsd, Mm, Mem) // SSSE3
1550
+ ASMJIT_INST_2x(pabsd, Pabsd, Xmm, Xmm) // SSSE3
1551
+ ASMJIT_INST_2x(pabsd, Pabsd, Xmm, Mem) // SSSE3
1552
+ ASMJIT_INST_2x(pabsw, Pabsw, Mm, Mm) // SSSE3
1553
+ ASMJIT_INST_2x(pabsw, Pabsw, Mm, Mem) // SSSE3
1554
+ ASMJIT_INST_2x(pabsw, Pabsw, Xmm, Xmm) // SSSE3
1555
+ ASMJIT_INST_2x(pabsw, Pabsw, Xmm, Mem) // SSSE3
1556
+ ASMJIT_INST_2x(paddb, Paddb, Mm, Mm) // MMX
1557
+ ASMJIT_INST_2x(paddb, Paddb, Mm, Mem) // MMX
1558
+ ASMJIT_INST_2x(paddb, Paddb, Xmm, Xmm) // SSE2
1559
+ ASMJIT_INST_2x(paddb, Paddb, Xmm, Mem) // SSE2
1560
+ ASMJIT_INST_2x(paddd, Paddd, Mm, Mm) // MMX
1561
+ ASMJIT_INST_2x(paddd, Paddd, Mm, Mem) // MMX
1562
+ ASMJIT_INST_2x(paddd, Paddd, Xmm, Xmm) // SSE2
1563
+ ASMJIT_INST_2x(paddd, Paddd, Xmm, Mem) // SSE2
1564
+ ASMJIT_INST_2x(paddq, Paddq, Mm, Mm) // SSE2
1565
+ ASMJIT_INST_2x(paddq, Paddq, Mm, Mem) // SSE2
1566
+ ASMJIT_INST_2x(paddq, Paddq, Xmm, Xmm) // SSE2
1567
+ ASMJIT_INST_2x(paddq, Paddq, Xmm, Mem) // SSE2
1568
+ ASMJIT_INST_2x(paddsb, Paddsb, Mm, Mm) // MMX
1569
+ ASMJIT_INST_2x(paddsb, Paddsb, Mm, Mem) // MMX
1570
+ ASMJIT_INST_2x(paddsb, Paddsb, Xmm, Xmm) // SSE2
1571
+ ASMJIT_INST_2x(paddsb, Paddsb, Xmm, Mem) // SSE2
1572
+ ASMJIT_INST_2x(paddsw, Paddsw, Mm, Mm) // MMX
1573
+ ASMJIT_INST_2x(paddsw, Paddsw, Mm, Mem) // MMX
1574
+ ASMJIT_INST_2x(paddsw, Paddsw, Xmm, Xmm) // SSE2
1575
+ ASMJIT_INST_2x(paddsw, Paddsw, Xmm, Mem) // SSE2
1576
+ ASMJIT_INST_2x(paddusb, Paddusb, Mm, Mm) // MMX
1577
+ ASMJIT_INST_2x(paddusb, Paddusb, Mm, Mem) // MMX
1578
+ ASMJIT_INST_2x(paddusb, Paddusb, Xmm, Xmm) // SSE2
1579
+ ASMJIT_INST_2x(paddusb, Paddusb, Xmm, Mem) // SSE2
1580
+ ASMJIT_INST_2x(paddusw, Paddusw, Mm, Mm) // MMX
1581
+ ASMJIT_INST_2x(paddusw, Paddusw, Mm, Mem) // MMX
1582
+ ASMJIT_INST_2x(paddusw, Paddusw, Xmm, Xmm) // SSE2
1583
+ ASMJIT_INST_2x(paddusw, Paddusw, Xmm, Mem) // SSE2
1584
+ ASMJIT_INST_2x(paddw, Paddw, Mm, Mm) // MMX
1585
+ ASMJIT_INST_2x(paddw, Paddw, Mm, Mem) // MMX
1586
+ ASMJIT_INST_2x(paddw, Paddw, Xmm, Xmm) // SSE2
1587
+ ASMJIT_INST_2x(paddw, Paddw, Xmm, Mem) // SSE2
1588
+ ASMJIT_INST_3x(palignr, Palignr, Mm, Mm, Imm) // SSSE3
1589
+ ASMJIT_INST_3x(palignr, Palignr, Mm, Mem, Imm) // SSSE3
1590
+ ASMJIT_INST_3x(palignr, Palignr, Xmm, Xmm, Imm) // SSSE3
1591
+ ASMJIT_INST_3x(palignr, Palignr, Xmm, Mem, Imm) // SSSE3
1592
+ ASMJIT_INST_2x(pand, Pand, Mm, Mm) // MMX
1593
+ ASMJIT_INST_2x(pand, Pand, Mm, Mem) // MMX
1594
+ ASMJIT_INST_2x(pand, Pand, Xmm, Xmm) // SSE2
1595
+ ASMJIT_INST_2x(pand, Pand, Xmm, Mem) // SSE2
1596
+ ASMJIT_INST_2x(pandn, Pandn, Mm, Mm) // MMX
1597
+ ASMJIT_INST_2x(pandn, Pandn, Mm, Mem) // MMX
1598
+ ASMJIT_INST_2x(pandn, Pandn, Xmm, Xmm) // SSE2
1599
+ ASMJIT_INST_2x(pandn, Pandn, Xmm, Mem) // SSE2
1600
+ ASMJIT_INST_2x(pavgb, Pavgb, Mm, Mm) // SSE
1601
+ ASMJIT_INST_2x(pavgb, Pavgb, Mm, Mem) // SSE
1602
+ ASMJIT_INST_2x(pavgb, Pavgb, Xmm, Xmm) // SSE2
1603
+ ASMJIT_INST_2x(pavgb, Pavgb, Xmm, Mem) // SSE2
1604
+ ASMJIT_INST_2x(pavgw, Pavgw, Mm, Mm) // SSE
1605
+ ASMJIT_INST_2x(pavgw, Pavgw, Mm, Mem) // SSE
1606
+ ASMJIT_INST_2x(pavgw, Pavgw, Xmm, Xmm) // SSE2
1607
+ ASMJIT_INST_2x(pavgw, Pavgw, Xmm, Mem) // SSE2
1608
+ ASMJIT_INST_3x(pblendvb, Pblendvb, Xmm, Xmm, XMM0) // SSE4_1 [EXPLICIT]
1609
+ ASMJIT_INST_3x(pblendvb, Pblendvb, Xmm, Mem, XMM0) // SSE4_1 [EXPLICIT]
1610
+ ASMJIT_INST_3x(pblendw, Pblendw, Xmm, Xmm, Imm) // SSE4_1
1611
+ ASMJIT_INST_3x(pblendw, Pblendw, Xmm, Mem, Imm) // SSE4_1
1612
+ ASMJIT_INST_3x(pclmulqdq, Pclmulqdq, Xmm, Xmm, Imm) // PCLMULQDQ.
1613
+ ASMJIT_INST_3x(pclmulqdq, Pclmulqdq, Xmm, Mem, Imm) // PCLMULQDQ.
1614
+ ASMJIT_INST_6x(pcmpestri, Pcmpestri, Xmm, Xmm, Imm, Gp_ECX, Gp_EAX, Gp_EDX) // SSE4_2 [EXPLICIT]
1615
+ ASMJIT_INST_6x(pcmpestri, Pcmpestri, Xmm, Mem, Imm, Gp_ECX, Gp_EAX, Gp_EDX) // SSE4_2 [EXPLICIT]
1616
+ ASMJIT_INST_6x(pcmpestrm, Pcmpestrm, Xmm, Xmm, Imm, XMM0, Gp_EAX, Gp_EDX) // SSE4_2 [EXPLICIT]
1617
+ ASMJIT_INST_6x(pcmpestrm, Pcmpestrm, Xmm, Mem, Imm, XMM0, Gp_EAX, Gp_EDX) // SSE4_2 [EXPLICIT]
1618
+ ASMJIT_INST_2x(pcmpeqb, Pcmpeqb, Mm, Mm) // MMX
1619
+ ASMJIT_INST_2x(pcmpeqb, Pcmpeqb, Mm, Mem) // MMX
1620
+ ASMJIT_INST_2x(pcmpeqb, Pcmpeqb, Xmm, Xmm) // SSE2
1621
+ ASMJIT_INST_2x(pcmpeqb, Pcmpeqb, Xmm, Mem) // SSE2
1622
+ ASMJIT_INST_2x(pcmpeqd, Pcmpeqd, Mm, Mm) // MMX
1623
+ ASMJIT_INST_2x(pcmpeqd, Pcmpeqd, Mm, Mem) // MMX
1624
+ ASMJIT_INST_2x(pcmpeqd, Pcmpeqd, Xmm, Xmm) // SSE2
1625
+ ASMJIT_INST_2x(pcmpeqd, Pcmpeqd, Xmm, Mem) // SSE2
1626
+ ASMJIT_INST_2x(pcmpeqq, Pcmpeqq, Xmm, Xmm) // SSE4_1
1627
+ ASMJIT_INST_2x(pcmpeqq, Pcmpeqq, Xmm, Mem) // SSE4_1
1628
+ ASMJIT_INST_2x(pcmpeqw, Pcmpeqw, Mm, Mm) // MMX
1629
+ ASMJIT_INST_2x(pcmpeqw, Pcmpeqw, Mm, Mem) // MMX
1630
+ ASMJIT_INST_2x(pcmpeqw, Pcmpeqw, Xmm, Xmm) // SSE2
1631
+ ASMJIT_INST_2x(pcmpeqw, Pcmpeqw, Xmm, Mem) // SSE2
1632
+ ASMJIT_INST_2x(pcmpgtb, Pcmpgtb, Mm, Mm) // MMX
1633
+ ASMJIT_INST_2x(pcmpgtb, Pcmpgtb, Mm, Mem) // MMX
1634
+ ASMJIT_INST_2x(pcmpgtb, Pcmpgtb, Xmm, Xmm) // SSE2
1635
+ ASMJIT_INST_2x(pcmpgtb, Pcmpgtb, Xmm, Mem) // SSE2
1636
+ ASMJIT_INST_2x(pcmpgtd, Pcmpgtd, Mm, Mm) // MMX
1637
+ ASMJIT_INST_2x(pcmpgtd, Pcmpgtd, Mm, Mem) // MMX
1638
+ ASMJIT_INST_2x(pcmpgtd, Pcmpgtd, Xmm, Xmm) // SSE2
1639
+ ASMJIT_INST_2x(pcmpgtd, Pcmpgtd, Xmm, Mem) // SSE2
1640
+ ASMJIT_INST_2x(pcmpgtq, Pcmpgtq, Xmm, Xmm) // SSE4_2.
1641
+ ASMJIT_INST_2x(pcmpgtq, Pcmpgtq, Xmm, Mem) // SSE4_2.
1642
+ ASMJIT_INST_2x(pcmpgtw, Pcmpgtw, Mm, Mm) // MMX
1643
+ ASMJIT_INST_2x(pcmpgtw, Pcmpgtw, Mm, Mem) // MMX
1644
+ ASMJIT_INST_2x(pcmpgtw, Pcmpgtw, Xmm, Xmm) // SSE2
1645
+ ASMJIT_INST_2x(pcmpgtw, Pcmpgtw, Xmm, Mem) // SSE2
1646
+ ASMJIT_INST_4x(pcmpistri, Pcmpistri, Xmm, Xmm, Imm, Gp_ECX) // SSE4_2 [EXPLICIT]
1647
+ ASMJIT_INST_4x(pcmpistri, Pcmpistri, Xmm, Mem, Imm, Gp_ECX) // SSE4_2 [EXPLICIT]
1648
+ ASMJIT_INST_4x(pcmpistrm, Pcmpistrm, Xmm, Xmm, Imm, XMM0) // SSE4_2 [EXPLICIT]
1649
+ ASMJIT_INST_4x(pcmpistrm, Pcmpistrm, Xmm, Mem, Imm, XMM0) // SSE4_2 [EXPLICIT]
1650
+ ASMJIT_INST_3x(pextrb, Pextrb, Gp, Xmm, Imm) // SSE4_1
1651
+ ASMJIT_INST_3x(pextrb, Pextrb, Mem, Xmm, Imm) // SSE4_1
1652
+ ASMJIT_INST_3x(pextrd, Pextrd, Gp, Xmm, Imm) // SSE4_1
1653
+ ASMJIT_INST_3x(pextrd, Pextrd, Mem, Xmm, Imm) // SSE4_1
1654
+ ASMJIT_INST_3x(pextrq, Pextrq, Gp, Xmm, Imm) // SSE4_1
1655
+ ASMJIT_INST_3x(pextrq, Pextrq, Mem, Xmm, Imm) // SSE4_1
1656
+ ASMJIT_INST_3x(pextrw, Pextrw, Gp, Mm, Imm) // SSE
1657
+ ASMJIT_INST_3x(pextrw, Pextrw, Gp, Xmm, Imm) // SSE2
1658
+ ASMJIT_INST_3x(pextrw, Pextrw, Mem, Xmm, Imm) // SSE4_1
1659
+ ASMJIT_INST_2x(phaddd, Phaddd, Mm, Mm) // SSSE3
1660
+ ASMJIT_INST_2x(phaddd, Phaddd, Mm, Mem) // SSSE3
1661
+ ASMJIT_INST_2x(phaddd, Phaddd, Xmm, Xmm) // SSSE3
1662
+ ASMJIT_INST_2x(phaddd, Phaddd, Xmm, Mem) // SSSE3
1663
+ ASMJIT_INST_2x(phaddsw, Phaddsw, Mm, Mm) // SSSE3
1664
+ ASMJIT_INST_2x(phaddsw, Phaddsw, Mm, Mem) // SSSE3
1665
+ ASMJIT_INST_2x(phaddsw, Phaddsw, Xmm, Xmm) // SSSE3
1666
+ ASMJIT_INST_2x(phaddsw, Phaddsw, Xmm, Mem) // SSSE3
1667
+ ASMJIT_INST_2x(phaddw, Phaddw, Mm, Mm) // SSSE3
1668
+ ASMJIT_INST_2x(phaddw, Phaddw, Mm, Mem) // SSSE3
1669
+ ASMJIT_INST_2x(phaddw, Phaddw, Xmm, Xmm) // SSSE3
1670
+ ASMJIT_INST_2x(phaddw, Phaddw, Xmm, Mem) // SSSE3
1671
+ ASMJIT_INST_2x(phminposuw, Phminposuw, Xmm, Xmm) // SSE4_1
1672
+ ASMJIT_INST_2x(phminposuw, Phminposuw, Xmm, Mem) // SSE4_1
1673
+ ASMJIT_INST_2x(phsubd, Phsubd, Mm, Mm) // SSSE3
1674
+ ASMJIT_INST_2x(phsubd, Phsubd, Mm, Mem) // SSSE3
1675
+ ASMJIT_INST_2x(phsubd, Phsubd, Xmm, Xmm) // SSSE3
1676
+ ASMJIT_INST_2x(phsubd, Phsubd, Xmm, Mem) // SSSE3
1677
+ ASMJIT_INST_2x(phsubsw, Phsubsw, Mm, Mm) // SSSE3
1678
+ ASMJIT_INST_2x(phsubsw, Phsubsw, Mm, Mem) // SSSE3
1679
+ ASMJIT_INST_2x(phsubsw, Phsubsw, Xmm, Xmm) // SSSE3
1680
+ ASMJIT_INST_2x(phsubsw, Phsubsw, Xmm, Mem) // SSSE3
1681
+ ASMJIT_INST_2x(phsubw, Phsubw, Mm, Mm) // SSSE3
1682
+ ASMJIT_INST_2x(phsubw, Phsubw, Mm, Mem) // SSSE3
1683
+ ASMJIT_INST_2x(phsubw, Phsubw, Xmm, Xmm) // SSSE3
1684
+ ASMJIT_INST_2x(phsubw, Phsubw, Xmm, Mem) // SSSE3
1685
+ ASMJIT_INST_3x(pinsrb, Pinsrb, Xmm, Gp, Imm) // SSE4_1
1686
+ ASMJIT_INST_3x(pinsrb, Pinsrb, Xmm, Mem, Imm) // SSE4_1
1687
+ ASMJIT_INST_3x(pinsrd, Pinsrd, Xmm, Gp, Imm) // SSE4_1
1688
+ ASMJIT_INST_3x(pinsrd, Pinsrd, Xmm, Mem, Imm) // SSE4_1
1689
+ ASMJIT_INST_3x(pinsrq, Pinsrq, Xmm, Gp, Imm) // SSE4_1
1690
+ ASMJIT_INST_3x(pinsrq, Pinsrq, Xmm, Mem, Imm) // SSE4_1
1691
+ ASMJIT_INST_3x(pinsrw, Pinsrw, Mm, Gp, Imm) // SSE
1692
+ ASMJIT_INST_3x(pinsrw, Pinsrw, Mm, Mem, Imm) // SSE
1693
+ ASMJIT_INST_3x(pinsrw, Pinsrw, Xmm, Gp, Imm) // SSE2
1694
+ ASMJIT_INST_3x(pinsrw, Pinsrw, Xmm, Mem, Imm) // SSE2
1695
+ ASMJIT_INST_2x(pmaddubsw, Pmaddubsw, Mm, Mm) // SSSE3
1696
+ ASMJIT_INST_2x(pmaddubsw, Pmaddubsw, Mm, Mem) // SSSE3
1697
+ ASMJIT_INST_2x(pmaddubsw, Pmaddubsw, Xmm, Xmm) // SSSE3
1698
+ ASMJIT_INST_2x(pmaddubsw, Pmaddubsw, Xmm, Mem) // SSSE3
1699
+ ASMJIT_INST_2x(pmaddwd, Pmaddwd, Mm, Mm) // MMX
1700
+ ASMJIT_INST_2x(pmaddwd, Pmaddwd, Mm, Mem) // MMX
1701
+ ASMJIT_INST_2x(pmaddwd, Pmaddwd, Xmm, Xmm) // SSE2
1702
+ ASMJIT_INST_2x(pmaddwd, Pmaddwd, Xmm, Mem) // SSE2
1703
+ ASMJIT_INST_2x(pmaxsb, Pmaxsb, Xmm, Xmm) // SSE4_1
1704
+ ASMJIT_INST_2x(pmaxsb, Pmaxsb, Xmm, Mem) // SSE4_1
1705
+ ASMJIT_INST_2x(pmaxsd, Pmaxsd, Xmm, Xmm) // SSE4_1
1706
+ ASMJIT_INST_2x(pmaxsd, Pmaxsd, Xmm, Mem) // SSE4_1
1707
+ ASMJIT_INST_2x(pmaxsw, Pmaxsw, Mm, Mm) // SSE
1708
+ ASMJIT_INST_2x(pmaxsw, Pmaxsw, Mm, Mem) // SSE
1709
+ ASMJIT_INST_2x(pmaxsw, Pmaxsw, Xmm, Xmm) // SSE2
1710
+ ASMJIT_INST_2x(pmaxsw, Pmaxsw, Xmm, Mem) // SSE2
1711
+ ASMJIT_INST_2x(pmaxub, Pmaxub, Mm, Mm) // SSE
1712
+ ASMJIT_INST_2x(pmaxub, Pmaxub, Mm, Mem) // SSE
1713
+ ASMJIT_INST_2x(pmaxub, Pmaxub, Xmm, Xmm) // SSE2
1714
+ ASMJIT_INST_2x(pmaxub, Pmaxub, Xmm, Mem) // SSE2
1715
+ ASMJIT_INST_2x(pmaxud, Pmaxud, Xmm, Xmm) // SSE4_1
1716
+ ASMJIT_INST_2x(pmaxud, Pmaxud, Xmm, Mem) // SSE4_1
1717
+ ASMJIT_INST_2x(pmaxuw, Pmaxuw, Xmm, Xmm) // SSE4_1
1718
+ ASMJIT_INST_2x(pmaxuw, Pmaxuw, Xmm, Mem) // SSE4_1
1719
+ ASMJIT_INST_2x(pminsb, Pminsb, Xmm, Xmm) // SSE4_1
1720
+ ASMJIT_INST_2x(pminsb, Pminsb, Xmm, Mem) // SSE4_1
1721
+ ASMJIT_INST_2x(pminsd, Pminsd, Xmm, Xmm) // SSE4_1
1722
+ ASMJIT_INST_2x(pminsd, Pminsd, Xmm, Mem) // SSE4_1
1723
+ ASMJIT_INST_2x(pminsw, Pminsw, Mm, Mm) // SSE
1724
+ ASMJIT_INST_2x(pminsw, Pminsw, Mm, Mem) // SSE
1725
+ ASMJIT_INST_2x(pminsw, Pminsw, Xmm, Xmm) // SSE2
1726
+ ASMJIT_INST_2x(pminsw, Pminsw, Xmm, Mem) // SSE2
1727
+ ASMJIT_INST_2x(pminub, Pminub, Mm, Mm) // SSE
1728
+ ASMJIT_INST_2x(pminub, Pminub, Mm, Mem) // SSE
1729
+ ASMJIT_INST_2x(pminub, Pminub, Xmm, Xmm) // SSE2
1730
+ ASMJIT_INST_2x(pminub, Pminub, Xmm, Mem) // SSE2
1731
+ ASMJIT_INST_2x(pminud, Pminud, Xmm, Xmm) // SSE4_1
1732
+ ASMJIT_INST_2x(pminud, Pminud, Xmm, Mem) // SSE4_1
1733
+ ASMJIT_INST_2x(pminuw, Pminuw, Xmm, Xmm) // SSE4_1
1734
+ ASMJIT_INST_2x(pminuw, Pminuw, Xmm, Mem) // SSE4_1
1735
+ ASMJIT_INST_2x(pmovmskb, Pmovmskb, Gp, Mm) // SSE
1736
+ ASMJIT_INST_2x(pmovmskb, Pmovmskb, Gp, Xmm) // SSE2
1737
+ ASMJIT_INST_2x(pmovsxbd, Pmovsxbd, Xmm, Xmm) // SSE4_1
1738
+ ASMJIT_INST_2x(pmovsxbd, Pmovsxbd, Xmm, Mem) // SSE4_1
1739
+ ASMJIT_INST_2x(pmovsxbq, Pmovsxbq, Xmm, Xmm) // SSE4_1
1740
+ ASMJIT_INST_2x(pmovsxbq, Pmovsxbq, Xmm, Mem) // SSE4_1
1741
+ ASMJIT_INST_2x(pmovsxbw, Pmovsxbw, Xmm, Xmm) // SSE4_1
1742
+ ASMJIT_INST_2x(pmovsxbw, Pmovsxbw, Xmm, Mem) // SSE4_1
1743
+ ASMJIT_INST_2x(pmovsxdq, Pmovsxdq, Xmm, Xmm) // SSE4_1
1744
+ ASMJIT_INST_2x(pmovsxdq, Pmovsxdq, Xmm, Mem) // SSE4_1
1745
+ ASMJIT_INST_2x(pmovsxwd, Pmovsxwd, Xmm, Xmm) // SSE4_1
1746
+ ASMJIT_INST_2x(pmovsxwd, Pmovsxwd, Xmm, Mem) // SSE4_1
1747
+ ASMJIT_INST_2x(pmovsxwq, Pmovsxwq, Xmm, Xmm) // SSE4_1
1748
+ ASMJIT_INST_2x(pmovsxwq, Pmovsxwq, Xmm, Mem) // SSE4_1
1749
+ ASMJIT_INST_2x(pmovzxbd, Pmovzxbd, Xmm, Xmm) // SSE4_1
1750
+ ASMJIT_INST_2x(pmovzxbd, Pmovzxbd, Xmm, Mem) // SSE4_1
1751
+ ASMJIT_INST_2x(pmovzxbq, Pmovzxbq, Xmm, Xmm) // SSE4_1
1752
+ ASMJIT_INST_2x(pmovzxbq, Pmovzxbq, Xmm, Mem) // SSE4_1
1753
+ ASMJIT_INST_2x(pmovzxbw, Pmovzxbw, Xmm, Xmm) // SSE4_1
1754
+ ASMJIT_INST_2x(pmovzxbw, Pmovzxbw, Xmm, Mem) // SSE4_1
1755
+ ASMJIT_INST_2x(pmovzxdq, Pmovzxdq, Xmm, Xmm) // SSE4_1
1756
+ ASMJIT_INST_2x(pmovzxdq, Pmovzxdq, Xmm, Mem) // SSE4_1
1757
+ ASMJIT_INST_2x(pmovzxwd, Pmovzxwd, Xmm, Xmm) // SSE4_1
1758
+ ASMJIT_INST_2x(pmovzxwd, Pmovzxwd, Xmm, Mem) // SSE4_1
1759
+ ASMJIT_INST_2x(pmovzxwq, Pmovzxwq, Xmm, Xmm) // SSE4_1
1760
+ ASMJIT_INST_2x(pmovzxwq, Pmovzxwq, Xmm, Mem) // SSE4_1
1761
+ ASMJIT_INST_2x(pmuldq, Pmuldq, Xmm, Xmm) // SSE4_1
1762
+ ASMJIT_INST_2x(pmuldq, Pmuldq, Xmm, Mem) // SSE4_1
1763
+ ASMJIT_INST_2x(pmulhrsw, Pmulhrsw, Mm, Mm) // SSSE3
1764
+ ASMJIT_INST_2x(pmulhrsw, Pmulhrsw, Mm, Mem) // SSSE3
1765
+ ASMJIT_INST_2x(pmulhrsw, Pmulhrsw, Xmm, Xmm) // SSSE3
1766
+ ASMJIT_INST_2x(pmulhrsw, Pmulhrsw, Xmm, Mem) // SSSE3
1767
+ ASMJIT_INST_2x(pmulhw, Pmulhw, Mm, Mm) // MMX
1768
+ ASMJIT_INST_2x(pmulhw, Pmulhw, Mm, Mem) // MMX
1769
+ ASMJIT_INST_2x(pmulhw, Pmulhw, Xmm, Xmm) // SSE2
1770
+ ASMJIT_INST_2x(pmulhw, Pmulhw, Xmm, Mem) // SSE2
1771
+ ASMJIT_INST_2x(pmulhuw, Pmulhuw, Mm, Mm) // SSE
1772
+ ASMJIT_INST_2x(pmulhuw, Pmulhuw, Mm, Mem) // SSE
1773
+ ASMJIT_INST_2x(pmulhuw, Pmulhuw, Xmm, Xmm) // SSE2
1774
+ ASMJIT_INST_2x(pmulhuw, Pmulhuw, Xmm, Mem) // SSE2
1775
+ ASMJIT_INST_2x(pmulld, Pmulld, Xmm, Xmm) // SSE4_1
1776
+ ASMJIT_INST_2x(pmulld, Pmulld, Xmm, Mem) // SSE4_1
1777
+ ASMJIT_INST_2x(pmullw, Pmullw, Mm, Mm) // MMX
1778
+ ASMJIT_INST_2x(pmullw, Pmullw, Mm, Mem) // MMX
1779
+ ASMJIT_INST_2x(pmullw, Pmullw, Xmm, Xmm) // SSE2
1780
+ ASMJIT_INST_2x(pmullw, Pmullw, Xmm, Mem) // SSE2
1781
+ ASMJIT_INST_2x(pmuludq, Pmuludq, Mm, Mm) // SSE2
1782
+ ASMJIT_INST_2x(pmuludq, Pmuludq, Mm, Mem) // SSE2
1783
+ ASMJIT_INST_2x(pmuludq, Pmuludq, Xmm, Xmm) // SSE2
1784
+ ASMJIT_INST_2x(pmuludq, Pmuludq, Xmm, Mem) // SSE2
1785
+ ASMJIT_INST_2x(por, Por, Mm, Mm) // MMX
1786
+ ASMJIT_INST_2x(por, Por, Mm, Mem) // MMX
1787
+ ASMJIT_INST_2x(por, Por, Xmm, Xmm) // SSE2
1788
+ ASMJIT_INST_2x(por, Por, Xmm, Mem) // SSE2
1789
+ ASMJIT_INST_2x(psadbw, Psadbw, Mm, Mm) // SSE
1790
+ ASMJIT_INST_2x(psadbw, Psadbw, Mm, Mem) // SSE
1791
+ ASMJIT_INST_2x(psadbw, Psadbw, Xmm, Xmm) // SSE
1792
+ ASMJIT_INST_2x(psadbw, Psadbw, Xmm, Mem) // SSE
1793
+ ASMJIT_INST_2x(pslld, Pslld, Mm, Mm) // MMX
1794
+ ASMJIT_INST_2x(pslld, Pslld, Mm, Mem) // MMX
1795
+ ASMJIT_INST_2x(pslld, Pslld, Mm, Imm) // MMX
1796
+ ASMJIT_INST_2x(pslld, Pslld, Xmm, Xmm) // SSE2
1797
+ ASMJIT_INST_2x(pslld, Pslld, Xmm, Mem) // SSE2
1798
+ ASMJIT_INST_2x(pslld, Pslld, Xmm, Imm) // SSE2
1799
+ ASMJIT_INST_2x(pslldq, Pslldq, Xmm, Imm) // SSE2
1800
+ ASMJIT_INST_2x(psllq, Psllq, Mm, Mm) // MMX
1801
+ ASMJIT_INST_2x(psllq, Psllq, Mm, Mem) // MMX
1802
+ ASMJIT_INST_2x(psllq, Psllq, Mm, Imm) // MMX
1803
+ ASMJIT_INST_2x(psllq, Psllq, Xmm, Xmm) // SSE2
1804
+ ASMJIT_INST_2x(psllq, Psllq, Xmm, Mem) // SSE2
1805
+ ASMJIT_INST_2x(psllq, Psllq, Xmm, Imm) // SSE2
1806
+ ASMJIT_INST_2x(psllw, Psllw, Mm, Mm) // MMX
1807
+ ASMJIT_INST_2x(psllw, Psllw, Mm, Mem) // MMX
1808
+ ASMJIT_INST_2x(psllw, Psllw, Mm, Imm) // MMX
1809
+ ASMJIT_INST_2x(psllw, Psllw, Xmm, Xmm) // SSE2
1810
+ ASMJIT_INST_2x(psllw, Psllw, Xmm, Mem) // SSE2
1811
+ ASMJIT_INST_2x(psllw, Psllw, Xmm, Imm) // SSE2
1812
+ ASMJIT_INST_2x(psrad, Psrad, Mm, Mm) // MMX
1813
+ ASMJIT_INST_2x(psrad, Psrad, Mm, Mem) // MMX
1814
+ ASMJIT_INST_2x(psrad, Psrad, Mm, Imm) // MMX
1815
+ ASMJIT_INST_2x(psrad, Psrad, Xmm, Xmm) // SSE2
1816
+ ASMJIT_INST_2x(psrad, Psrad, Xmm, Mem) // SSE2
1817
+ ASMJIT_INST_2x(psrad, Psrad, Xmm, Imm) // SSE2
1818
+ ASMJIT_INST_2x(psraw, Psraw, Mm, Mm) // MMX
1819
+ ASMJIT_INST_2x(psraw, Psraw, Mm, Mem) // MMX
1820
+ ASMJIT_INST_2x(psraw, Psraw, Mm, Imm) // MMX
1821
+ ASMJIT_INST_2x(psraw, Psraw, Xmm, Xmm) // SSE2
1822
+ ASMJIT_INST_2x(psraw, Psraw, Xmm, Mem) // SSE2
1823
+ ASMJIT_INST_2x(psraw, Psraw, Xmm, Imm) // SSE2
1824
+ ASMJIT_INST_2x(pshufb, Pshufb, Mm, Mm) // SSSE3
1825
+ ASMJIT_INST_2x(pshufb, Pshufb, Mm, Mem) // SSSE3
1826
+ ASMJIT_INST_2x(pshufb, Pshufb, Xmm, Xmm) // SSSE3
1827
+ ASMJIT_INST_2x(pshufb, Pshufb, Xmm, Mem) // SSSE3
1828
+ ASMJIT_INST_3x(pshufd, Pshufd, Xmm, Xmm, Imm) // SSE2
1829
+ ASMJIT_INST_3x(pshufd, Pshufd, Xmm, Mem, Imm) // SSE2
1830
+ ASMJIT_INST_3x(pshufhw, Pshufhw, Xmm, Xmm, Imm) // SSE2
1831
+ ASMJIT_INST_3x(pshufhw, Pshufhw, Xmm, Mem, Imm) // SSE2
1832
+ ASMJIT_INST_3x(pshuflw, Pshuflw, Xmm, Xmm, Imm) // SSE2
1833
+ ASMJIT_INST_3x(pshuflw, Pshuflw, Xmm, Mem, Imm) // SSE2
1834
+ ASMJIT_INST_3x(pshufw, Pshufw, Mm, Mm, Imm) // SSE
1835
+ ASMJIT_INST_3x(pshufw, Pshufw, Mm, Mem, Imm) // SSE
1836
+ ASMJIT_INST_2x(psignb, Psignb, Mm, Mm) // SSSE3
1837
+ ASMJIT_INST_2x(psignb, Psignb, Mm, Mem) // SSSE3
1838
+ ASMJIT_INST_2x(psignb, Psignb, Xmm, Xmm) // SSSE3
1839
+ ASMJIT_INST_2x(psignb, Psignb, Xmm, Mem) // SSSE3
1840
+ ASMJIT_INST_2x(psignd, Psignd, Mm, Mm) // SSSE3
1841
+ ASMJIT_INST_2x(psignd, Psignd, Mm, Mem) // SSSE3
1842
+ ASMJIT_INST_2x(psignd, Psignd, Xmm, Xmm) // SSSE3
1843
+ ASMJIT_INST_2x(psignd, Psignd, Xmm, Mem) // SSSE3
1844
+ ASMJIT_INST_2x(psignw, Psignw, Mm, Mm) // SSSE3
1845
+ ASMJIT_INST_2x(psignw, Psignw, Mm, Mem) // SSSE3
1846
+ ASMJIT_INST_2x(psignw, Psignw, Xmm, Xmm) // SSSE3
1847
+ ASMJIT_INST_2x(psignw, Psignw, Xmm, Mem) // SSSE3
1848
+ ASMJIT_INST_2x(psrld, Psrld, Mm, Mm) // MMX
1849
+ ASMJIT_INST_2x(psrld, Psrld, Mm, Mem) // MMX
1850
+ ASMJIT_INST_2x(psrld, Psrld, Mm, Imm) // MMX
1851
+ ASMJIT_INST_2x(psrld, Psrld, Xmm, Xmm) // SSE2
1852
+ ASMJIT_INST_2x(psrld, Psrld, Xmm, Mem) // SSE2
1853
+ ASMJIT_INST_2x(psrld, Psrld, Xmm, Imm) // SSE2
1854
+ ASMJIT_INST_2x(psrldq, Psrldq, Xmm, Imm) // SSE2
1855
+ ASMJIT_INST_2x(psrlq, Psrlq, Mm, Mm) // MMX
1856
+ ASMJIT_INST_2x(psrlq, Psrlq, Mm, Mem) // MMX
1857
+ ASMJIT_INST_2x(psrlq, Psrlq, Mm, Imm) // MMX
1858
+ ASMJIT_INST_2x(psrlq, Psrlq, Xmm, Xmm) // SSE2
1859
+ ASMJIT_INST_2x(psrlq, Psrlq, Xmm, Mem) // SSE2
1860
+ ASMJIT_INST_2x(psrlq, Psrlq, Xmm, Imm) // SSE2
1861
+ ASMJIT_INST_2x(psrlw, Psrlw, Mm, Mm) // MMX
1862
+ ASMJIT_INST_2x(psrlw, Psrlw, Mm, Mem) // MMX
1863
+ ASMJIT_INST_2x(psrlw, Psrlw, Mm, Imm) // MMX
1864
+ ASMJIT_INST_2x(psrlw, Psrlw, Xmm, Xmm) // SSE2
1865
+ ASMJIT_INST_2x(psrlw, Psrlw, Xmm, Mem) // SSE2
1866
+ ASMJIT_INST_2x(psrlw, Psrlw, Xmm, Imm) // SSE2
1867
+ ASMJIT_INST_2x(psubb, Psubb, Mm, Mm) // MMX
1868
+ ASMJIT_INST_2x(psubb, Psubb, Mm, Mem) // MMX
1869
+ ASMJIT_INST_2x(psubb, Psubb, Xmm, Xmm) // SSE2
1870
+ ASMJIT_INST_2x(psubb, Psubb, Xmm, Mem) // SSE2
1871
+ ASMJIT_INST_2x(psubd, Psubd, Mm, Mm) // MMX
1872
+ ASMJIT_INST_2x(psubd, Psubd, Mm, Mem) // MMX
1873
+ ASMJIT_INST_2x(psubd, Psubd, Xmm, Xmm) // SSE2
1874
+ ASMJIT_INST_2x(psubd, Psubd, Xmm, Mem) // SSE2
1875
+ ASMJIT_INST_2x(psubq, Psubq, Mm, Mm) // SSE2
1876
+ ASMJIT_INST_2x(psubq, Psubq, Mm, Mem) // SSE2
1877
+ ASMJIT_INST_2x(psubq, Psubq, Xmm, Xmm) // SSE2
1878
+ ASMJIT_INST_2x(psubq, Psubq, Xmm, Mem) // SSE2
1879
+ ASMJIT_INST_2x(psubsb, Psubsb, Mm, Mm) // MMX
1880
+ ASMJIT_INST_2x(psubsb, Psubsb, Mm, Mem) // MMX
1881
+ ASMJIT_INST_2x(psubsb, Psubsb, Xmm, Xmm) // SSE2
1882
+ ASMJIT_INST_2x(psubsb, Psubsb, Xmm, Mem) // SSE2
1883
+ ASMJIT_INST_2x(psubsw, Psubsw, Mm, Mm) // MMX
1884
+ ASMJIT_INST_2x(psubsw, Psubsw, Mm, Mem) // MMX
1885
+ ASMJIT_INST_2x(psubsw, Psubsw, Xmm, Xmm) // SSE2
1886
+ ASMJIT_INST_2x(psubsw, Psubsw, Xmm, Mem) // SSE2
1887
+ ASMJIT_INST_2x(psubusb, Psubusb, Mm, Mm) // MMX
1888
+ ASMJIT_INST_2x(psubusb, Psubusb, Mm, Mem) // MMX
1889
+ ASMJIT_INST_2x(psubusb, Psubusb, Xmm, Xmm) // SSE2
1890
+ ASMJIT_INST_2x(psubusb, Psubusb, Xmm, Mem) // SSE2
1891
+ ASMJIT_INST_2x(psubusw, Psubusw, Mm, Mm) // MMX
1892
+ ASMJIT_INST_2x(psubusw, Psubusw, Mm, Mem) // MMX
1893
+ ASMJIT_INST_2x(psubusw, Psubusw, Xmm, Xmm) // SSE2
1894
+ ASMJIT_INST_2x(psubusw, Psubusw, Xmm, Mem) // SSE2
1895
+ ASMJIT_INST_2x(psubw, Psubw, Mm, Mm) // MMX
1896
+ ASMJIT_INST_2x(psubw, Psubw, Mm, Mem) // MMX
1897
+ ASMJIT_INST_2x(psubw, Psubw, Xmm, Xmm) // SSE2
1898
+ ASMJIT_INST_2x(psubw, Psubw, Xmm, Mem) // SSE2
1899
+ ASMJIT_INST_2x(ptest, Ptest, Xmm, Xmm) // SSE4_1
1900
+ ASMJIT_INST_2x(ptest, Ptest, Xmm, Mem) // SSE4_1
1901
+ ASMJIT_INST_2x(punpckhbw, Punpckhbw, Mm, Mm) // MMX
1902
+ ASMJIT_INST_2x(punpckhbw, Punpckhbw, Mm, Mem) // MMX
1903
+ ASMJIT_INST_2x(punpckhbw, Punpckhbw, Xmm, Xmm) // SSE2
1904
+ ASMJIT_INST_2x(punpckhbw, Punpckhbw, Xmm, Mem) // SSE2
1905
+ ASMJIT_INST_2x(punpckhdq, Punpckhdq, Mm, Mm) // MMX
1906
+ ASMJIT_INST_2x(punpckhdq, Punpckhdq, Mm, Mem) // MMX
1907
+ ASMJIT_INST_2x(punpckhdq, Punpckhdq, Xmm, Xmm) // SSE2
1908
+ ASMJIT_INST_2x(punpckhdq, Punpckhdq, Xmm, Mem) // SSE2
1909
+ ASMJIT_INST_2x(punpckhqdq, Punpckhqdq, Xmm, Xmm) // SSE2
1910
+ ASMJIT_INST_2x(punpckhqdq, Punpckhqdq, Xmm, Mem) // SSE2
1911
+ ASMJIT_INST_2x(punpckhwd, Punpckhwd, Mm, Mm) // MMX
1912
+ ASMJIT_INST_2x(punpckhwd, Punpckhwd, Mm, Mem) // MMX
1913
+ ASMJIT_INST_2x(punpckhwd, Punpckhwd, Xmm, Xmm) // SSE2
1914
+ ASMJIT_INST_2x(punpckhwd, Punpckhwd, Xmm, Mem) // SSE2
1915
+ ASMJIT_INST_2x(punpcklbw, Punpcklbw, Mm, Mm) // MMX
1916
+ ASMJIT_INST_2x(punpcklbw, Punpcklbw, Mm, Mem) // MMX
1917
+ ASMJIT_INST_2x(punpcklbw, Punpcklbw, Xmm, Xmm) // SSE2
1918
+ ASMJIT_INST_2x(punpcklbw, Punpcklbw, Xmm, Mem) // SSE2
1919
+ ASMJIT_INST_2x(punpckldq, Punpckldq, Mm, Mm) // MMX
1920
+ ASMJIT_INST_2x(punpckldq, Punpckldq, Mm, Mem) // MMX
1921
+ ASMJIT_INST_2x(punpckldq, Punpckldq, Xmm, Xmm) // SSE2
1922
+ ASMJIT_INST_2x(punpckldq, Punpckldq, Xmm, Mem) // SSE2
1923
+ ASMJIT_INST_2x(punpcklqdq, Punpcklqdq, Xmm, Xmm) // SSE2
1924
+ ASMJIT_INST_2x(punpcklqdq, Punpcklqdq, Xmm, Mem) // SSE2
1925
+ ASMJIT_INST_2x(punpcklwd, Punpcklwd, Mm, Mm) // MMX
1926
+ ASMJIT_INST_2x(punpcklwd, Punpcklwd, Mm, Mem) // MMX
1927
+ ASMJIT_INST_2x(punpcklwd, Punpcklwd, Xmm, Xmm) // SSE2
1928
+ ASMJIT_INST_2x(punpcklwd, Punpcklwd, Xmm, Mem) // SSE2
1929
+ ASMJIT_INST_2x(pxor, Pxor, Mm, Mm) // MMX
1930
+ ASMJIT_INST_2x(pxor, Pxor, Mm, Mem) // MMX
1931
+ ASMJIT_INST_2x(pxor, Pxor, Xmm, Xmm) // SSE2
1932
+ ASMJIT_INST_2x(pxor, Pxor, Xmm, Mem) // SSE2
1933
+ ASMJIT_INST_2x(rcpps, Rcpps, Xmm, Xmm) // SSE
1934
+ ASMJIT_INST_2x(rcpps, Rcpps, Xmm, Mem) // SSE
1935
+ ASMJIT_INST_2x(rcpss, Rcpss, Xmm, Xmm) // SSE
1936
+ ASMJIT_INST_2x(rcpss, Rcpss, Xmm, Mem) // SSE
1937
+ ASMJIT_INST_3x(roundpd, Roundpd, Xmm, Xmm, Imm) // SSE4_1
1938
+ ASMJIT_INST_3x(roundpd, Roundpd, Xmm, Mem, Imm) // SSE4_1
1939
+ ASMJIT_INST_3x(roundps, Roundps, Xmm, Xmm, Imm) // SSE4_1
1940
+ ASMJIT_INST_3x(roundps, Roundps, Xmm, Mem, Imm) // SSE4_1
1941
+ ASMJIT_INST_3x(roundsd, Roundsd, Xmm, Xmm, Imm) // SSE4_1
1942
+ ASMJIT_INST_3x(roundsd, Roundsd, Xmm, Mem, Imm) // SSE4_1
1943
+ ASMJIT_INST_3x(roundss, Roundss, Xmm, Xmm, Imm) // SSE4_1
1944
+ ASMJIT_INST_3x(roundss, Roundss, Xmm, Mem, Imm) // SSE4_1
1945
+ ASMJIT_INST_2x(rsqrtps, Rsqrtps, Xmm, Xmm) // SSE
1946
+ ASMJIT_INST_2x(rsqrtps, Rsqrtps, Xmm, Mem) // SSE
1947
+ ASMJIT_INST_2x(rsqrtss, Rsqrtss, Xmm, Xmm) // SSE
1948
+ ASMJIT_INST_2x(rsqrtss, Rsqrtss, Xmm, Mem) // SSE
1949
+ ASMJIT_INST_3x(shufpd, Shufpd, Xmm, Xmm, Imm) // SSE2
1950
+ ASMJIT_INST_3x(shufpd, Shufpd, Xmm, Mem, Imm) // SSE2
1951
+ ASMJIT_INST_3x(shufps, Shufps, Xmm, Xmm, Imm) // SSE
1952
+ ASMJIT_INST_3x(shufps, Shufps, Xmm, Mem, Imm) // SSE
1953
+ ASMJIT_INST_2x(sqrtpd, Sqrtpd, Xmm, Xmm) // SSE2
1954
+ ASMJIT_INST_2x(sqrtpd, Sqrtpd, Xmm, Mem) // SSE2
1955
+ ASMJIT_INST_2x(sqrtps, Sqrtps, Xmm, Xmm) // SSE
1956
+ ASMJIT_INST_2x(sqrtps, Sqrtps, Xmm, Mem) // SSE
1957
+ ASMJIT_INST_2x(sqrtsd, Sqrtsd, Xmm, Xmm) // SSE2
1958
+ ASMJIT_INST_2x(sqrtsd, Sqrtsd, Xmm, Mem) // SSE2
1959
+ ASMJIT_INST_2x(sqrtss, Sqrtss, Xmm, Xmm) // SSE
1960
+ ASMJIT_INST_2x(sqrtss, Sqrtss, Xmm, Mem) // SSE
1961
+ ASMJIT_INST_2x(subpd, Subpd, Xmm, Xmm) // SSE2
1962
+ ASMJIT_INST_2x(subpd, Subpd, Xmm, Mem) // SSE2
1963
+ ASMJIT_INST_2x(subps, Subps, Xmm, Xmm) // SSE
1964
+ ASMJIT_INST_2x(subps, Subps, Xmm, Mem) // SSE
1965
+ ASMJIT_INST_2x(subsd, Subsd, Xmm, Xmm) // SSE2
1966
+ ASMJIT_INST_2x(subsd, Subsd, Xmm, Mem) // SSE2
1967
+ ASMJIT_INST_2x(subss, Subss, Xmm, Xmm) // SSE
1968
+ ASMJIT_INST_2x(subss, Subss, Xmm, Mem) // SSE
1969
+ ASMJIT_INST_2x(ucomisd, Ucomisd, Xmm, Xmm) // SSE2
1970
+ ASMJIT_INST_2x(ucomisd, Ucomisd, Xmm, Mem) // SSE2
1971
+ ASMJIT_INST_2x(ucomiss, Ucomiss, Xmm, Xmm) // SSE
1972
+ ASMJIT_INST_2x(ucomiss, Ucomiss, Xmm, Mem) // SSE
1973
+ ASMJIT_INST_2x(unpckhpd, Unpckhpd, Xmm, Xmm) // SSE2
1974
+ ASMJIT_INST_2x(unpckhpd, Unpckhpd, Xmm, Mem) // SSE2
1975
+ ASMJIT_INST_2x(unpckhps, Unpckhps, Xmm, Xmm) // SSE
1976
+ ASMJIT_INST_2x(unpckhps, Unpckhps, Xmm, Mem) // SSE
1977
+ ASMJIT_INST_2x(unpcklpd, Unpcklpd, Xmm, Xmm) // SSE2
1978
+ ASMJIT_INST_2x(unpcklpd, Unpcklpd, Xmm, Mem) // SSE2
1979
+ ASMJIT_INST_2x(unpcklps, Unpcklps, Xmm, Xmm) // SSE
1980
+ ASMJIT_INST_2x(unpcklps, Unpcklps, Xmm, Mem) // SSE
1981
+ ASMJIT_INST_2x(xorpd, Xorpd, Xmm, Xmm) // SSE2
1982
+ ASMJIT_INST_2x(xorpd, Xorpd, Xmm, Mem) // SSE2
1983
+ ASMJIT_INST_2x(xorps, Xorps, Xmm, Xmm) // SSE
1984
+ ASMJIT_INST_2x(xorps, Xorps, Xmm, Mem) // SSE
1985
+
1986
+ //! \}
1987
+
1988
+ //! \name 3DNOW and GEODE Instructions (Deprecated)
1989
+ //! \{
1990
+
1991
+ ASMJIT_INST_2x(pavgusb, Pavgusb, Mm, Mm) // 3DNOW
1992
+ ASMJIT_INST_2x(pavgusb, Pavgusb, Mm, Mem) // 3DNOW
1993
+ ASMJIT_INST_2x(pf2id, Pf2id, Mm, Mm) // 3DNOW
1994
+ ASMJIT_INST_2x(pf2id, Pf2id, Mm, Mem) // 3DNOW
1995
+ ASMJIT_INST_2x(pf2iw, Pf2iw, Mm, Mm) // 3DNOW
1996
+ ASMJIT_INST_2x(pf2iw, Pf2iw, Mm, Mem) // 3DNOW
1997
+ ASMJIT_INST_2x(pfacc, Pfacc, Mm, Mm) // 3DNOW
1998
+ ASMJIT_INST_2x(pfacc, Pfacc, Mm, Mem) // 3DNOW
1999
+ ASMJIT_INST_2x(pfadd, Pfadd, Mm, Mm) // 3DNOW
2000
+ ASMJIT_INST_2x(pfadd, Pfadd, Mm, Mem) // 3DNOW
2001
+ ASMJIT_INST_2x(pfcmpeq, Pfcmpeq, Mm, Mm) // 3DNOW
2002
+ ASMJIT_INST_2x(pfcmpeq, Pfcmpeq, Mm, Mem) // 3DNOW
2003
+ ASMJIT_INST_2x(pfcmpge, Pfcmpge, Mm, Mm) // 3DNOW
2004
+ ASMJIT_INST_2x(pfcmpge, Pfcmpge, Mm, Mem) // 3DNOW
2005
+ ASMJIT_INST_2x(pfcmpgt, Pfcmpgt, Mm, Mm) // 3DNOW
2006
+ ASMJIT_INST_2x(pfcmpgt, Pfcmpgt, Mm, Mem) // 3DNOW
2007
+ ASMJIT_INST_2x(pfmax, Pfmax, Mm, Mm) // 3DNOW
2008
+ ASMJIT_INST_2x(pfmax, Pfmax, Mm, Mem) // 3DNOW
2009
+ ASMJIT_INST_2x(pfmin, Pfmin, Mm, Mm) // 3DNOW
2010
+ ASMJIT_INST_2x(pfmin, Pfmin, Mm, Mem) // 3DNOW
2011
+ ASMJIT_INST_2x(pfmul, Pfmul, Mm, Mm) // 3DNOW
2012
+ ASMJIT_INST_2x(pfmul, Pfmul, Mm, Mem) // 3DNOW
2013
+ ASMJIT_INST_2x(pfnacc, Pfnacc, Mm, Mm) // 3DNOW
2014
+ ASMJIT_INST_2x(pfnacc, Pfnacc, Mm, Mem) // 3DNOW
2015
+ ASMJIT_INST_2x(pfpnacc, Pfpnacc, Mm, Mm) // 3DNOW
2016
+ ASMJIT_INST_2x(pfpnacc, Pfpnacc, Mm, Mem) // 3DNOW
2017
+ ASMJIT_INST_2x(pfrcp, Pfrcp, Mm, Mm) // 3DNOW
2018
+ ASMJIT_INST_2x(pfrcp, Pfrcp, Mm, Mem) // 3DNOW
2019
+ ASMJIT_INST_2x(pfrcpit1, Pfrcpit1, Mm, Mm) // 3DNOW
2020
+ ASMJIT_INST_2x(pfrcpit1, Pfrcpit1, Mm, Mem) // 3DNOW
2021
+ ASMJIT_INST_2x(pfrcpit2, Pfrcpit2, Mm, Mm) // 3DNOW
2022
+ ASMJIT_INST_2x(pfrcpit2, Pfrcpit2, Mm, Mem) // 3DNOW
2023
+ ASMJIT_INST_2x(pfrcpv, Pfrcpv, Mm, Mm) // GEODE
2024
+ ASMJIT_INST_2x(pfrcpv, Pfrcpv, Mm, Mem) // GEODE
2025
+ ASMJIT_INST_2x(pfrsqit1, Pfrsqit1, Mm, Mm) // 3DNOW
2026
+ ASMJIT_INST_2x(pfrsqit1, Pfrsqit1, Mm, Mem) // 3DNOW
2027
+ ASMJIT_INST_2x(pfrsqrt, Pfrsqrt, Mm, Mm) // 3DNOW
2028
+ ASMJIT_INST_2x(pfrsqrt, Pfrsqrt, Mm, Mem) // 3DNOW
2029
+ ASMJIT_INST_2x(pfrsqrtv, Pfrsqrtv, Mm, Mm) // GEODE
2030
+ ASMJIT_INST_2x(pfrsqrtv, Pfrsqrtv, Mm, Mem) // GEODE
2031
+ ASMJIT_INST_2x(pfsub, Pfsub, Mm, Mm) // 3DNOW
2032
+ ASMJIT_INST_2x(pfsub, Pfsub, Mm, Mem) // 3DNOW
2033
+ ASMJIT_INST_2x(pfsubr, Pfsubr, Mm, Mm) // 3DNOW
2034
+ ASMJIT_INST_2x(pfsubr, Pfsubr, Mm, Mem) // 3DNOW
2035
+ ASMJIT_INST_2x(pi2fd, Pi2fd, Mm, Mm) // 3DNOW
2036
+ ASMJIT_INST_2x(pi2fd, Pi2fd, Mm, Mem) // 3DNOW
2037
+ ASMJIT_INST_2x(pi2fw, Pi2fw, Mm, Mm) // 3DNOW
2038
+ ASMJIT_INST_2x(pi2fw, Pi2fw, Mm, Mem) // 3DNOW
2039
+ ASMJIT_INST_2x(pmulhrw, Pmulhrw, Mm, Mm) // 3DNOW
2040
+ ASMJIT_INST_2x(pmulhrw, Pmulhrw, Mm, Mem) // 3DNOW
2041
+ ASMJIT_INST_2x(pswapd, Pswapd, Mm, Mm) // 3DNOW
2042
+ ASMJIT_INST_2x(pswapd, Pswapd, Mm, Mem) // 3DNOW
2043
+
2044
+ //! \}
2045
+
2046
+ //! \name EMMS/FEMMS Instructions
2047
+ //! \{
2048
+
2049
+ ASMJIT_INST_0x(emms, Emms) // MMX
2050
+ ASMJIT_INST_0x(femms, Femms) // 3DNOW
2051
+
2052
+ //! \}
2053
+
2054
+ //! \name AESNI Instructions
2055
+ //! \{
2056
+
2057
+ ASMJIT_INST_2x(aesdec, Aesdec, Xmm, Xmm) // AESNI
2058
+ ASMJIT_INST_2x(aesdec, Aesdec, Xmm, Mem) // AESNI
2059
+ ASMJIT_INST_2x(aesdeclast, Aesdeclast, Xmm, Xmm) // AESNI
2060
+ ASMJIT_INST_2x(aesdeclast, Aesdeclast, Xmm, Mem) // AESNI
2061
+ ASMJIT_INST_2x(aesenc, Aesenc, Xmm, Xmm) // AESNI
2062
+ ASMJIT_INST_2x(aesenc, Aesenc, Xmm, Mem) // AESNI
2063
+ ASMJIT_INST_2x(aesenclast, Aesenclast, Xmm, Xmm) // AESNI
2064
+ ASMJIT_INST_2x(aesenclast, Aesenclast, Xmm, Mem) // AESNI
2065
+ ASMJIT_INST_2x(aesimc, Aesimc, Xmm, Xmm) // AESNI
2066
+ ASMJIT_INST_2x(aesimc, Aesimc, Xmm, Mem) // AESNI
2067
+ ASMJIT_INST_3x(aeskeygenassist, Aeskeygenassist, Xmm, Xmm, Imm) // AESNI
2068
+ ASMJIT_INST_3x(aeskeygenassist, Aeskeygenassist, Xmm, Mem, Imm) // AESNI
2069
+
2070
+ //! \}
2071
+
2072
+ //! \name SHA Instructions
2073
+ //! \{
2074
+
2075
+ ASMJIT_INST_2x(sha1msg1, Sha1msg1, Xmm, Xmm) // SHA
2076
+ ASMJIT_INST_2x(sha1msg1, Sha1msg1, Xmm, Mem) // SHA
2077
+ ASMJIT_INST_2x(sha1msg2, Sha1msg2, Xmm, Xmm) // SHA
2078
+ ASMJIT_INST_2x(sha1msg2, Sha1msg2, Xmm, Mem) // SHA
2079
+ ASMJIT_INST_2x(sha1nexte, Sha1nexte, Xmm, Xmm) // SHA
2080
+ ASMJIT_INST_2x(sha1nexte, Sha1nexte, Xmm, Mem) // SHA
2081
+ ASMJIT_INST_3x(sha1rnds4, Sha1rnds4, Xmm, Xmm, Imm) // SHA
2082
+ ASMJIT_INST_3x(sha1rnds4, Sha1rnds4, Xmm, Mem, Imm) // SHA
2083
+ ASMJIT_INST_2x(sha256msg1, Sha256msg1, Xmm, Xmm) // SHA
2084
+ ASMJIT_INST_2x(sha256msg1, Sha256msg1, Xmm, Mem) // SHA
2085
+ ASMJIT_INST_2x(sha256msg2, Sha256msg2, Xmm, Xmm) // SHA
2086
+ ASMJIT_INST_2x(sha256msg2, Sha256msg2, Xmm, Mem) // SHA
2087
+ ASMJIT_INST_3x(sha256rnds2, Sha256rnds2, Xmm, Xmm, XMM0) // SHA [EXPLICIT]
2088
+ ASMJIT_INST_3x(sha256rnds2, Sha256rnds2, Xmm, Mem, XMM0) // SHA [EXPLICIT]
2089
+
2090
+ //! \}
2091
+
2092
+ //! \name GFNI Instructions
2093
+ //! \{
2094
+
2095
+ // NOTE: For some reason Doxygen is messed up here and thinks we are in cond.
2096
+ //! \endcond
2097
+
2098
+ ASMJIT_INST_3x(gf2p8affineinvqb, Gf2p8affineinvqb, Xmm, Xmm, Imm) // GFNI
2099
+ ASMJIT_INST_3x(gf2p8affineinvqb, Gf2p8affineinvqb, Xmm, Mem, Imm) // GFNI
2100
+ ASMJIT_INST_3x(gf2p8affineqb, Gf2p8affineqb, Xmm, Xmm, Imm) // GFNI
2101
+ ASMJIT_INST_3x(gf2p8affineqb, Gf2p8affineqb, Xmm, Mem, Imm) // GFNI
2102
+ ASMJIT_INST_2x(gf2p8mulb, Gf2p8mulb, Xmm, Xmm) // GFNI
2103
+ ASMJIT_INST_2x(gf2p8mulb, Gf2p8mulb, Xmm, Mem) // GFNI
2104
+
2105
+ //! \}
2106
+
2107
+ //! \name AVX, FMA, and AVX512 Instructions
2108
+ //! \{
2109
+
2110
+ ASMJIT_INST_3x(kaddb, Kaddb, KReg, KReg, KReg) // AVX512_DQ
2111
+ ASMJIT_INST_3x(kaddd, Kaddd, KReg, KReg, KReg) // AVX512_BW
2112
+ ASMJIT_INST_3x(kaddq, Kaddq, KReg, KReg, KReg) // AVX512_BW
2113
+ ASMJIT_INST_3x(kaddw, Kaddw, KReg, KReg, KReg) // AVX512_DQ
2114
+ ASMJIT_INST_3x(kandb, Kandb, KReg, KReg, KReg) // AVX512_DQ
2115
+ ASMJIT_INST_3x(kandd, Kandd, KReg, KReg, KReg) // AVX512_BW
2116
+ ASMJIT_INST_3x(kandnb, Kandnb, KReg, KReg, KReg) // AVX512_DQ
2117
+ ASMJIT_INST_3x(kandnd, Kandnd, KReg, KReg, KReg) // AVX512_BW
2118
+ ASMJIT_INST_3x(kandnq, Kandnq, KReg, KReg, KReg) // AVX512_BW
2119
+ ASMJIT_INST_3x(kandnw, Kandnw, KReg, KReg, KReg) // AVX512_F
2120
+ ASMJIT_INST_3x(kandq, Kandq, KReg, KReg, KReg) // AVX512_BW
2121
+ ASMJIT_INST_3x(kandw, Kandw, KReg, KReg, KReg) // AVX512_F
2122
+ ASMJIT_INST_2x(kmovb, Kmovb, KReg, KReg) // AVX512_DQ
2123
+ ASMJIT_INST_2x(kmovb, Kmovb, KReg, Mem) // AVX512_DQ
2124
+ ASMJIT_INST_2x(kmovb, Kmovb, KReg, Gp) // AVX512_DQ
2125
+ ASMJIT_INST_2x(kmovb, Kmovb, Mem, KReg) // AVX512_DQ
2126
+ ASMJIT_INST_2x(kmovb, Kmovb, Gp, KReg) // AVX512_DQ
2127
+ ASMJIT_INST_2x(kmovd, Kmovd, KReg, KReg) // AVX512_BW
2128
+ ASMJIT_INST_2x(kmovd, Kmovd, KReg, Mem) // AVX512_BW
2129
+ ASMJIT_INST_2x(kmovd, Kmovd, KReg, Gp) // AVX512_BW
2130
+ ASMJIT_INST_2x(kmovd, Kmovd, Mem, KReg) // AVX512_BW
2131
+ ASMJIT_INST_2x(kmovd, Kmovd, Gp, KReg) // AVX512_BW
2132
+ ASMJIT_INST_2x(kmovq, Kmovq, KReg, KReg) // AVX512_BW
2133
+ ASMJIT_INST_2x(kmovq, Kmovq, KReg, Mem) // AVX512_BW
2134
+ ASMJIT_INST_2x(kmovq, Kmovq, KReg, Gp) // AVX512_BW
2135
+ ASMJIT_INST_2x(kmovq, Kmovq, Mem, KReg) // AVX512_BW
2136
+ ASMJIT_INST_2x(kmovq, Kmovq, Gp, KReg) // AVX512_BW
2137
+ ASMJIT_INST_2x(kmovw, Kmovw, KReg, KReg) // AVX512_F
2138
+ ASMJIT_INST_2x(kmovw, Kmovw, KReg, Mem) // AVX512_F
2139
+ ASMJIT_INST_2x(kmovw, Kmovw, KReg, Gp) // AVX512_F
2140
+ ASMJIT_INST_2x(kmovw, Kmovw, Mem, KReg) // AVX512_F
2141
+ ASMJIT_INST_2x(kmovw, Kmovw, Gp, KReg) // AVX512_F
2142
+ ASMJIT_INST_2x(knotb, Knotb, KReg, KReg) // AVX512_DQ
2143
+ ASMJIT_INST_2x(knotd, Knotd, KReg, KReg) // AVX512_BW
2144
+ ASMJIT_INST_2x(knotq, Knotq, KReg, KReg) // AVX512_BW
2145
+ ASMJIT_INST_2x(knotw, Knotw, KReg, KReg) // AVX512_F
2146
+ ASMJIT_INST_3x(korb, Korb, KReg, KReg, KReg) // AVX512_DQ
2147
+ ASMJIT_INST_3x(kord, Kord, KReg, KReg, KReg) // AVX512_BW
2148
+ ASMJIT_INST_3x(korq, Korq, KReg, KReg, KReg) // AVX512_BW
2149
+ ASMJIT_INST_2x(kortestb, Kortestb, KReg, KReg) // AVX512_DQ
2150
+ ASMJIT_INST_2x(kortestd, Kortestd, KReg, KReg) // AVX512_BW
2151
+ ASMJIT_INST_2x(kortestq, Kortestq, KReg, KReg) // AVX512_BW
2152
+ ASMJIT_INST_2x(kortestw, Kortestw, KReg, KReg) // AVX512_F
2153
+ ASMJIT_INST_3x(korw, Korw, KReg, KReg, KReg) // AVX512_F
2154
+ ASMJIT_INST_3x(kshiftlb, Kshiftlb, KReg, KReg, Imm) // AVX512_DQ
2155
+ ASMJIT_INST_3x(kshiftld, Kshiftld, KReg, KReg, Imm) // AVX512_BW
2156
+ ASMJIT_INST_3x(kshiftlq, Kshiftlq, KReg, KReg, Imm) // AVX512_BW
2157
+ ASMJIT_INST_3x(kshiftlw, Kshiftlw, KReg, KReg, Imm) // AVX512_F
2158
+ ASMJIT_INST_3x(kshiftrb, Kshiftrb, KReg, KReg, Imm) // AVX512_DQ
2159
+ ASMJIT_INST_3x(kshiftrd, Kshiftrd, KReg, KReg, Imm) // AVX512_BW
2160
+ ASMJIT_INST_3x(kshiftrq, Kshiftrq, KReg, KReg, Imm) // AVX512_BW
2161
+ ASMJIT_INST_3x(kshiftrw, Kshiftrw, KReg, KReg, Imm) // AVX512_F
2162
+ ASMJIT_INST_2x(ktestb, Ktestb, KReg, KReg) // AVX512_DQ
2163
+ ASMJIT_INST_2x(ktestd, Ktestd, KReg, KReg) // AVX512_BW
2164
+ ASMJIT_INST_2x(ktestq, Ktestq, KReg, KReg) // AVX512_BW
2165
+ ASMJIT_INST_2x(ktestw, Ktestw, KReg, KReg) // AVX512_DQ
2166
+ ASMJIT_INST_3x(kunpckbw, Kunpckbw, KReg, KReg, KReg) // AVX512_F
2167
+ ASMJIT_INST_3x(kunpckdq, Kunpckdq, KReg, KReg, KReg) // AVX512_BW
2168
+ ASMJIT_INST_3x(kunpckwd, Kunpckwd, KReg, KReg, KReg) // AVX512_BW
2169
+ ASMJIT_INST_3x(kxnorb, Kxnorb, KReg, KReg, KReg) // AVX512_DQ
2170
+ ASMJIT_INST_3x(kxnord, Kxnord, KReg, KReg, KReg) // AVX512_BW
2171
+ ASMJIT_INST_3x(kxnorq, Kxnorq, KReg, KReg, KReg) // AVX512_BW
2172
+ ASMJIT_INST_3x(kxnorw, Kxnorw, KReg, KReg, KReg) // AVX512_F
2173
+ ASMJIT_INST_3x(kxorb, Kxorb, KReg, KReg, KReg) // AVX512_DQ
2174
+ ASMJIT_INST_3x(kxord, Kxord, KReg, KReg, KReg) // AVX512_BW
2175
+ ASMJIT_INST_3x(kxorq, Kxorq, KReg, KReg, KReg) // AVX512_BW
2176
+ ASMJIT_INST_3x(kxorw, Kxorw, KReg, KReg, KReg) // AVX512_F
2177
+ ASMJIT_INST_6x(v4fmaddps, V4fmaddps, Zmm, Zmm, Zmm, Zmm, Zmm, Mem) // AVX512_4FMAPS{kz}
2178
+ ASMJIT_INST_6x(v4fmaddss, V4fmaddss, Xmm, Xmm, Xmm, Xmm, Xmm, Mem) // AVX512_4FMAPS{kz}
2179
+ ASMJIT_INST_6x(v4fnmaddps, V4fnmaddps, Zmm, Zmm, Zmm, Zmm, Zmm, Mem) // AVX512_4FMAPS{kz}
2180
+ ASMJIT_INST_6x(v4fnmaddss, V4fnmaddss, Xmm, Xmm, Xmm, Xmm, Xmm, Mem) // AVX512_4FMAPS{kz}
2181
+ ASMJIT_INST_3x(vaddpd, Vaddpd, Vec, Vec, Vec) // AVX AVX512_F{kz|b64}
2182
+ ASMJIT_INST_3x(vaddpd, Vaddpd, Vec, Vec, Mem) // AVX AVX512_F{kz|b64}
2183
+ ASMJIT_INST_3x(vaddps, Vaddps, Vec, Vec, Vec) // AVX AVX512_F{kz|b32}
2184
+ ASMJIT_INST_3x(vaddps, Vaddps, Vec, Vec, Mem) // AVX AVX512_F{kz|b32}
2185
+ ASMJIT_INST_3x(vaddsd, Vaddsd, Xmm, Xmm, Xmm) // AVX AVX512_F{kz|er}
2186
+ ASMJIT_INST_3x(vaddsd, Vaddsd, Xmm, Xmm, Mem) // AVX AVX512_F{kz|er}
2187
+ ASMJIT_INST_3x(vaddss, Vaddss, Xmm, Xmm, Xmm) // AVX AVX512_F{kz|er}
2188
+ ASMJIT_INST_3x(vaddss, Vaddss, Xmm, Xmm, Mem) // AVX AVX512_F{kz|er}
2189
+ ASMJIT_INST_3x(vaddsubpd, Vaddsubpd, Vec, Vec, Vec) // AVX
2190
+ ASMJIT_INST_3x(vaddsubpd, Vaddsubpd, Vec, Vec, Mem) // AVX
2191
+ ASMJIT_INST_3x(vaddsubps, Vaddsubps, Vec, Vec, Vec) // AVX
2192
+ ASMJIT_INST_3x(vaddsubps, Vaddsubps, Vec, Vec, Mem) // AVX
2193
+ ASMJIT_INST_3x(vaesdec, Vaesdec, Vec, Vec, Vec) // AVX+AESNI VAES
2194
+ ASMJIT_INST_3x(vaesdec, Vaesdec, Vec, Vec, Mem) // AVX+AESNI VAES
2195
+ ASMJIT_INST_3x(vaesdeclast, Vaesdeclast, Vec, Vec, Vec) // AVX+AESNI VAES
2196
+ ASMJIT_INST_3x(vaesdeclast, Vaesdeclast, Vec, Vec, Mem) // AVX+AESNI VAES
2197
+ ASMJIT_INST_3x(vaesenc, Vaesenc, Vec, Vec, Vec) // AVX+AESNI VAES
2198
+ ASMJIT_INST_3x(vaesenc, Vaesenc, Vec, Vec, Mem) // AVX+AESNI VAES
2199
+ ASMJIT_INST_3x(vaesenclast, Vaesenclast, Vec, Vec, Vec) // AVX+AESNI VAES
2200
+ ASMJIT_INST_3x(vaesenclast, Vaesenclast, Vec, Vec, Mem) // AVX+AESNI VAES
2201
+ ASMJIT_INST_2x(vaesimc, Vaesimc, Xmm, Xmm) // AVX+AESNI
2202
+ ASMJIT_INST_2x(vaesimc, Vaesimc, Xmm, Mem) // AVX+AESNI
2203
+ ASMJIT_INST_3x(vaeskeygenassist, Vaeskeygenassist, Xmm, Xmm, Imm) // AVX+AESNI
2204
+ ASMJIT_INST_3x(vaeskeygenassist, Vaeskeygenassist, Xmm, Mem, Imm) // AVX+AESNI
2205
+ ASMJIT_INST_4x(valignd, Valignd, Vec, Vec, Vec, Imm) // AVX512_F{kz|b32}
2206
+ ASMJIT_INST_4x(valignd, Valignd, Vec, Vec, Mem, Imm) // AVX512_F{kz|b32}
2207
+ ASMJIT_INST_4x(valignq, Valignq, Vec, Vec, Vec, Imm) // AVX512_F{kz|b64}
2208
+ ASMJIT_INST_4x(valignq, Valignq, Vec, Vec, Mem, Imm) // AVX512_F{kz|b64}
2209
+ ASMJIT_INST_3x(vandnpd, Vandnpd, Vec, Vec, Vec) // AVX AVX512_DQ{kz|b64}
2210
+ ASMJIT_INST_3x(vandnpd, Vandnpd, Vec, Vec, Mem) // AVX AVX512_DQ{kz|b64}
2211
+ ASMJIT_INST_3x(vandnps, Vandnps, Vec, Vec, Vec) // AVX AVX512_DQ{kz|b32}
2212
+ ASMJIT_INST_3x(vandnps, Vandnps, Vec, Vec, Mem) // AVX AVX512_DQ{kz|b32}
2213
+ ASMJIT_INST_3x(vandpd, Vandpd, Vec, Vec, Vec) // AVX AVX512_DQ{kz|b64}
2214
+ ASMJIT_INST_3x(vandpd, Vandpd, Vec, Vec, Mem) // AVX AVX512_DQ{kz|b64}
2215
+ ASMJIT_INST_3x(vandps, Vandps, Vec, Vec, Vec) // AVX AVX512_DQ{kz|b32}
2216
+ ASMJIT_INST_3x(vandps, Vandps, Vec, Vec, Mem) // AVX AVX512_DQ{kz|b32}
2217
+ ASMJIT_INST_3x(vblendmpd, Vblendmpd, Vec, Vec, Vec) // AVX512_F{kz|b64}
2218
+ ASMJIT_INST_3x(vblendmpd, Vblendmpd, Vec, Vec, Mem) // AVX512_F{kz|b64}
2219
+ ASMJIT_INST_3x(vblendmps, Vblendmps, Vec, Vec, Vec) // AVX512_F{kz|b32}
2220
+ ASMJIT_INST_3x(vblendmps, Vblendmps, Vec, Vec, Mem) // AVX512_F{kz|b32}
2221
+ ASMJIT_INST_4x(vblendpd, Vblendpd, Vec, Vec, Vec, Imm) // AVX
2222
+ ASMJIT_INST_4x(vblendpd, Vblendpd, Vec, Vec, Mem, Imm) // AVX
2223
+ ASMJIT_INST_4x(vblendps, Vblendps, Vec, Vec, Vec, Imm) // AVX
2224
+ ASMJIT_INST_4x(vblendps, Vblendps, Vec, Vec, Mem, Imm) // AVX
2225
+ ASMJIT_INST_4x(vblendvpd, Vblendvpd, Vec, Vec, Vec, Vec) // AVX
2226
+ ASMJIT_INST_4x(vblendvpd, Vblendvpd, Vec, Vec, Mem, Vec) // AVX
2227
+ ASMJIT_INST_4x(vblendvps, Vblendvps, Vec, Vec, Vec, Vec) // AVX
2228
+ ASMJIT_INST_4x(vblendvps, Vblendvps, Vec, Vec, Mem, Vec) // AVX
2229
+ ASMJIT_INST_2x(vbroadcastf128, Vbroadcastf128, Vec, Mem) // AVX
2230
+ ASMJIT_INST_2x(vbroadcastf32x2, Vbroadcastf32x2, Vec, Vec) // AVX512_DQ{kz}
2231
+ ASMJIT_INST_2x(vbroadcastf32x2, Vbroadcastf32x2, Vec, Mem) // AVX512_DQ{kz}
2232
+ ASMJIT_INST_2x(vbroadcastf32x4, Vbroadcastf32x4, Vec, Mem) // AVX512_F{kz}
2233
+ ASMJIT_INST_2x(vbroadcastf32x8, Vbroadcastf32x8, Vec, Mem) // AVX512_DQ{kz}
2234
+ ASMJIT_INST_2x(vbroadcastf64x2, Vbroadcastf64x2, Vec, Mem) // AVX512_DQ{kz}
2235
+ ASMJIT_INST_2x(vbroadcastf64x4, Vbroadcastf64x4, Vec, Mem) // AVX512_F{kz}
2236
+ ASMJIT_INST_2x(vbroadcasti128, Vbroadcasti128, Vec, Mem) // AVX2
2237
+ ASMJIT_INST_2x(vbroadcasti32x2, Vbroadcasti32x2, Vec, Vec) // AVX512_DQ{kz}
2238
+ ASMJIT_INST_2x(vbroadcasti32x2, Vbroadcasti32x2, Vec, Mem) // AVX512_DQ{kz}
2239
+ ASMJIT_INST_2x(vbroadcasti32x4, Vbroadcasti32x4, Vec, Mem) // AVX512_F{kz}
2240
+ ASMJIT_INST_2x(vbroadcasti32x8, Vbroadcasti32x8, Vec, Mem) // AVX512_DQ{kz}
2241
+ ASMJIT_INST_2x(vbroadcasti64x2, Vbroadcasti64x2, Vec, Vec) // AVX512_DQ{kz}
2242
+ ASMJIT_INST_2x(vbroadcasti64x2, Vbroadcasti64x2, Vec, Mem) // AVX512_DQ{kz}
2243
+ ASMJIT_INST_2x(vbroadcasti64x4, Vbroadcasti64x4, Vec, Vec) // AVX512_F{kz}
2244
+ ASMJIT_INST_2x(vbroadcasti64x4, Vbroadcasti64x4, Vec, Mem) // AVX512_F{kz}
2245
+ ASMJIT_INST_2x(vbroadcastsd, Vbroadcastsd, Vec, Mem) // AVX AVX512_F{kz}
2246
+ ASMJIT_INST_2x(vbroadcastsd, Vbroadcastsd, Vec, Xmm) // AVX2 AVX512_F{kz}
2247
+ ASMJIT_INST_2x(vbroadcastss, Vbroadcastss, Vec, Mem) // AVX AVX512_F{kz}
2248
+ ASMJIT_INST_2x(vbroadcastss, Vbroadcastss, Vec, Xmm) // AVX2 AVX512_F{kz}
2249
+ ASMJIT_INST_4x(vcmppd, Vcmppd, Vec, Vec, Vec, Imm) // AVX
2250
+ ASMJIT_INST_4x(vcmppd, Vcmppd, Vec, Vec, Mem, Imm) // AVX
2251
+ ASMJIT_INST_4x(vcmppd, Vcmppd, KReg, Vec, Vec, Imm) // AVX512_F{kz|b64}
2252
+ ASMJIT_INST_4x(vcmppd, Vcmppd, KReg, Vec, Mem, Imm) // AVX512_F{kz|b64}
2253
+ ASMJIT_INST_4x(vcmpps, Vcmpps, Vec, Vec, Vec, Imm) // AVX
2254
+ ASMJIT_INST_4x(vcmpps, Vcmpps, Vec, Vec, Mem, Imm) // AVX
2255
+ ASMJIT_INST_4x(vcmpps, Vcmpps, KReg, Vec, Vec, Imm) // AVX512_F{kz|b32}
2256
+ ASMJIT_INST_4x(vcmpps, Vcmpps, KReg, Vec, Mem, Imm) // AVX512_F{kz|b32}
2257
+ ASMJIT_INST_4x(vcmpsd, Vcmpsd, Xmm, Xmm, Xmm, Imm) // AVX
2258
+ ASMJIT_INST_4x(vcmpsd, Vcmpsd, Xmm, Xmm, Mem, Imm) // AVX
2259
+ ASMJIT_INST_4x(vcmpsd, Vcmpsd, KReg, Xmm, Xmm, Imm) // AVX512_F{kz|sae}
2260
+ ASMJIT_INST_4x(vcmpsd, Vcmpsd, KReg, Xmm, Mem, Imm) // AVX512_F{kz|sae}
2261
+ ASMJIT_INST_4x(vcmpss, Vcmpss, Xmm, Xmm, Xmm, Imm) // AVX
2262
+ ASMJIT_INST_4x(vcmpss, Vcmpss, Xmm, Xmm, Mem, Imm) // AVX
2263
+ ASMJIT_INST_4x(vcmpss, Vcmpss, KReg, Xmm, Xmm, Imm) // AVX512_F{kz|sae}
2264
+ ASMJIT_INST_4x(vcmpss, Vcmpss, KReg, Xmm, Mem, Imm) // AVX512_F{kz|sae}
2265
+ ASMJIT_INST_2x(vcomisd, Vcomisd, Xmm, Xmm) // AVX AVX512_F{sae}
2266
+ ASMJIT_INST_2x(vcomisd, Vcomisd, Xmm, Mem) // AVX AVX512_F{sae}
2267
+ ASMJIT_INST_2x(vcomiss, Vcomiss, Xmm, Xmm) // AVX AVX512_F{sae}
2268
+ ASMJIT_INST_2x(vcomiss, Vcomiss, Xmm, Mem) // AVX AVX512_F{sae}
2269
+ ASMJIT_INST_2x(vcompresspd, Vcompresspd, Vec, Vec) // AVX512_F{kz}
2270
+ ASMJIT_INST_2x(vcompresspd, Vcompresspd, Mem, Vec) // AVX512_F{kz}
2271
+ ASMJIT_INST_2x(vcompressps, Vcompressps, Vec, Vec) // AVX512_F{kz}
2272
+ ASMJIT_INST_2x(vcompressps, Vcompressps, Mem, Vec) // AVX512_F{kz}
2273
+ ASMJIT_INST_2x(vcvtdq2pd, Vcvtdq2pd, Vec, Vec) // AVX AVX512_F{kz|b32}
2274
+ ASMJIT_INST_2x(vcvtdq2pd, Vcvtdq2pd, Vec, Mem) // AVX AVX512_F{kz|b32}
2275
+ ASMJIT_INST_2x(vcvtdq2ps, Vcvtdq2ps, Vec, Vec) // AVX AVX512_F{kz|b32}
2276
+ ASMJIT_INST_2x(vcvtdq2ps, Vcvtdq2ps, Vec, Mem) // AVX AVX512_F{kz|b32}
2277
+ ASMJIT_INST_3x(vcvtne2ps2bf16, Vcvtne2ps2bf16, Vec, Vec, Vec) // AVX512_BF16{kz|b32}
2278
+ ASMJIT_INST_3x(vcvtne2ps2bf16, Vcvtne2ps2bf16, Vec, Vec, Mem) // AVX512_BF16{kz|b32}
2279
+ ASMJIT_INST_2x(vcvtneps2bf16, Vcvtneps2bf16, Vec, Vec) // AVX512_BF16{kz|b32}
2280
+ ASMJIT_INST_2x(vcvtneps2bf16, Vcvtneps2bf16, Vec, Mem) // AVX512_BF16{kz|b32}
2281
+ ASMJIT_INST_2x(vcvtpd2dq, Vcvtpd2dq, Vec, Vec) // AVX AVX512_F{kz|b64}
2282
+ ASMJIT_INST_2x(vcvtpd2dq, Vcvtpd2dq, Vec, Mem) // AVX AVX512_F{kz|b64}
2283
+ ASMJIT_INST_2x(vcvtpd2ps, Vcvtpd2ps, Vec, Vec) // AVX AVX512_F{kz|b64}
2284
+ ASMJIT_INST_2x(vcvtpd2ps, Vcvtpd2ps, Vec, Mem) // AVX AVX512_F{kz|b64}
2285
+ ASMJIT_INST_2x(vcvtpd2qq, Vcvtpd2qq, Vec, Vec) // AVX512_DQ{kz|b64}
2286
+ ASMJIT_INST_2x(vcvtpd2qq, Vcvtpd2qq, Vec, Mem) // AVX512_DQ{kz|b64}
2287
+ ASMJIT_INST_2x(vcvtpd2udq, Vcvtpd2udq, Vec, Vec) // AVX512_F{kz|b64}
2288
+ ASMJIT_INST_2x(vcvtpd2udq, Vcvtpd2udq, Vec, Mem) // AVX512_F{kz|b64}
2289
+ ASMJIT_INST_2x(vcvtpd2uqq, Vcvtpd2uqq, Vec, Vec) // AVX512_DQ{kz|b64}
2290
+ ASMJIT_INST_2x(vcvtpd2uqq, Vcvtpd2uqq, Vec, Mem) // AVX512_DQ{kz|b64}
2291
+ ASMJIT_INST_2x(vcvtph2ps, Vcvtph2ps, Vec, Vec) // F16C AVX512_F{kz}
2292
+ ASMJIT_INST_2x(vcvtph2ps, Vcvtph2ps, Vec, Mem) // F16C AVX512_F{kz}
2293
+ ASMJIT_INST_2x(vcvtps2dq, Vcvtps2dq, Vec, Vec) // AVX AVX512_F{kz|b32}
2294
+ ASMJIT_INST_2x(vcvtps2dq, Vcvtps2dq, Vec, Mem) // AVX AVX512_F{kz|b32}
2295
+ ASMJIT_INST_2x(vcvtps2pd, Vcvtps2pd, Vec, Vec) // AVX AVX512_F{kz|b32}
2296
+ ASMJIT_INST_2x(vcvtps2pd, Vcvtps2pd, Vec, Mem) // AVX AVX512_F{kz|b32}
2297
+ ASMJIT_INST_3x(vcvtps2ph, Vcvtps2ph, Vec, Vec, Imm) // F16C AVX512_F{kz}
2298
+ ASMJIT_INST_3x(vcvtps2ph, Vcvtps2ph, Mem, Vec, Imm) // F16C AVX512_F{kz}
2299
+ ASMJIT_INST_2x(vcvtps2qq, Vcvtps2qq, Vec, Vec) // AVX512_DQ{kz|b32}
2300
+ ASMJIT_INST_2x(vcvtps2qq, Vcvtps2qq, Vec, Mem) // AVX512_DQ{kz|b32}
2301
+ ASMJIT_INST_2x(vcvtps2udq, Vcvtps2udq, Vec, Vec) // AVX512_F{kz|b32}
2302
+ ASMJIT_INST_2x(vcvtps2udq, Vcvtps2udq, Vec, Mem) // AVX512_F{kz|b32}
2303
+ ASMJIT_INST_2x(vcvtps2uqq, Vcvtps2uqq, Vec, Vec) // AVX512_DQ{kz|b32}
2304
+ ASMJIT_INST_2x(vcvtps2uqq, Vcvtps2uqq, Vec, Mem) // AVX512_DQ{kz|b32}
2305
+ ASMJIT_INST_2x(vcvtqq2pd, Vcvtqq2pd, Vec, Vec) // AVX512_DQ{kz|b64}
2306
+ ASMJIT_INST_2x(vcvtqq2pd, Vcvtqq2pd, Vec, Mem) // AVX512_DQ{kz|b64}
2307
+ ASMJIT_INST_2x(vcvtqq2ps, Vcvtqq2ps, Vec, Vec) // AVX512_DQ{kz|b64}
2308
+ ASMJIT_INST_2x(vcvtqq2ps, Vcvtqq2ps, Vec, Mem) // AVX512_DQ{kz|b64}
2309
+ ASMJIT_INST_2x(vcvtsd2si, Vcvtsd2si, Gp, Xmm) // AVX AVX512_F{er}
2310
+ ASMJIT_INST_2x(vcvtsd2si, Vcvtsd2si, Gp, Mem) // AVX AVX512_F{er}
2311
+ ASMJIT_INST_3x(vcvtsd2ss, Vcvtsd2ss, Xmm, Xmm, Xmm) // AVX AVX512_F{kz|er}
2312
+ ASMJIT_INST_3x(vcvtsd2ss, Vcvtsd2ss, Xmm, Xmm, Mem) // AVX AVX512_F{kz|er}
2313
+ ASMJIT_INST_2x(vcvtsd2usi, Vcvtsd2usi, Gp, Xmm) // AVX512_F{er}
2314
+ ASMJIT_INST_2x(vcvtsd2usi, Vcvtsd2usi, Gp, Mem) // AVX512_F{er}
2315
+ ASMJIT_INST_3x(vcvtsi2sd, Vcvtsi2sd, Xmm, Xmm, Gp) // AVX AVX512_F{er}
2316
+ ASMJIT_INST_3x(vcvtsi2sd, Vcvtsi2sd, Xmm, Xmm, Mem) // AVX AVX512_F{er}
2317
+ ASMJIT_INST_3x(vcvtsi2ss, Vcvtsi2ss, Xmm, Xmm, Gp) // AVX AVX512_F{er}
2318
+ ASMJIT_INST_3x(vcvtsi2ss, Vcvtsi2ss, Xmm, Xmm, Mem) // AVX AVX512_F{er}
2319
+ ASMJIT_INST_3x(vcvtss2sd, Vcvtss2sd, Xmm, Xmm, Xmm) // AVX AVX512_F{kz|sae}
2320
+ ASMJIT_INST_3x(vcvtss2sd, Vcvtss2sd, Xmm, Xmm, Mem) // AVX AVX512_F{kz|sae}
2321
+ ASMJIT_INST_2x(vcvtss2si, Vcvtss2si, Gp, Xmm) // AVX AVX512_F{er}
2322
+ ASMJIT_INST_2x(vcvtss2si, Vcvtss2si, Gp, Mem) // AVX AVX512_F{er}
2323
+ ASMJIT_INST_2x(vcvtss2usi, Vcvtss2usi, Gp, Xmm) // AVX512_F{er}
2324
+ ASMJIT_INST_2x(vcvtss2usi, Vcvtss2usi, Gp, Mem) // AVX512_F{er}
2325
+ ASMJIT_INST_2x(vcvttpd2dq, Vcvttpd2dq, Vec, Vec) // AVX AVX512_F{kz|b64}
2326
+ ASMJIT_INST_2x(vcvttpd2dq, Vcvttpd2dq, Vec, Mem) // AVX AVX512_F{kz|b64}
2327
+ ASMJIT_INST_2x(vcvttpd2qq, Vcvttpd2qq, Vec, Vec) // AVX512_F{kz|b64}
2328
+ ASMJIT_INST_2x(vcvttpd2qq, Vcvttpd2qq, Vec, Mem) // AVX512_F{kz|b64}
2329
+ ASMJIT_INST_2x(vcvttpd2udq, Vcvttpd2udq, Vec, Vec) // AVX512_F{kz|b64}
2330
+ ASMJIT_INST_2x(vcvttpd2udq, Vcvttpd2udq, Vec, Mem) // AVX512_F{kz|b64}
2331
+ ASMJIT_INST_2x(vcvttpd2uqq, Vcvttpd2uqq, Vec, Vec) // AVX512_DQ{kz|b64}
2332
+ ASMJIT_INST_2x(vcvttpd2uqq, Vcvttpd2uqq, Vec, Mem) // AVX512_DQ{kz|b64}
2333
+ ASMJIT_INST_2x(vcvttps2dq, Vcvttps2dq, Vec, Vec) // AVX AVX512_F{kz|b32}
2334
+ ASMJIT_INST_2x(vcvttps2dq, Vcvttps2dq, Vec, Mem) // AVX AVX512_F{kz|b32}
2335
+ ASMJIT_INST_2x(vcvttps2qq, Vcvttps2qq, Vec, Vec) // AVX512_DQ{kz|b32}
2336
+ ASMJIT_INST_2x(vcvttps2qq, Vcvttps2qq, Vec, Mem) // AVX512_DQ{kz|b32}
2337
+ ASMJIT_INST_2x(vcvttps2udq, Vcvttps2udq, Vec, Vec) // AVX512_F{kz|b32}
2338
+ ASMJIT_INST_2x(vcvttps2udq, Vcvttps2udq, Vec, Mem) // AVX512_F{kz|b32}
2339
+ ASMJIT_INST_2x(vcvttps2uqq, Vcvttps2uqq, Vec, Vec) // AVX512_DQ{kz|b32}
2340
+ ASMJIT_INST_2x(vcvttps2uqq, Vcvttps2uqq, Vec, Mem) // AVX512_DQ{kz|b32}
2341
+ ASMJIT_INST_2x(vcvttsd2si, Vcvttsd2si, Gp, Xmm) // AVX AVX512_F{sae}
2342
+ ASMJIT_INST_2x(vcvttsd2si, Vcvttsd2si, Gp, Mem) // AVX AVX512_F{sae}
2343
+ ASMJIT_INST_2x(vcvttsd2usi, Vcvttsd2usi, Gp, Xmm) // AVX512_F{sae}
2344
+ ASMJIT_INST_2x(vcvttsd2usi, Vcvttsd2usi, Gp, Mem) // AVX512_F{sae}
2345
+ ASMJIT_INST_2x(vcvttss2si, Vcvttss2si, Gp, Xmm) // AVX AVX512_F{sae}
2346
+ ASMJIT_INST_2x(vcvttss2si, Vcvttss2si, Gp, Mem) // AVX AVX512_F{sae}
2347
+ ASMJIT_INST_2x(vcvttss2usi, Vcvttss2usi, Gp, Xmm) // AVX512_F{sae}
2348
+ ASMJIT_INST_2x(vcvttss2usi, Vcvttss2usi, Gp, Mem) // AVX512_F{sae}
2349
+ ASMJIT_INST_2x(vcvtudq2pd, Vcvtudq2pd, Vec, Vec) // AVX512_F{kz|b32}
2350
+ ASMJIT_INST_2x(vcvtudq2pd, Vcvtudq2pd, Vec, Mem) // AVX512_F{kz|b32}
2351
+ ASMJIT_INST_2x(vcvtudq2ps, Vcvtudq2ps, Vec, Vec) // AVX512_F{kz|b32}
2352
+ ASMJIT_INST_2x(vcvtudq2ps, Vcvtudq2ps, Vec, Mem) // AVX512_F{kz|b32}
2353
+ ASMJIT_INST_2x(vcvtuqq2pd, Vcvtuqq2pd, Vec, Vec) // AVX512_DQ{kz|b64}
2354
+ ASMJIT_INST_2x(vcvtuqq2pd, Vcvtuqq2pd, Vec, Mem) // AVX512_DQ{kz|b64}
2355
+ ASMJIT_INST_2x(vcvtuqq2ps, Vcvtuqq2ps, Vec, Vec) // AVX512_DQ{kz|b64}
2356
+ ASMJIT_INST_2x(vcvtuqq2ps, Vcvtuqq2ps, Vec, Mem) // AVX512_DQ{kz|b64}
2357
+ ASMJIT_INST_3x(vcvtusi2sd, Vcvtusi2sd, Xmm, Xmm, Gp) // AVX512_F{er}
2358
+ ASMJIT_INST_3x(vcvtusi2sd, Vcvtusi2sd, Xmm, Xmm, Mem) // AVX512_F{er}
2359
+ ASMJIT_INST_3x(vcvtusi2ss, Vcvtusi2ss, Xmm, Xmm, Gp) // AVX512_F{er}
2360
+ ASMJIT_INST_3x(vcvtusi2ss, Vcvtusi2ss, Xmm, Xmm, Mem) // AVX512_F{er}
2361
+ ASMJIT_INST_4x(vdbpsadbw, Vdbpsadbw, Vec, Vec, Vec, Imm) // AVX512_BW{kz}
2362
+ ASMJIT_INST_4x(vdbpsadbw, Vdbpsadbw, Vec, Vec, Mem, Imm) // AVX512_BW{kz}
2363
+ ASMJIT_INST_3x(vdivpd, Vdivpd, Vec, Vec, Vec) // AVX AVX512_F{kz|b64}
2364
+ ASMJIT_INST_3x(vdivpd, Vdivpd, Vec, Vec, Mem) // AVX AVX512_F{kz|b64}
2365
+ ASMJIT_INST_3x(vdivps, Vdivps, Vec, Vec, Vec) // AVX AVX512_F{kz|b32}
2366
+ ASMJIT_INST_3x(vdivps, Vdivps, Vec, Vec, Mem) // AVX AVX512_F{kz|b32}
2367
+ ASMJIT_INST_3x(vdivsd, Vdivsd, Xmm, Xmm, Xmm) // AVX AVX512_F{kz|er}
2368
+ ASMJIT_INST_3x(vdivsd, Vdivsd, Xmm, Xmm, Mem) // AVX AVX512_F{kz|er}
2369
+ ASMJIT_INST_3x(vdivss, Vdivss, Xmm, Xmm, Xmm) // AVX AVX512_F{kz|er}
2370
+ ASMJIT_INST_3x(vdivss, Vdivss, Xmm, Xmm, Mem) // AVX AVX512_F{kz|er}
2371
+ ASMJIT_INST_3x(vdpbf16ps, Vdpbf16ps, Vec, Vec, Vec) // AVX512_BF16{kz|b32}
2372
+ ASMJIT_INST_3x(vdpbf16ps, Vdpbf16ps, Vec, Vec, Mem) // AVX512_BF16{kz|b32}
2373
+ ASMJIT_INST_4x(vdppd, Vdppd, Vec, Vec, Vec, Imm) // AVX
2374
+ ASMJIT_INST_4x(vdppd, Vdppd, Vec, Vec, Mem, Imm) // AVX
2375
+ ASMJIT_INST_4x(vdpps, Vdpps, Vec, Vec, Vec, Imm) // AVX
2376
+ ASMJIT_INST_4x(vdpps, Vdpps, Vec, Vec, Mem, Imm) // AVX
2377
+ ASMJIT_INST_2x(vexp2pd, Vexp2pd, Vec, Vec) // AVX512_ER{kz|sae|b64}
2378
+ ASMJIT_INST_2x(vexp2pd, Vexp2pd, Vec, Mem) // AVX512_ER{kz|sae|b64}
2379
+ ASMJIT_INST_2x(vexp2ps, Vexp2ps, Vec, Vec) // AVX512_ER{kz|sae|b32}
2380
+ ASMJIT_INST_2x(vexp2ps, Vexp2ps, Vec, Mem) // AVX512_ER{kz|sae|b32}
2381
+ ASMJIT_INST_2x(vexpandpd, Vexpandpd, Vec, Vec) // AVX512_F{kz}
2382
+ ASMJIT_INST_2x(vexpandpd, Vexpandpd, Vec, Mem) // AVX512_F{kz}
2383
+ ASMJIT_INST_2x(vexpandps, Vexpandps, Vec, Vec) // AVX512_F{kz}
2384
+ ASMJIT_INST_2x(vexpandps, Vexpandps, Vec, Mem) // AVX512_F{kz}
2385
+ ASMJIT_INST_3x(vextractf128, Vextractf128, Vec, Vec, Imm) // AVX
2386
+ ASMJIT_INST_3x(vextractf128, Vextractf128, Mem, Vec, Imm) // AVX
2387
+ ASMJIT_INST_3x(vextractf32x4, Vextractf32x4, Vec, Vec, Imm) // AVX512_F{kz}
2388
+ ASMJIT_INST_3x(vextractf32x4, Vextractf32x4, Mem, Vec, Imm) // AVX512_F{kz}
2389
+ ASMJIT_INST_3x(vextractf32x8, Vextractf32x8, Vec, Vec, Imm) // AVX512_DQ{kz}
2390
+ ASMJIT_INST_3x(vextractf32x8, Vextractf32x8, Mem, Vec, Imm) // AVX512_DQ{kz}
2391
+ ASMJIT_INST_3x(vextractf64x2, Vextractf64x2, Vec, Vec, Imm) // AVX512_DQ{kz}
2392
+ ASMJIT_INST_3x(vextractf64x2, Vextractf64x2, Mem, Vec, Imm) // AVX512_DQ{kz}
2393
+ ASMJIT_INST_3x(vextractf64x4, Vextractf64x4, Vec, Vec, Imm) // AVX512_F{kz}
2394
+ ASMJIT_INST_3x(vextractf64x4, Vextractf64x4, Mem, Vec, Imm) // AVX512_F{kz}
2395
+ ASMJIT_INST_3x(vextracti128, Vextracti128, Vec, Vec, Imm) // AVX2
2396
+ ASMJIT_INST_3x(vextracti128, Vextracti128, Mem, Vec, Imm) // AVX2
2397
+ ASMJIT_INST_3x(vextracti32x4, Vextracti32x4, Vec, Vec, Imm) // AVX512_F{kz}
2398
+ ASMJIT_INST_3x(vextracti32x4, Vextracti32x4, Mem, Vec, Imm) // AVX512_F{kz}
2399
+ ASMJIT_INST_3x(vextracti32x8, Vextracti32x8, Vec, Vec, Imm) // AVX512_DQ{kz}
2400
+ ASMJIT_INST_3x(vextracti32x8, Vextracti32x8, Mem, Vec, Imm) // AVX512_DQ{kz}
2401
+ ASMJIT_INST_3x(vextracti64x2, Vextracti64x2, Vec, Vec, Imm) // AVX512_DQ{kz}
2402
+ ASMJIT_INST_3x(vextracti64x2, Vextracti64x2, Mem, Vec, Imm) // AVX512_DQ{kz}
2403
+ ASMJIT_INST_3x(vextracti64x4, Vextracti64x4, Vec, Vec, Imm) // AVX512_F{kz}
2404
+ ASMJIT_INST_3x(vextracti64x4, Vextracti64x4, Mem, Vec, Imm) // AVX512_F{kz}
2405
+ ASMJIT_INST_3x(vextractps, Vextractps, Gp, Xmm, Imm) // AVX AVX512_F
2406
+ ASMJIT_INST_3x(vextractps, Vextractps, Mem, Xmm, Imm) // AVX AVX512_F
2407
+ ASMJIT_INST_4x(vfixupimmpd, Vfixupimmpd, Vec, Vec, Vec, Imm) // AVX512_F{kz|b64}
2408
+ ASMJIT_INST_4x(vfixupimmpd, Vfixupimmpd, Vec, Vec, Mem, Imm) // AVX512_F{kz|b64}
2409
+ ASMJIT_INST_4x(vfixupimmps, Vfixupimmps, Vec, Vec, Vec, Imm) // AVX512_F{kz|b32}
2410
+ ASMJIT_INST_4x(vfixupimmps, Vfixupimmps, Vec, Vec, Mem, Imm) // AVX512_F{kz|b32}
2411
+ ASMJIT_INST_4x(vfixupimmsd, Vfixupimmsd, Xmm, Xmm, Xmm, Imm) // AVX512_F{kz|sae}
2412
+ ASMJIT_INST_4x(vfixupimmsd, Vfixupimmsd, Xmm, Xmm, Mem, Imm) // AVX512_F{kz|sae}
2413
+ ASMJIT_INST_4x(vfixupimmss, Vfixupimmss, Xmm, Xmm, Xmm, Imm) // AVX512_F{kz|sae}
2414
+ ASMJIT_INST_4x(vfixupimmss, Vfixupimmss, Xmm, Xmm, Mem, Imm) // AVX512_F{kz|sae}
2415
+ ASMJIT_INST_3x(vfmadd132pd, Vfmadd132pd, Vec, Vec, Vec) // FMA AVX512_F{kz|b64}
2416
+ ASMJIT_INST_3x(vfmadd132pd, Vfmadd132pd, Vec, Vec, Mem) // FMA AVX512_F{kz|b64}
2417
+ ASMJIT_INST_3x(vfmadd132ps, Vfmadd132ps, Vec, Vec, Vec) // FMA AVX512_F{kz|b32}
2418
+ ASMJIT_INST_3x(vfmadd132ps, Vfmadd132ps, Vec, Vec, Mem) // FMA AVX512_F{kz|b32}
2419
+ ASMJIT_INST_3x(vfmadd132sd, Vfmadd132sd, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2420
+ ASMJIT_INST_3x(vfmadd132sd, Vfmadd132sd, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2421
+ ASMJIT_INST_3x(vfmadd132ss, Vfmadd132ss, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2422
+ ASMJIT_INST_3x(vfmadd132ss, Vfmadd132ss, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2423
+ ASMJIT_INST_3x(vfmadd213pd, Vfmadd213pd, Vec, Vec, Vec) // FMA AVX512_F{kz|b64}
2424
+ ASMJIT_INST_3x(vfmadd213pd, Vfmadd213pd, Vec, Vec, Mem) // FMA AVX512_F{kz|b64}
2425
+ ASMJIT_INST_3x(vfmadd213ps, Vfmadd213ps, Vec, Vec, Vec) // FMA AVX512_F{kz|b32}
2426
+ ASMJIT_INST_3x(vfmadd213ps, Vfmadd213ps, Vec, Vec, Mem) // FMA AVX512_F{kz|b32}
2427
+ ASMJIT_INST_3x(vfmadd213sd, Vfmadd213sd, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2428
+ ASMJIT_INST_3x(vfmadd213sd, Vfmadd213sd, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2429
+ ASMJIT_INST_3x(vfmadd213ss, Vfmadd213ss, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2430
+ ASMJIT_INST_3x(vfmadd213ss, Vfmadd213ss, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2431
+ ASMJIT_INST_3x(vfmadd231pd, Vfmadd231pd, Vec, Vec, Vec) // FMA AVX512_F{kz|b64}
2432
+ ASMJIT_INST_3x(vfmadd231pd, Vfmadd231pd, Vec, Vec, Mem) // FMA AVX512_F{kz|b64}
2433
+ ASMJIT_INST_3x(vfmadd231ps, Vfmadd231ps, Vec, Vec, Vec) // FMA AVX512_F{kz|b32}
2434
+ ASMJIT_INST_3x(vfmadd231ps, Vfmadd231ps, Vec, Vec, Mem) // FMA AVX512_F{kz|b32}
2435
+ ASMJIT_INST_3x(vfmadd231sd, Vfmadd231sd, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2436
+ ASMJIT_INST_3x(vfmadd231sd, Vfmadd231sd, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2437
+ ASMJIT_INST_3x(vfmadd231ss, Vfmadd231ss, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2438
+ ASMJIT_INST_3x(vfmadd231ss, Vfmadd231ss, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2439
+ ASMJIT_INST_3x(vfmaddsub132pd, Vfmaddsub132pd, Vec, Vec, Vec) // FMA AVX512_F{kz|b64}
2440
+ ASMJIT_INST_3x(vfmaddsub132pd, Vfmaddsub132pd, Vec, Vec, Mem) // FMA AVX512_F{kz|b64}
2441
+ ASMJIT_INST_3x(vfmaddsub132ps, Vfmaddsub132ps, Vec, Vec, Vec) // FMA AVX512_F{kz|b32}
2442
+ ASMJIT_INST_3x(vfmaddsub132ps, Vfmaddsub132ps, Vec, Vec, Mem) // FMA AVX512_F{kz|b32}
2443
+ ASMJIT_INST_3x(vfmaddsub213pd, Vfmaddsub213pd, Vec, Vec, Vec) // FMA AVX512_F{kz|b64}
2444
+ ASMJIT_INST_3x(vfmaddsub213pd, Vfmaddsub213pd, Vec, Vec, Mem) // FMA AVX512_F{kz|b64}
2445
+ ASMJIT_INST_3x(vfmaddsub213ps, Vfmaddsub213ps, Vec, Vec, Vec) // FMA AVX512_F{kz|b32}
2446
+ ASMJIT_INST_3x(vfmaddsub213ps, Vfmaddsub213ps, Vec, Vec, Mem) // FMA AVX512_F{kz|b32}
2447
+ ASMJIT_INST_3x(vfmaddsub231pd, Vfmaddsub231pd, Vec, Vec, Vec) // FMA AVX512_F{kz|b64}
2448
+ ASMJIT_INST_3x(vfmaddsub231pd, Vfmaddsub231pd, Vec, Vec, Mem) // FMA AVX512_F{kz|b64}
2449
+ ASMJIT_INST_3x(vfmaddsub231ps, Vfmaddsub231ps, Vec, Vec, Vec) // FMA AVX512_F{kz|b32}
2450
+ ASMJIT_INST_3x(vfmaddsub231ps, Vfmaddsub231ps, Vec, Vec, Mem) // FMA AVX512_F{kz|b32}
2451
+ ASMJIT_INST_3x(vfmsub132pd, Vfmsub132pd, Vec, Vec, Vec) // FMA AVX512_F{kz|b64}
2452
+ ASMJIT_INST_3x(vfmsub132pd, Vfmsub132pd, Vec, Vec, Mem) // FMA AVX512_F{kz|b64}
2453
+ ASMJIT_INST_3x(vfmsub132ps, Vfmsub132ps, Vec, Vec, Vec) // FMA AVX512_F{kz|b32}
2454
+ ASMJIT_INST_3x(vfmsub132ps, Vfmsub132ps, Vec, Vec, Mem) // FMA AVX512_F{kz|b32}
2455
+ ASMJIT_INST_3x(vfmsub132sd, Vfmsub132sd, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2456
+ ASMJIT_INST_3x(vfmsub132sd, Vfmsub132sd, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2457
+ ASMJIT_INST_3x(vfmsub132ss, Vfmsub132ss, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2458
+ ASMJIT_INST_3x(vfmsub132ss, Vfmsub132ss, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2459
+ ASMJIT_INST_3x(vfmsub213pd, Vfmsub213pd, Vec, Vec, Vec) // FMA AVX512_F{kz|b64}
2460
+ ASMJIT_INST_3x(vfmsub213pd, Vfmsub213pd, Vec, Vec, Mem) // FMA AVX512_F{kz|b64}
2461
+ ASMJIT_INST_3x(vfmsub213ps, Vfmsub213ps, Vec, Vec, Vec) // FMA AVX512_F{kz|b32}
2462
+ ASMJIT_INST_3x(vfmsub213ps, Vfmsub213ps, Vec, Vec, Mem) // FMA AVX512_F{kz|b32}
2463
+ ASMJIT_INST_3x(vfmsub213sd, Vfmsub213sd, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2464
+ ASMJIT_INST_3x(vfmsub213sd, Vfmsub213sd, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2465
+ ASMJIT_INST_3x(vfmsub213ss, Vfmsub213ss, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2466
+ ASMJIT_INST_3x(vfmsub213ss, Vfmsub213ss, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2467
+ ASMJIT_INST_3x(vfmsub231pd, Vfmsub231pd, Vec, Vec, Vec) // FMA AVX512_F{kz|b64}
2468
+ ASMJIT_INST_3x(vfmsub231pd, Vfmsub231pd, Vec, Vec, Mem) // FMA AVX512_F{kz|b64}
2469
+ ASMJIT_INST_3x(vfmsub231ps, Vfmsub231ps, Vec, Vec, Vec) // FMA AVX512_F{kz|b32}
2470
+ ASMJIT_INST_3x(vfmsub231ps, Vfmsub231ps, Vec, Vec, Mem) // FMA AVX512_F{kz|b32}
2471
+ ASMJIT_INST_3x(vfmsub231sd, Vfmsub231sd, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2472
+ ASMJIT_INST_3x(vfmsub231sd, Vfmsub231sd, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2473
+ ASMJIT_INST_3x(vfmsub231ss, Vfmsub231ss, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2474
+ ASMJIT_INST_3x(vfmsub231ss, Vfmsub231ss, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2475
+ ASMJIT_INST_3x(vfmsubadd132pd, Vfmsubadd132pd, Vec, Vec, Vec) // FMA AVX512_F{kz|b64}
2476
+ ASMJIT_INST_3x(vfmsubadd132pd, Vfmsubadd132pd, Vec, Vec, Mem) // FMA AVX512_F{kz|b64}
2477
+ ASMJIT_INST_3x(vfmsubadd132ps, Vfmsubadd132ps, Vec, Vec, Vec) // FMA AVX512_F{kz|b32}
2478
+ ASMJIT_INST_3x(vfmsubadd132ps, Vfmsubadd132ps, Vec, Vec, Mem) // FMA AVX512_F{kz|b32}
2479
+ ASMJIT_INST_3x(vfmsubadd213pd, Vfmsubadd213pd, Vec, Vec, Vec) // FMA AVX512_F{kz|b64}
2480
+ ASMJIT_INST_3x(vfmsubadd213pd, Vfmsubadd213pd, Vec, Vec, Mem) // FMA AVX512_F{kz|b64}
2481
+ ASMJIT_INST_3x(vfmsubadd213ps, Vfmsubadd213ps, Vec, Vec, Vec) // FMA AVX512_F{kz|b32}
2482
+ ASMJIT_INST_3x(vfmsubadd213ps, Vfmsubadd213ps, Vec, Vec, Mem) // FMA AVX512_F{kz|b32}
2483
+ ASMJIT_INST_3x(vfmsubadd231pd, Vfmsubadd231pd, Vec, Vec, Vec) // FMA AVX512_F{kz|b64}
2484
+ ASMJIT_INST_3x(vfmsubadd231pd, Vfmsubadd231pd, Vec, Vec, Mem) // FMA AVX512_F{kz|b64}
2485
+ ASMJIT_INST_3x(vfmsubadd231ps, Vfmsubadd231ps, Vec, Vec, Vec) // FMA AVX512_F{kz|b32}
2486
+ ASMJIT_INST_3x(vfmsubadd231ps, Vfmsubadd231ps, Vec, Vec, Mem) // FMA AVX512_F{kz|b32}
2487
+ ASMJIT_INST_3x(vfnmadd132pd, Vfnmadd132pd, Vec, Vec, Vec) // FMA AVX512_F{kz|b64}
2488
+ ASMJIT_INST_3x(vfnmadd132pd, Vfnmadd132pd, Vec, Vec, Mem) // FMA AVX512_F{kz|b64}
2489
+ ASMJIT_INST_3x(vfnmadd132ps, Vfnmadd132ps, Vec, Vec, Vec) // FMA AVX512_F{kz|b32}
2490
+ ASMJIT_INST_3x(vfnmadd132ps, Vfnmadd132ps, Vec, Vec, Mem) // FMA AVX512_F{kz|b32}
2491
+ ASMJIT_INST_3x(vfnmadd132sd, Vfnmadd132sd, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2492
+ ASMJIT_INST_3x(vfnmadd132sd, Vfnmadd132sd, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2493
+ ASMJIT_INST_3x(vfnmadd132ss, Vfnmadd132ss, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2494
+ ASMJIT_INST_3x(vfnmadd132ss, Vfnmadd132ss, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2495
+ ASMJIT_INST_3x(vfnmadd213pd, Vfnmadd213pd, Vec, Vec, Vec) // FMA AVX512_F{kz|b64}
2496
+ ASMJIT_INST_3x(vfnmadd213pd, Vfnmadd213pd, Vec, Vec, Mem) // FMA AVX512_F{kz|b64}
2497
+ ASMJIT_INST_3x(vfnmadd213ps, Vfnmadd213ps, Vec, Vec, Vec) // FMA AVX512_F{kz|b32}
2498
+ ASMJIT_INST_3x(vfnmadd213ps, Vfnmadd213ps, Vec, Vec, Mem) // FMA AVX512_F{kz|b32}
2499
+ ASMJIT_INST_3x(vfnmadd213sd, Vfnmadd213sd, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2500
+ ASMJIT_INST_3x(vfnmadd213sd, Vfnmadd213sd, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2501
+ ASMJIT_INST_3x(vfnmadd213ss, Vfnmadd213ss, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2502
+ ASMJIT_INST_3x(vfnmadd213ss, Vfnmadd213ss, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2503
+ ASMJIT_INST_3x(vfnmadd231pd, Vfnmadd231pd, Vec, Vec, Vec) // FMA AVX512_F{kz|b64}
2504
+ ASMJIT_INST_3x(vfnmadd231pd, Vfnmadd231pd, Vec, Vec, Mem) // FMA AVX512_F{kz|b64}
2505
+ ASMJIT_INST_3x(vfnmadd231ps, Vfnmadd231ps, Vec, Vec, Vec) // FMA AVX512_F{kz|b32}
2506
+ ASMJIT_INST_3x(vfnmadd231ps, Vfnmadd231ps, Vec, Vec, Mem) // FMA AVX512_F{kz|b32}
2507
+ ASMJIT_INST_3x(vfnmadd231sd, Vfnmadd231sd, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2508
+ ASMJIT_INST_3x(vfnmadd231sd, Vfnmadd231sd, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2509
+ ASMJIT_INST_3x(vfnmadd231ss, Vfnmadd231ss, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2510
+ ASMJIT_INST_3x(vfnmadd231ss, Vfnmadd231ss, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2511
+ ASMJIT_INST_3x(vfnmsub132pd, Vfnmsub132pd, Vec, Vec, Vec) // FMA AVX512_F{kz|b64}
2512
+ ASMJIT_INST_3x(vfnmsub132pd, Vfnmsub132pd, Vec, Vec, Mem) // FMA AVX512_F{kz|b64}
2513
+ ASMJIT_INST_3x(vfnmsub132ps, Vfnmsub132ps, Vec, Vec, Vec) // FMA AVX512_F{kz|b32}
2514
+ ASMJIT_INST_3x(vfnmsub132ps, Vfnmsub132ps, Vec, Vec, Mem) // FMA AVX512_F{kz|b32}
2515
+ ASMJIT_INST_3x(vfnmsub132sd, Vfnmsub132sd, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2516
+ ASMJIT_INST_3x(vfnmsub132sd, Vfnmsub132sd, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2517
+ ASMJIT_INST_3x(vfnmsub132ss, Vfnmsub132ss, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2518
+ ASMJIT_INST_3x(vfnmsub132ss, Vfnmsub132ss, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2519
+ ASMJIT_INST_3x(vfnmsub213pd, Vfnmsub213pd, Vec, Vec, Vec) // FMA AVX512_F{kz|b64}
2520
+ ASMJIT_INST_3x(vfnmsub213pd, Vfnmsub213pd, Vec, Vec, Mem) // FMA AVX512_F{kz|b64}
2521
+ ASMJIT_INST_3x(vfnmsub213ps, Vfnmsub213ps, Vec, Vec, Vec) // FMA AVX512_F{kz|b32}
2522
+ ASMJIT_INST_3x(vfnmsub213ps, Vfnmsub213ps, Vec, Vec, Mem) // FMA AVX512_F{kz|b32}
2523
+ ASMJIT_INST_3x(vfnmsub213sd, Vfnmsub213sd, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2524
+ ASMJIT_INST_3x(vfnmsub213sd, Vfnmsub213sd, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2525
+ ASMJIT_INST_3x(vfnmsub213ss, Vfnmsub213ss, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2526
+ ASMJIT_INST_3x(vfnmsub213ss, Vfnmsub213ss, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2527
+ ASMJIT_INST_3x(vfnmsub231pd, Vfnmsub231pd, Vec, Vec, Vec) // FMA AVX512_F{kz|b64}
2528
+ ASMJIT_INST_3x(vfnmsub231pd, Vfnmsub231pd, Vec, Vec, Mem) // FMA AVX512_F{kz|b64}
2529
+ ASMJIT_INST_3x(vfnmsub231ps, Vfnmsub231ps, Vec, Vec, Vec) // FMA AVX512_F{kz|b32}
2530
+ ASMJIT_INST_3x(vfnmsub231ps, Vfnmsub231ps, Vec, Vec, Mem) // FMA AVX512_F{kz|b32}
2531
+ ASMJIT_INST_3x(vfnmsub231sd, Vfnmsub231sd, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2532
+ ASMJIT_INST_3x(vfnmsub231sd, Vfnmsub231sd, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2533
+ ASMJIT_INST_3x(vfnmsub231ss, Vfnmsub231ss, Xmm, Xmm, Xmm) // FMA AVX512_F{kz|er}
2534
+ ASMJIT_INST_3x(vfnmsub231ss, Vfnmsub231ss, Xmm, Xmm, Mem) // FMA AVX512_F{kz|er}
2535
+ ASMJIT_INST_3x(vfpclasspd, Vfpclasspd, KReg, Vec, Imm) // AVX512_DQ{k|b64}
2536
+ ASMJIT_INST_3x(vfpclasspd, Vfpclasspd, KReg, Mem, Imm) // AVX512_DQ{k|b64}
2537
+ ASMJIT_INST_3x(vfpclassps, Vfpclassps, KReg, Vec, Imm) // AVX512_DQ{k|b32}
2538
+ ASMJIT_INST_3x(vfpclassps, Vfpclassps, KReg, Mem, Imm) // AVX512_DQ{k|b32}
2539
+ ASMJIT_INST_3x(vfpclasssd, Vfpclasssd, KReg, Xmm, Imm) // AVX512_DQ{k}
2540
+ ASMJIT_INST_3x(vfpclasssd, Vfpclasssd, KReg, Mem, Imm) // AVX512_DQ{k}
2541
+ ASMJIT_INST_3x(vfpclassss, Vfpclassss, KReg, Xmm, Imm) // AVX512_DQ{k}
2542
+ ASMJIT_INST_3x(vfpclassss, Vfpclassss, KReg, Mem, Imm) // AVX512_DQ{k}
2543
+ ASMJIT_INST_2x(vgatherdpd, Vgatherdpd, Vec, Mem) // AVX512_F{k}
2544
+ ASMJIT_INST_3x(vgatherdpd, Vgatherdpd, Vec, Mem, Vec) // AVX2
2545
+ ASMJIT_INST_2x(vgatherdps, Vgatherdps, Vec, Mem) // AVX512_F{k}
2546
+ ASMJIT_INST_3x(vgatherdps, Vgatherdps, Vec, Mem, Vec) // AVX2
2547
+ ASMJIT_INST_1x(vgatherpf0dpd, Vgatherpf0dpd, Mem) // AVX512_PF{k}
2548
+ ASMJIT_INST_1x(vgatherpf0dps, Vgatherpf0dps, Mem) // AVX512_PF{k}
2549
+ ASMJIT_INST_1x(vgatherpf0qpd, Vgatherpf0qpd, Mem) // AVX512_PF{k}
2550
+ ASMJIT_INST_1x(vgatherpf0qps, Vgatherpf0qps, Mem) // AVX512_PF{k}
2551
+ ASMJIT_INST_1x(vgatherpf1dpd, Vgatherpf1dpd, Mem) // AVX512_PF{k}
2552
+ ASMJIT_INST_1x(vgatherpf1dps, Vgatherpf1dps, Mem) // AVX512_PF{k}
2553
+ ASMJIT_INST_1x(vgatherpf1qpd, Vgatherpf1qpd, Mem) // AVX512_PF{k}
2554
+ ASMJIT_INST_1x(vgatherpf1qps, Vgatherpf1qps, Mem) // AVX512_PF{k}
2555
+ ASMJIT_INST_2x(vgatherqpd, Vgatherqpd, Vec, Mem) // AVX512_F{k}
2556
+ ASMJIT_INST_3x(vgatherqpd, Vgatherqpd, Vec, Mem, Vec) // AVX2
2557
+ ASMJIT_INST_2x(vgatherqps, Vgatherqps, Vec, Mem) // AVX512_F{k}
2558
+ ASMJIT_INST_3x(vgatherqps, Vgatherqps, Vec, Mem, Vec) // AVX2
2559
+ ASMJIT_INST_2x(vgetexppd, Vgetexppd, Vec, Vec) // AVX512_F{kz|b64}
2560
+ ASMJIT_INST_2x(vgetexppd, Vgetexppd, Vec, Mem) // AVX512_F{kz|b64}
2561
+ ASMJIT_INST_2x(vgetexpps, Vgetexpps, Vec, Vec) // AVX512_F{kz|b32}
2562
+ ASMJIT_INST_2x(vgetexpps, Vgetexpps, Vec, Mem) // AVX512_F{kz|b32}
2563
+ ASMJIT_INST_3x(vgetexpsd, Vgetexpsd, Xmm, Xmm, Xmm) // AVX512_F{kz|sae}
2564
+ ASMJIT_INST_3x(vgetexpsd, Vgetexpsd, Xmm, Xmm, Mem) // AVX512_F{kz|sae}
2565
+ ASMJIT_INST_3x(vgetexpss, Vgetexpss, Xmm, Xmm, Xmm) // AVX512_F{kz|sae}
2566
+ ASMJIT_INST_3x(vgetexpss, Vgetexpss, Xmm, Xmm, Mem) // AVX512_F{kz|sae}
2567
+ ASMJIT_INST_3x(vgetmantpd, Vgetmantpd, Vec, Vec, Imm) // AVX512_F{kz|b64}
2568
+ ASMJIT_INST_3x(vgetmantpd, Vgetmantpd, Vec, Mem, Imm) // AVX512_F{kz|b64}
2569
+ ASMJIT_INST_3x(vgetmantps, Vgetmantps, Vec, Vec, Imm) // AVX512_F{kz|b32}
2570
+ ASMJIT_INST_3x(vgetmantps, Vgetmantps, Vec, Mem, Imm) // AVX512_F{kz|b32}
2571
+ ASMJIT_INST_4x(vgetmantsd, Vgetmantsd, Xmm, Xmm, Xmm, Imm) // AVX512_F{kz|sae}
2572
+ ASMJIT_INST_4x(vgetmantsd, Vgetmantsd, Xmm, Xmm, Mem, Imm) // AVX512_F{kz|sae}
2573
+ ASMJIT_INST_4x(vgetmantss, Vgetmantss, Xmm, Xmm, Xmm, Imm) // AVX512_F{kz|sae}
2574
+ ASMJIT_INST_4x(vgetmantss, Vgetmantss, Xmm, Xmm, Mem, Imm) // AVX512_F{kz|sae}
2575
+ ASMJIT_INST_4x(vgf2p8affineinvqb, Vgf2p8affineinvqb,Vec,Vec,Vec,Imm) // AVX AVX512_VL{kz} GFNI
2576
+ ASMJIT_INST_4x(vgf2p8affineinvqb, Vgf2p8affineinvqb,Vec,Vec,Mem,Imm) // AVX AVX512_VL{kz} GFNI
2577
+ ASMJIT_INST_4x(vgf2p8affineqb, Vgf2p8affineqb, Vec, Vec, Vec, Imm) // AVX AVX512_VL{kz} GFNI
2578
+ ASMJIT_INST_4x(vgf2p8affineqb, Vgf2p8affineqb, Vec, Vec, Mem, Imm) // AVX AVX512_VL{kz} GFNI
2579
+ ASMJIT_INST_3x(vgf2p8mulb, Vgf2p8mulb, Vec, Vec, Vec) // AVX AVX512_VL{kz} GFNI
2580
+ ASMJIT_INST_3x(vgf2p8mulb, Vgf2p8mulb, Vec, Vec, Mem) // AVX AVX512_VL{kz} GFNI
2581
+ ASMJIT_INST_3x(vhaddpd, Vhaddpd, Vec, Vec, Vec) // AVX
2582
+ ASMJIT_INST_3x(vhaddpd, Vhaddpd, Vec, Vec, Mem) // AVX
2583
+ ASMJIT_INST_3x(vhaddps, Vhaddps, Vec, Vec, Vec) // AVX
2584
+ ASMJIT_INST_3x(vhaddps, Vhaddps, Vec, Vec, Mem) // AVX
2585
+ ASMJIT_INST_3x(vhsubpd, Vhsubpd, Vec, Vec, Vec) // AVX
2586
+ ASMJIT_INST_3x(vhsubpd, Vhsubpd, Vec, Vec, Mem) // AVX
2587
+ ASMJIT_INST_3x(vhsubps, Vhsubps, Vec, Vec, Vec) // AVX
2588
+ ASMJIT_INST_3x(vhsubps, Vhsubps, Vec, Vec, Mem) // AVX
2589
+ ASMJIT_INST_4x(vinsertf128, Vinsertf128, Vec, Vec, Vec, Imm) // AVX
2590
+ ASMJIT_INST_4x(vinsertf128, Vinsertf128, Vec, Vec, Mem, Imm) // AVX
2591
+ ASMJIT_INST_4x(vinsertf32x4, Vinsertf32x4, Vec, Vec, Vec, Imm) // AVX512_F{kz}
2592
+ ASMJIT_INST_4x(vinsertf32x4, Vinsertf32x4, Vec, Vec, Mem, Imm) // AVX512_F{kz}
2593
+ ASMJIT_INST_4x(vinsertf32x8, Vinsertf32x8, Vec, Vec, Vec, Imm) // AVX512_DQ{kz}
2594
+ ASMJIT_INST_4x(vinsertf32x8, Vinsertf32x8, Vec, Vec, Mem, Imm) // AVX512_DQ{kz}
2595
+ ASMJIT_INST_4x(vinsertf64x2, Vinsertf64x2, Vec, Vec, Vec, Imm) // AVX512_DQ{kz}
2596
+ ASMJIT_INST_4x(vinsertf64x2, Vinsertf64x2, Vec, Vec, Mem, Imm) // AVX512_DQ{kz}
2597
+ ASMJIT_INST_4x(vinsertf64x4, Vinsertf64x4, Vec, Vec, Vec, Imm) // AVX512_F{kz}
2598
+ ASMJIT_INST_4x(vinsertf64x4, Vinsertf64x4, Vec, Vec, Mem, Imm) // AVX512_F{kz}
2599
+ ASMJIT_INST_4x(vinserti128, Vinserti128, Vec, Vec, Vec, Imm) // AVX2
2600
+ ASMJIT_INST_4x(vinserti128, Vinserti128, Vec, Vec, Mem, Imm) // AVX2
2601
+ ASMJIT_INST_4x(vinserti32x4, Vinserti32x4, Vec, Vec, Vec, Imm) // AVX512_F{kz}
2602
+ ASMJIT_INST_4x(vinserti32x4, Vinserti32x4, Vec, Vec, Mem, Imm) // AVX512_F{kz}
2603
+ ASMJIT_INST_4x(vinserti32x8, Vinserti32x8, Vec, Vec, Vec, Imm) // AVX512_DQ{kz}
2604
+ ASMJIT_INST_4x(vinserti32x8, Vinserti32x8, Vec, Vec, Mem, Imm) // AVX512_DQ{kz}
2605
+ ASMJIT_INST_4x(vinserti64x2, Vinserti64x2, Vec, Vec, Vec, Imm) // AVX512_DQ{kz}
2606
+ ASMJIT_INST_4x(vinserti64x2, Vinserti64x2, Vec, Vec, Mem, Imm) // AVX512_DQ{kz}
2607
+ ASMJIT_INST_4x(vinserti64x4, Vinserti64x4, Vec, Vec, Vec, Imm) // AVX512_F{kz}
2608
+ ASMJIT_INST_4x(vinserti64x4, Vinserti64x4, Vec, Vec, Mem, Imm) // AVX512_F{kz}
2609
+ ASMJIT_INST_4x(vinsertps, Vinsertps, Xmm, Xmm, Xmm, Imm) // AVX AVX512_F
2610
+ ASMJIT_INST_4x(vinsertps, Vinsertps, Xmm, Xmm, Mem, Imm) // AVX AVX512_F
2611
+ ASMJIT_INST_2x(vlddqu, Vlddqu, Vec, Mem) // AVX
2612
+ ASMJIT_INST_1x(vldmxcsr, Vldmxcsr, Mem) // AVX
2613
+ ASMJIT_INST_3x(vmaskmovdqu, Vmaskmovdqu, Vec, Vec, DS_ZDI) // AVX [EXPLICIT]
2614
+ ASMJIT_INST_3x(vmaskmovpd, Vmaskmovpd, Mem, Vec, Vec) // AVX
2615
+ ASMJIT_INST_3x(vmaskmovpd, Vmaskmovpd, Vec, Vec, Mem) // AVX
2616
+ ASMJIT_INST_3x(vmaskmovps, Vmaskmovps, Mem, Vec, Vec) // AVX
2617
+ ASMJIT_INST_3x(vmaskmovps, Vmaskmovps, Vec, Vec, Mem) // AVX
2618
+ ASMJIT_INST_3x(vmaxpd, Vmaxpd, Vec, Vec, Vec) // AVX AVX512_F{kz|b64}
2619
+ ASMJIT_INST_3x(vmaxpd, Vmaxpd, Vec, Vec, Mem) // AVX AVX512_F{kz|b64}
2620
+ ASMJIT_INST_3x(vmaxps, Vmaxps, Vec, Vec, Vec) // AVX AVX512_F{kz|b32}
2621
+ ASMJIT_INST_3x(vmaxps, Vmaxps, Vec, Vec, Mem) // AVX AVX512_F{kz|b32}
2622
+ ASMJIT_INST_3x(vmaxsd, Vmaxsd, Xmm, Xmm, Xmm) // AVX AVX512_F{kz|sae}
2623
+ ASMJIT_INST_3x(vmaxsd, Vmaxsd, Xmm, Xmm, Mem) // AVX AVX512_F{kz|sae}
2624
+ ASMJIT_INST_3x(vmaxss, Vmaxss, Xmm, Xmm, Xmm) // AVX AVX512_F{kz|sae}
2625
+ ASMJIT_INST_3x(vmaxss, Vmaxss, Xmm, Xmm, Mem) // AVX AVX512_F{kz|sae}
2626
+ ASMJIT_INST_3x(vminpd, Vminpd, Vec, Vec, Vec) // AVX AVX512_F{kz|b64}
2627
+ ASMJIT_INST_3x(vminpd, Vminpd, Vec, Vec, Mem) // AVX AVX512_F{kz|b64}
2628
+ ASMJIT_INST_3x(vminps, Vminps, Vec, Vec, Vec) // AVX AVX512_F{kz|b32}
2629
+ ASMJIT_INST_3x(vminps, Vminps, Vec, Vec, Mem) // AVX AVX512_F{kz|b32}
2630
+ ASMJIT_INST_3x(vminsd, Vminsd, Xmm, Xmm, Xmm) // AVX AVX512_F{kz|sae}
2631
+ ASMJIT_INST_3x(vminsd, Vminsd, Xmm, Xmm, Mem) // AVX AVX512_F{kz|sae}
2632
+ ASMJIT_INST_3x(vminss, Vminss, Xmm, Xmm, Xmm) // AVX AVX512_F{kz|sae}
2633
+ ASMJIT_INST_3x(vminss, Vminss, Xmm, Xmm, Mem) // AVX AVX512_F{kz|sae}
2634
+ ASMJIT_INST_2x(vmovapd, Vmovapd, Vec, Vec) // AVX AVX512_F{kz}
2635
+ ASMJIT_INST_2x(vmovapd, Vmovapd, Vec, Mem) // AVX AVX512_F{kz}
2636
+ ASMJIT_INST_2x(vmovapd, Vmovapd, Mem, Vec) // AVX AVX512_F{kz}
2637
+ ASMJIT_INST_2x(vmovaps, Vmovaps, Vec, Vec) // AVX AVX512_F{kz}
2638
+ ASMJIT_INST_2x(vmovaps, Vmovaps, Vec, Mem) // AVX AVX512_F{kz}
2639
+ ASMJIT_INST_2x(vmovaps, Vmovaps, Mem, Vec) // AVX AVX512_F{kz}
2640
+ ASMJIT_INST_2x(vmovd, Vmovd, Gp, Xmm) // AVX AVX512_F
2641
+ ASMJIT_INST_2x(vmovd, Vmovd, Mem, Xmm) // AVX AVX512_F
2642
+ ASMJIT_INST_2x(vmovd, Vmovd, Xmm, Gp) // AVX AVX512_F
2643
+ ASMJIT_INST_2x(vmovd, Vmovd, Xmm, Mem) // AVX AVX512_F
2644
+ ASMJIT_INST_2x(vmovddup, Vmovddup, Vec, Vec) // AVX AVX512_F{kz}
2645
+ ASMJIT_INST_2x(vmovddup, Vmovddup, Vec, Mem) // AVX AVX512_F{kz}
2646
+ ASMJIT_INST_2x(vmovdqa, Vmovdqa, Vec, Vec) // AVX
2647
+ ASMJIT_INST_2x(vmovdqa, Vmovdqa, Vec, Mem) // AVX
2648
+ ASMJIT_INST_2x(vmovdqa, Vmovdqa, Mem, Vec) // AVX
2649
+ ASMJIT_INST_2x(vmovdqa32, Vmovdqa32, Vec, Vec) // AVX512_F{kz}
2650
+ ASMJIT_INST_2x(vmovdqa32, Vmovdqa32, Vec, Mem) // AVX512_F{kz}
2651
+ ASMJIT_INST_2x(vmovdqa32, Vmovdqa32, Mem, Vec) // AVX512_F{kz}
2652
+ ASMJIT_INST_2x(vmovdqa64, Vmovdqa64, Vec, Vec) // AVX512_F{kz}
2653
+ ASMJIT_INST_2x(vmovdqa64, Vmovdqa64, Vec, Mem) // AVX512_F{kz}
2654
+ ASMJIT_INST_2x(vmovdqa64, Vmovdqa64, Mem, Vec) // AVX512_F{kz}
2655
+ ASMJIT_INST_2x(vmovdqu, Vmovdqu, Vec, Vec) // AVX
2656
+ ASMJIT_INST_2x(vmovdqu, Vmovdqu, Vec, Mem) // AVX
2657
+ ASMJIT_INST_2x(vmovdqu, Vmovdqu, Mem, Vec) // AVX
2658
+ ASMJIT_INST_2x(vmovdqu16, Vmovdqu16, Vec, Vec) // AVX512_BW{kz}
2659
+ ASMJIT_INST_2x(vmovdqu16, Vmovdqu16, Vec, Mem) // AVX512_BW{kz}
2660
+ ASMJIT_INST_2x(vmovdqu16, Vmovdqu16, Mem, Vec) // AVX512_BW{kz}
2661
+ ASMJIT_INST_2x(vmovdqu32, Vmovdqu32, Vec, Vec) // AVX512_F{kz}
2662
+ ASMJIT_INST_2x(vmovdqu32, Vmovdqu32, Vec, Mem) // AVX512_F{kz}
2663
+ ASMJIT_INST_2x(vmovdqu32, Vmovdqu32, Mem, Vec) // AVX512_F{kz}
2664
+ ASMJIT_INST_2x(vmovdqu64, Vmovdqu64, Vec, Vec) // AVX512_F{kz}
2665
+ ASMJIT_INST_2x(vmovdqu64, Vmovdqu64, Vec, Mem) // AVX512_F{kz}
2666
+ ASMJIT_INST_2x(vmovdqu64, Vmovdqu64, Mem, Vec) // AVX512_F{kz}
2667
+ ASMJIT_INST_2x(vmovdqu8, Vmovdqu8, Vec, Vec) // AVX512_BW{kz}
2668
+ ASMJIT_INST_2x(vmovdqu8, Vmovdqu8, Vec, Mem) // AVX512_BW{kz}
2669
+ ASMJIT_INST_2x(vmovdqu8, Vmovdqu8, Mem, Vec) // AVX512_BW{kz}
2670
+ ASMJIT_INST_3x(vmovhlps, Vmovhlps, Xmm, Xmm, Xmm) // AVX AVX512_F
2671
+ ASMJIT_INST_2x(vmovhpd, Vmovhpd, Mem, Xmm) // AVX AVX512_F
2672
+ ASMJIT_INST_3x(vmovhpd, Vmovhpd, Xmm, Xmm, Mem) // AVX AVX512_F
2673
+ ASMJIT_INST_2x(vmovhps, Vmovhps, Mem, Xmm) // AVX AVX512_F
2674
+ ASMJIT_INST_3x(vmovhps, Vmovhps, Xmm, Xmm, Mem) // AVX AVX512_F
2675
+ ASMJIT_INST_3x(vmovlhps, Vmovlhps, Xmm, Xmm, Xmm) // AVX AVX512_F
2676
+ ASMJIT_INST_2x(vmovlpd, Vmovlpd, Mem, Xmm) // AVX AVX512_F
2677
+ ASMJIT_INST_3x(vmovlpd, Vmovlpd, Xmm, Xmm, Mem) // AVX AVX512_F
2678
+ ASMJIT_INST_2x(vmovlps, Vmovlps, Mem, Xmm) // AVX AVX512_F
2679
+ ASMJIT_INST_3x(vmovlps, Vmovlps, Xmm, Xmm, Mem) // AVX AVX512_F
2680
+ ASMJIT_INST_2x(vmovmskpd, Vmovmskpd, Gp, Vec) // AVX
2681
+ ASMJIT_INST_2x(vmovmskps, Vmovmskps, Gp, Vec) // AVX
2682
+ ASMJIT_INST_2x(vmovntdq, Vmovntdq, Mem, Vec) // AVX+ AVX512_F
2683
+ ASMJIT_INST_2x(vmovntdqa, Vmovntdqa, Vec, Mem) // AVX+ AVX512_F
2684
+ ASMJIT_INST_2x(vmovntpd, Vmovntpd, Mem, Vec) // AVX AVX512_F
2685
+ ASMJIT_INST_2x(vmovntps, Vmovntps, Mem, Vec) // AVX AVX512_F
2686
+ ASMJIT_INST_2x(vmovq, Vmovq, Gp, Xmm) // AVX AVX512_F
2687
+ ASMJIT_INST_2x(vmovq, Vmovq, Mem, Xmm) // AVX AVX512_F
2688
+ ASMJIT_INST_2x(vmovq, Vmovq, Xmm, Mem) // AVX AVX512_F
2689
+ ASMJIT_INST_2x(vmovq, Vmovq, Xmm, Gp) // AVX AVX512_F
2690
+ ASMJIT_INST_2x(vmovq, Vmovq, Xmm, Xmm) // AVX AVX512_F
2691
+ ASMJIT_INST_2x(vmovsd, Vmovsd, Mem, Xmm) // AVX AVX512_F
2692
+ ASMJIT_INST_2x(vmovsd, Vmovsd, Xmm, Mem) // AVX AVX512_F{kz}
2693
+ ASMJIT_INST_3x(vmovsd, Vmovsd, Xmm, Xmm, Xmm) // AVX AVX512_F{kz}
2694
+ ASMJIT_INST_2x(vmovshdup, Vmovshdup, Vec, Vec) // AVX AVX512_F{kz}
2695
+ ASMJIT_INST_2x(vmovshdup, Vmovshdup, Vec, Mem) // AVX AVX512_F{kz}
2696
+ ASMJIT_INST_2x(vmovsldup, Vmovsldup, Vec, Vec) // AVX AVX512_F{kz}
2697
+ ASMJIT_INST_2x(vmovsldup, Vmovsldup, Vec, Mem) // AVX AVX512_F{kz}
2698
+ ASMJIT_INST_2x(vmovss, Vmovss, Mem, Xmm) // AVX AVX512_F
2699
+ ASMJIT_INST_2x(vmovss, Vmovss, Xmm, Mem) // AVX AVX512_F{kz}
2700
+ ASMJIT_INST_3x(vmovss, Vmovss, Xmm, Xmm, Xmm) // AVX AVX512_F{kz}
2701
+ ASMJIT_INST_2x(vmovupd, Vmovupd, Vec, Vec) // AVX AVX512_F{kz}
2702
+ ASMJIT_INST_2x(vmovupd, Vmovupd, Vec, Mem) // AVX AVX512_F{kz}
2703
+ ASMJIT_INST_2x(vmovupd, Vmovupd, Mem, Vec) // AVX AVX512_F{kz}
2704
+ ASMJIT_INST_2x(vmovups, Vmovups, Vec, Vec) // AVX AVX512_F{kz}
2705
+ ASMJIT_INST_2x(vmovups, Vmovups, Vec, Mem) // AVX AVX512_F{kz}
2706
+ ASMJIT_INST_2x(vmovups, Vmovups, Mem, Vec) // AVX AVX512_F{kz}
2707
+ ASMJIT_INST_4x(vmpsadbw, Vmpsadbw, Vec, Vec, Vec, Imm) // AVX+
2708
+ ASMJIT_INST_4x(vmpsadbw, Vmpsadbw, Vec, Vec, Mem, Imm) // AVX+
2709
+ ASMJIT_INST_3x(vmulpd, Vmulpd, Vec, Vec, Vec) // AVX AVX512_F{kz|b64}
2710
+ ASMJIT_INST_3x(vmulpd, Vmulpd, Vec, Vec, Mem) // AVX AVX512_F{kz|b64}
2711
+ ASMJIT_INST_3x(vmulps, Vmulps, Vec, Vec, Vec) // AVX AVX512_F{kz|b32}
2712
+ ASMJIT_INST_3x(vmulps, Vmulps, Vec, Vec, Mem) // AVX AVX512_F{kz|b32}
2713
+ ASMJIT_INST_3x(vmulsd, Vmulsd, Xmm, Xmm, Xmm) // AVX AVX512_F{kz|er}
2714
+ ASMJIT_INST_3x(vmulsd, Vmulsd, Xmm, Xmm, Mem) // AVX AVX512_F{kz|er}
2715
+ ASMJIT_INST_3x(vmulss, Vmulss, Xmm, Xmm, Xmm) // AVX AVX512_F{kz|er}
2716
+ ASMJIT_INST_3x(vmulss, Vmulss, Xmm, Xmm, Mem) // AVX AVX512_F{kz|er}
2717
+ ASMJIT_INST_3x(vorpd, Vorpd, Vec, Vec, Vec) // AVX AVX512_DQ{kz|b64}
2718
+ ASMJIT_INST_3x(vorpd, Vorpd, Vec, Vec, Mem) // AVX AVX512_DQ{kz|b64}
2719
+ ASMJIT_INST_3x(vorps, Vorps, Vec, Vec, Vec) // AVX AVX512_F{kz|b32}
2720
+ ASMJIT_INST_3x(vorps, Vorps, Vec, Vec, Mem) // AVX AVX512_F{kz|b32}
2721
+ ASMJIT_INST_4x(vp2intersectd, Vp2intersectd, KReg, KReg, Vec, Vec) // AVX512_VP2INTERSECT{kz}
2722
+ ASMJIT_INST_4x(vp2intersectd, Vp2intersectd, KReg, KReg, Vec, Mem) // AVX512_VP2INTERSECT{kz}
2723
+ ASMJIT_INST_4x(vp2intersectq, Vp2intersectq, KReg, KReg, Vec, Vec) // AVX512_VP2INTERSECT{kz}
2724
+ ASMJIT_INST_4x(vp2intersectq, Vp2intersectq, KReg, KReg, Vec, Mem) // AVX512_VP2INTERSECT{kz}
2725
+ ASMJIT_INST_6x(vp4dpwssd, Vp4dpwssd, Zmm, Zmm, Zmm, Zmm, Zmm, Mem) // AVX512_4FMAPS{kz}
2726
+ ASMJIT_INST_6x(vp4dpwssds, Vp4dpwssds, Zmm, Zmm, Zmm, Zmm, Zmm, Mem) // AVX512_4FMAPS{kz}
2727
+ ASMJIT_INST_2x(vpabsb, Vpabsb, Vec, Vec) // AVX+ AVX512_BW{kz}
2728
+ ASMJIT_INST_2x(vpabsb, Vpabsb, Vec, Mem) // AVX+ AVX512_BW{kz}
2729
+ ASMJIT_INST_2x(vpabsd, Vpabsd, Vec, Vec) // AVX+ AVX512_F{kz}
2730
+ ASMJIT_INST_2x(vpabsd, Vpabsd, Vec, Mem) // AVX+ AVX512_F{kz}
2731
+ ASMJIT_INST_2x(vpabsq, Vpabsq, Vec, Vec) // AVX512_F{kz}
2732
+ ASMJIT_INST_2x(vpabsq, Vpabsq, Vec, Mem) // AVX512_F{kz}
2733
+ ASMJIT_INST_2x(vpabsw, Vpabsw, Vec, Vec) // AVX+ AVX512_BW{kz}
2734
+ ASMJIT_INST_2x(vpabsw, Vpabsw, Vec, Mem) // AVX+ AVX512_BW{kz}
2735
+ ASMJIT_INST_3x(vpackssdw, Vpackssdw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz|b32}
2736
+ ASMJIT_INST_3x(vpackssdw, Vpackssdw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz|b32}
2737
+ ASMJIT_INST_3x(vpacksswb, Vpacksswb, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
2738
+ ASMJIT_INST_3x(vpacksswb, Vpacksswb, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
2739
+ ASMJIT_INST_3x(vpackusdw, Vpackusdw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz|b32}
2740
+ ASMJIT_INST_3x(vpackusdw, Vpackusdw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz|b32}
2741
+ ASMJIT_INST_3x(vpackuswb, Vpackuswb, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
2742
+ ASMJIT_INST_3x(vpackuswb, Vpackuswb, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
2743
+ ASMJIT_INST_3x(vpaddb, Vpaddb, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
2744
+ ASMJIT_INST_3x(vpaddb, Vpaddb, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
2745
+ ASMJIT_INST_3x(vpaddd, Vpaddd, Vec, Vec, Vec) // AVX+ AVX512_F{kz|b32}
2746
+ ASMJIT_INST_3x(vpaddd, Vpaddd, Vec, Vec, Mem) // AVX+ AVX512_F{kz|b32}
2747
+ ASMJIT_INST_3x(vpaddq, Vpaddq, Vec, Vec, Vec) // AVX+ AVX512_F{kz|b64}
2748
+ ASMJIT_INST_3x(vpaddq, Vpaddq, Vec, Vec, Mem) // AVX+ AVX512_F{kz|b64}
2749
+ ASMJIT_INST_3x(vpaddsb, Vpaddsb, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
2750
+ ASMJIT_INST_3x(vpaddsb, Vpaddsb, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
2751
+ ASMJIT_INST_3x(vpaddsw, Vpaddsw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
2752
+ ASMJIT_INST_3x(vpaddsw, Vpaddsw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
2753
+ ASMJIT_INST_3x(vpaddusb, Vpaddusb, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
2754
+ ASMJIT_INST_3x(vpaddusb, Vpaddusb, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
2755
+ ASMJIT_INST_3x(vpaddusw, Vpaddusw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
2756
+ ASMJIT_INST_3x(vpaddusw, Vpaddusw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
2757
+ ASMJIT_INST_3x(vpaddw, Vpaddw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
2758
+ ASMJIT_INST_3x(vpaddw, Vpaddw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
2759
+ ASMJIT_INST_4x(vpalignr, Vpalignr, Vec, Vec, Vec, Imm) // AVX+ AVX512_BW{kz}
2760
+ ASMJIT_INST_4x(vpalignr, Vpalignr, Vec, Vec, Mem, Imm) // AVX+ AVX512_BW{kz}
2761
+ ASMJIT_INST_3x(vpand, Vpand, Vec, Vec, Vec) // AVX+
2762
+ ASMJIT_INST_3x(vpand, Vpand, Vec, Vec, Mem) // AVX+
2763
+ ASMJIT_INST_3x(vpandd, Vpandd, Vec, Vec, Vec) // AVX512_F{kz|b32}
2764
+ ASMJIT_INST_3x(vpandd, Vpandd, Vec, Vec, Mem) // AVX512_F{kz|b32}
2765
+ ASMJIT_INST_3x(vpandn, Vpandn, Vec, Vec, Vec) // AV+
2766
+ ASMJIT_INST_3x(vpandn, Vpandn, Vec, Vec, Mem) // AVX+
2767
+ ASMJIT_INST_3x(vpandnd, Vpandnd, Vec, Vec, Vec) // AVX512_F{kz|b32}
2768
+ ASMJIT_INST_3x(vpandnd, Vpandnd, Vec, Vec, Mem) // AVX512_F{kz|b32}
2769
+ ASMJIT_INST_3x(vpandnq, Vpandnq, Vec, Vec, Vec) // AVX512_F{kz|b64}
2770
+ ASMJIT_INST_3x(vpandnq, Vpandnq, Vec, Vec, Mem) // AVX512_F{kz|b64}
2771
+ ASMJIT_INST_3x(vpandq, Vpandq, Vec, Vec, Vec) // AVX512_F{kz|b64}
2772
+ ASMJIT_INST_3x(vpandq, Vpandq, Vec, Vec, Mem) // AVX512_F{kz|b64}
2773
+ ASMJIT_INST_3x(vpavgb, Vpavgb, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
2774
+ ASMJIT_INST_3x(vpavgb, Vpavgb, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
2775
+ ASMJIT_INST_3x(vpavgw, Vpavgw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
2776
+ ASMJIT_INST_3x(vpavgw, Vpavgw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
2777
+ ASMJIT_INST_4x(vpblendd, Vpblendd, Vec, Vec, Vec, Imm) // AVX2
2778
+ ASMJIT_INST_4x(vpblendd, Vpblendd, Vec, Vec, Mem, Imm) // AVX2
2779
+ ASMJIT_INST_3x(vpblendmb, Vpblendmb, Vec, Vec, Vec) // AVX512_BW{kz}
2780
+ ASMJIT_INST_3x(vpblendmb, Vpblendmb, Vec, Vec, Mem) // AVX512_BW{kz}
2781
+ ASMJIT_INST_3x(vpblendmd, Vpblendmd, Vec, Vec, Vec) // AVX512_F{kz|b32}
2782
+ ASMJIT_INST_3x(vpblendmd, Vpblendmd, Vec, Vec, Mem) // AVX512_F{kz|b32}
2783
+ ASMJIT_INST_3x(vpblendmq, Vpblendmq, Vec, Vec, Vec) // AVX512_F{kz|b64}
2784
+ ASMJIT_INST_3x(vpblendmq, Vpblendmq, Vec, Vec, Mem) // AVX512_F{kz|b64}
2785
+ ASMJIT_INST_3x(vpblendmw, Vpblendmw, Vec, Vec, Vec) // AVX512_BW{kz}
2786
+ ASMJIT_INST_3x(vpblendmw, Vpblendmw, Vec, Vec, Mem) // AVX512_BW{kz}
2787
+ ASMJIT_INST_4x(vpblendvb, Vpblendvb, Vec, Vec, Vec, Vec) // AVX+
2788
+ ASMJIT_INST_4x(vpblendvb, Vpblendvb, Vec, Vec, Mem, Vec) // AVX+
2789
+ ASMJIT_INST_4x(vpblendw, Vpblendw, Vec, Vec, Vec, Imm) // AVX+
2790
+ ASMJIT_INST_4x(vpblendw, Vpblendw, Vec, Vec, Mem, Imm) // AVX+
2791
+ ASMJIT_INST_2x(vpbroadcastb, Vpbroadcastb, Vec, Vec) // AVX2 AVX512_BW{kz}
2792
+ ASMJIT_INST_2x(vpbroadcastb, Vpbroadcastb, Vec, Mem) // AVX2 AVX512_BW{kz}
2793
+ ASMJIT_INST_2x(vpbroadcastb, Vpbroadcastb, Vec, Gp) // AVX512_BW{kz}
2794
+ ASMJIT_INST_2x(vpbroadcastd, Vpbroadcastd, Vec, Vec) // AVX2 AVX512_F{kz}
2795
+ ASMJIT_INST_2x(vpbroadcastd, Vpbroadcastd, Vec, Mem) // AVX2 AVX512_F{kz}
2796
+ ASMJIT_INST_2x(vpbroadcastd, Vpbroadcastd, Vec, Gp) // AVX512_F{kz}
2797
+ ASMJIT_INST_2x(vpbroadcastmb2q, Vpbroadcastmb2q, Vec, KReg) // AVX512_CD
2798
+ ASMJIT_INST_2x(vpbroadcastmw2d, Vpbroadcastmw2d, Vec, KReg) // AVX512_CD
2799
+ ASMJIT_INST_2x(vpbroadcastq, Vpbroadcastq, Vec, Vec) // AVX2 AVX512_F{kz}
2800
+ ASMJIT_INST_2x(vpbroadcastq, Vpbroadcastq, Vec, Mem) // AVX2 AVX512_F{kz}
2801
+ ASMJIT_INST_2x(vpbroadcastq, Vpbroadcastq, Vec, Gp) // AVX512_F{kz}
2802
+ ASMJIT_INST_2x(vpbroadcastw, Vpbroadcastw, Vec, Vec) // AVX2 AVX512_BW{kz}
2803
+ ASMJIT_INST_2x(vpbroadcastw, Vpbroadcastw, Vec, Mem) // AVX2 AVX512_BW{kz}
2804
+ ASMJIT_INST_2x(vpbroadcastw, Vpbroadcastw, Vec, Gp) // AVX512_BW{kz}
2805
+ ASMJIT_INST_4x(vpclmulqdq, Vpclmulqdq, Vec, Vec, Vec, Imm) // AVX VPCLMULQDQ AVX512_F
2806
+ ASMJIT_INST_4x(vpclmulqdq, Vpclmulqdq, Vec, Vec, Mem, Imm) // AVX VPCLMULQDQ AVX512_F
2807
+ ASMJIT_INST_4x(vpcmpb, Vpcmpb, KReg, Vec, Vec, Imm) // AVX512_BW{k}
2808
+ ASMJIT_INST_4x(vpcmpb, Vpcmpb, KReg, Vec, Mem, Imm) // AVX512_BW{k}
2809
+ ASMJIT_INST_4x(vpcmpd, Vpcmpd, KReg, Vec, Vec, Imm) // AVX512_F{k|b32}
2810
+ ASMJIT_INST_4x(vpcmpd, Vpcmpd, KReg, Vec, Mem, Imm) // AVX512_F{k|b32}
2811
+ ASMJIT_INST_3x(vpcmpeqb, Vpcmpeqb, Vec, Vec, Vec) // AVX+
2812
+ ASMJIT_INST_3x(vpcmpeqb, Vpcmpeqb, Vec, Vec, Mem) // AVX+
2813
+ ASMJIT_INST_3x(vpcmpeqb, Vpcmpeqb, KReg, Vec, Vec) // AVX512_BW{k}
2814
+ ASMJIT_INST_3x(vpcmpeqb, Vpcmpeqb, KReg, Vec, Mem) // AVX512_BW{k}
2815
+ ASMJIT_INST_3x(vpcmpeqd, Vpcmpeqd, Vec, Vec, Vec) // AVX+
2816
+ ASMJIT_INST_3x(vpcmpeqd, Vpcmpeqd, Vec, Vec, Mem) // AVX+
2817
+ ASMJIT_INST_3x(vpcmpeqd, Vpcmpeqd, KReg, Vec, Vec) // AVX512_F{k|b32}
2818
+ ASMJIT_INST_3x(vpcmpeqd, Vpcmpeqd, KReg, Vec, Mem) // AVX512_F{k|b32}
2819
+ ASMJIT_INST_3x(vpcmpeqq, Vpcmpeqq, Vec, Vec, Vec) // AVX+
2820
+ ASMJIT_INST_3x(vpcmpeqq, Vpcmpeqq, Vec, Vec, Mem) // AVX+
2821
+ ASMJIT_INST_3x(vpcmpeqq, Vpcmpeqq, KReg, Vec, Vec) // AVX512_F{k|b64}
2822
+ ASMJIT_INST_3x(vpcmpeqq, Vpcmpeqq, KReg, Vec, Mem) // AVX512_F{k|b64}
2823
+ ASMJIT_INST_3x(vpcmpeqw, Vpcmpeqw, Vec, Vec, Vec) // AVX+
2824
+ ASMJIT_INST_3x(vpcmpeqw, Vpcmpeqw, Vec, Vec, Mem) // AVX+
2825
+ ASMJIT_INST_3x(vpcmpeqw, Vpcmpeqw, KReg, Vec, Vec) // AVX512_BW{k}
2826
+ ASMJIT_INST_3x(vpcmpeqw, Vpcmpeqw, KReg, Vec, Mem) // AVX512_BW{k}
2827
+ ASMJIT_INST_6x(vpcmpestri, Vpcmpestri, Vec, Vec, Imm, Gp_ECX, Gp_EAX, Gp_EDX) // AVX [EXPLICIT]
2828
+ ASMJIT_INST_6x(vpcmpestri, Vpcmpestri, Vec, Mem, Imm, Gp_ECX, Gp_EAX, Gp_EDX) // AVX [EXPLICIT]
2829
+ ASMJIT_INST_6x(vpcmpestrm, Vpcmpestrm, Vec, Vec, Imm, XMM0, Gp_EAX, Gp_EDX) // AVX [EXPLICIT]
2830
+ ASMJIT_INST_6x(vpcmpestrm, Vpcmpestrm, Vec, Mem, Imm, XMM0, Gp_EAX, Gp_EDX) // AVX [EXPLICIT]
2831
+ ASMJIT_INST_3x(vpcmpgtb, Vpcmpgtb, Vec, Vec, Vec) // AVX+
2832
+ ASMJIT_INST_3x(vpcmpgtb, Vpcmpgtb, Vec, Vec, Mem) // AVX+
2833
+ ASMJIT_INST_3x(vpcmpgtb, Vpcmpgtb, KReg, Vec, Vec) // AVX512_BW{k}
2834
+ ASMJIT_INST_3x(vpcmpgtb, Vpcmpgtb, KReg, Vec, Mem) // AVX512_BW{k}
2835
+ ASMJIT_INST_3x(vpcmpgtd, Vpcmpgtd, Vec, Vec, Vec) // AVX+
2836
+ ASMJIT_INST_3x(vpcmpgtd, Vpcmpgtd, Vec, Vec, Mem) // AVX+
2837
+ ASMJIT_INST_3x(vpcmpgtd, Vpcmpgtd, KReg, Vec, Vec) // AVX512_F{k|b32}
2838
+ ASMJIT_INST_3x(vpcmpgtd, Vpcmpgtd, KReg, Vec, Mem) // AVX512_F{k|b32}
2839
+ ASMJIT_INST_3x(vpcmpgtq, Vpcmpgtq, Vec, Vec, Vec) // AVX+
2840
+ ASMJIT_INST_3x(vpcmpgtq, Vpcmpgtq, Vec, Vec, Mem) // AVX+
2841
+ ASMJIT_INST_3x(vpcmpgtq, Vpcmpgtq, KReg, Vec, Vec) // AVX512_F{k|b64}
2842
+ ASMJIT_INST_3x(vpcmpgtq, Vpcmpgtq, KReg, Vec, Mem) // AVX512_F{k|b64}
2843
+ ASMJIT_INST_3x(vpcmpgtw, Vpcmpgtw, Vec, Vec, Vec) // AVX+
2844
+ ASMJIT_INST_3x(vpcmpgtw, Vpcmpgtw, Vec, Vec, Mem) // AVX+
2845
+ ASMJIT_INST_3x(vpcmpgtw, Vpcmpgtw, KReg, Vec, Vec) // AVX512_BW{k}
2846
+ ASMJIT_INST_3x(vpcmpgtw, Vpcmpgtw, KReg, Vec, Mem) // AVX512_BW{k}
2847
+ ASMJIT_INST_4x(vpcmpistri, Vpcmpistri, Vec, Vec, Imm, Gp_ECX) // AVX [EXPLICIT]
2848
+ ASMJIT_INST_4x(vpcmpistri, Vpcmpistri, Vec, Mem, Imm, Gp_ECX) // AVX [EXPLICIT]
2849
+ ASMJIT_INST_4x(vpcmpistrm, Vpcmpistrm, Vec, Vec, Imm, XMM0) // AVX [EXPLICIT]
2850
+ ASMJIT_INST_4x(vpcmpistrm, Vpcmpistrm, Vec, Mem, Imm, XMM0) // AVX [EXPLICIT]
2851
+ ASMJIT_INST_4x(vpcmpq, Vpcmpq, KReg, Vec, Vec, Imm) // AVX512_F{k|b64}
2852
+ ASMJIT_INST_4x(vpcmpq, Vpcmpq, KReg, Vec, Mem, Imm) // AVX512_F{k|b64}
2853
+ ASMJIT_INST_4x(vpcmpub, Vpcmpub, KReg, Vec, Vec, Imm) // AVX512_BW{k}
2854
+ ASMJIT_INST_4x(vpcmpub, Vpcmpub, KReg, Vec, Mem, Imm) // AVX512_BW{k}
2855
+ ASMJIT_INST_4x(vpcmpud, Vpcmpud, KReg, Vec, Vec, Imm) // AVX512_F{k|b32}
2856
+ ASMJIT_INST_4x(vpcmpud, Vpcmpud, KReg, Vec, Mem, Imm) // AVX512_F{k|b32}
2857
+ ASMJIT_INST_4x(vpcmpuq, Vpcmpuq, KReg, Vec, Vec, Imm) // AVX512_F{k|b64}
2858
+ ASMJIT_INST_4x(vpcmpuq, Vpcmpuq, KReg, Vec, Mem, Imm) // AVX512_F{k|b64}
2859
+ ASMJIT_INST_4x(vpcmpuw, Vpcmpuw, KReg, Vec, Vec, Imm) // AVX512_BW{k|b64}
2860
+ ASMJIT_INST_4x(vpcmpuw, Vpcmpuw, KReg, Vec, Mem, Imm) // AVX512_BW{k|b64}
2861
+ ASMJIT_INST_4x(vpcmpw, Vpcmpw, KReg, Vec, Vec, Imm) // AVX512_BW{k|b64}
2862
+ ASMJIT_INST_4x(vpcmpw, Vpcmpw, KReg, Vec, Mem, Imm) // AVX512_BW{k|b64}
2863
+ ASMJIT_INST_2x(vpcompressb, Vpcompressb, Vec, Vec) // AVX512_VBMI2{kz}
2864
+ ASMJIT_INST_2x(vpcompressb, Vpcompressb, Mem, Vec) // AVX512_VBMI2{kz}
2865
+ ASMJIT_INST_2x(vpcompressd, Vpcompressd, Vec, Vec) // AVX512_F{kz}
2866
+ ASMJIT_INST_2x(vpcompressd, Vpcompressd, Mem, Vec) // AVX512_F{kz}
2867
+ ASMJIT_INST_2x(vpcompressq, Vpcompressq, Vec, Vec) // AVX512_F{kz}
2868
+ ASMJIT_INST_2x(vpcompressq, Vpcompressq, Mem, Vec) // AVX512_F{kz}
2869
+ ASMJIT_INST_2x(vpcompressw, Vpcompressw, Vec, Vec) // AVX512_VBMI2{kz}
2870
+ ASMJIT_INST_2x(vpcompressw, Vpcompressw, Mem, Vec) // AVX512_VBMI2{kz}
2871
+ ASMJIT_INST_2x(vpconflictd, Vpconflictd, Vec, Vec) // AVX512_CD{kz|b32}
2872
+ ASMJIT_INST_2x(vpconflictd, Vpconflictd, Vec, Mem) // AVX512_CD{kz|b32}
2873
+ ASMJIT_INST_2x(vpconflictq, Vpconflictq, Vec, Vec) // AVX512_CD{kz|b32}
2874
+ ASMJIT_INST_2x(vpconflictq, Vpconflictq, Vec, Mem) // AVX512_CD{kz|b32}
2875
+ ASMJIT_INST_3x(vpdpbusd, Vpdpbusd, Vec, Vec, Vec) // AVX_VNNI AVX512_VNNI{kz|b32}
2876
+ ASMJIT_INST_3x(vpdpbusd, Vpdpbusd, Vec, Vec, Mem) // AVX_VNNI AVX512_VNNI{kz|b32}
2877
+ ASMJIT_INST_3x(vpdpbusds, Vpdpbusds, Vec, Vec, Vec) // AVX_VNNI AVX512_VNNI{kz|b32}
2878
+ ASMJIT_INST_3x(vpdpbusds, Vpdpbusds, Vec, Vec, Mem) // AVX_VNNI AVX512_VNNI{kz|b32}
2879
+ ASMJIT_INST_3x(vpdpwssd, Vpdpwssd, Vec, Vec, Vec) // AVX_VNNI AVX512_VNNI{kz|b32}
2880
+ ASMJIT_INST_3x(vpdpwssd, Vpdpwssd, Vec, Vec, Mem) // AVX_VNNI AVX512_VNNI{kz|b32}
2881
+ ASMJIT_INST_3x(vpdpwssds, Vpdpwssds, Vec, Vec, Vec) // AVX_VNNI AVX512_VNNI{kz|b32}
2882
+ ASMJIT_INST_3x(vpdpwssds, Vpdpwssds, Vec, Vec, Mem) // AVX_VNNI AVX512_VNNI{kz|b32}
2883
+ ASMJIT_INST_4x(vperm2f128, Vperm2f128, Vec, Vec, Vec, Imm) // AVX
2884
+ ASMJIT_INST_4x(vperm2f128, Vperm2f128, Vec, Vec, Mem, Imm) // AVX
2885
+ ASMJIT_INST_4x(vperm2i128, Vperm2i128, Vec, Vec, Vec, Imm) // AVX2
2886
+ ASMJIT_INST_4x(vperm2i128, Vperm2i128, Vec, Vec, Mem, Imm) // AVX2
2887
+ ASMJIT_INST_3x(vpermb, Vpermb, Vec, Vec, Vec) // AVX512_VBMI{kz}
2888
+ ASMJIT_INST_3x(vpermb, Vpermb, Vec, Vec, Mem) // AVX512_VBMI{kz}
2889
+ ASMJIT_INST_3x(vpermd, Vpermd, Vec, Vec, Vec) // AVX2 AVX512_F{kz|b32}
2890
+ ASMJIT_INST_3x(vpermd, Vpermd, Vec, Vec, Mem) // AVX2 AVX512_F{kz|b32}
2891
+ ASMJIT_INST_3x(vpermi2b, Vpermi2b, Vec, Vec, Vec) // AVX512_VBMI{kz}
2892
+ ASMJIT_INST_3x(vpermi2b, Vpermi2b, Vec, Vec, Mem) // AVX512_VBMI{kz}
2893
+ ASMJIT_INST_3x(vpermi2d, Vpermi2d, Vec, Vec, Vec) // AVX512_F{kz|b32}
2894
+ ASMJIT_INST_3x(vpermi2d, Vpermi2d, Vec, Vec, Mem) // AVX512_F{kz|b32}
2895
+ ASMJIT_INST_3x(vpermi2pd, Vpermi2pd, Vec, Vec, Vec) // AVX512_F{kz|b64}
2896
+ ASMJIT_INST_3x(vpermi2pd, Vpermi2pd, Vec, Vec, Mem) // AVX512_F{kz|b64}
2897
+ ASMJIT_INST_3x(vpermi2ps, Vpermi2ps, Vec, Vec, Vec) // AVX512_F{kz|b32}
2898
+ ASMJIT_INST_3x(vpermi2ps, Vpermi2ps, Vec, Vec, Mem) // AVX512_F{kz|b32}
2899
+ ASMJIT_INST_3x(vpermi2q, Vpermi2q, Vec, Vec, Vec) // AVX512_F{kz|b64}
2900
+ ASMJIT_INST_3x(vpermi2q, Vpermi2q, Vec, Vec, Mem) // AVX512_F{kz|b64}
2901
+ ASMJIT_INST_3x(vpermi2w, Vpermi2w, Vec, Vec, Vec) // AVX512_BW{kz}
2902
+ ASMJIT_INST_3x(vpermi2w, Vpermi2w, Vec, Vec, Mem) // AVX512_BW{kz}
2903
+ ASMJIT_INST_3x(vpermilpd, Vpermilpd, Vec, Vec, Vec) // AVX AVX512_F{kz|b64}
2904
+ ASMJIT_INST_3x(vpermilpd, Vpermilpd, Vec, Vec, Mem) // AVX AVX512_F{kz|b64}
2905
+ ASMJIT_INST_3x(vpermilpd, Vpermilpd, Vec, Vec, Imm) // AVX AVX512_F{kz|b64}
2906
+ ASMJIT_INST_3x(vpermilpd, Vpermilpd, Vec, Mem, Imm) // AVX AVX512_F{kz|b64}
2907
+ ASMJIT_INST_3x(vpermilps, Vpermilps, Vec, Vec, Vec) // AVX AVX512_F{kz|b64}
2908
+ ASMJIT_INST_3x(vpermilps, Vpermilps, Vec, Vec, Mem) // AVX AVX512_F{kz|b64}
2909
+ ASMJIT_INST_3x(vpermilps, Vpermilps, Vec, Vec, Imm) // AVX AVX512_F{kz|b64}
2910
+ ASMJIT_INST_3x(vpermilps, Vpermilps, Vec, Mem, Imm) // AVX AVX512_F{kz|b64}
2911
+ ASMJIT_INST_3x(vpermpd, Vpermpd, Vec, Vec, Imm) // AVX2
2912
+ ASMJIT_INST_3x(vpermpd, Vpermpd, Vec, Mem, Imm) // AVX2
2913
+ ASMJIT_INST_3x(vpermpd, Vpermpd, Vec, Vec, Vec) // AVX512_F{kz|b64}
2914
+ ASMJIT_INST_3x(vpermpd, Vpermpd, Vec, Vec, Mem) // AVX512_F{kz|b64}
2915
+ ASMJIT_INST_3x(vpermps, Vpermps, Vec, Vec, Vec) // AVX2 AVX512_F{kz|b32}
2916
+ ASMJIT_INST_3x(vpermps, Vpermps, Vec, Vec, Mem) // AVX2 AVX512_F{kz|b32}
2917
+ ASMJIT_INST_3x(vpermq, Vpermq, Vec, Vec, Imm) // AVX2 AVX512_F{kz|b64}
2918
+ ASMJIT_INST_3x(vpermq, Vpermq, Vec, Mem, Imm) // AVX2 AVX512_F{kz|b64}
2919
+ ASMJIT_INST_3x(vpermq, Vpermq, Vec, Vec, Vec) // AVX512_F{kz|b64}
2920
+ ASMJIT_INST_3x(vpermq, Vpermq, Vec, Vec, Mem) // AVX512_F{kz|b64}
2921
+ ASMJIT_INST_3x(vpermt2b, Vpermt2b, Vec, Vec, Vec) // AVX512_VBMI{kz}
2922
+ ASMJIT_INST_3x(vpermt2b, Vpermt2b, Vec, Vec, Mem) // AVX512_VBMI{kz}
2923
+ ASMJIT_INST_3x(vpermt2d, Vpermt2d, Vec, Vec, Vec) // AVX512_F{kz|b32}
2924
+ ASMJIT_INST_3x(vpermt2d, Vpermt2d, Vec, Vec, Mem) // AVX512_F{kz|b32}
2925
+ ASMJIT_INST_3x(vpermt2pd, Vpermt2pd, Vec, Vec, Vec) // AVX512_F{kz|b64}
2926
+ ASMJIT_INST_3x(vpermt2pd, Vpermt2pd, Vec, Vec, Mem) // AVX512_F{kz|b64}
2927
+ ASMJIT_INST_3x(vpermt2ps, Vpermt2ps, Vec, Vec, Vec) // AVX512_F{kz|b32}
2928
+ ASMJIT_INST_3x(vpermt2ps, Vpermt2ps, Vec, Vec, Mem) // AVX512_F{kz|b32}
2929
+ ASMJIT_INST_3x(vpermt2q, Vpermt2q, Vec, Vec, Vec) // AVX512_F{kz|b64}
2930
+ ASMJIT_INST_3x(vpermt2q, Vpermt2q, Vec, Vec, Mem) // AVX512_F{kz|b64}
2931
+ ASMJIT_INST_3x(vpermt2w, Vpermt2w, Vec, Vec, Vec) // AVX512_BW{kz}
2932
+ ASMJIT_INST_3x(vpermt2w, Vpermt2w, Vec, Vec, Mem) // AVX512_BW{kz}
2933
+ ASMJIT_INST_3x(vpermw, Vpermw, Vec, Vec, Vec) // AVX512_BW{kz}
2934
+ ASMJIT_INST_3x(vpermw, Vpermw, Vec, Vec, Mem) // AVX512_BW{kz}
2935
+ ASMJIT_INST_2x(vpexpandb, Vpexpandb, Vec, Vec) // AVX512_VBMI2{kz}
2936
+ ASMJIT_INST_2x(vpexpandb, Vpexpandb, Vec, Mem) // AVX512_VBMI2{kz}
2937
+ ASMJIT_INST_2x(vpexpandd, Vpexpandd, Vec, Vec) // AVX512_F{kz}
2938
+ ASMJIT_INST_2x(vpexpandd, Vpexpandd, Vec, Mem) // AVX512_F{kz}
2939
+ ASMJIT_INST_2x(vpexpandq, Vpexpandq, Vec, Vec) // AVX512_F{kz}
2940
+ ASMJIT_INST_2x(vpexpandq, Vpexpandq, Vec, Mem) // AVX512_F{kz}
2941
+ ASMJIT_INST_2x(vpexpandw, Vpexpandw, Vec, Vec) // AVX512_VBMI2{kz}
2942
+ ASMJIT_INST_2x(vpexpandw, Vpexpandw, Vec, Mem) // AVX512_VBMI2{kz}
2943
+ ASMJIT_INST_3x(vpextrb, Vpextrb, Gp, Xmm, Imm) // AVX AVX512_BW
2944
+ ASMJIT_INST_3x(vpextrb, Vpextrb, Mem, Xmm, Imm) // AVX AVX512_BW
2945
+ ASMJIT_INST_3x(vpextrd, Vpextrd, Gp, Xmm, Imm) // AVX AVX512_DQ
2946
+ ASMJIT_INST_3x(vpextrd, Vpextrd, Mem, Xmm, Imm) // AVX AVX512_DQ
2947
+ ASMJIT_INST_3x(vpextrq, Vpextrq, Gp, Xmm, Imm) // AVX AVX512_DQ
2948
+ ASMJIT_INST_3x(vpextrq, Vpextrq, Mem, Xmm, Imm) // AVX AVX512_DQ
2949
+ ASMJIT_INST_3x(vpextrw, Vpextrw, Gp, Xmm, Imm) // AVX AVX512_BW
2950
+ ASMJIT_INST_3x(vpextrw, Vpextrw, Mem, Xmm, Imm) // AVX AVX512_BW
2951
+ ASMJIT_INST_2x(vpgatherdd, Vpgatherdd, Vec, Mem) // AVX512_F{k}
2952
+ ASMJIT_INST_3x(vpgatherdd, Vpgatherdd, Vec, Mem, Vec) // AVX2
2953
+ ASMJIT_INST_2x(vpgatherdq, Vpgatherdq, Vec, Mem) // AVX512_F{k}
2954
+ ASMJIT_INST_3x(vpgatherdq, Vpgatherdq, Vec, Mem, Vec) // AVX2
2955
+ ASMJIT_INST_2x(vpgatherqd, Vpgatherqd, Vec, Mem) // AVX512_F{k}
2956
+ ASMJIT_INST_3x(vpgatherqd, Vpgatherqd, Vec, Mem, Vec) // AVX2
2957
+ ASMJIT_INST_2x(vpgatherqq, Vpgatherqq, Vec, Mem) // AVX512_F{k}
2958
+ ASMJIT_INST_3x(vpgatherqq, Vpgatherqq, Vec, Mem, Vec) // AVX2
2959
+ ASMJIT_INST_3x(vphaddd, Vphaddd, Vec, Vec, Vec) // AVX+
2960
+ ASMJIT_INST_3x(vphaddd, Vphaddd, Vec, Vec, Mem) // AVX+
2961
+ ASMJIT_INST_3x(vphaddsw, Vphaddsw, Vec, Vec, Vec) // AVX+
2962
+ ASMJIT_INST_3x(vphaddsw, Vphaddsw, Vec, Vec, Mem) // AVX+
2963
+ ASMJIT_INST_3x(vphaddw, Vphaddw, Vec, Vec, Vec) // AVX+
2964
+ ASMJIT_INST_3x(vphaddw, Vphaddw, Vec, Vec, Mem) // AVX+
2965
+ ASMJIT_INST_2x(vphminposuw, Vphminposuw, Vec, Vec) // AVX
2966
+ ASMJIT_INST_2x(vphminposuw, Vphminposuw, Vec, Mem) // AVX
2967
+ ASMJIT_INST_3x(vphsubd, Vphsubd, Vec, Vec, Vec) // AVX+
2968
+ ASMJIT_INST_3x(vphsubd, Vphsubd, Vec, Vec, Mem) // AVX+
2969
+ ASMJIT_INST_3x(vphsubsw, Vphsubsw, Vec, Vec, Vec) // AVX+
2970
+ ASMJIT_INST_3x(vphsubsw, Vphsubsw, Vec, Vec, Mem) // AVX+
2971
+ ASMJIT_INST_3x(vphsubw, Vphsubw, Vec, Vec, Vec) // AVX+
2972
+ ASMJIT_INST_3x(vphsubw, Vphsubw, Vec, Vec, Mem) // AVX+
2973
+ ASMJIT_INST_4x(vpinsrb, Vpinsrb, Xmm, Xmm, Gp, Imm) // AVX AVX512_BW{kz}
2974
+ ASMJIT_INST_4x(vpinsrb, Vpinsrb, Xmm, Xmm, Mem, Imm) // AVX AVX512_BW{kz}
2975
+ ASMJIT_INST_4x(vpinsrd, Vpinsrd, Xmm, Xmm, Gp, Imm) // AVX AVX512_DQ{kz}
2976
+ ASMJIT_INST_4x(vpinsrd, Vpinsrd, Xmm, Xmm, Mem, Imm) // AVX AVX512_DQ{kz}
2977
+ ASMJIT_INST_4x(vpinsrq, Vpinsrq, Xmm, Xmm, Gp, Imm) // AVX AVX512_DQ{kz}
2978
+ ASMJIT_INST_4x(vpinsrq, Vpinsrq, Xmm, Xmm, Mem, Imm) // AVX AVX512_DQ{kz}
2979
+ ASMJIT_INST_4x(vpinsrw, Vpinsrw, Xmm, Xmm, Gp, Imm) // AVX AVX512_BW{kz}
2980
+ ASMJIT_INST_4x(vpinsrw, Vpinsrw, Xmm, Xmm, Mem, Imm) // AVX AVX512_BW{kz}
2981
+ ASMJIT_INST_2x(vplzcntd, Vplzcntd, Vec, Vec) // AVX512_CD{kz|b32}
2982
+ ASMJIT_INST_2x(vplzcntd, Vplzcntd, Vec, Mem) // AVX512_CD{kz|b32}
2983
+ ASMJIT_INST_2x(vplzcntq, Vplzcntq, Vec, Vec) // AVX512_CD{kz|b64}
2984
+ ASMJIT_INST_2x(vplzcntq, Vplzcntq, Vec, Mem) // AVX512_CD{kz|b64}
2985
+ ASMJIT_INST_3x(vpmadd52huq, Vpmadd52huq, Vec, Vec, Vec) // AVX512_IFMA{kz|b64}
2986
+ ASMJIT_INST_3x(vpmadd52huq, Vpmadd52huq, Vec, Vec, Mem) // AVX512_IFMA{kz|b64}
2987
+ ASMJIT_INST_3x(vpmadd52luq, Vpmadd52luq, Vec, Vec, Vec) // AVX512_IFMA{kz|b64}
2988
+ ASMJIT_INST_3x(vpmadd52luq, Vpmadd52luq, Vec, Vec, Mem) // AVX512_IFMA{kz|b64}
2989
+ ASMJIT_INST_3x(vpmaddubsw, Vpmaddubsw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
2990
+ ASMJIT_INST_3x(vpmaddubsw, Vpmaddubsw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
2991
+ ASMJIT_INST_3x(vpmaddwd, Vpmaddwd, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
2992
+ ASMJIT_INST_3x(vpmaddwd, Vpmaddwd, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
2993
+ ASMJIT_INST_3x(vpmaskmovd, Vpmaskmovd, Mem, Vec, Vec) // AVX2
2994
+ ASMJIT_INST_3x(vpmaskmovd, Vpmaskmovd, Vec, Vec, Mem) // AVX2
2995
+ ASMJIT_INST_3x(vpmaskmovq, Vpmaskmovq, Mem, Vec, Vec) // AVX2
2996
+ ASMJIT_INST_3x(vpmaskmovq, Vpmaskmovq, Vec, Vec, Mem) // AVX2
2997
+ ASMJIT_INST_3x(vpmaxsb, Vpmaxsb, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
2998
+ ASMJIT_INST_3x(vpmaxsb, Vpmaxsb, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
2999
+ ASMJIT_INST_3x(vpmaxsd, Vpmaxsd, Vec, Vec, Vec) // AVX+ AVX512_F{kz|b32}
3000
+ ASMJIT_INST_3x(vpmaxsd, Vpmaxsd, Vec, Vec, Mem) // AVX+ AVX512_F{kz|b32}
3001
+ ASMJIT_INST_3x(vpmaxsq, Vpmaxsq, Vec, Vec, Vec) // AVX512_F{kz|b64}
3002
+ ASMJIT_INST_3x(vpmaxsq, Vpmaxsq, Vec, Vec, Mem) // AVX512_F{kz|b64}
3003
+ ASMJIT_INST_3x(vpmaxsw, Vpmaxsw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3004
+ ASMJIT_INST_3x(vpmaxsw, Vpmaxsw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3005
+ ASMJIT_INST_3x(vpmaxub, Vpmaxub, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3006
+ ASMJIT_INST_3x(vpmaxub, Vpmaxub, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3007
+ ASMJIT_INST_3x(vpmaxud, Vpmaxud, Vec, Vec, Vec) // AVX+ AVX512_F{kz|b32}
3008
+ ASMJIT_INST_3x(vpmaxud, Vpmaxud, Vec, Vec, Mem) // AVX+ AVX512_F{kz|b32}
3009
+ ASMJIT_INST_3x(vpmaxuq, Vpmaxuq, Vec, Vec, Vec) // AVX512_F{kz|b64}
3010
+ ASMJIT_INST_3x(vpmaxuq, Vpmaxuq, Vec, Vec, Mem) // AVX512_F{kz|b64}
3011
+ ASMJIT_INST_3x(vpmaxuw, Vpmaxuw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3012
+ ASMJIT_INST_3x(vpmaxuw, Vpmaxuw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3013
+ ASMJIT_INST_3x(vpminsb, Vpminsb, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3014
+ ASMJIT_INST_3x(vpminsb, Vpminsb, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3015
+ ASMJIT_INST_3x(vpminsd, Vpminsd, Vec, Vec, Vec) // AVX+ AVX512_F{kz|b32}
3016
+ ASMJIT_INST_3x(vpminsd, Vpminsd, Vec, Vec, Mem) // AVX+ AVX512_F{kz|b32}
3017
+ ASMJIT_INST_3x(vpminsq, Vpminsq, Vec, Vec, Vec) // AVX512_F{kz|b64}
3018
+ ASMJIT_INST_3x(vpminsq, Vpminsq, Vec, Vec, Mem) // AVX512_F{kz|b64}
3019
+ ASMJIT_INST_3x(vpminsw, Vpminsw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3020
+ ASMJIT_INST_3x(vpminsw, Vpminsw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3021
+ ASMJIT_INST_3x(vpminub, Vpminub, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3022
+ ASMJIT_INST_3x(vpminub, Vpminub, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3023
+ ASMJIT_INST_3x(vpminud, Vpminud, Vec, Vec, Vec) // AVX+ AVX512_F{kz|b32}
3024
+ ASMJIT_INST_3x(vpminud, Vpminud, Vec, Vec, Mem) // AVX+ AVX512_F{kz|b32}
3025
+ ASMJIT_INST_3x(vpminuq, Vpminuq, Vec, Vec, Vec) // AVX512_F{kz|b64}
3026
+ ASMJIT_INST_3x(vpminuq, Vpminuq, Vec, Vec, Mem) // AVX512_F{kz|b64}
3027
+ ASMJIT_INST_3x(vpminuw, Vpminuw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3028
+ ASMJIT_INST_3x(vpminuw, Vpminuw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3029
+ ASMJIT_INST_2x(vpmovb2m, Vpmovb2m, KReg, Vec) // AVX512_BW
3030
+ ASMJIT_INST_2x(vpmovd2m, Vpmovd2m, KReg, Vec) // AVX512_DQ
3031
+ ASMJIT_INST_2x(vpmovdb, Vpmovdb, Vec, Vec) // AVX512_F{kz}
3032
+ ASMJIT_INST_2x(vpmovdb, Vpmovdb, Mem, Vec) // AVX512_F{kz}
3033
+ ASMJIT_INST_2x(vpmovdw, Vpmovdw, Vec, Vec) // AVX512_F{kz}
3034
+ ASMJIT_INST_2x(vpmovdw, Vpmovdw, Mem, Vec) // AVX512_F{kz}
3035
+ ASMJIT_INST_2x(vpmovm2b, Vpmovm2b, Vec, KReg) // AVX512_BW
3036
+ ASMJIT_INST_2x(vpmovm2d, Vpmovm2d, Vec, KReg) // AVX512_DQ
3037
+ ASMJIT_INST_2x(vpmovm2q, Vpmovm2q, Vec, KReg) // AVX512_DQ
3038
+ ASMJIT_INST_2x(vpmovm2w, Vpmovm2w, Vec, KReg) // AVX512_BW
3039
+ ASMJIT_INST_2x(vpmovmskb, Vpmovmskb, Gp, Vec) // AVX+
3040
+ ASMJIT_INST_2x(vpmovq2m, Vpmovq2m, KReg, Vec) // AVX512_DQ
3041
+ ASMJIT_INST_2x(vpmovqb, Vpmovqb, Vec, Vec) // AVX512_F{kz}
3042
+ ASMJIT_INST_2x(vpmovqb, Vpmovqb, Mem, Vec) // AVX512_F{kz}
3043
+ ASMJIT_INST_2x(vpmovqd, Vpmovqd, Vec, Vec) // AVX512_F{kz}
3044
+ ASMJIT_INST_2x(vpmovqd, Vpmovqd, Mem, Vec) // AVX512_F{kz}
3045
+ ASMJIT_INST_2x(vpmovqw, Vpmovqw, Vec, Vec) // AVX512_F{kz}
3046
+ ASMJIT_INST_2x(vpmovqw, Vpmovqw, Mem, Vec) // AVX512_F{kz}
3047
+ ASMJIT_INST_2x(vpmovsdb, Vpmovsdb, Vec, Vec) // AVX512_F{kz}
3048
+ ASMJIT_INST_2x(vpmovsdb, Vpmovsdb, Mem, Vec) // AVX512_F{kz}
3049
+ ASMJIT_INST_2x(vpmovsdw, Vpmovsdw, Vec, Vec) // AVX512_F{kz}
3050
+ ASMJIT_INST_2x(vpmovsdw, Vpmovsdw, Mem, Vec) // AVX512_F{kz}
3051
+ ASMJIT_INST_2x(vpmovsqb, Vpmovsqb, Vec, Vec) // AVX512_F{kz}
3052
+ ASMJIT_INST_2x(vpmovsqb, Vpmovsqb, Mem, Vec) // AVX512_F{kz}
3053
+ ASMJIT_INST_2x(vpmovsqd, Vpmovsqd, Vec, Vec) // AVX512_F{kz}
3054
+ ASMJIT_INST_2x(vpmovsqd, Vpmovsqd, Mem, Vec) // AVX512_F{kz}
3055
+ ASMJIT_INST_2x(vpmovsqw, Vpmovsqw, Vec, Vec) // AVX512_F{kz}
3056
+ ASMJIT_INST_2x(vpmovsqw, Vpmovsqw, Mem, Vec) // AVX512_F{kz}
3057
+ ASMJIT_INST_2x(vpmovswb, Vpmovswb, Vec, Vec) // AVX512_BW{kz}
3058
+ ASMJIT_INST_2x(vpmovswb, Vpmovswb, Mem, Vec) // AVX512_BW{kz}
3059
+ ASMJIT_INST_2x(vpmovsxbd, Vpmovsxbd, Vec, Vec) // AVX+ AVX512_F{kz}
3060
+ ASMJIT_INST_2x(vpmovsxbd, Vpmovsxbd, Vec, Mem) // AVX+ AVX512_F{kz}
3061
+ ASMJIT_INST_2x(vpmovsxbq, Vpmovsxbq, Vec, Vec) // AVX+ AVX512_F{kz}
3062
+ ASMJIT_INST_2x(vpmovsxbq, Vpmovsxbq, Vec, Mem) // AVX+ AVX512_F{kz}
3063
+ ASMJIT_INST_2x(vpmovsxbw, Vpmovsxbw, Vec, Vec) // AVX+ AVX512_BW{kz}
3064
+ ASMJIT_INST_2x(vpmovsxbw, Vpmovsxbw, Vec, Mem) // AVX+ AVX512_BW{kz}
3065
+ ASMJIT_INST_2x(vpmovsxdq, Vpmovsxdq, Vec, Vec) // AVX+ AVX512_F{kz}
3066
+ ASMJIT_INST_2x(vpmovsxdq, Vpmovsxdq, Vec, Mem) // AVX+ AVX512_F{kz}
3067
+ ASMJIT_INST_2x(vpmovsxwd, Vpmovsxwd, Vec, Vec) // AVX+ AVX512_F{kz}
3068
+ ASMJIT_INST_2x(vpmovsxwd, Vpmovsxwd, Vec, Mem) // AVX+ AVX512_F{kz}
3069
+ ASMJIT_INST_2x(vpmovsxwq, Vpmovsxwq, Vec, Vec) // AVX+ AVX512_F{kz}
3070
+ ASMJIT_INST_2x(vpmovsxwq, Vpmovsxwq, Vec, Mem) // AVX+ AVX512_F{kz}
3071
+ ASMJIT_INST_2x(vpmovusdb, Vpmovusdb, Vec, Vec) // AVX512_F{kz}
3072
+ ASMJIT_INST_2x(vpmovusdb, Vpmovusdb, Mem, Vec) // AVX512_F{kz}
3073
+ ASMJIT_INST_2x(vpmovusdw, Vpmovusdw, Vec, Vec) // AVX512_F{kz}
3074
+ ASMJIT_INST_2x(vpmovusdw, Vpmovusdw, Mem, Vec) // AVX512_F{kz}
3075
+ ASMJIT_INST_2x(vpmovusqb, Vpmovusqb, Vec, Vec) // AVX512_F{kz}
3076
+ ASMJIT_INST_2x(vpmovusqb, Vpmovusqb, Mem, Vec) // AVX512_F{kz}
3077
+ ASMJIT_INST_2x(vpmovusqd, Vpmovusqd, Vec, Vec) // AVX512_F{kz}
3078
+ ASMJIT_INST_2x(vpmovusqd, Vpmovusqd, Mem, Vec) // AVX512_F{kz}
3079
+ ASMJIT_INST_2x(vpmovusqw, Vpmovusqw, Vec, Vec) // AVX512_F{kz}
3080
+ ASMJIT_INST_2x(vpmovusqw, Vpmovusqw, Mem, Vec) // AVX512_F{kz}
3081
+ ASMJIT_INST_2x(vpmovuswb, Vpmovuswb, Vec, Vec) // AVX512_BW{kz}
3082
+ ASMJIT_INST_2x(vpmovuswb, Vpmovuswb, Mem, Vec) // AVX512_BW{kz}
3083
+ ASMJIT_INST_2x(vpmovw2m, Vpmovw2m, KReg, Vec) // AVX512_BW
3084
+ ASMJIT_INST_2x(vpmovwb, Vpmovwb, Vec, Vec) // AVX512_BW{kz}
3085
+ ASMJIT_INST_2x(vpmovwb, Vpmovwb, Mem, Vec) // AVX512_BW{kz}
3086
+ ASMJIT_INST_2x(vpmovzxbd, Vpmovzxbd, Vec, Vec) // AVX+ AVX512_F{kz}
3087
+ ASMJIT_INST_2x(vpmovzxbd, Vpmovzxbd, Vec, Mem) // AVX+ AVX512_F{kz}
3088
+ ASMJIT_INST_2x(vpmovzxbq, Vpmovzxbq, Vec, Vec) // AVX+ AVX512_F{kz}
3089
+ ASMJIT_INST_2x(vpmovzxbq, Vpmovzxbq, Vec, Mem) // AVX+ AVX512_F{kz}
3090
+ ASMJIT_INST_2x(vpmovzxbw, Vpmovzxbw, Vec, Vec) // AVX+ AVX512_BW{kz}
3091
+ ASMJIT_INST_2x(vpmovzxbw, Vpmovzxbw, Vec, Mem) // AVX+ AVX512_BW{kz}
3092
+ ASMJIT_INST_2x(vpmovzxdq, Vpmovzxdq, Vec, Vec) // AVX+ AVX512_F{kz}
3093
+ ASMJIT_INST_2x(vpmovzxdq, Vpmovzxdq, Vec, Mem) // AVX+ AVX512_F{kz}
3094
+ ASMJIT_INST_2x(vpmovzxwd, Vpmovzxwd, Vec, Vec) // AVX+ AVX512_F{kz}
3095
+ ASMJIT_INST_2x(vpmovzxwd, Vpmovzxwd, Vec, Mem) // AVX+ AVX512_F{kz}
3096
+ ASMJIT_INST_2x(vpmovzxwq, Vpmovzxwq, Vec, Vec) // AVX+ AVX512_F{kz}
3097
+ ASMJIT_INST_2x(vpmovzxwq, Vpmovzxwq, Vec, Mem) // AVX+ AVX512_F{kz}
3098
+ ASMJIT_INST_3x(vpmuldq, Vpmuldq, Vec, Vec, Vec) // AVX AVX512_F{kz|b64}
3099
+ ASMJIT_INST_3x(vpmuldq, Vpmuldq, Vec, Vec, Mem) // AVX AVX512_F{kz|b64}
3100
+ ASMJIT_INST_3x(vpmulhrsw, Vpmulhrsw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3101
+ ASMJIT_INST_3x(vpmulhrsw, Vpmulhrsw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3102
+ ASMJIT_INST_3x(vpmulhuw, Vpmulhuw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3103
+ ASMJIT_INST_3x(vpmulhuw, Vpmulhuw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3104
+ ASMJIT_INST_3x(vpmulhw, Vpmulhw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3105
+ ASMJIT_INST_3x(vpmulhw, Vpmulhw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3106
+ ASMJIT_INST_3x(vpmulld, Vpmulld, Vec, Vec, Vec) // AVX+ AVX512_F{kz|b32}
3107
+ ASMJIT_INST_3x(vpmulld, Vpmulld, Vec, Vec, Mem) // AVX+ AVX512_F{kz|b32}
3108
+ ASMJIT_INST_3x(vpmullq, Vpmullq, Vec, Vec, Vec) // AVX512_DQ{kz|b64}
3109
+ ASMJIT_INST_3x(vpmullq, Vpmullq, Vec, Vec, Mem) // AVX512_DQ{kz|b64}
3110
+ ASMJIT_INST_3x(vpmullw, Vpmullw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3111
+ ASMJIT_INST_3x(vpmullw, Vpmullw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3112
+ ASMJIT_INST_3x(vpmultishiftqb, Vpmultishiftqb, Vec, Vec, Vec) // AVX512_VBMI{kz|b64}
3113
+ ASMJIT_INST_3x(vpmultishiftqb, Vpmultishiftqb, Vec, Vec, Mem) // AVX512_VBMI{kz|b64}
3114
+ ASMJIT_INST_3x(vpmuludq, Vpmuludq, Vec, Vec, Vec) // AVX+ AVX512_F{kz|b64}
3115
+ ASMJIT_INST_3x(vpmuludq, Vpmuludq, Vec, Vec, Mem) // AVX+ AVX512_F{kz|b64}
3116
+ ASMJIT_INST_2x(vpopcntb, Vpopcntb, Vec, Vec) // AVX512_BITALG{kz|b32}
3117
+ ASMJIT_INST_2x(vpopcntb, Vpopcntb, Vec, Mem) // AVX512_BITALG{kz|b32}
3118
+ ASMJIT_INST_2x(vpopcntd, Vpopcntd, Vec, Vec) // AVX512_VPOPCNTDQ{kz|b32}
3119
+ ASMJIT_INST_2x(vpopcntd, Vpopcntd, Vec, Mem) // AVX512_VPOPCNTDQ{kz|b32}
3120
+ ASMJIT_INST_2x(vpopcntq, Vpopcntq, Vec, Vec) // AVX512_VPOPCNTDQ{kz|b64}
3121
+ ASMJIT_INST_2x(vpopcntq, Vpopcntq, Vec, Mem) // AVX512_VPOPCNTDQ{kz|b64}
3122
+ ASMJIT_INST_2x(vpopcntw, Vpopcntw, Vec, Vec) // AVX512_BITALG{kz|b32}
3123
+ ASMJIT_INST_2x(vpopcntw, Vpopcntw, Vec, Mem) // AVX512_BITALG{kz|b32}
3124
+ ASMJIT_INST_3x(vpor, Vpor, Vec, Vec, Vec) // AV+
3125
+ ASMJIT_INST_3x(vpor, Vpor, Vec, Vec, Mem) // AVX+
3126
+ ASMJIT_INST_3x(vpord, Vpord, Vec, Vec, Vec) // AVX512_F{kz|b32}
3127
+ ASMJIT_INST_3x(vpord, Vpord, Vec, Vec, Mem) // AVX512_F{kz|b32}
3128
+ ASMJIT_INST_3x(vporq, Vporq, Vec, Vec, Vec) // AVX512_F{kz|b64}
3129
+ ASMJIT_INST_3x(vporq, Vporq, Vec, Vec, Mem) // AVX512_F{kz|b64}
3130
+ ASMJIT_INST_3x(vprold, Vprold, Vec, Vec, Imm) // AVX512_F{kz|b32}
3131
+ ASMJIT_INST_3x(vprold, Vprold, Vec, Mem, Imm) // AVX512_F{kz|b32}
3132
+ ASMJIT_INST_3x(vprolq, Vprolq, Vec, Vec, Imm) // AVX512_F{kz|b64}
3133
+ ASMJIT_INST_3x(vprolq, Vprolq, Vec, Mem, Imm) // AVX512_F{kz|b64}
3134
+ ASMJIT_INST_3x(vprolvd, Vprolvd, Vec, Vec, Vec) // AVX512_F{kz|b32}
3135
+ ASMJIT_INST_3x(vprolvd, Vprolvd, Vec, Vec, Mem) // AVX512_F{kz|b32}
3136
+ ASMJIT_INST_3x(vprolvq, Vprolvq, Vec, Vec, Vec) // AVX512_F{kz|b64}
3137
+ ASMJIT_INST_3x(vprolvq, Vprolvq, Vec, Vec, Mem) // AVX512_F{kz|b64}
3138
+ ASMJIT_INST_3x(vprord, Vprord, Vec, Vec, Imm) // AVX512_F{kz|b32}
3139
+ ASMJIT_INST_3x(vprord, Vprord, Vec, Mem, Imm) // AVX512_F{kz|b32}
3140
+ ASMJIT_INST_3x(vprorq, Vprorq, Vec, Vec, Imm) // AVX512_F{kz|b64}
3141
+ ASMJIT_INST_3x(vprorq, Vprorq, Vec, Mem, Imm) // AVX512_F{kz|b64}
3142
+ ASMJIT_INST_3x(vprorvd, Vprorvd, Vec, Vec, Vec) // AVX512_F{kz|b32}
3143
+ ASMJIT_INST_3x(vprorvd, Vprorvd, Vec, Vec, Mem) // AVX512_F{kz|b32}
3144
+ ASMJIT_INST_3x(vprorvq, Vprorvq, Vec, Vec, Vec) // AVX512_F{kz|b64}
3145
+ ASMJIT_INST_3x(vprorvq, Vprorvq, Vec, Vec, Mem) // AVX512_F{kz|b64}
3146
+ ASMJIT_INST_3x(vpsadbw, Vpsadbw, Vec, Vec, Vec) // AVX+ AVX512_BW
3147
+ ASMJIT_INST_3x(vpsadbw, Vpsadbw, Vec, Vec, Mem) // AVX+ AVX512_BW
3148
+ ASMJIT_INST_2x(vpscatterdd, Vpscatterdd, Mem, Vec) // AVX512_F{k}
3149
+ ASMJIT_INST_2x(vpscatterdq, Vpscatterdq, Mem, Vec) // AVX512_F{k}
3150
+ ASMJIT_INST_2x(vpscatterqd, Vpscatterqd, Mem, Vec) // AVX512_F{k}
3151
+ ASMJIT_INST_2x(vpscatterqq, Vpscatterqq, Mem, Vec) // AVX512_F{k}
3152
+ ASMJIT_INST_4x(vpshldd, Vpshldd, Vec, Vec, Vec, Imm) // AVX512_VBMI2{kz}
3153
+ ASMJIT_INST_4x(vpshldd, Vpshldd, Vec, Vec, Mem, Imm) // AVX512_VBMI2{kz}
3154
+ ASMJIT_INST_4x(vpshldq, Vpshldq, Vec, Vec, Vec, Imm) // AVX512_VBMI2{kz}
3155
+ ASMJIT_INST_4x(vpshldq, Vpshldq, Vec, Vec, Mem, Imm) // AVX512_VBMI2{kz}
3156
+ ASMJIT_INST_3x(vpshldvd, Vpshldvd, Vec, Vec, Vec) // AVX512_VBMI2{kz}
3157
+ ASMJIT_INST_3x(vpshldvd, Vpshldvd, Vec, Vec, Mem) // AVX512_VBMI2{kz}
3158
+ ASMJIT_INST_3x(vpshldvq, Vpshldvq, Vec, Vec, Vec) // AVX512_VBMI2{kz}
3159
+ ASMJIT_INST_3x(vpshldvq, Vpshldvq, Vec, Vec, Mem) // AVX512_VBMI2{kz}
3160
+ ASMJIT_INST_3x(vpshldvw, Vpshldvw, Vec, Vec, Vec) // AVX512_VBMI2{kz}
3161
+ ASMJIT_INST_3x(vpshldvw, Vpshldvw, Vec, Vec, Mem) // AVX512_VBMI2{kz}
3162
+ ASMJIT_INST_4x(vpshldw, Vpshldw, Vec, Vec, Vec, Imm) // AVX512_VBMI2{kz}
3163
+ ASMJIT_INST_4x(vpshldw, Vpshldw, Vec, Vec, Mem, Imm) // AVX512_VBMI2{kz}
3164
+ ASMJIT_INST_4x(vpshrdd, Vpshrdd, Vec, Vec, Vec, Imm) // AVX512_VBMI2{kz}
3165
+ ASMJIT_INST_4x(vpshrdd, Vpshrdd, Vec, Vec, Mem, Imm) // AVX512_VBMI2{kz}
3166
+ ASMJIT_INST_4x(vpshrdq, Vpshrdq, Vec, Vec, Vec, Imm) // AVX512_VBMI2{kz}
3167
+ ASMJIT_INST_4x(vpshrdq, Vpshrdq, Vec, Vec, Mem, Imm) // AVX512_VBMI2{kz}
3168
+ ASMJIT_INST_3x(vpshrdvd, Vpshrdvd, Vec, Vec, Vec) // AVX512_VBMI2{kz}
3169
+ ASMJIT_INST_3x(vpshrdvd, Vpshrdvd, Vec, Vec, Mem) // AVX512_VBMI2{kz}
3170
+ ASMJIT_INST_3x(vpshrdvq, Vpshrdvq, Vec, Vec, Vec) // AVX512_VBMI2{kz}
3171
+ ASMJIT_INST_3x(vpshrdvq, Vpshrdvq, Vec, Vec, Mem) // AVX512_VBMI2{kz}
3172
+ ASMJIT_INST_3x(vpshrdvw, Vpshrdvw, Vec, Vec, Vec) // AVX512_VBMI2{kz}
3173
+ ASMJIT_INST_3x(vpshrdvw, Vpshrdvw, Vec, Vec, Mem) // AVX512_VBMI2{kz}
3174
+ ASMJIT_INST_4x(vpshrdw, Vpshrdw, Vec, Vec, Vec, Imm) // AVX512_VBMI2{kz}
3175
+ ASMJIT_INST_4x(vpshrdw, Vpshrdw, Vec, Vec, Mem, Imm) // AVX512_VBMI2{kz}
3176
+ ASMJIT_INST_3x(vpshufb, Vpshufb, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3177
+ ASMJIT_INST_3x(vpshufb, Vpshufb, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3178
+ ASMJIT_INST_3x(vpshufbitqmb, Vpshufbitqmb, KReg, Vec, Vec) // AVX512_BITALG{k}
3179
+ ASMJIT_INST_3x(vpshufbitqmb, Vpshufbitqmb, KReg, Vec, Mem) // AVX512_BITALG{k}
3180
+ ASMJIT_INST_3x(vpshufd, Vpshufd, Vec, Vec, Imm) // AVX+ AVX512_F{kz|b32}
3181
+ ASMJIT_INST_3x(vpshufd, Vpshufd, Vec, Mem, Imm) // AVX+ AVX512_F{kz|b32}
3182
+ ASMJIT_INST_3x(vpshufhw, Vpshufhw, Vec, Vec, Imm) // AVX+ AVX512_BW{kz}
3183
+ ASMJIT_INST_3x(vpshufhw, Vpshufhw, Vec, Mem, Imm) // AVX+ AVX512_BW{kz}
3184
+ ASMJIT_INST_3x(vpshuflw, Vpshuflw, Vec, Vec, Imm) // AVX+ AVX512_BW{kz}
3185
+ ASMJIT_INST_3x(vpshuflw, Vpshuflw, Vec, Mem, Imm) // AVX+ AVX512_BW{kz}
3186
+ ASMJIT_INST_3x(vpsignb, Vpsignb, Vec, Vec, Vec) // AVX+
3187
+ ASMJIT_INST_3x(vpsignb, Vpsignb, Vec, Vec, Mem) // AVX+
3188
+ ASMJIT_INST_3x(vpsignd, Vpsignd, Vec, Vec, Vec) // AVX+
3189
+ ASMJIT_INST_3x(vpsignd, Vpsignd, Vec, Vec, Mem) // AVX+
3190
+ ASMJIT_INST_3x(vpsignw, Vpsignw, Vec, Vec, Vec) // AVX+
3191
+ ASMJIT_INST_3x(vpsignw, Vpsignw, Vec, Vec, Mem) // AVX+
3192
+ ASMJIT_INST_3x(vpslld, Vpslld, Vec, Vec, Imm) // AVX+ AVX512_F{kz|b32}
3193
+ ASMJIT_INST_3x(vpslld, Vpslld, Vec, Vec, Vec) // AVX+ AVX512_F{kz}
3194
+ ASMJIT_INST_3x(vpslld, Vpslld, Vec, Vec, Mem) // AVX+ AVX512_F{kz}
3195
+ ASMJIT_INST_3x(vpslld, Vpslld, Vec, Mem, Imm) // AVX512_F{kz|b32}
3196
+ ASMJIT_INST_3x(vpslldq, Vpslldq, Vec, Vec, Imm) // AVX+ AVX512_BW
3197
+ ASMJIT_INST_3x(vpslldq, Vpslldq, Vec, Mem, Imm) // AVX512_BW
3198
+ ASMJIT_INST_3x(vpsllq, Vpsllq, Vec, Vec, Imm) // AVX+ AVX512_F{kz|b64}
3199
+ ASMJIT_INST_3x(vpsllq, Vpsllq, Vec, Vec, Vec) // AVX+ AVX512_F{kz}
3200
+ ASMJIT_INST_3x(vpsllq, Vpsllq, Vec, Vec, Mem) // AVX+ AVX512_F{kz}
3201
+ ASMJIT_INST_3x(vpsllq, Vpsllq, Vec, Mem, Imm) // AVX512_F{kz|b64}
3202
+ ASMJIT_INST_3x(vpsllvd, Vpsllvd, Vec, Vec, Vec) // AVX2 AVX512_F{kz|b32}
3203
+ ASMJIT_INST_3x(vpsllvd, Vpsllvd, Vec, Vec, Mem) // AVX2 AVX512_F{kz|b32}
3204
+ ASMJIT_INST_3x(vpsllvq, Vpsllvq, Vec, Vec, Vec) // AVX2 AVX512_F{kz|b64}
3205
+ ASMJIT_INST_3x(vpsllvq, Vpsllvq, Vec, Vec, Mem) // AVX2 AVX512_F{kz|b64}
3206
+ ASMJIT_INST_3x(vpsllvw, Vpsllvw, Vec, Vec, Vec) // AVX512_BW{kz}
3207
+ ASMJIT_INST_3x(vpsllvw, Vpsllvw, Vec, Vec, Mem) // AVX512_BW{kz}
3208
+ ASMJIT_INST_3x(vpsllw, Vpsllw, Vec, Vec, Imm) // AVX+ AVX512_BW{kz}
3209
+ ASMJIT_INST_3x(vpsllw, Vpsllw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3210
+ ASMJIT_INST_3x(vpsllw, Vpsllw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3211
+ ASMJIT_INST_3x(vpsllw, Vpsllw, Vec, Mem, Imm) // AVX512_BW{kz}
3212
+ ASMJIT_INST_3x(vpsrad, Vpsrad, Vec, Vec, Imm) // AVX+ AVX512_F{kz|b32}
3213
+ ASMJIT_INST_3x(vpsrad, Vpsrad, Vec, Vec, Vec) // AVX+ AVX512_F{kz}
3214
+ ASMJIT_INST_3x(vpsrad, Vpsrad, Vec, Vec, Mem) // AVX+ AVX512_F{kz}
3215
+ ASMJIT_INST_3x(vpsrad, Vpsrad, Vec, Mem, Imm) // AVX512_F{kz|b32}
3216
+ ASMJIT_INST_3x(vpsraq, Vpsraq, Vec, Vec, Vec) // AVX512_F{kz}
3217
+ ASMJIT_INST_3x(vpsraq, Vpsraq, Vec, Vec, Mem) // AVX512_F{kz}
3218
+ ASMJIT_INST_3x(vpsraq, Vpsraq, Vec, Vec, Imm) // AVX512_F{kz|b64}
3219
+ ASMJIT_INST_3x(vpsraq, Vpsraq, Vec, Mem, Imm) // AVX512_F{kz|b64}
3220
+ ASMJIT_INST_3x(vpsravd, Vpsravd, Vec, Vec, Vec) // AVX2 AVX512_F{kz|b32}
3221
+ ASMJIT_INST_3x(vpsravd, Vpsravd, Vec, Vec, Mem) // AVX2 AVX512_F{kz|b32}
3222
+ ASMJIT_INST_3x(vpsravq, Vpsravq, Vec, Vec, Vec) // AVX512_F{kz|b64}
3223
+ ASMJIT_INST_3x(vpsravq, Vpsravq, Vec, Vec, Mem) // AVX512_F{kz|b64}
3224
+ ASMJIT_INST_3x(vpsravw, Vpsravw, Vec, Vec, Vec) // AVX512_BW{kz}
3225
+ ASMJIT_INST_3x(vpsravw, Vpsravw, Vec, Vec, Mem) // AVX512_BW{kz}
3226
+ ASMJIT_INST_3x(vpsraw, Vpsraw, Vec, Vec, Imm) // AVX+ AVX512_BW{kz}
3227
+ ASMJIT_INST_3x(vpsraw, Vpsraw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3228
+ ASMJIT_INST_3x(vpsraw, Vpsraw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3229
+ ASMJIT_INST_3x(vpsraw, Vpsraw, Vec, Mem, Imm) // AVX512_BW{kz}
3230
+ ASMJIT_INST_3x(vpsrld, Vpsrld, Vec, Vec, Imm) // AVX+ AVX512_F{kz|b32}
3231
+ ASMJIT_INST_3x(vpsrld, Vpsrld, Vec, Vec, Vec) // AVX+ AVX512_F{kz}
3232
+ ASMJIT_INST_3x(vpsrld, Vpsrld, Vec, Vec, Mem) // AVX+ AVX512_F{kz}
3233
+ ASMJIT_INST_3x(vpsrld, Vpsrld, Vec, Mem, Imm) // AVX512_F{kz|b32}
3234
+ ASMJIT_INST_3x(vpsrldq, Vpsrldq, Vec, Vec, Imm) // AVX+ AVX512_BW
3235
+ ASMJIT_INST_3x(vpsrldq, Vpsrldq, Vec, Mem, Imm) // AVX512_BW
3236
+ ASMJIT_INST_3x(vpsrlq, Vpsrlq, Vec, Vec, Imm) // AVX AVX512_F{kz|b64}
3237
+ ASMJIT_INST_3x(vpsrlq, Vpsrlq, Vec, Vec, Vec) // AVX AVX512_F{kz}
3238
+ ASMJIT_INST_3x(vpsrlq, Vpsrlq, Vec, Vec, Mem) // AVX AVX512_F{kz}
3239
+ ASMJIT_INST_3x(vpsrlq, Vpsrlq, Vec, Mem, Imm) // AVX512_F{kz|b64}
3240
+ ASMJIT_INST_3x(vpsrlvd, Vpsrlvd, Vec, Vec, Vec) // AVX2 AVX512_F{kz|b32}
3241
+ ASMJIT_INST_3x(vpsrlvd, Vpsrlvd, Vec, Vec, Mem) // AVX2 AVX512_F{kz|b32}
3242
+ ASMJIT_INST_3x(vpsrlvq, Vpsrlvq, Vec, Vec, Vec) // AVX2 AVX512_F{kz|b64}
3243
+ ASMJIT_INST_3x(vpsrlvq, Vpsrlvq, Vec, Vec, Mem) // AVX2 AVX512_F{kz|b64}
3244
+ ASMJIT_INST_3x(vpsrlvw, Vpsrlvw, Vec, Vec, Vec) // AVX512_BW{kz}
3245
+ ASMJIT_INST_3x(vpsrlvw, Vpsrlvw, Vec, Vec, Mem) // AVX512_BW{kz}
3246
+ ASMJIT_INST_3x(vpsrlw, Vpsrlw, Vec, Vec, Imm) // AVX+ AVX512_BW{kz}
3247
+ ASMJIT_INST_3x(vpsrlw, Vpsrlw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3248
+ ASMJIT_INST_3x(vpsrlw, Vpsrlw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3249
+ ASMJIT_INST_3x(vpsrlw, Vpsrlw, Vec, Mem, Imm) // AVX512_BW{kz}
3250
+ ASMJIT_INST_3x(vpsubb, Vpsubb, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3251
+ ASMJIT_INST_3x(vpsubb, Vpsubb, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3252
+ ASMJIT_INST_3x(vpsubd, Vpsubd, Vec, Vec, Vec) // AVX+ AVX512_F{kz|b32}
3253
+ ASMJIT_INST_3x(vpsubd, Vpsubd, Vec, Vec, Mem) // AVX+ AVX512_F{kz|b32}
3254
+ ASMJIT_INST_3x(vpsubq, Vpsubq, Vec, Vec, Vec) // AVX+ AVX512_F{kz|b64}
3255
+ ASMJIT_INST_3x(vpsubq, Vpsubq, Vec, Vec, Mem) // AVX+ AVX512_F{kz|b64}
3256
+ ASMJIT_INST_3x(vpsubsb, Vpsubsb, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3257
+ ASMJIT_INST_3x(vpsubsb, Vpsubsb, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3258
+ ASMJIT_INST_3x(vpsubsw, Vpsubsw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3259
+ ASMJIT_INST_3x(vpsubsw, Vpsubsw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3260
+ ASMJIT_INST_3x(vpsubusb, Vpsubusb, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3261
+ ASMJIT_INST_3x(vpsubusb, Vpsubusb, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3262
+ ASMJIT_INST_3x(vpsubusw, Vpsubusw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3263
+ ASMJIT_INST_3x(vpsubusw, Vpsubusw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3264
+ ASMJIT_INST_3x(vpsubw, Vpsubw, Vec, Vec, Vec) // AVX AVX512_BW{kz}
3265
+ ASMJIT_INST_3x(vpsubw, Vpsubw, Vec, Vec, Mem) // AVX AVX512_BW{kz}
3266
+ ASMJIT_INST_4x(vpternlogd, Vpternlogd, Vec, Vec, Vec, Imm) // AVX512_F{kz|b32}
3267
+ ASMJIT_INST_4x(vpternlogd, Vpternlogd, Vec, Vec, Mem, Imm) // AVX512_F{kz|b32}
3268
+ ASMJIT_INST_4x(vpternlogq, Vpternlogq, Vec, Vec, Vec, Imm) // AVX512_F{kz|b64}
3269
+ ASMJIT_INST_4x(vpternlogq, Vpternlogq, Vec, Vec, Mem, Imm) // AVX512_F{kz|b64}
3270
+ ASMJIT_INST_2x(vptest, Vptest, Vec, Vec) // AVX
3271
+ ASMJIT_INST_2x(vptest, Vptest, Vec, Mem) // AVX
3272
+ ASMJIT_INST_3x(vptestmb, Vptestmb, KReg, Vec, Vec) // AVX512_BW{k}
3273
+ ASMJIT_INST_3x(vptestmb, Vptestmb, KReg, Vec, Mem) // AVX512_BW{k}
3274
+ ASMJIT_INST_3x(vptestmd, Vptestmd, KReg, Vec, Vec) // AVX512_F{k|b32}
3275
+ ASMJIT_INST_3x(vptestmd, Vptestmd, KReg, Vec, Mem) // AVX512_F{k|b32}
3276
+ ASMJIT_INST_3x(vptestmq, Vptestmq, KReg, Vec, Vec) // AVX512_F{k|b64}
3277
+ ASMJIT_INST_3x(vptestmq, Vptestmq, KReg, Vec, Mem) // AVX512_F{k|b64}
3278
+ ASMJIT_INST_3x(vptestmw, Vptestmw, KReg, Vec, Vec) // AVX512_BW{k}
3279
+ ASMJIT_INST_3x(vptestmw, Vptestmw, KReg, Vec, Mem) // AVX512_BW{k}
3280
+ ASMJIT_INST_3x(vptestnmb, Vptestnmb, KReg, Vec, Vec) // AVX512_BW{k}
3281
+ ASMJIT_INST_3x(vptestnmb, Vptestnmb, KReg, Vec, Mem) // AVX512_BW{k}
3282
+ ASMJIT_INST_3x(vptestnmd, Vptestnmd, KReg, Vec, Vec) // AVX512_F{k|b32}
3283
+ ASMJIT_INST_3x(vptestnmd, Vptestnmd, KReg, Vec, Mem) // AVX512_F{k|b32}
3284
+ ASMJIT_INST_3x(vptestnmq, Vptestnmq, KReg, Vec, Vec) // AVX512_F{k|b64}
3285
+ ASMJIT_INST_3x(vptestnmq, Vptestnmq, KReg, Vec, Mem) // AVX512_F{k|b64}
3286
+ ASMJIT_INST_3x(vptestnmw, Vptestnmw, KReg, Vec, Vec) // AVX512_BW{k}
3287
+ ASMJIT_INST_3x(vptestnmw, Vptestnmw, KReg, Vec, Mem) // AVX512_BW{k}
3288
+ ASMJIT_INST_3x(vpunpckhbw, Vpunpckhbw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3289
+ ASMJIT_INST_3x(vpunpckhbw, Vpunpckhbw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3290
+ ASMJIT_INST_3x(vpunpckhdq, Vpunpckhdq, Vec, Vec, Vec) // AVX+ AVX512_F{kz|b32}
3291
+ ASMJIT_INST_3x(vpunpckhdq, Vpunpckhdq, Vec, Vec, Mem) // AVX+ AVX512_F{kz|b32}
3292
+ ASMJIT_INST_3x(vpunpckhqdq, Vpunpckhqdq, Vec, Vec, Vec) // AVX+ AVX512_F{kz|b64}
3293
+ ASMJIT_INST_3x(vpunpckhqdq, Vpunpckhqdq, Vec, Vec, Mem) // AVX+ AVX512_F{kz|b64}
3294
+ ASMJIT_INST_3x(vpunpckhwd, Vpunpckhwd, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3295
+ ASMJIT_INST_3x(vpunpckhwd, Vpunpckhwd, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3296
+ ASMJIT_INST_3x(vpunpcklbw, Vpunpcklbw, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3297
+ ASMJIT_INST_3x(vpunpcklbw, Vpunpcklbw, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3298
+ ASMJIT_INST_3x(vpunpckldq, Vpunpckldq, Vec, Vec, Vec) // AVX+ AVX512_F{kz|b32}
3299
+ ASMJIT_INST_3x(vpunpckldq, Vpunpckldq, Vec, Vec, Mem) // AVX+ AVX512_F{kz|b32}
3300
+ ASMJIT_INST_3x(vpunpcklqdq, Vpunpcklqdq, Vec, Vec, Vec) // AVX+ AVX512_F{kz|b64}
3301
+ ASMJIT_INST_3x(vpunpcklqdq, Vpunpcklqdq, Vec, Vec, Mem) // AVX+ AVX512_F{kz|b64}
3302
+ ASMJIT_INST_3x(vpunpcklwd, Vpunpcklwd, Vec, Vec, Vec) // AVX+ AVX512_BW{kz}
3303
+ ASMJIT_INST_3x(vpunpcklwd, Vpunpcklwd, Vec, Vec, Mem) // AVX+ AVX512_BW{kz}
3304
+ ASMJIT_INST_3x(vpxor, Vpxor, Vec, Vec, Vec) // AVX+
3305
+ ASMJIT_INST_3x(vpxor, Vpxor, Vec, Vec, Mem) // AVX+
3306
+ ASMJIT_INST_3x(vpxord, Vpxord, Vec, Vec, Vec) // AVX512_F{kz|b32}
3307
+ ASMJIT_INST_3x(vpxord, Vpxord, Vec, Vec, Mem) // AVX512_F{kz|b32}
3308
+ ASMJIT_INST_3x(vpxorq, Vpxorq, Vec, Vec, Vec) // AVX512_F{kz|b64}
3309
+ ASMJIT_INST_3x(vpxorq, Vpxorq, Vec, Vec, Mem) // AVX512_F{kz|b64}
3310
+ ASMJIT_INST_4x(vrangepd, Vrangepd, Vec, Vec, Vec, Imm) // AVX512_DQ{kz|b64}
3311
+ ASMJIT_INST_4x(vrangepd, Vrangepd, Vec, Vec, Mem, Imm) // AVX512_DQ{kz|b64}
3312
+ ASMJIT_INST_4x(vrangeps, Vrangeps, Vec, Vec, Vec, Imm) // AVX512_DQ{kz|b32}
3313
+ ASMJIT_INST_4x(vrangeps, Vrangeps, Vec, Vec, Mem, Imm) // AVX512_DQ{kz|b32}
3314
+ ASMJIT_INST_4x(vrangesd, Vrangesd, Xmm, Xmm, Xmm, Imm) // AVX512_DQ{kz|sae}
3315
+ ASMJIT_INST_4x(vrangesd, Vrangesd, Xmm, Xmm, Mem, Imm) // AVX512_DQ{kz|sae}
3316
+ ASMJIT_INST_4x(vrangess, Vrangess, Xmm, Xmm, Xmm, Imm) // AVX512_DQ{kz|sae}
3317
+ ASMJIT_INST_4x(vrangess, Vrangess, Xmm, Xmm, Mem, Imm) // AVX512_DQ{kz|sae}
3318
+ ASMJIT_INST_2x(vrcp14pd, Vrcp14pd, Vec, Vec) // AVX512_F{kz|b64}
3319
+ ASMJIT_INST_2x(vrcp14pd, Vrcp14pd, Vec, Mem) // AVX512_F{kz|b64}
3320
+ ASMJIT_INST_2x(vrcp14ps, Vrcp14ps, Vec, Vec) // AVX512_F{kz|b32}
3321
+ ASMJIT_INST_2x(vrcp14ps, Vrcp14ps, Vec, Mem) // AVX512_F{kz|b32}
3322
+ ASMJIT_INST_3x(vrcp14sd, Vrcp14sd, Xmm, Xmm, Xmm) // AVX512_F{kz}
3323
+ ASMJIT_INST_3x(vrcp14sd, Vrcp14sd, Xmm, Xmm, Mem) // AVX512_F{kz}
3324
+ ASMJIT_INST_3x(vrcp14ss, Vrcp14ss, Xmm, Xmm, Xmm) // AVX512_F{kz}
3325
+ ASMJIT_INST_3x(vrcp14ss, Vrcp14ss, Xmm, Xmm, Mem) // AVX512_F{kz}
3326
+ ASMJIT_INST_2x(vrcp28pd, Vrcp28pd, Vec, Vec) // AVX512_ER{kz|sae|b64}
3327
+ ASMJIT_INST_2x(vrcp28pd, Vrcp28pd, Vec, Mem) // AVX512_ER{kz|sae|b64}
3328
+ ASMJIT_INST_2x(vrcp28ps, Vrcp28ps, Vec, Vec) // AVX512_ER{kz|sae|b32}
3329
+ ASMJIT_INST_2x(vrcp28ps, Vrcp28ps, Vec, Mem) // AVX512_ER{kz|sae|b32}
3330
+ ASMJIT_INST_3x(vrcp28sd, Vrcp28sd, Xmm, Xmm, Xmm) // AVX512_ER{kz|sae}
3331
+ ASMJIT_INST_3x(vrcp28sd, Vrcp28sd, Xmm, Xmm, Mem) // AVX512_ER{kz|sae}
3332
+ ASMJIT_INST_3x(vrcp28ss, Vrcp28ss, Xmm, Xmm, Xmm) // AVX512_ER{kz|sae}
3333
+ ASMJIT_INST_3x(vrcp28ss, Vrcp28ss, Xmm, Xmm, Mem) // AVX512_ER{kz|sae}
3334
+ ASMJIT_INST_2x(vrcpps, Vrcpps, Vec, Vec) // AVX
3335
+ ASMJIT_INST_2x(vrcpps, Vrcpps, Vec, Mem) // AVX
3336
+ ASMJIT_INST_3x(vrcpss, Vrcpss, Xmm, Xmm, Xmm) // AVX
3337
+ ASMJIT_INST_3x(vrcpss, Vrcpss, Xmm, Xmm, Mem) // AVX
3338
+ ASMJIT_INST_3x(vreducepd, Vreducepd, Vec, Vec, Imm) // AVX512_DQ{kz|b64}
3339
+ ASMJIT_INST_3x(vreducepd, Vreducepd, Vec, Mem, Imm) // AVX512_DQ{kz|b64}
3340
+ ASMJIT_INST_3x(vreduceps, Vreduceps, Vec, Vec, Imm) // AVX512_DQ{kz|b32}
3341
+ ASMJIT_INST_3x(vreduceps, Vreduceps, Vec, Mem, Imm) // AVX512_DQ{kz|b32}
3342
+ ASMJIT_INST_4x(vreducesd, Vreducesd, Xmm, Xmm, Xmm, Imm) // AVX512_DQ{kz}
3343
+ ASMJIT_INST_4x(vreducesd, Vreducesd, Xmm, Xmm, Mem, Imm) // AVX512_DQ{kz}
3344
+ ASMJIT_INST_4x(vreducess, Vreducess, Xmm, Xmm, Xmm, Imm) // AVX512_DQ{kz}
3345
+ ASMJIT_INST_4x(vreducess, Vreducess, Xmm, Xmm, Mem, Imm) // AVX512_DQ{kz}
3346
+ ASMJIT_INST_3x(vrndscalepd, Vrndscalepd, Vec, Vec, Imm) // AVX512_F{kz|b64}
3347
+ ASMJIT_INST_3x(vrndscalepd, Vrndscalepd, Vec, Mem, Imm) // AVX512_F{kz|b64}
3348
+ ASMJIT_INST_3x(vrndscaleps, Vrndscaleps, Vec, Vec, Imm) // AVX512_F{kz|b32}
3349
+ ASMJIT_INST_3x(vrndscaleps, Vrndscaleps, Vec, Mem, Imm) // AVX512_F{kz|b32}
3350
+ ASMJIT_INST_4x(vrndscalesd, Vrndscalesd, Xmm, Xmm, Xmm, Imm) // AVX512_F{kz|sae}
3351
+ ASMJIT_INST_4x(vrndscalesd, Vrndscalesd, Xmm, Xmm, Mem, Imm) // AVX512_F{kz|sae}
3352
+ ASMJIT_INST_4x(vrndscaless, Vrndscaless, Xmm, Xmm, Xmm, Imm) // AVX512_F{kz|sae}
3353
+ ASMJIT_INST_4x(vrndscaless, Vrndscaless, Xmm, Xmm, Mem, Imm) // AVX512_F{kz|sae}
3354
+ ASMJIT_INST_3x(vroundpd, Vroundpd, Vec, Vec, Imm) // AVX
3355
+ ASMJIT_INST_3x(vroundpd, Vroundpd, Vec, Mem, Imm) // AVX
3356
+ ASMJIT_INST_3x(vroundps, Vroundps, Vec, Vec, Imm) // AVX
3357
+ ASMJIT_INST_3x(vroundps, Vroundps, Vec, Mem, Imm) // AVX
3358
+ ASMJIT_INST_4x(vroundsd, Vroundsd, Xmm, Xmm, Xmm, Imm) // AVX
3359
+ ASMJIT_INST_4x(vroundsd, Vroundsd, Xmm, Xmm, Mem, Imm) // AVX
3360
+ ASMJIT_INST_4x(vroundss, Vroundss, Xmm, Xmm, Xmm, Imm) // AVX
3361
+ ASMJIT_INST_4x(vroundss, Vroundss, Xmm, Xmm, Mem, Imm) // AVX
3362
+ ASMJIT_INST_2x(vrsqrt14pd, Vrsqrt14pd, Vec, Vec) // AVX512_F{kz|b64}
3363
+ ASMJIT_INST_2x(vrsqrt14pd, Vrsqrt14pd, Vec, Mem) // AVX512_F{kz|b64}
3364
+ ASMJIT_INST_2x(vrsqrt14ps, Vrsqrt14ps, Vec, Vec) // AVX512_F{kz|b32}
3365
+ ASMJIT_INST_2x(vrsqrt14ps, Vrsqrt14ps, Vec, Mem) // AVX512_F{kz|b32}
3366
+ ASMJIT_INST_3x(vrsqrt14sd, Vrsqrt14sd, Xmm, Xmm, Xmm) // AVX512_F{kz}
3367
+ ASMJIT_INST_3x(vrsqrt14sd, Vrsqrt14sd, Xmm, Xmm, Mem) // AVX512_F{kz}
3368
+ ASMJIT_INST_3x(vrsqrt14ss, Vrsqrt14ss, Xmm, Xmm, Xmm) // AVX512_F{kz}
3369
+ ASMJIT_INST_3x(vrsqrt14ss, Vrsqrt14ss, Xmm, Xmm, Mem) // AVX512_F{kz}
3370
+ ASMJIT_INST_2x(vrsqrt28pd, Vrsqrt28pd, Vec, Vec) // AVX512_ER{kz|sae|b64}
3371
+ ASMJIT_INST_2x(vrsqrt28pd, Vrsqrt28pd, Vec, Mem) // AVX512_ER{kz|sae|b64}
3372
+ ASMJIT_INST_2x(vrsqrt28ps, Vrsqrt28ps, Vec, Vec) // AVX512_ER{kz|sae|b32}
3373
+ ASMJIT_INST_2x(vrsqrt28ps, Vrsqrt28ps, Vec, Mem) // AVX512_ER{kz|sae|b32}
3374
+ ASMJIT_INST_3x(vrsqrt28sd, Vrsqrt28sd, Xmm, Xmm, Xmm) // AVX512_ER{kz|sae}
3375
+ ASMJIT_INST_3x(vrsqrt28sd, Vrsqrt28sd, Xmm, Xmm, Mem) // AVX512_ER{kz|sae}
3376
+ ASMJIT_INST_3x(vrsqrt28ss, Vrsqrt28ss, Xmm, Xmm, Xmm) // AVX512_ER{kz|sae}
3377
+ ASMJIT_INST_3x(vrsqrt28ss, Vrsqrt28ss, Xmm, Xmm, Mem) // AVX512_ER{kz|sae}
3378
+ ASMJIT_INST_2x(vrsqrtps, Vrsqrtps, Vec, Vec) // AVX
3379
+ ASMJIT_INST_2x(vrsqrtps, Vrsqrtps, Vec, Mem) // AVX
3380
+ ASMJIT_INST_3x(vrsqrtss, Vrsqrtss, Xmm, Xmm, Xmm) // AVX
3381
+ ASMJIT_INST_3x(vrsqrtss, Vrsqrtss, Xmm, Xmm, Mem) // AVX
3382
+ ASMJIT_INST_3x(vscalefpd, Vscalefpd, Vec, Vec, Vec) // AVX512_F{kz|b64}
3383
+ ASMJIT_INST_3x(vscalefpd, Vscalefpd, Vec, Vec, Mem) // AVX512_F{kz|b64}
3384
+ ASMJIT_INST_3x(vscalefps, Vscalefps, Vec, Vec, Vec) // AVX512_F{kz|b32}
3385
+ ASMJIT_INST_3x(vscalefps, Vscalefps, Vec, Vec, Mem) // AVX512_F{kz|b32}
3386
+ ASMJIT_INST_3x(vscalefsd, Vscalefsd, Xmm, Xmm, Xmm) // AVX512_F{kz|er}
3387
+ ASMJIT_INST_3x(vscalefsd, Vscalefsd, Xmm, Xmm, Mem) // AVX512_F{kz|er}
3388
+ ASMJIT_INST_3x(vscalefss, Vscalefss, Xmm, Xmm, Xmm) // AVX512_F{kz|er}
3389
+ ASMJIT_INST_3x(vscalefss, Vscalefss, Xmm, Xmm, Mem) // AVX512_F{kz|er}
3390
+ ASMJIT_INST_2x(vscatterdpd, Vscatterdpd, Mem, Vec) // AVX512_F{k}
3391
+ ASMJIT_INST_2x(vscatterdps, Vscatterdps, Mem, Vec) // AVX512_F{k}
3392
+ ASMJIT_INST_1x(vscatterpf0dpd, Vscatterpf0dpd, Mem) // AVX512_PF{k}
3393
+ ASMJIT_INST_1x(vscatterpf0dps, Vscatterpf0dps, Mem) // AVX512_PF{k}
3394
+ ASMJIT_INST_1x(vscatterpf0qpd, Vscatterpf0qpd, Mem) // AVX512_PF{k}
3395
+ ASMJIT_INST_1x(vscatterpf0qps, Vscatterpf0qps, Mem) // AVX512_PF{k}
3396
+ ASMJIT_INST_1x(vscatterpf1dpd, Vscatterpf1dpd, Mem) // AVX512_PF{k}
3397
+ ASMJIT_INST_1x(vscatterpf1dps, Vscatterpf1dps, Mem) // AVX512_PF{k}
3398
+ ASMJIT_INST_1x(vscatterpf1qpd, Vscatterpf1qpd, Mem) // AVX512_PF{k}
3399
+ ASMJIT_INST_1x(vscatterpf1qps, Vscatterpf1qps, Mem) // AVX512_PF{k}
3400
+ ASMJIT_INST_2x(vscatterqpd, Vscatterqpd, Mem, Vec) // AVX512_F{k}
3401
+ ASMJIT_INST_2x(vscatterqps, Vscatterqps, Mem, Vec) // AVX512_F{k}
3402
+ ASMJIT_INST_4x(vshuff32x4, Vshuff32x4, Vec, Vec, Vec, Imm) // AVX512_F{kz|b32}
3403
+ ASMJIT_INST_4x(vshuff32x4, Vshuff32x4, Vec, Vec, Mem, Imm) // AVX512_F{kz|b32}
3404
+ ASMJIT_INST_4x(vshuff64x2, Vshuff64x2, Vec, Vec, Vec, Imm) // AVX512_F{kz|b64}
3405
+ ASMJIT_INST_4x(vshuff64x2, Vshuff64x2, Vec, Vec, Mem, Imm) // AVX512_F{kz|b64}
3406
+ ASMJIT_INST_4x(vshufi32x4, Vshufi32x4, Vec, Vec, Vec, Imm) // AVX512_F{kz|b32}
3407
+ ASMJIT_INST_4x(vshufi32x4, Vshufi32x4, Vec, Vec, Mem, Imm) // AVX512_F{kz|b32}
3408
+ ASMJIT_INST_4x(vshufi64x2, Vshufi64x2, Vec, Vec, Vec, Imm) // AVX512_F{kz|b64}
3409
+ ASMJIT_INST_4x(vshufi64x2, Vshufi64x2, Vec, Vec, Mem, Imm) // AVX512_F{kz|b64}
3410
+ ASMJIT_INST_4x(vshufpd, Vshufpd, Vec, Vec, Vec, Imm) // AVX AVX512_F{kz|b32}
3411
+ ASMJIT_INST_4x(vshufpd, Vshufpd, Vec, Vec, Mem, Imm) // AVX AVX512_F{kz|b32}
3412
+ ASMJIT_INST_4x(vshufps, Vshufps, Vec, Vec, Vec, Imm) // AVX AVX512_F{kz|b64}
3413
+ ASMJIT_INST_4x(vshufps, Vshufps, Vec, Vec, Mem, Imm) // AVX AVX512_F{kz|b64}
3414
+ ASMJIT_INST_2x(vsqrtpd, Vsqrtpd, Vec, Vec) // AVX AVX512_F{kz|b64}
3415
+ ASMJIT_INST_2x(vsqrtpd, Vsqrtpd, Vec, Mem) // AVX AVX512_F{kz|b64}
3416
+ ASMJIT_INST_2x(vsqrtps, Vsqrtps, Vec, Vec) // AVX AVX512_F{kz|b32}
3417
+ ASMJIT_INST_2x(vsqrtps, Vsqrtps, Vec, Mem) // AVX AVX512_F{kz|b32}
3418
+ ASMJIT_INST_3x(vsqrtsd, Vsqrtsd, Xmm, Xmm, Xmm) // AVX AVX512_F{kz|er}
3419
+ ASMJIT_INST_3x(vsqrtsd, Vsqrtsd, Xmm, Xmm, Mem) // AVX AVX512_F{kz|er}
3420
+ ASMJIT_INST_3x(vsqrtss, Vsqrtss, Xmm, Xmm, Xmm) // AVX AVX512_F{kz|er}
3421
+ ASMJIT_INST_3x(vsqrtss, Vsqrtss, Xmm, Xmm, Mem) // AVX AVX512_F{kz|er}
3422
+ ASMJIT_INST_1x(vstmxcsr, Vstmxcsr, Mem) // AVX
3423
+ ASMJIT_INST_3x(vsubpd, Vsubpd, Vec, Vec, Vec) // AVX AVX512_F{kz|b64}
3424
+ ASMJIT_INST_3x(vsubpd, Vsubpd, Vec, Vec, Mem) // AVX AVX512_F{kz|b64}
3425
+ ASMJIT_INST_3x(vsubps, Vsubps, Vec, Vec, Vec) // AVX AVX512_F{kz|b32}
3426
+ ASMJIT_INST_3x(vsubps, Vsubps, Vec, Vec, Mem) // AVX AVX512_F{kz|b32}
3427
+ ASMJIT_INST_3x(vsubsd, Vsubsd, Xmm, Xmm, Xmm) // AVX AVX512_F{kz|er}
3428
+ ASMJIT_INST_3x(vsubsd, Vsubsd, Xmm, Xmm, Mem) // AVX AVX512_F{kz|er}
3429
+ ASMJIT_INST_3x(vsubss, Vsubss, Xmm, Xmm, Xmm) // AVX AVX512_F{kz|er}
3430
+ ASMJIT_INST_3x(vsubss, Vsubss, Xmm, Xmm, Mem) // AVX AVX512_F{kz|er}
3431
+ ASMJIT_INST_2x(vtestpd, Vtestpd, Vec, Vec) // AVX
3432
+ ASMJIT_INST_2x(vtestpd, Vtestpd, Vec, Mem) // AVX
3433
+ ASMJIT_INST_2x(vtestps, Vtestps, Vec, Vec) // AVX
3434
+ ASMJIT_INST_2x(vtestps, Vtestps, Vec, Mem) // AVX
3435
+ ASMJIT_INST_2x(vucomisd, Vucomisd, Xmm, Xmm) // AVX AVX512_F{sae}
3436
+ ASMJIT_INST_2x(vucomisd, Vucomisd, Xmm, Mem) // AVX AVX512_F{sae}
3437
+ ASMJIT_INST_2x(vucomiss, Vucomiss, Xmm, Xmm) // AVX AVX512_F{sae}
3438
+ ASMJIT_INST_2x(vucomiss, Vucomiss, Xmm, Mem) // AVX AVX512_F{sae}
3439
+ ASMJIT_INST_3x(vunpckhpd, Vunpckhpd, Vec, Vec, Vec) // AVX AVX512_F{kz|b64}
3440
+ ASMJIT_INST_3x(vunpckhpd, Vunpckhpd, Vec, Vec, Mem) // AVX AVX512_F{kz|b64}
3441
+ ASMJIT_INST_3x(vunpckhps, Vunpckhps, Vec, Vec, Vec) // AVX AVX512_F{kz|b32}
3442
+ ASMJIT_INST_3x(vunpckhps, Vunpckhps, Vec, Vec, Mem) // AVX AVX512_F{kz|b32}
3443
+ ASMJIT_INST_3x(vunpcklpd, Vunpcklpd, Vec, Vec, Vec) // AVX AVX512_F{kz|b64}
3444
+ ASMJIT_INST_3x(vunpcklpd, Vunpcklpd, Vec, Vec, Mem) // AVX AVX512_F{kz|b64}
3445
+ ASMJIT_INST_3x(vunpcklps, Vunpcklps, Vec, Vec, Vec) // AVX AVX512_F{kz|b32}
3446
+ ASMJIT_INST_3x(vunpcklps, Vunpcklps, Vec, Vec, Mem) // AVX AVX512_F{kz|b32}
3447
+ ASMJIT_INST_3x(vxorpd, Vxorpd, Vec, Vec, Vec) // AVX AVX512_DQ{kz|b64}
3448
+ ASMJIT_INST_3x(vxorpd, Vxorpd, Vec, Vec, Mem) // AVX AVX512_DQ{kz|b64}
3449
+ ASMJIT_INST_3x(vxorps, Vxorps, Vec, Vec, Vec) // AVX AVX512_DQ{kz|b32}
3450
+ ASMJIT_INST_3x(vxorps, Vxorps, Vec, Vec, Mem) // AVX AVX512_DQ{kz|b32}
3451
+ ASMJIT_INST_0x(vzeroall, Vzeroall) // AVX
3452
+ ASMJIT_INST_0x(vzeroupper, Vzeroupper) // AVX
3453
+
3454
+ //! \}
3455
+
3456
+ //! \name FMA4 Instructions
3457
+ //! \{
3458
+
3459
+ ASMJIT_INST_4x(vfmaddpd, Vfmaddpd, Vec, Vec, Vec, Vec) // FMA4
3460
+ ASMJIT_INST_4x(vfmaddpd, Vfmaddpd, Vec, Vec, Mem, Vec) // FMA4
3461
+ ASMJIT_INST_4x(vfmaddpd, Vfmaddpd, Vec, Vec, Vec, Mem) // FMA4
3462
+ ASMJIT_INST_4x(vfmaddps, Vfmaddps, Vec, Vec, Vec, Vec) // FMA4
3463
+ ASMJIT_INST_4x(vfmaddps, Vfmaddps, Vec, Vec, Mem, Vec) // FMA4
3464
+ ASMJIT_INST_4x(vfmaddps, Vfmaddps, Vec, Vec, Vec, Mem) // FMA4
3465
+ ASMJIT_INST_4x(vfmaddsd, Vfmaddsd, Xmm, Xmm, Xmm, Xmm) // FMA4
3466
+ ASMJIT_INST_4x(vfmaddsd, Vfmaddsd, Xmm, Xmm, Mem, Xmm) // FMA4
3467
+ ASMJIT_INST_4x(vfmaddsd, Vfmaddsd, Xmm, Xmm, Xmm, Mem) // FMA4
3468
+ ASMJIT_INST_4x(vfmaddss, Vfmaddss, Xmm, Xmm, Xmm, Xmm) // FMA4
3469
+ ASMJIT_INST_4x(vfmaddss, Vfmaddss, Xmm, Xmm, Mem, Xmm) // FMA4
3470
+ ASMJIT_INST_4x(vfmaddss, Vfmaddss, Xmm, Xmm, Xmm, Mem) // FMA4
3471
+ ASMJIT_INST_4x(vfmaddsubpd, Vfmaddsubpd, Vec, Vec, Vec, Vec) // FMA4
3472
+ ASMJIT_INST_4x(vfmaddsubpd, Vfmaddsubpd, Vec, Vec, Mem, Vec) // FMA4
3473
+ ASMJIT_INST_4x(vfmaddsubpd, Vfmaddsubpd, Vec, Vec, Vec, Mem) // FMA4
3474
+ ASMJIT_INST_4x(vfmaddsubps, Vfmaddsubps, Vec, Vec, Vec, Vec) // FMA4
3475
+ ASMJIT_INST_4x(vfmaddsubps, Vfmaddsubps, Vec, Vec, Mem, Vec) // FMA4
3476
+ ASMJIT_INST_4x(vfmaddsubps, Vfmaddsubps, Vec, Vec, Vec, Mem) // FMA4
3477
+ ASMJIT_INST_4x(vfmsubaddpd, Vfmsubaddpd, Vec, Vec, Vec, Vec) // FMA4
3478
+ ASMJIT_INST_4x(vfmsubaddpd, Vfmsubaddpd, Vec, Vec, Mem, Vec) // FMA4
3479
+ ASMJIT_INST_4x(vfmsubaddpd, Vfmsubaddpd, Vec, Vec, Vec, Mem) // FMA4
3480
+ ASMJIT_INST_4x(vfmsubaddps, Vfmsubaddps, Vec, Vec, Vec, Vec) // FMA4
3481
+ ASMJIT_INST_4x(vfmsubaddps, Vfmsubaddps, Vec, Vec, Mem, Vec) // FMA4
3482
+ ASMJIT_INST_4x(vfmsubaddps, Vfmsubaddps, Vec, Vec, Vec, Mem) // FMA4
3483
+ ASMJIT_INST_4x(vfmsubpd, Vfmsubpd, Vec, Vec, Vec, Vec) // FMA4
3484
+ ASMJIT_INST_4x(vfmsubpd, Vfmsubpd, Vec, Vec, Mem, Vec) // FMA4
3485
+ ASMJIT_INST_4x(vfmsubpd, Vfmsubpd, Vec, Vec, Vec, Mem) // FMA4
3486
+ ASMJIT_INST_4x(vfmsubps, Vfmsubps, Vec, Vec, Vec, Vec) // FMA4
3487
+ ASMJIT_INST_4x(vfmsubps, Vfmsubps, Vec, Vec, Mem, Vec) // FMA4
3488
+ ASMJIT_INST_4x(vfmsubps, Vfmsubps, Vec, Vec, Vec, Mem) // FMA4
3489
+ ASMJIT_INST_4x(vfmsubsd, Vfmsubsd, Xmm, Xmm, Xmm, Xmm) // FMA4
3490
+ ASMJIT_INST_4x(vfmsubsd, Vfmsubsd, Xmm, Xmm, Mem, Xmm) // FMA4
3491
+ ASMJIT_INST_4x(vfmsubsd, Vfmsubsd, Xmm, Xmm, Xmm, Mem) // FMA4
3492
+ ASMJIT_INST_4x(vfmsubss, Vfmsubss, Xmm, Xmm, Xmm, Xmm) // FMA4
3493
+ ASMJIT_INST_4x(vfmsubss, Vfmsubss, Xmm, Xmm, Mem, Xmm) // FMA4
3494
+ ASMJIT_INST_4x(vfmsubss, Vfmsubss, Xmm, Xmm, Xmm, Mem) // FMA4
3495
+ ASMJIT_INST_4x(vfnmaddpd, Vfnmaddpd, Vec, Vec, Vec, Vec) // FMA4
3496
+ ASMJIT_INST_4x(vfnmaddpd, Vfnmaddpd, Vec, Vec, Mem, Vec) // FMA4
3497
+ ASMJIT_INST_4x(vfnmaddpd, Vfnmaddpd, Vec, Vec, Vec, Mem) // FMA4
3498
+ ASMJIT_INST_4x(vfnmaddps, Vfnmaddps, Vec, Vec, Vec, Vec) // FMA4
3499
+ ASMJIT_INST_4x(vfnmaddps, Vfnmaddps, Vec, Vec, Mem, Vec) // FMA4
3500
+ ASMJIT_INST_4x(vfnmaddps, Vfnmaddps, Vec, Vec, Vec, Mem) // FMA4
3501
+ ASMJIT_INST_4x(vfnmaddsd, Vfnmaddsd, Xmm, Xmm, Xmm, Xmm) // FMA4
3502
+ ASMJIT_INST_4x(vfnmaddsd, Vfnmaddsd, Xmm, Xmm, Mem, Xmm) // FMA4
3503
+ ASMJIT_INST_4x(vfnmaddsd, Vfnmaddsd, Xmm, Xmm, Xmm, Mem) // FMA4
3504
+ ASMJIT_INST_4x(vfnmaddss, Vfnmaddss, Xmm, Xmm, Xmm, Xmm) // FMA4
3505
+ ASMJIT_INST_4x(vfnmaddss, Vfnmaddss, Xmm, Xmm, Mem, Xmm) // FMA4
3506
+ ASMJIT_INST_4x(vfnmaddss, Vfnmaddss, Xmm, Xmm, Xmm, Mem) // FMA4
3507
+ ASMJIT_INST_4x(vfnmsubpd, Vfnmsubpd, Vec, Vec, Vec, Vec) // FMA4
3508
+ ASMJIT_INST_4x(vfnmsubpd, Vfnmsubpd, Vec, Vec, Mem, Vec) // FMA4
3509
+ ASMJIT_INST_4x(vfnmsubpd, Vfnmsubpd, Vec, Vec, Vec, Mem) // FMA4
3510
+ ASMJIT_INST_4x(vfnmsubps, Vfnmsubps, Vec, Vec, Vec, Vec) // FMA4
3511
+ ASMJIT_INST_4x(vfnmsubps, Vfnmsubps, Vec, Vec, Mem, Vec) // FMA4
3512
+ ASMJIT_INST_4x(vfnmsubps, Vfnmsubps, Vec, Vec, Vec, Mem) // FMA4
3513
+ ASMJIT_INST_4x(vfnmsubsd, Vfnmsubsd, Xmm, Xmm, Xmm, Xmm) // FMA4
3514
+ ASMJIT_INST_4x(vfnmsubsd, Vfnmsubsd, Xmm, Xmm, Mem, Xmm) // FMA4
3515
+ ASMJIT_INST_4x(vfnmsubsd, Vfnmsubsd, Xmm, Xmm, Xmm, Mem) // FMA4
3516
+ ASMJIT_INST_4x(vfnmsubss, Vfnmsubss, Xmm, Xmm, Xmm, Xmm) // FMA4
3517
+ ASMJIT_INST_4x(vfnmsubss, Vfnmsubss, Xmm, Xmm, Mem, Xmm) // FMA4
3518
+ ASMJIT_INST_4x(vfnmsubss, Vfnmsubss, Xmm, Xmm, Xmm, Mem) // FMA4
3519
+
3520
+ //! \}
3521
+
3522
+ //! \name XOP Instructions (Deprecated)
3523
+ //! \{
3524
+
3525
+ ASMJIT_INST_2x(vfrczpd, Vfrczpd, Vec, Vec) // XOP
3526
+ ASMJIT_INST_2x(vfrczpd, Vfrczpd, Vec, Mem) // XOP
3527
+ ASMJIT_INST_2x(vfrczps, Vfrczps, Vec, Vec) // XOP
3528
+ ASMJIT_INST_2x(vfrczps, Vfrczps, Vec, Mem) // XOP
3529
+ ASMJIT_INST_2x(vfrczsd, Vfrczsd, Xmm, Xmm) // XOP
3530
+ ASMJIT_INST_2x(vfrczsd, Vfrczsd, Xmm, Mem) // XOP
3531
+ ASMJIT_INST_2x(vfrczss, Vfrczss, Xmm, Xmm) // XOP
3532
+ ASMJIT_INST_2x(vfrczss, Vfrczss, Xmm, Mem) // XOP
3533
+ ASMJIT_INST_4x(vpcmov, Vpcmov, Vec, Vec, Vec, Vec) // XOP
3534
+ ASMJIT_INST_4x(vpcmov, Vpcmov, Vec, Vec, Mem, Vec) // XOP
3535
+ ASMJIT_INST_4x(vpcmov, Vpcmov, Vec, Vec, Vec, Mem) // XOP
3536
+ ASMJIT_INST_4x(vpcomb, Vpcomb, Xmm, Xmm, Xmm, Imm) // XOP
3537
+ ASMJIT_INST_4x(vpcomb, Vpcomb, Xmm, Xmm, Mem, Imm) // XOP
3538
+ ASMJIT_INST_4x(vpcomd, Vpcomd, Xmm, Xmm, Xmm, Imm) // XOP
3539
+ ASMJIT_INST_4x(vpcomd, Vpcomd, Xmm, Xmm, Mem, Imm) // XOP
3540
+ ASMJIT_INST_4x(vpcomq, Vpcomq, Xmm, Xmm, Xmm, Imm) // XOP
3541
+ ASMJIT_INST_4x(vpcomq, Vpcomq, Xmm, Xmm, Mem, Imm) // XOP
3542
+ ASMJIT_INST_4x(vpcomw, Vpcomw, Xmm, Xmm, Xmm, Imm) // XOP
3543
+ ASMJIT_INST_4x(vpcomw, Vpcomw, Xmm, Xmm, Mem, Imm) // XOP
3544
+ ASMJIT_INST_4x(vpcomub, Vpcomub, Xmm, Xmm, Xmm, Imm) // XOP
3545
+ ASMJIT_INST_4x(vpcomub, Vpcomub, Xmm, Xmm, Mem, Imm) // XOP
3546
+ ASMJIT_INST_4x(vpcomud, Vpcomud, Xmm, Xmm, Xmm, Imm) // XOP
3547
+ ASMJIT_INST_4x(vpcomud, Vpcomud, Xmm, Xmm, Mem, Imm) // XOP
3548
+ ASMJIT_INST_4x(vpcomuq, Vpcomuq, Xmm, Xmm, Xmm, Imm) // XOP
3549
+ ASMJIT_INST_4x(vpcomuq, Vpcomuq, Xmm, Xmm, Mem, Imm) // XOP
3550
+ ASMJIT_INST_4x(vpcomuw, Vpcomuw, Xmm, Xmm, Xmm, Imm) // XOP
3551
+ ASMJIT_INST_4x(vpcomuw, Vpcomuw, Xmm, Xmm, Mem, Imm) // XOP
3552
+ ASMJIT_INST_5x(vpermil2pd, Vpermil2pd, Vec, Vec, Vec, Vec, Imm) // XOP
3553
+ ASMJIT_INST_5x(vpermil2pd, Vpermil2pd, Vec, Vec, Mem, Vec, Imm) // XOP
3554
+ ASMJIT_INST_5x(vpermil2pd, Vpermil2pd, Vec, Vec, Vec, Mem, Imm) // XOP
3555
+ ASMJIT_INST_5x(vpermil2ps, Vpermil2ps, Vec, Vec, Vec, Vec, Imm) // XOP
3556
+ ASMJIT_INST_5x(vpermil2ps, Vpermil2ps, Vec, Vec, Mem, Vec, Imm) // XOP
3557
+ ASMJIT_INST_5x(vpermil2ps, Vpermil2ps, Vec, Vec, Vec, Mem, Imm) // XOP
3558
+ ASMJIT_INST_2x(vphaddbd, Vphaddbd, Xmm, Xmm) // XOP
3559
+ ASMJIT_INST_2x(vphaddbd, Vphaddbd, Xmm, Mem) // XOP
3560
+ ASMJIT_INST_2x(vphaddbq, Vphaddbq, Xmm, Xmm) // XOP
3561
+ ASMJIT_INST_2x(vphaddbq, Vphaddbq, Xmm, Mem) // XOP
3562
+ ASMJIT_INST_2x(vphaddbw, Vphaddbw, Xmm, Xmm) // XOP
3563
+ ASMJIT_INST_2x(vphaddbw, Vphaddbw, Xmm, Mem) // XOP
3564
+ ASMJIT_INST_2x(vphadddq, Vphadddq, Xmm, Xmm) // XOP
3565
+ ASMJIT_INST_2x(vphadddq, Vphadddq, Xmm, Mem) // XOP
3566
+ ASMJIT_INST_2x(vphaddwd, Vphaddwd, Xmm, Xmm) // XOP
3567
+ ASMJIT_INST_2x(vphaddwd, Vphaddwd, Xmm, Mem) // XOP
3568
+ ASMJIT_INST_2x(vphaddwq, Vphaddwq, Xmm, Xmm) // XOP
3569
+ ASMJIT_INST_2x(vphaddwq, Vphaddwq, Xmm, Mem) // XOP
3570
+ ASMJIT_INST_2x(vphaddubd, Vphaddubd, Xmm, Xmm) // XOP
3571
+ ASMJIT_INST_2x(vphaddubd, Vphaddubd, Xmm, Mem) // XOP
3572
+ ASMJIT_INST_2x(vphaddubq, Vphaddubq, Xmm, Xmm) // XOP
3573
+ ASMJIT_INST_2x(vphaddubq, Vphaddubq, Xmm, Mem) // XOP
3574
+ ASMJIT_INST_2x(vphaddubw, Vphaddubw, Xmm, Xmm) // XOP
3575
+ ASMJIT_INST_2x(vphaddubw, Vphaddubw, Xmm, Mem) // XOP
3576
+ ASMJIT_INST_2x(vphaddudq, Vphaddudq, Xmm, Xmm) // XOP
3577
+ ASMJIT_INST_2x(vphaddudq, Vphaddudq, Xmm, Mem) // XOP
3578
+ ASMJIT_INST_2x(vphadduwd, Vphadduwd, Xmm, Xmm) // XOP
3579
+ ASMJIT_INST_2x(vphadduwd, Vphadduwd, Xmm, Mem) // XOP
3580
+ ASMJIT_INST_2x(vphadduwq, Vphadduwq, Xmm, Xmm) // XOP
3581
+ ASMJIT_INST_2x(vphadduwq, Vphadduwq, Xmm, Mem) // XOP
3582
+ ASMJIT_INST_2x(vphsubbw, Vphsubbw, Xmm, Xmm) // XOP
3583
+ ASMJIT_INST_2x(vphsubbw, Vphsubbw, Xmm, Mem) // XOP
3584
+ ASMJIT_INST_2x(vphsubdq, Vphsubdq, Xmm, Xmm) // XOP
3585
+ ASMJIT_INST_2x(vphsubdq, Vphsubdq, Xmm, Mem) // XOP
3586
+ ASMJIT_INST_2x(vphsubwd, Vphsubwd, Xmm, Xmm) // XOP
3587
+ ASMJIT_INST_2x(vphsubwd, Vphsubwd, Xmm, Mem) // XOP
3588
+ ASMJIT_INST_4x(vpmacsdd, Vpmacsdd, Xmm, Xmm, Xmm, Xmm) // XOP
3589
+ ASMJIT_INST_4x(vpmacsdd, Vpmacsdd, Xmm, Xmm, Mem, Xmm) // XOP
3590
+ ASMJIT_INST_4x(vpmacsdqh, Vpmacsdqh, Xmm, Xmm, Xmm, Xmm) // XOP
3591
+ ASMJIT_INST_4x(vpmacsdqh, Vpmacsdqh, Xmm, Xmm, Mem, Xmm) // XOP
3592
+ ASMJIT_INST_4x(vpmacsdql, Vpmacsdql, Xmm, Xmm, Xmm, Xmm) // XOP
3593
+ ASMJIT_INST_4x(vpmacsdql, Vpmacsdql, Xmm, Xmm, Mem, Xmm) // XOP
3594
+ ASMJIT_INST_4x(vpmacswd, Vpmacswd, Xmm, Xmm, Xmm, Xmm) // XOP
3595
+ ASMJIT_INST_4x(vpmacswd, Vpmacswd, Xmm, Xmm, Mem, Xmm) // XOP
3596
+ ASMJIT_INST_4x(vpmacsww, Vpmacsww, Xmm, Xmm, Xmm, Xmm) // XOP
3597
+ ASMJIT_INST_4x(vpmacsww, Vpmacsww, Xmm, Xmm, Mem, Xmm) // XOP
3598
+ ASMJIT_INST_4x(vpmacssdd, Vpmacssdd, Xmm, Xmm, Xmm, Xmm) // XOP
3599
+ ASMJIT_INST_4x(vpmacssdd, Vpmacssdd, Xmm, Xmm, Mem, Xmm) // XOP
3600
+ ASMJIT_INST_4x(vpmacssdqh, Vpmacssdqh, Xmm, Xmm, Xmm, Xmm) // XOP
3601
+ ASMJIT_INST_4x(vpmacssdqh, Vpmacssdqh, Xmm, Xmm, Mem, Xmm) // XOP
3602
+ ASMJIT_INST_4x(vpmacssdql, Vpmacssdql, Xmm, Xmm, Xmm, Xmm) // XOP
3603
+ ASMJIT_INST_4x(vpmacssdql, Vpmacssdql, Xmm, Xmm, Mem, Xmm) // XOP
3604
+ ASMJIT_INST_4x(vpmacsswd, Vpmacsswd, Xmm, Xmm, Xmm, Xmm) // XOP
3605
+ ASMJIT_INST_4x(vpmacsswd, Vpmacsswd, Xmm, Xmm, Mem, Xmm) // XOP
3606
+ ASMJIT_INST_4x(vpmacssww, Vpmacssww, Xmm, Xmm, Xmm, Xmm) // XOP
3607
+ ASMJIT_INST_4x(vpmacssww, Vpmacssww, Xmm, Xmm, Mem, Xmm) // XOP
3608
+ ASMJIT_INST_4x(vpmadcsswd, Vpmadcsswd, Xmm, Xmm, Xmm, Xmm) // XOP
3609
+ ASMJIT_INST_4x(vpmadcsswd, Vpmadcsswd, Xmm, Xmm, Mem, Xmm) // XOP
3610
+ ASMJIT_INST_4x(vpmadcswd, Vpmadcswd, Xmm, Xmm, Xmm, Xmm) // XOP
3611
+ ASMJIT_INST_4x(vpmadcswd, Vpmadcswd, Xmm, Xmm, Mem, Xmm) // XOP
3612
+ ASMJIT_INST_4x(vpperm, Vpperm, Xmm, Xmm, Xmm, Xmm) // XOP
3613
+ ASMJIT_INST_4x(vpperm, Vpperm, Xmm, Xmm, Mem, Xmm) // XOP
3614
+ ASMJIT_INST_4x(vpperm, Vpperm, Xmm, Xmm, Xmm, Mem) // XOP
3615
+ ASMJIT_INST_3x(vprotb, Vprotb, Xmm, Xmm, Xmm) // XOP
3616
+ ASMJIT_INST_3x(vprotb, Vprotb, Xmm, Mem, Xmm) // XOP
3617
+ ASMJIT_INST_3x(vprotb, Vprotb, Xmm, Xmm, Mem) // XOP
3618
+ ASMJIT_INST_3x(vprotb, Vprotb, Xmm, Xmm, Imm) // XOP
3619
+ ASMJIT_INST_3x(vprotb, Vprotb, Xmm, Mem, Imm) // XOP
3620
+ ASMJIT_INST_3x(vprotd, Vprotd, Xmm, Xmm, Xmm) // XOP
3621
+ ASMJIT_INST_3x(vprotd, Vprotd, Xmm, Mem, Xmm) // XOP
3622
+ ASMJIT_INST_3x(vprotd, Vprotd, Xmm, Xmm, Mem) // XOP
3623
+ ASMJIT_INST_3x(vprotd, Vprotd, Xmm, Xmm, Imm) // XOP
3624
+ ASMJIT_INST_3x(vprotd, Vprotd, Xmm, Mem, Imm) // XOP
3625
+ ASMJIT_INST_3x(vprotq, Vprotq, Xmm, Xmm, Xmm) // XOP
3626
+ ASMJIT_INST_3x(vprotq, Vprotq, Xmm, Mem, Xmm) // XOP
3627
+ ASMJIT_INST_3x(vprotq, Vprotq, Xmm, Xmm, Mem) // XOP
3628
+ ASMJIT_INST_3x(vprotq, Vprotq, Xmm, Xmm, Imm) // XOP
3629
+ ASMJIT_INST_3x(vprotq, Vprotq, Xmm, Mem, Imm) // XOP
3630
+ ASMJIT_INST_3x(vprotw, Vprotw, Xmm, Xmm, Xmm) // XOP
3631
+ ASMJIT_INST_3x(vprotw, Vprotw, Xmm, Mem, Xmm) // XOP
3632
+ ASMJIT_INST_3x(vprotw, Vprotw, Xmm, Xmm, Mem) // XOP
3633
+ ASMJIT_INST_3x(vprotw, Vprotw, Xmm, Xmm, Imm) // XOP
3634
+ ASMJIT_INST_3x(vprotw, Vprotw, Xmm, Mem, Imm) // XOP
3635
+ ASMJIT_INST_3x(vpshab, Vpshab, Xmm, Xmm, Xmm) // XOP
3636
+ ASMJIT_INST_3x(vpshab, Vpshab, Xmm, Mem, Xmm) // XOP
3637
+ ASMJIT_INST_3x(vpshab, Vpshab, Xmm, Xmm, Mem) // XOP
3638
+ ASMJIT_INST_3x(vpshad, Vpshad, Xmm, Xmm, Xmm) // XOP
3639
+ ASMJIT_INST_3x(vpshad, Vpshad, Xmm, Mem, Xmm) // XOP
3640
+ ASMJIT_INST_3x(vpshad, Vpshad, Xmm, Xmm, Mem) // XOP
3641
+ ASMJIT_INST_3x(vpshaq, Vpshaq, Xmm, Xmm, Xmm) // XOP
3642
+ ASMJIT_INST_3x(vpshaq, Vpshaq, Xmm, Mem, Xmm) // XOP
3643
+ ASMJIT_INST_3x(vpshaq, Vpshaq, Xmm, Xmm, Mem) // XOP
3644
+ ASMJIT_INST_3x(vpshaw, Vpshaw, Xmm, Xmm, Xmm) // XOP
3645
+ ASMJIT_INST_3x(vpshaw, Vpshaw, Xmm, Mem, Xmm) // XOP
3646
+ ASMJIT_INST_3x(vpshaw, Vpshaw, Xmm, Xmm, Mem) // XOP
3647
+ ASMJIT_INST_3x(vpshlb, Vpshlb, Xmm, Xmm, Xmm) // XOP
3648
+ ASMJIT_INST_3x(vpshlb, Vpshlb, Xmm, Mem, Xmm) // XOP
3649
+ ASMJIT_INST_3x(vpshlb, Vpshlb, Xmm, Xmm, Mem) // XOP
3650
+ ASMJIT_INST_3x(vpshld, Vpshld, Xmm, Xmm, Xmm) // XOP
3651
+ ASMJIT_INST_3x(vpshld, Vpshld, Xmm, Mem, Xmm) // XOP
3652
+ ASMJIT_INST_3x(vpshld, Vpshld, Xmm, Xmm, Mem) // XOP
3653
+ ASMJIT_INST_3x(vpshlq, Vpshlq, Xmm, Xmm, Xmm) // XOP
3654
+ ASMJIT_INST_3x(vpshlq, Vpshlq, Xmm, Mem, Xmm) // XOP
3655
+ ASMJIT_INST_3x(vpshlq, Vpshlq, Xmm, Xmm, Mem) // XOP
3656
+ ASMJIT_INST_3x(vpshlw, Vpshlw, Xmm, Xmm, Xmm) // XOP
3657
+ ASMJIT_INST_3x(vpshlw, Vpshlw, Xmm, Mem, Xmm) // XOP
3658
+ ASMJIT_INST_3x(vpshlw, Vpshlw, Xmm, Xmm, Mem) // XOP
3659
+
3660
+ //! \}
3661
+
3662
+ //! \name AVX512_FP16 Instructions
3663
+ //! \{
3664
+
3665
+ ASMJIT_INST_3x(vaddph, Vaddph, Vec, Vec, Vec)
3666
+ ASMJIT_INST_3x(vaddph, Vaddph, Vec, Vec, Mem)
3667
+ ASMJIT_INST_3x(vaddsh, Vaddsh, Vec, Vec, Vec)
3668
+ ASMJIT_INST_3x(vaddsh, Vaddsh, Vec, Vec, Mem)
3669
+ ASMJIT_INST_4x(vcmpph, Vcmpph, KReg, Vec, Vec, Imm)
3670
+ ASMJIT_INST_4x(vcmpph, Vcmpph, KReg, Vec, Mem, Imm)
3671
+ ASMJIT_INST_4x(vcmpsh, Vcmpsh, KReg, Vec, Vec, Imm)
3672
+ ASMJIT_INST_4x(vcmpsh, Vcmpsh, KReg, Vec, Mem, Imm)
3673
+ ASMJIT_INST_2x(vcomish, Vcomish, Vec, Vec)
3674
+ ASMJIT_INST_2x(vcomish, Vcomish, Vec, Mem)
3675
+ ASMJIT_INST_2x(vcvtdq2ph, Vcvtdq2ph, Vec, Vec)
3676
+ ASMJIT_INST_2x(vcvtdq2ph, Vcvtdq2ph, Vec, Mem)
3677
+ ASMJIT_INST_2x(vcvtpd2ph, Vcvtpd2ph, Vec, Vec)
3678
+ ASMJIT_INST_2x(vcvtpd2ph, Vcvtpd2ph, Vec, Mem)
3679
+ ASMJIT_INST_2x(vcvtph2dq, Vcvtph2dq, Vec, Vec)
3680
+ ASMJIT_INST_2x(vcvtph2dq, Vcvtph2dq, Vec, Mem)
3681
+ ASMJIT_INST_2x(vcvtph2pd, Vcvtph2pd, Vec, Vec)
3682
+ ASMJIT_INST_2x(vcvtph2pd, Vcvtph2pd, Vec, Mem)
3683
+ ASMJIT_INST_2x(vcvtph2psx, Vcvtph2psx, Vec, Vec)
3684
+ ASMJIT_INST_2x(vcvtph2psx, Vcvtph2psx, Vec, Mem)
3685
+ ASMJIT_INST_2x(vcvtph2qq, Vcvtph2qq, Vec, Vec)
3686
+ ASMJIT_INST_2x(vcvtph2qq, Vcvtph2qq, Vec, Mem)
3687
+ ASMJIT_INST_2x(vcvtph2udq, Vcvtph2udq, Vec, Vec)
3688
+ ASMJIT_INST_2x(vcvtph2udq, Vcvtph2udq, Vec, Mem)
3689
+ ASMJIT_INST_2x(vcvtph2uqq, Vcvtph2uqq, Vec, Vec)
3690
+ ASMJIT_INST_2x(vcvtph2uqq, Vcvtph2uqq, Vec, Mem)
3691
+ ASMJIT_INST_2x(vcvtph2uw, Vcvtph2uw, Vec, Vec)
3692
+ ASMJIT_INST_2x(vcvtph2uw, Vcvtph2uw, Vec, Mem)
3693
+ ASMJIT_INST_2x(vcvtph2w, Vcvtph2w, Vec, Vec)
3694
+ ASMJIT_INST_2x(vcvtph2w, Vcvtph2w, Vec, Mem)
3695
+ ASMJIT_INST_2x(vcvtps2phx, Vcvtps2phx, Vec, Vec)
3696
+ ASMJIT_INST_2x(vcvtps2phx, Vcvtps2phx, Vec, Mem)
3697
+ ASMJIT_INST_2x(vcvtqq2ph, Vcvtqq2ph, Vec, Vec)
3698
+ ASMJIT_INST_2x(vcvtqq2ph, Vcvtqq2ph, Vec, Mem)
3699
+ ASMJIT_INST_3x(vcvtsd2sh, Vcvtsd2sh, Vec, Vec, Vec)
3700
+ ASMJIT_INST_3x(vcvtsd2sh, Vcvtsd2sh, Vec, Vec, Mem)
3701
+ ASMJIT_INST_3x(vcvtsh2sd, Vcvtsh2sd, Vec, Vec, Vec)
3702
+ ASMJIT_INST_3x(vcvtsh2sd, Vcvtsh2sd, Vec, Vec, Mem)
3703
+ ASMJIT_INST_2x(vcvtsh2si, Vcvtsh2si, Gp, Vec)
3704
+ ASMJIT_INST_2x(vcvtsh2si, Vcvtsh2si, Gp, Mem)
3705
+ ASMJIT_INST_3x(vcvtsh2ss, Vcvtsh2ss, Vec, Vec, Vec)
3706
+ ASMJIT_INST_3x(vcvtsh2ss, Vcvtsh2ss, Vec, Vec, Mem)
3707
+ ASMJIT_INST_2x(vcvtsh2usi, Vcvtsh2usi, Gp, Vec)
3708
+ ASMJIT_INST_2x(vcvtsh2usi, Vcvtsh2usi, Gp, Mem)
3709
+ ASMJIT_INST_3x(vcvtsi2sh, Vcvtsi2sh, Vec, Vec, Gp)
3710
+ ASMJIT_INST_3x(vcvtsi2sh, Vcvtsi2sh, Vec, Vec, Mem)
3711
+ ASMJIT_INST_3x(vcvtss2sh, Vcvtss2sh, Vec, Vec, Vec)
3712
+ ASMJIT_INST_3x(vcvtss2sh, Vcvtss2sh, Vec, Vec, Mem)
3713
+ ASMJIT_INST_2x(vcvttph2dq, Vcvttph2dq, Vec, Vec)
3714
+ ASMJIT_INST_2x(vcvttph2dq, Vcvttph2dq, Vec, Mem)
3715
+ ASMJIT_INST_2x(vcvttph2qq, Vcvttph2qq, Vec, Vec)
3716
+ ASMJIT_INST_2x(vcvttph2qq, Vcvttph2qq, Vec, Mem)
3717
+ ASMJIT_INST_2x(vcvttph2udq, Vcvttph2udq, Vec, Vec)
3718
+ ASMJIT_INST_2x(vcvttph2udq, Vcvttph2udq, Vec, Mem)
3719
+ ASMJIT_INST_2x(vcvttph2uqq, Vcvttph2uqq, Vec, Vec)
3720
+ ASMJIT_INST_2x(vcvttph2uqq, Vcvttph2uqq, Vec, Mem)
3721
+ ASMJIT_INST_2x(vcvttph2uw, Vcvttph2uw, Vec, Vec)
3722
+ ASMJIT_INST_2x(vcvttph2uw, Vcvttph2uw, Vec, Mem)
3723
+ ASMJIT_INST_2x(vcvttph2w, Vcvttph2w, Vec, Vec)
3724
+ ASMJIT_INST_2x(vcvttph2w, Vcvttph2w, Vec, Mem)
3725
+ ASMJIT_INST_2x(vcvttsh2si, Vcvttsh2si, Gp, Vec)
3726
+ ASMJIT_INST_2x(vcvttsh2si, Vcvttsh2si, Gp, Mem)
3727
+ ASMJIT_INST_2x(vcvttsh2usi, Vcvttsh2usi, Gp, Vec)
3728
+ ASMJIT_INST_2x(vcvttsh2usi, Vcvttsh2usi, Gp, Mem)
3729
+ ASMJIT_INST_2x(vcvtudq2ph, Vcvtudq2ph, Vec, Vec)
3730
+ ASMJIT_INST_2x(vcvtudq2ph, Vcvtudq2ph, Vec, Mem)
3731
+ ASMJIT_INST_2x(vcvtuqq2ph, Vcvtuqq2ph, Vec, Vec)
3732
+ ASMJIT_INST_2x(vcvtuqq2ph, Vcvtuqq2ph, Vec, Mem)
3733
+ ASMJIT_INST_3x(vcvtusi2sh, Vcvtusi2sh, Vec, Vec, Gp)
3734
+ ASMJIT_INST_3x(vcvtusi2sh, Vcvtusi2sh, Vec, Vec, Mem)
3735
+ ASMJIT_INST_2x(vcvtuw2ph, Vcvtuw2ph, Vec, Vec)
3736
+ ASMJIT_INST_2x(vcvtuw2ph, Vcvtuw2ph, Vec, Mem)
3737
+ ASMJIT_INST_2x(vcvtw2ph, Vcvtw2ph, Vec, Vec)
3738
+ ASMJIT_INST_2x(vcvtw2ph, Vcvtw2ph, Vec, Mem)
3739
+ ASMJIT_INST_3x(vdivph, Vdivph, Vec, Vec, Vec)
3740
+ ASMJIT_INST_3x(vdivph, Vdivph, Vec, Vec, Mem)
3741
+ ASMJIT_INST_3x(vdivsh, Vdivsh, Vec, Vec, Vec)
3742
+ ASMJIT_INST_3x(vdivsh, Vdivsh, Vec, Vec, Mem)
3743
+ ASMJIT_INST_3x(vfcmaddcph, Vfcmaddcph, Vec, Vec, Vec)
3744
+ ASMJIT_INST_3x(vfcmaddcph, Vfcmaddcph, Vec, Vec, Mem)
3745
+ ASMJIT_INST_3x(vfcmaddcsh, Vfcmaddcsh, Vec, Vec, Vec)
3746
+ ASMJIT_INST_3x(vfcmaddcsh, Vfcmaddcsh, Vec, Vec, Mem)
3747
+ ASMJIT_INST_3x(vfcmulcph, Vfcmulcph, Vec, Vec, Vec)
3748
+ ASMJIT_INST_3x(vfcmulcph, Vfcmulcph, Vec, Vec, Mem)
3749
+ ASMJIT_INST_3x(vfcmulcsh, Vfcmulcsh, Vec, Vec, Vec)
3750
+ ASMJIT_INST_3x(vfcmulcsh, Vfcmulcsh, Vec, Vec, Mem)
3751
+ ASMJIT_INST_3x(vfmadd132ph, Vfmadd132ph, Vec, Vec, Vec)
3752
+ ASMJIT_INST_3x(vfmadd132ph, Vfmadd132ph, Vec, Vec, Mem)
3753
+ ASMJIT_INST_3x(vfmadd132sh, Vfmadd132sh, Vec, Vec, Vec)
3754
+ ASMJIT_INST_3x(vfmadd132sh, Vfmadd132sh, Vec, Vec, Mem)
3755
+ ASMJIT_INST_3x(vfmadd213ph, Vfmadd213ph, Vec, Vec, Vec)
3756
+ ASMJIT_INST_3x(vfmadd213ph, Vfmadd213ph, Vec, Vec, Mem)
3757
+ ASMJIT_INST_3x(vfmadd213sh, Vfmadd213sh, Vec, Vec, Vec)
3758
+ ASMJIT_INST_3x(vfmadd213sh, Vfmadd213sh, Vec, Vec, Mem)
3759
+ ASMJIT_INST_3x(vfmadd231ph, Vfmadd231ph, Vec, Vec, Vec)
3760
+ ASMJIT_INST_3x(vfmadd231ph, Vfmadd231ph, Vec, Vec, Mem)
3761
+ ASMJIT_INST_3x(vfmadd231sh, Vfmadd231sh, Vec, Vec, Vec)
3762
+ ASMJIT_INST_3x(vfmadd231sh, Vfmadd231sh, Vec, Vec, Mem)
3763
+ ASMJIT_INST_3x(vfmaddcph, Vfmaddcph, Vec, Vec, Vec)
3764
+ ASMJIT_INST_3x(vfmaddcph, Vfmaddcph, Vec, Vec, Mem)
3765
+ ASMJIT_INST_3x(vfmaddcsh, Vfmaddcsh, Vec, Vec, Vec)
3766
+ ASMJIT_INST_3x(vfmaddcsh, Vfmaddcsh, Vec, Vec, Mem)
3767
+ ASMJIT_INST_3x(vfmaddsub132ph, Vfmaddsub132ph, Vec, Vec, Vec)
3768
+ ASMJIT_INST_3x(vfmaddsub132ph, Vfmaddsub132ph, Vec, Vec, Mem)
3769
+ ASMJIT_INST_3x(vfmaddsub213ph, Vfmaddsub213ph, Vec, Vec, Vec)
3770
+ ASMJIT_INST_3x(vfmaddsub213ph, Vfmaddsub213ph, Vec, Vec, Mem)
3771
+ ASMJIT_INST_3x(vfmaddsub231ph, Vfmaddsub231ph, Vec, Vec, Vec)
3772
+ ASMJIT_INST_3x(vfmaddsub231ph, Vfmaddsub231ph, Vec, Vec, Mem)
3773
+ ASMJIT_INST_3x(vfmsub132ph, Vfmsub132ph, Vec, Vec, Vec)
3774
+ ASMJIT_INST_3x(vfmsub132ph, Vfmsub132ph, Vec, Vec, Mem)
3775
+ ASMJIT_INST_3x(vfmsub132sh, Vfmsub132sh, Vec, Vec, Vec)
3776
+ ASMJIT_INST_3x(vfmsub132sh, Vfmsub132sh, Vec, Vec, Mem)
3777
+ ASMJIT_INST_3x(vfmsub213ph, Vfmsub213ph, Vec, Vec, Vec)
3778
+ ASMJIT_INST_3x(vfmsub213ph, Vfmsub213ph, Vec, Vec, Mem)
3779
+ ASMJIT_INST_3x(vfmsub213sh, Vfmsub213sh, Vec, Vec, Vec)
3780
+ ASMJIT_INST_3x(vfmsub213sh, Vfmsub213sh, Vec, Vec, Mem)
3781
+ ASMJIT_INST_3x(vfmsub231ph, Vfmsub231ph, Vec, Vec, Vec)
3782
+ ASMJIT_INST_3x(vfmsub231ph, Vfmsub231ph, Vec, Vec, Mem)
3783
+ ASMJIT_INST_3x(vfmsub231sh, Vfmsub231sh, Vec, Vec, Vec)
3784
+ ASMJIT_INST_3x(vfmsub231sh, Vfmsub231sh, Vec, Vec, Mem)
3785
+ ASMJIT_INST_3x(vfmsubadd132ph, Vfmsubadd132ph, Vec, Vec, Vec)
3786
+ ASMJIT_INST_3x(vfmsubadd132ph, Vfmsubadd132ph, Vec, Vec, Mem)
3787
+ ASMJIT_INST_3x(vfmsubadd213ph, Vfmsubadd213ph, Vec, Vec, Vec)
3788
+ ASMJIT_INST_3x(vfmsubadd213ph, Vfmsubadd213ph, Vec, Vec, Mem)
3789
+ ASMJIT_INST_3x(vfmsubadd231ph, Vfmsubadd231ph, Vec, Vec, Vec)
3790
+ ASMJIT_INST_3x(vfmsubadd231ph, Vfmsubadd231ph, Vec, Vec, Mem)
3791
+ ASMJIT_INST_3x(vfmulcph, Vfmulcph, Vec, Vec, Vec)
3792
+ ASMJIT_INST_3x(vfmulcph, Vfmulcph, Vec, Vec, Mem)
3793
+ ASMJIT_INST_3x(vfmulcsh, Vfmulcsh, Vec, Vec, Vec)
3794
+ ASMJIT_INST_3x(vfmulcsh, Vfmulcsh, Vec, Vec, Mem)
3795
+ ASMJIT_INST_3x(vfnmadd132ph, Vfnmadd132ph, Vec, Vec, Vec)
3796
+ ASMJIT_INST_3x(vfnmadd132ph, Vfnmadd132ph, Vec, Vec, Mem)
3797
+ ASMJIT_INST_3x(vfnmadd132sh, Vfnmadd132sh, Vec, Vec, Vec)
3798
+ ASMJIT_INST_3x(vfnmadd132sh, Vfnmadd132sh, Vec, Vec, Mem)
3799
+ ASMJIT_INST_3x(vfnmadd213ph, Vfnmadd213ph, Vec, Vec, Vec)
3800
+ ASMJIT_INST_3x(vfnmadd213ph, Vfnmadd213ph, Vec, Vec, Mem)
3801
+ ASMJIT_INST_3x(vfnmadd213sh, Vfnmadd213sh, Vec, Vec, Vec)
3802
+ ASMJIT_INST_3x(vfnmadd213sh, Vfnmadd213sh, Vec, Vec, Mem)
3803
+ ASMJIT_INST_3x(vfnmadd231ph, Vfnmadd231ph, Vec, Vec, Vec)
3804
+ ASMJIT_INST_3x(vfnmadd231ph, Vfnmadd231ph, Vec, Vec, Mem)
3805
+ ASMJIT_INST_3x(vfnmadd231sh, Vfnmadd231sh, Vec, Vec, Vec)
3806
+ ASMJIT_INST_3x(vfnmadd231sh, Vfnmadd231sh, Vec, Vec, Mem)
3807
+ ASMJIT_INST_3x(vfnmsub132ph, Vfnmsub132ph, Vec, Vec, Vec)
3808
+ ASMJIT_INST_3x(vfnmsub132ph, Vfnmsub132ph, Vec, Vec, Mem)
3809
+ ASMJIT_INST_3x(vfnmsub132sh, Vfnmsub132sh, Vec, Vec, Vec)
3810
+ ASMJIT_INST_3x(vfnmsub132sh, Vfnmsub132sh, Vec, Vec, Mem)
3811
+ ASMJIT_INST_3x(vfnmsub213ph, Vfnmsub213ph, Vec, Vec, Vec)
3812
+ ASMJIT_INST_3x(vfnmsub213ph, Vfnmsub213ph, Vec, Vec, Mem)
3813
+ ASMJIT_INST_3x(vfnmsub213sh, Vfnmsub213sh, Vec, Vec, Vec)
3814
+ ASMJIT_INST_3x(vfnmsub213sh, Vfnmsub213sh, Vec, Vec, Mem)
3815
+ ASMJIT_INST_3x(vfnmsub231ph, Vfnmsub231ph, Vec, Vec, Vec)
3816
+ ASMJIT_INST_3x(vfnmsub231ph, Vfnmsub231ph, Vec, Vec, Mem)
3817
+ ASMJIT_INST_3x(vfnmsub231sh, Vfnmsub231sh, Vec, Vec, Vec)
3818
+ ASMJIT_INST_3x(vfnmsub231sh, Vfnmsub231sh, Vec, Vec, Mem)
3819
+ ASMJIT_INST_3x(vfpclassph, Vfpclassph, KReg, Vec, Imm)
3820
+ ASMJIT_INST_3x(vfpclassph, Vfpclassph, KReg, Mem, Imm)
3821
+ ASMJIT_INST_3x(vfpclasssh, Vfpclasssh, KReg, Vec, Imm)
3822
+ ASMJIT_INST_3x(vfpclasssh, Vfpclasssh, KReg, Mem, Imm)
3823
+ ASMJIT_INST_2x(vgetexpph, Vgetexpph, Vec, Vec)
3824
+ ASMJIT_INST_2x(vgetexpph, Vgetexpph, Vec, Mem)
3825
+ ASMJIT_INST_3x(vgetexpsh, Vgetexpsh, Vec, Vec, Vec)
3826
+ ASMJIT_INST_3x(vgetexpsh, Vgetexpsh, Vec, Vec, Mem)
3827
+ ASMJIT_INST_3x(vgetmantph, Vgetmantph, Vec, Vec, Imm)
3828
+ ASMJIT_INST_3x(vgetmantph, Vgetmantph, Vec, Mem, Imm)
3829
+ ASMJIT_INST_4x(vgetmantsh, Vgetmantsh, Vec, Vec, Vec, Imm)
3830
+ ASMJIT_INST_4x(vgetmantsh, Vgetmantsh, Vec, Vec, Mem, Imm)
3831
+ ASMJIT_INST_3x(vmaxph, Vmaxph, Vec, Vec, Vec)
3832
+ ASMJIT_INST_3x(vmaxph, Vmaxph, Vec, Vec, Mem)
3833
+ ASMJIT_INST_3x(vmaxsh, Vmaxsh, Vec, Vec, Vec)
3834
+ ASMJIT_INST_3x(vmaxsh, Vmaxsh, Vec, Vec, Mem)
3835
+ ASMJIT_INST_3x(vminph, Vminph, Vec, Vec, Vec)
3836
+ ASMJIT_INST_3x(vminph, Vminph, Vec, Vec, Mem)
3837
+ ASMJIT_INST_3x(vminsh, Vminsh, Vec, Vec, Vec)
3838
+ ASMJIT_INST_3x(vminsh, Vminsh, Vec, Vec, Mem)
3839
+ ASMJIT_INST_2x(vmovsh, Vmovsh, Mem, Xmm)
3840
+ ASMJIT_INST_2x(vmovsh, Vmovsh, Xmm, Mem)
3841
+ ASMJIT_INST_3x(vmovsh, Vmovsh, Xmm, Xmm, Xmm)
3842
+ ASMJIT_INST_2x(vmovw, Vmovw, Gp, Xmm)
3843
+ ASMJIT_INST_2x(vmovw, Vmovw, Mem, Xmm)
3844
+ ASMJIT_INST_2x(vmovw, Vmovw, Xmm, Gp)
3845
+ ASMJIT_INST_2x(vmovw, Vmovw, Xmm, Mem)
3846
+ ASMJIT_INST_3x(vmulph, Vmulph, Vec, Vec, Vec)
3847
+ ASMJIT_INST_3x(vmulph, Vmulph, Vec, Vec, Mem)
3848
+ ASMJIT_INST_3x(vmulsh, Vmulsh, Vec, Vec, Vec)
3849
+ ASMJIT_INST_3x(vmulsh, Vmulsh, Vec, Vec, Mem)
3850
+ ASMJIT_INST_2x(vrcpph, Vrcpph, Vec, Vec)
3851
+ ASMJIT_INST_2x(vrcpph, Vrcpph, Vec, Mem)
3852
+ ASMJIT_INST_3x(vrcpsh, Vrcpsh, Vec, Vec, Vec)
3853
+ ASMJIT_INST_3x(vrcpsh, Vrcpsh, Vec, Vec, Mem)
3854
+ ASMJIT_INST_3x(vreduceph, Vreduceph, Vec, Vec, Imm)
3855
+ ASMJIT_INST_3x(vreduceph, Vreduceph, Vec, Mem, Imm)
3856
+ ASMJIT_INST_4x(vreducesh, Vreducesh, Vec, Vec, Vec, Imm)
3857
+ ASMJIT_INST_4x(vreducesh, Vreducesh, Vec, Vec, Mem, Imm)
3858
+ ASMJIT_INST_3x(vrndscaleph, Vrndscaleph, Vec, Vec, Imm)
3859
+ ASMJIT_INST_3x(vrndscaleph, Vrndscaleph, Vec, Mem, Imm)
3860
+ ASMJIT_INST_4x(vrndscalesh, Vrndscalesh, Vec, Vec, Vec, Imm)
3861
+ ASMJIT_INST_4x(vrndscalesh, Vrndscalesh, Vec, Vec, Mem, Imm)
3862
+ ASMJIT_INST_2x(vrsqrtph, Vrsqrtph, Vec, Vec)
3863
+ ASMJIT_INST_2x(vrsqrtph, Vrsqrtph, Vec, Mem)
3864
+ ASMJIT_INST_3x(vrsqrtsh, Vrsqrtsh, Vec, Vec, Vec)
3865
+ ASMJIT_INST_3x(vrsqrtsh, Vrsqrtsh, Vec, Vec, Mem)
3866
+ ASMJIT_INST_3x(vscalefph, Vscalefph, Vec, Vec, Vec)
3867
+ ASMJIT_INST_3x(vscalefph, Vscalefph, Vec, Vec, Mem)
3868
+ ASMJIT_INST_3x(vscalefsh, Vscalefsh, Vec, Vec, Vec)
3869
+ ASMJIT_INST_3x(vscalefsh, Vscalefsh, Vec, Vec, Mem)
3870
+ ASMJIT_INST_2x(vsqrtph, Vsqrtph, Vec, Vec)
3871
+ ASMJIT_INST_2x(vsqrtph, Vsqrtph, Vec, Mem)
3872
+ ASMJIT_INST_3x(vsqrtsh, Vsqrtsh, Vec, Vec, Vec)
3873
+ ASMJIT_INST_3x(vsqrtsh, Vsqrtsh, Vec, Vec, Mem)
3874
+ ASMJIT_INST_3x(vsubph, Vsubph, Vec, Vec, Vec)
3875
+ ASMJIT_INST_3x(vsubph, Vsubph, Vec, Vec, Mem)
3876
+ ASMJIT_INST_3x(vsubsh, Vsubsh, Vec, Vec, Vec)
3877
+ ASMJIT_INST_3x(vsubsh, Vsubsh, Vec, Vec, Mem)
3878
+ ASMJIT_INST_2x(vucomish, Vucomish, Vec, Vec)
3879
+ ASMJIT_INST_2x(vucomish, Vucomish, Vec, Mem)
3880
+
3881
+ //! \}
3882
+
3883
+ //! \name AMX Instructions
3884
+ //! \{
3885
+
3886
+ ASMJIT_INST_1x(ldtilecfg, Ldtilecfg, Mem) // AMX_TILE
3887
+ ASMJIT_INST_1x(sttilecfg, Sttilecfg, Mem) // AMX_TILE
3888
+ ASMJIT_INST_2x(tileloadd, Tileloadd, Tmm, Mem) // AMX_TILE
3889
+ ASMJIT_INST_2x(tileloaddt1, Tileloaddt1, Tmm, Mem) // AMX_TILE
3890
+ ASMJIT_INST_0x(tilerelease, Tilerelease) // AMX_TILE
3891
+ ASMJIT_INST_2x(tilestored, Tilestored, Mem, Tmm) // AMX_TILE
3892
+ ASMJIT_INST_1x(tilezero, Tilezero, Tmm) // AMX_TILE
3893
+
3894
+ ASMJIT_INST_3x(tdpbf16ps, Tdpbf16ps, Tmm, Tmm, Tmm) // AMX_BF16
3895
+ ASMJIT_INST_3x(tdpbssd, Tdpbssd, Tmm, Tmm, Tmm) // AMX_INT8
3896
+ ASMJIT_INST_3x(tdpbsud, Tdpbsud, Tmm, Tmm, Tmm) // AMX_INT8
3897
+ ASMJIT_INST_3x(tdpbusd, Tdpbusd, Tmm, Tmm, Tmm) // AMX_INT8
3898
+ ASMJIT_INST_3x(tdpbuud, Tdpbuud, Tmm, Tmm, Tmm) // AMX_INT8
3899
+
3900
+ //! \}
3901
+ };
3902
+
3903
+ //! Emitter (X86 - implicit).
3904
+ template<typename This>
3905
+ struct EmitterImplicitT : public EmitterExplicitT<This> {
3906
+ //! \cond
3907
+ using EmitterExplicitT<This>::_emitter;
3908
+ //! \endcond
3909
+
3910
+ //! \name Prefix Options
3911
+ //! \{
3912
+
3913
+ //! Use REP/REPE prefix.
3914
+ inline This& rep() noexcept { return EmitterExplicitT<This>::_addInstOptions(InstOptions::kX86_Rep); }
3915
+ //! Use REP/REPE prefix.
3916
+ inline This& repe() noexcept { return rep(); }
3917
+ //! Use REP/REPE prefix.
3918
+ inline This& repz() noexcept { return rep(); }
3919
+
3920
+ //! Use REPNE prefix.
3921
+ inline This& repne() noexcept { return EmitterExplicitT<This>::_addInstOptions(InstOptions::kX86_Repne); }
3922
+ //! Use REPNE prefix.
3923
+ inline This& repnz() noexcept { return repne(); }
3924
+
3925
+ //! \}
3926
+
3927
+ //! \name Core Instructions
3928
+ //! \{
3929
+
3930
+ //! \cond
3931
+ using EmitterExplicitT<This>::cbw;
3932
+ using EmitterExplicitT<This>::cdq;
3933
+ using EmitterExplicitT<This>::cdqe;
3934
+ using EmitterExplicitT<This>::cqo;
3935
+ using EmitterExplicitT<This>::cwd;
3936
+ using EmitterExplicitT<This>::cwde;
3937
+ using EmitterExplicitT<This>::cmpsd;
3938
+ using EmitterExplicitT<This>::cmpxchg;
3939
+ using EmitterExplicitT<This>::cmpxchg8b;
3940
+ using EmitterExplicitT<This>::cmpxchg16b;
3941
+ using EmitterExplicitT<This>::div;
3942
+ using EmitterExplicitT<This>::idiv;
3943
+ using EmitterExplicitT<This>::imul;
3944
+ using EmitterExplicitT<This>::jecxz;
3945
+ using EmitterExplicitT<This>::loop;
3946
+ using EmitterExplicitT<This>::loope;
3947
+ using EmitterExplicitT<This>::loopne;
3948
+ using EmitterExplicitT<This>::mul;
3949
+ //! \endcond
3950
+
3951
+ ASMJIT_INST_0x(cbw, Cbw) // ANY [IMPLICIT] AX <- Sign Extend AL
3952
+ ASMJIT_INST_0x(cdq, Cdq) // ANY [IMPLICIT] EDX:EAX <- Sign Extend EAX
3953
+ ASMJIT_INST_0x(cdqe, Cdqe) // X64 [IMPLICIT] RAX <- Sign Extend EAX
3954
+ ASMJIT_INST_2x(cmpxchg, Cmpxchg, Gp, Gp) // I486 [IMPLICIT]
3955
+ ASMJIT_INST_2x(cmpxchg, Cmpxchg, Mem, Gp) // I486 [IMPLICIT]
3956
+ ASMJIT_INST_1x(cmpxchg16b, Cmpxchg16b, Mem) // CMPXCHG8B [IMPLICIT] m == RDX:RAX ? m <- RCX:RBX
3957
+ ASMJIT_INST_1x(cmpxchg8b, Cmpxchg8b, Mem) // CMPXCHG16B[IMPLICIT] m == EDX:EAX ? m <- ECX:EBX
3958
+ ASMJIT_INST_0x(cqo, Cqo) // X64 [IMPLICIT] RDX:RAX <- Sign Extend RAX
3959
+ ASMJIT_INST_0x(cwd, Cwd) // ANY [IMPLICIT] DX:AX <- Sign Extend AX
3960
+ ASMJIT_INST_0x(cwde, Cwde) // ANY [IMPLICIT] EAX <- Sign Extend AX
3961
+ ASMJIT_INST_1x(div, Div, Gp) // ANY [IMPLICIT] {AH[Rem]: AL[Quot] <- AX / r8} {xDX[Rem]:xAX[Quot] <- DX:AX / r16|r32|r64}
3962
+ ASMJIT_INST_1x(div, Div, Mem) // ANY [IMPLICIT] {AH[Rem]: AL[Quot] <- AX / m8} {xDX[Rem]:xAX[Quot] <- DX:AX / m16|m32|m64}
3963
+ ASMJIT_INST_1x(idiv, Idiv, Gp) // ANY [IMPLICIT] {AH[Rem]: AL[Quot] <- AX / r8} {xDX[Rem]:xAX[Quot] <- DX:AX / r16|r32|r64}
3964
+ ASMJIT_INST_1x(idiv, Idiv, Mem) // ANY [IMPLICIT] {AH[Rem]: AL[Quot] <- AX / m8} {xDX[Rem]:xAX[Quot] <- DX:AX / m16|m32|m64}
3965
+ ASMJIT_INST_1x(imul, Imul, Gp) // ANY [IMPLICIT] {AX <- AL * r8} {xAX:xDX <- xAX * r16|r32|r64}
3966
+ ASMJIT_INST_1x(imul, Imul, Mem) // ANY [IMPLICIT] {AX <- AL * m8} {xAX:xDX <- xAX * m16|m32|m64}
3967
+ ASMJIT_INST_0x(iret, Iret) // ANY [IMPLICIT]
3968
+ ASMJIT_INST_0x(iretd, Iretd) // ANY [IMPLICIT]
3969
+ ASMJIT_INST_0x(iretq, Iretq) // X64 [IMPLICIT]
3970
+ ASMJIT_INST_1x(jecxz, Jecxz, Label) // ANY [IMPLICIT] Short jump if CX/ECX/RCX is zero.
3971
+ ASMJIT_INST_1x(jecxz, Jecxz, Imm) // ANY [IMPLICIT] Short jump if CX/ECX/RCX is zero.
3972
+ ASMJIT_INST_1x(loop, Loop, Label) // ANY [IMPLICIT] Decrement xCX; short jump if xCX != 0.
3973
+ ASMJIT_INST_1x(loop, Loop, Imm) // ANY [IMPLICIT] Decrement xCX; short jump if xCX != 0.
3974
+ ASMJIT_INST_1x(loope, Loope, Label) // ANY [IMPLICIT] Decrement xCX; short jump if xCX != 0 && ZF == 1.
3975
+ ASMJIT_INST_1x(loope, Loope, Imm) // ANY [IMPLICIT] Decrement xCX; short jump if xCX != 0 && ZF == 1.
3976
+ ASMJIT_INST_1x(loopne, Loopne, Label) // ANY [IMPLICIT] Decrement xCX; short jump if xCX != 0 && ZF == 0.
3977
+ ASMJIT_INST_1x(loopne, Loopne, Imm) // ANY [IMPLICIT] Decrement xCX; short jump if xCX != 0 && ZF == 0.
3978
+ ASMJIT_INST_1x(mul, Mul, Gp) // ANY [IMPLICIT] {AX <- AL * r8} {xDX:xAX <- xAX * r16|r32|r64}
3979
+ ASMJIT_INST_1x(mul, Mul, Mem) // ANY [IMPLICIT] {AX <- AL * m8} {xDX:xAX <- xAX * m16|m32|m64}
3980
+ ASMJIT_INST_0x(ret, Ret)
3981
+ ASMJIT_INST_1x(ret, Ret, Imm)
3982
+ ASMJIT_INST_0x(retf, Retf)
3983
+ ASMJIT_INST_1x(retf, Retf, Imm)
3984
+ ASMJIT_INST_0x(xlatb, Xlatb) // ANY [IMPLICIT]
3985
+
3986
+ //! \}
3987
+
3988
+ //! \name String Instruction Aliases
3989
+ //! \{
3990
+
3991
+ //! \cond
3992
+ using EmitterExplicitT<This>::movsd;
3993
+ //! \endcond
3994
+
3995
+ inline Error cmpsb() { return _emitter()->emit(Inst::kIdCmps, EmitterExplicitT<This>::ptr_zsi(0, 1), EmitterExplicitT<This>::ptr_zdi(0, 1)); }
3996
+ inline Error cmpsd() { return _emitter()->emit(Inst::kIdCmps, EmitterExplicitT<This>::ptr_zsi(0, 4), EmitterExplicitT<This>::ptr_zdi(0, 4)); }
3997
+ inline Error cmpsq() { return _emitter()->emit(Inst::kIdCmps, EmitterExplicitT<This>::ptr_zsi(0, 8), EmitterExplicitT<This>::ptr_zdi(0, 8)); }
3998
+ inline Error cmpsw() { return _emitter()->emit(Inst::kIdCmps, EmitterExplicitT<This>::ptr_zsi(0, 2), EmitterExplicitT<This>::ptr_zdi(0, 2)); }
3999
+
4000
+ inline Error lodsb() { return _emitter()->emit(Inst::kIdLods, al , EmitterExplicitT<This>::ptr_zsi(0, 1)); }
4001
+ inline Error lodsd() { return _emitter()->emit(Inst::kIdLods, eax, EmitterExplicitT<This>::ptr_zsi(0, 4)); }
4002
+ inline Error lodsq() { return _emitter()->emit(Inst::kIdLods, rax, EmitterExplicitT<This>::ptr_zsi(0, 8)); }
4003
+ inline Error lodsw() { return _emitter()->emit(Inst::kIdLods, ax , EmitterExplicitT<This>::ptr_zsi(0, 2)); }
4004
+
4005
+ inline Error movsb() { return _emitter()->emit(Inst::kIdMovs, EmitterExplicitT<This>::ptr_zdi(0, 1), EmitterExplicitT<This>::ptr_zsi(0, 1)); }
4006
+ inline Error movsd() { return _emitter()->emit(Inst::kIdMovs, EmitterExplicitT<This>::ptr_zdi(0, 4), EmitterExplicitT<This>::ptr_zsi(0, 4)); }
4007
+ inline Error movsq() { return _emitter()->emit(Inst::kIdMovs, EmitterExplicitT<This>::ptr_zdi(0, 8), EmitterExplicitT<This>::ptr_zsi(0, 8)); }
4008
+ inline Error movsw() { return _emitter()->emit(Inst::kIdMovs, EmitterExplicitT<This>::ptr_zdi(0, 2), EmitterExplicitT<This>::ptr_zsi(0, 2)); }
4009
+
4010
+ inline Error scasb() { return _emitter()->emit(Inst::kIdScas, al , EmitterExplicitT<This>::ptr_zdi(0, 1)); }
4011
+ inline Error scasd() { return _emitter()->emit(Inst::kIdScas, eax, EmitterExplicitT<This>::ptr_zdi(0, 4)); }
4012
+ inline Error scasq() { return _emitter()->emit(Inst::kIdScas, rax, EmitterExplicitT<This>::ptr_zdi(0, 8)); }
4013
+ inline Error scasw() { return _emitter()->emit(Inst::kIdScas, ax , EmitterExplicitT<This>::ptr_zdi(0, 2)); }
4014
+
4015
+ inline Error stosb() { return _emitter()->emit(Inst::kIdStos, EmitterExplicitT<This>::ptr_zdi(0, 1), al ); }
4016
+ inline Error stosd() { return _emitter()->emit(Inst::kIdStos, EmitterExplicitT<This>::ptr_zdi(0, 4), eax); }
4017
+ inline Error stosq() { return _emitter()->emit(Inst::kIdStos, EmitterExplicitT<This>::ptr_zdi(0, 8), rax); }
4018
+ inline Error stosw() { return _emitter()->emit(Inst::kIdStos, EmitterExplicitT<This>::ptr_zdi(0, 2), ax ); }
4019
+
4020
+ //! \}
4021
+
4022
+ //! \name Deprecated 32-bit Instructions
4023
+ //! \{
4024
+
4025
+ //! \cond
4026
+ using EmitterExplicitT<This>::aaa;
4027
+ using EmitterExplicitT<This>::aad;
4028
+ using EmitterExplicitT<This>::aam;
4029
+ using EmitterExplicitT<This>::aas;
4030
+ using EmitterExplicitT<This>::daa;
4031
+ using EmitterExplicitT<This>::das;
4032
+ //! \endcond
4033
+
4034
+ ASMJIT_INST_0x(aaa, Aaa) // X86 [IMPLICIT]
4035
+ ASMJIT_INST_1x(aad, Aad, Imm) // X86 [IMPLICIT]
4036
+ ASMJIT_INST_1x(aam, Aam, Imm) // X86 [IMPLICIT]
4037
+ ASMJIT_INST_0x(aas, Aas) // X86 [IMPLICIT]
4038
+ ASMJIT_INST_0x(daa, Daa) // X86 [IMPLICIT]
4039
+ ASMJIT_INST_0x(das, Das) // X86 [IMPLICIT]
4040
+
4041
+ //! \}
4042
+
4043
+ //! \name LAHF/SAHF Instructions
4044
+ //! \{
4045
+
4046
+ //! \cond
4047
+ using EmitterExplicitT<This>::lahf;
4048
+ using EmitterExplicitT<This>::sahf;
4049
+ //! \endcond
4050
+
4051
+ ASMJIT_INST_0x(lahf, Lahf) // LAHFSAHF [IMPLICIT] AH <- EFL
4052
+ ASMJIT_INST_0x(sahf, Sahf) // LAHFSAHF [IMPLICIT] EFL <- AH
4053
+
4054
+ //! \}
4055
+
4056
+ //! \name CPUID Instruction
4057
+ //! \{
4058
+
4059
+ //! \cond
4060
+ using EmitterExplicitT<This>::cpuid;
4061
+ //! \endcond
4062
+
4063
+ ASMJIT_INST_0x(cpuid, Cpuid) // I486 [IMPLICIT] EAX:EBX:ECX:EDX <- CPUID[EAX:ECX]
4064
+
4065
+ //! \}
4066
+
4067
+ //! \name CacheLine Instructions
4068
+ //! \{
4069
+
4070
+ //! \cond
4071
+ using EmitterExplicitT<This>::clzero;
4072
+ //! \endcond
4073
+
4074
+ ASMJIT_INST_0x(clzero, Clzero) // CLZERO [IMPLICIT]
4075
+
4076
+ //! \}
4077
+
4078
+ //! \name RDPRU/RDPKRU Instructions
4079
+ //! \{
4080
+
4081
+ //! \cond
4082
+ using EmitterExplicitT<This>::rdpru;
4083
+ using EmitterExplicitT<This>::rdpkru;
4084
+ //! \endcond
4085
+
4086
+ ASMJIT_INST_0x(rdpru, Rdpru) // RDPRU [IMPLICIT] EDX:EAX <- PRU[ECX]
4087
+ ASMJIT_INST_0x(rdpkru, Rdpkru) // RDPKRU [IMPLICIT] EDX:EAX <- PKRU[ECX]
4088
+
4089
+ //! \}
4090
+
4091
+ //! \name RDTSC/RDTSCP Instructions
4092
+ //! \{
4093
+
4094
+ //! \cond
4095
+ using EmitterExplicitT<This>::rdtsc;
4096
+ using EmitterExplicitT<This>::rdtscp;
4097
+ //! \endcond
4098
+
4099
+ ASMJIT_INST_0x(rdtsc, Rdtsc) // RDTSC [IMPLICIT] EDX:EAX <- CNT
4100
+ ASMJIT_INST_0x(rdtscp, Rdtscp) // RDTSCP [IMPLICIT] EDX:EAX:EXC <- CNT
4101
+
4102
+ //! \}
4103
+
4104
+ //! \name BMI2 Instructions
4105
+ //! \{
4106
+
4107
+ //! \cond
4108
+ using EmitterExplicitT<This>::mulx;
4109
+ //! \endcond
4110
+
4111
+ ASMJIT_INST_3x(mulx, Mulx, Gp, Gp, Gp) // BMI2 [IMPLICIT]
4112
+ ASMJIT_INST_3x(mulx, Mulx, Gp, Gp, Mem) // BMI2 [IMPLICIT]
4113
+
4114
+ //! \}
4115
+
4116
+ //! \name XSAVE Instructions
4117
+ //! \{
4118
+
4119
+ //! \cond
4120
+ using EmitterExplicitT<This>::xgetbv;
4121
+ using EmitterExplicitT<This>::xrstor;
4122
+ using EmitterExplicitT<This>::xrstor64;
4123
+ using EmitterExplicitT<This>::xrstors;
4124
+ using EmitterExplicitT<This>::xrstors64;
4125
+ using EmitterExplicitT<This>::xsave;
4126
+ using EmitterExplicitT<This>::xsave64;
4127
+ using EmitterExplicitT<This>::xsavec;
4128
+ using EmitterExplicitT<This>::xsavec64;
4129
+ using EmitterExplicitT<This>::xsaveopt;
4130
+ using EmitterExplicitT<This>::xsaveopt64;
4131
+ using EmitterExplicitT<This>::xsaves;
4132
+ using EmitterExplicitT<This>::xsaves64;
4133
+ //! \endcond
4134
+
4135
+ ASMJIT_INST_0x(xgetbv, Xgetbv) // XSAVE [IMPLICIT] EDX:EAX <- XCR[ECX]
4136
+ ASMJIT_INST_1x(xrstor, Xrstor, Mem) // XSAVE [IMPLICIT]
4137
+ ASMJIT_INST_1x(xrstor64, Xrstor64, Mem) // XSAVE+X64 [IMPLICIT]
4138
+ ASMJIT_INST_1x(xrstors, Xrstors, Mem) // XSAVE [IMPLICIT]
4139
+ ASMJIT_INST_1x(xrstors64, Xrstors64, Mem) // XSAVE+X64 [IMPLICIT]
4140
+ ASMJIT_INST_1x(xsave, Xsave, Mem) // XSAVE [IMPLICIT]
4141
+ ASMJIT_INST_1x(xsave64, Xsave64, Mem) // XSAVE+X64 [IMPLICIT]
4142
+ ASMJIT_INST_1x(xsavec, Xsavec, Mem) // XSAVE [IMPLICIT]
4143
+ ASMJIT_INST_1x(xsavec64, Xsavec64, Mem) // XSAVE+X64 [IMPLICIT]
4144
+ ASMJIT_INST_1x(xsaveopt, Xsaveopt, Mem) // XSAVE [IMPLICIT]
4145
+ ASMJIT_INST_1x(xsaveopt64, Xsaveopt64, Mem) // XSAVE+X64 [IMPLICIT]
4146
+ ASMJIT_INST_1x(xsaves, Xsaves, Mem) // XSAVE [IMPLICIT]
4147
+ ASMJIT_INST_1x(xsaves64, Xsaves64, Mem) // XSAVE+X64 [IMPLICIT]
4148
+
4149
+ //! \}
4150
+
4151
+ //! \name SYSCALL/SYSENTER Instructions
4152
+ //! \{
4153
+
4154
+ ASMJIT_INST_0x(syscall, Syscall) // X64 [IMPLICIT]
4155
+ ASMJIT_INST_0x(sysenter, Sysenter) // X64 [IMPLICIT]
4156
+
4157
+ //! \}
4158
+
4159
+ //! \name HRESET Instructions
4160
+ //! \{
4161
+
4162
+ //! \cond
4163
+ using EmitterExplicitT<This>::hreset;
4164
+ //! \endcond
4165
+
4166
+ ASMJIT_INST_1x(hreset, Hreset, Imm) // HRESET [IMPLICIT]
4167
+
4168
+ //! \}
4169
+
4170
+ //! \name Privileged Instructions
4171
+ //! \{
4172
+
4173
+ //! \cond
4174
+ using EmitterExplicitT<This>::rdmsr;
4175
+ using EmitterExplicitT<This>::rdpmc;
4176
+ using EmitterExplicitT<This>::wrmsr;
4177
+ using EmitterExplicitT<This>::xsetbv;
4178
+ //! \endcond
4179
+
4180
+ ASMJIT_INST_0x(pconfig, Pconfig) // PCONFIG [IMPLICIT]
4181
+ ASMJIT_INST_0x(rdmsr, Rdmsr) // ANY [IMPLICIT]
4182
+ ASMJIT_INST_0x(rdpmc, Rdpmc) // ANY [IMPLICIT]
4183
+ ASMJIT_INST_0x(sysexit, Sysexit) // X64 [IMPLICIT]
4184
+ ASMJIT_INST_0x(sysexitq, Sysexitq) // X64 [IMPLICIT]
4185
+ ASMJIT_INST_0x(sysret, Sysret) // X64 [IMPLICIT]
4186
+ ASMJIT_INST_0x(sysretq, Sysretq) // X64 [IMPLICIT]
4187
+ ASMJIT_INST_0x(wrmsr, Wrmsr) // ANY [IMPLICIT]
4188
+ ASMJIT_INST_0x(xsetbv, Xsetbv) // XSAVE [IMPLICIT] XCR[ECX] <- EDX:EAX
4189
+
4190
+ //! \}
4191
+
4192
+ //! \name Monitor & MWait Instructions
4193
+ //! \{
4194
+
4195
+ //! \cond
4196
+ using EmitterExplicitT<This>::monitor;
4197
+ using EmitterExplicitT<This>::monitorx;
4198
+ using EmitterExplicitT<This>::mwait;
4199
+ using EmitterExplicitT<This>::mwaitx;
4200
+ //! \endcond
4201
+
4202
+ ASMJIT_INST_0x(monitor, Monitor)
4203
+ ASMJIT_INST_0x(monitorx, Monitorx)
4204
+ ASMJIT_INST_0x(mwait, Mwait)
4205
+ ASMJIT_INST_0x(mwaitx, Mwaitx)
4206
+
4207
+ //! \}
4208
+
4209
+ //! \name WAITPKG Instructions
4210
+ //! \{
4211
+
4212
+ //! \cond
4213
+ using EmitterExplicitT<This>::tpause;
4214
+ using EmitterExplicitT<This>::umwait;
4215
+ //! \endcond
4216
+
4217
+ ASMJIT_INST_1x(tpause, Tpause, Gp)
4218
+ ASMJIT_INST_1x(umwait, Umwait, Gp)
4219
+
4220
+ //! \}
4221
+
4222
+ //! \name MMX & SSE Instructions
4223
+ //! \{
4224
+
4225
+ //! \cond
4226
+ using EmitterExplicitT<This>::blendvpd;
4227
+ using EmitterExplicitT<This>::blendvps;
4228
+ using EmitterExplicitT<This>::maskmovq;
4229
+ using EmitterExplicitT<This>::maskmovdqu;
4230
+ using EmitterExplicitT<This>::pblendvb;
4231
+ using EmitterExplicitT<This>::pcmpestri;
4232
+ using EmitterExplicitT<This>::pcmpestrm;
4233
+ using EmitterExplicitT<This>::pcmpistri;
4234
+ using EmitterExplicitT<This>::pcmpistrm;
4235
+ //! \endcond
4236
+
4237
+ ASMJIT_INST_2x(blendvpd, Blendvpd, Xmm, Xmm) // SSE4_1 [IMPLICIT]
4238
+ ASMJIT_INST_2x(blendvpd, Blendvpd, Xmm, Mem) // SSE4_1 [IMPLICIT]
4239
+ ASMJIT_INST_2x(blendvps, Blendvps, Xmm, Xmm) // SSE4_1 [IMPLICIT]
4240
+ ASMJIT_INST_2x(blendvps, Blendvps, Xmm, Mem) // SSE4_1 [IMPLICIT]
4241
+ ASMJIT_INST_2x(pblendvb, Pblendvb, Xmm, Xmm) // SSE4_1 [IMPLICIT]
4242
+ ASMJIT_INST_2x(pblendvb, Pblendvb, Xmm, Mem) // SSE4_1 [IMPLICIT]
4243
+ ASMJIT_INST_2x(maskmovq, Maskmovq, Mm, Mm) // SSE [IMPLICIT]
4244
+ ASMJIT_INST_2x(maskmovdqu, Maskmovdqu, Xmm, Xmm) // SSE2 [IMPLICIT]
4245
+ ASMJIT_INST_3x(pcmpestri, Pcmpestri, Xmm, Xmm, Imm) // SSE4_1 [IMPLICIT]
4246
+ ASMJIT_INST_3x(pcmpestri, Pcmpestri, Xmm, Mem, Imm) // SSE4_1 [IMPLICIT]
4247
+ ASMJIT_INST_3x(pcmpestrm, Pcmpestrm, Xmm, Xmm, Imm) // SSE4_1 [IMPLICIT]
4248
+ ASMJIT_INST_3x(pcmpestrm, Pcmpestrm, Xmm, Mem, Imm) // SSE4_1 [IMPLICIT]
4249
+ ASMJIT_INST_3x(pcmpistri, Pcmpistri, Xmm, Xmm, Imm) // SSE4_1 [IMPLICIT]
4250
+ ASMJIT_INST_3x(pcmpistri, Pcmpistri, Xmm, Mem, Imm) // SSE4_1 [IMPLICIT]
4251
+ ASMJIT_INST_3x(pcmpistrm, Pcmpistrm, Xmm, Xmm, Imm) // SSE4_1 [IMPLICIT]
4252
+ ASMJIT_INST_3x(pcmpistrm, Pcmpistrm, Xmm, Mem, Imm) // SSE4_1 [IMPLICIT]
4253
+
4254
+ //! \}
4255
+
4256
+ //! \name SHA Instructions
4257
+ //! \{
4258
+
4259
+ //! \cond
4260
+ using EmitterExplicitT<This>::sha256rnds2;
4261
+ //! \endcond
4262
+
4263
+ ASMJIT_INST_2x(sha256rnds2, Sha256rnds2, Xmm, Xmm) // SHA [IMPLICIT]
4264
+ ASMJIT_INST_2x(sha256rnds2, Sha256rnds2, Xmm, Mem) // SHA [IMPLICIT]
4265
+
4266
+ //! \}
4267
+
4268
+ //! \name AVX, FMA, and AVX512 Instructions
4269
+ //! \{
4270
+
4271
+ //! \cond
4272
+ using EmitterExplicitT<This>::vmaskmovdqu;
4273
+ using EmitterExplicitT<This>::vpcmpestri;
4274
+ using EmitterExplicitT<This>::vpcmpestrm;
4275
+ using EmitterExplicitT<This>::vpcmpistri;
4276
+ using EmitterExplicitT<This>::vpcmpistrm;
4277
+ //! \endcond
4278
+
4279
+ ASMJIT_INST_2x(vmaskmovdqu, Vmaskmovdqu, Xmm, Xmm) // AVX [IMPLICIT]
4280
+ ASMJIT_INST_3x(vpcmpestri, Vpcmpestri, Xmm, Xmm, Imm) // AVX [IMPLICIT]
4281
+ ASMJIT_INST_3x(vpcmpestri, Vpcmpestri, Xmm, Mem, Imm) // AVX [IMPLICIT]
4282
+ ASMJIT_INST_3x(vpcmpestrm, Vpcmpestrm, Xmm, Xmm, Imm) // AVX [IMPLICIT]
4283
+ ASMJIT_INST_3x(vpcmpestrm, Vpcmpestrm, Xmm, Mem, Imm) // AVX [IMPLICIT]
4284
+ ASMJIT_INST_3x(vpcmpistri, Vpcmpistri, Xmm, Xmm, Imm) // AVX [IMPLICIT]
4285
+ ASMJIT_INST_3x(vpcmpistri, Vpcmpistri, Xmm, Mem, Imm) // AVX [IMPLICIT]
4286
+ ASMJIT_INST_3x(vpcmpistrm, Vpcmpistrm, Xmm, Xmm, Imm) // AVX [IMPLICIT]
4287
+ ASMJIT_INST_3x(vpcmpistrm, Vpcmpistrm, Xmm, Mem, Imm) // AVX [IMPLICIT]
4288
+
4289
+ //! \}
4290
+ };
4291
+
4292
+ //! Emitter (X86).
4293
+ //!
4294
+ //! \note This class cannot be instantiated, you can only cast to it and use it as emitter that emits to either
4295
+ //! `x86::Assembler`, `x86::Builder`, or `x86::Compiler` (use with caution with `x86::Compiler` as it requires
4296
+ //! virtual registers).
4297
+ class Emitter : public BaseEmitter, public EmitterImplicitT<Emitter> {
4298
+ ASMJIT_NONCONSTRUCTIBLE(Emitter)
4299
+ };
4300
+
4301
+ //! \}
4302
+
4303
+ #undef ASMJIT_INST_0x
4304
+ #undef ASMJIT_INST_1x
4305
+ #undef ASMJIT_INST_1c
4306
+ #undef ASMJIT_INST_2x
4307
+ #undef ASMJIT_INST_2c
4308
+ #undef ASMJIT_INST_3x
4309
+ #undef ASMJIT_INST_4x
4310
+ #undef ASMJIT_INST_5x
4311
+ #undef ASMJIT_INST_6x
4312
+
4313
+ ASMJIT_END_SUB_NAMESPACE
4314
+
4315
+ #endif // ASMJIT_X86_X86EMITTER_H_INCLUDED