asmjit 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/asmjit.gemspec +1 -1
  4. data/ext/asmjit/asmjit/.editorconfig +10 -0
  5. data/ext/asmjit/asmjit/.github/FUNDING.yml +1 -0
  6. data/ext/asmjit/asmjit/.github/workflows/build-config.json +47 -0
  7. data/ext/asmjit/asmjit/.github/workflows/build.yml +156 -0
  8. data/ext/asmjit/asmjit/.gitignore +6 -0
  9. data/ext/asmjit/asmjit/CMakeLists.txt +611 -0
  10. data/ext/asmjit/asmjit/LICENSE.md +17 -0
  11. data/ext/asmjit/asmjit/README.md +69 -0
  12. data/ext/asmjit/asmjit/src/asmjit/a64.h +62 -0
  13. data/ext/asmjit/asmjit/src/asmjit/arm/a64archtraits_p.h +81 -0
  14. data/ext/asmjit/asmjit/src/asmjit/arm/a64assembler.cpp +5115 -0
  15. data/ext/asmjit/asmjit/src/asmjit/arm/a64assembler.h +72 -0
  16. data/ext/asmjit/asmjit/src/asmjit/arm/a64builder.cpp +51 -0
  17. data/ext/asmjit/asmjit/src/asmjit/arm/a64builder.h +57 -0
  18. data/ext/asmjit/asmjit/src/asmjit/arm/a64compiler.cpp +60 -0
  19. data/ext/asmjit/asmjit/src/asmjit/arm/a64compiler.h +247 -0
  20. data/ext/asmjit/asmjit/src/asmjit/arm/a64emithelper.cpp +464 -0
  21. data/ext/asmjit/asmjit/src/asmjit/arm/a64emithelper_p.h +50 -0
  22. data/ext/asmjit/asmjit/src/asmjit/arm/a64emitter.h +1228 -0
  23. data/ext/asmjit/asmjit/src/asmjit/arm/a64formatter.cpp +298 -0
  24. data/ext/asmjit/asmjit/src/asmjit/arm/a64formatter_p.h +59 -0
  25. data/ext/asmjit/asmjit/src/asmjit/arm/a64func.cpp +189 -0
  26. data/ext/asmjit/asmjit/src/asmjit/arm/a64func_p.h +33 -0
  27. data/ext/asmjit/asmjit/src/asmjit/arm/a64globals.h +1894 -0
  28. data/ext/asmjit/asmjit/src/asmjit/arm/a64instapi.cpp +278 -0
  29. data/ext/asmjit/asmjit/src/asmjit/arm/a64instapi_p.h +41 -0
  30. data/ext/asmjit/asmjit/src/asmjit/arm/a64instdb.cpp +1957 -0
  31. data/ext/asmjit/asmjit/src/asmjit/arm/a64instdb.h +74 -0
  32. data/ext/asmjit/asmjit/src/asmjit/arm/a64instdb_p.h +876 -0
  33. data/ext/asmjit/asmjit/src/asmjit/arm/a64operand.cpp +85 -0
  34. data/ext/asmjit/asmjit/src/asmjit/arm/a64operand.h +312 -0
  35. data/ext/asmjit/asmjit/src/asmjit/arm/a64rapass.cpp +852 -0
  36. data/ext/asmjit/asmjit/src/asmjit/arm/a64rapass_p.h +105 -0
  37. data/ext/asmjit/asmjit/src/asmjit/arm/a64utils.h +179 -0
  38. data/ext/asmjit/asmjit/src/asmjit/arm/armformatter.cpp +143 -0
  39. data/ext/asmjit/asmjit/src/asmjit/arm/armformatter_p.h +44 -0
  40. data/ext/asmjit/asmjit/src/asmjit/arm/armglobals.h +21 -0
  41. data/ext/asmjit/asmjit/src/asmjit/arm/armoperand.h +621 -0
  42. data/ext/asmjit/asmjit/src/asmjit/arm.h +62 -0
  43. data/ext/asmjit/asmjit/src/asmjit/asmjit-scope-begin.h +17 -0
  44. data/ext/asmjit/asmjit/src/asmjit/asmjit-scope-end.h +9 -0
  45. data/ext/asmjit/asmjit/src/asmjit/asmjit.h +33 -0
  46. data/ext/asmjit/asmjit/src/asmjit/core/api-build_p.h +55 -0
  47. data/ext/asmjit/asmjit/src/asmjit/core/api-config.h +613 -0
  48. data/ext/asmjit/asmjit/src/asmjit/core/archcommons.h +229 -0
  49. data/ext/asmjit/asmjit/src/asmjit/core/archtraits.cpp +160 -0
  50. data/ext/asmjit/asmjit/src/asmjit/core/archtraits.h +290 -0
  51. data/ext/asmjit/asmjit/src/asmjit/core/assembler.cpp +406 -0
  52. data/ext/asmjit/asmjit/src/asmjit/core/assembler.h +129 -0
  53. data/ext/asmjit/asmjit/src/asmjit/core/builder.cpp +889 -0
  54. data/ext/asmjit/asmjit/src/asmjit/core/builder.h +1391 -0
  55. data/ext/asmjit/asmjit/src/asmjit/core/codebuffer.h +113 -0
  56. data/ext/asmjit/asmjit/src/asmjit/core/codeholder.cpp +1149 -0
  57. data/ext/asmjit/asmjit/src/asmjit/core/codeholder.h +1035 -0
  58. data/ext/asmjit/asmjit/src/asmjit/core/codewriter.cpp +175 -0
  59. data/ext/asmjit/asmjit/src/asmjit/core/codewriter_p.h +179 -0
  60. data/ext/asmjit/asmjit/src/asmjit/core/compiler.cpp +582 -0
  61. data/ext/asmjit/asmjit/src/asmjit/core/compiler.h +737 -0
  62. data/ext/asmjit/asmjit/src/asmjit/core/compilerdefs.h +173 -0
  63. data/ext/asmjit/asmjit/src/asmjit/core/constpool.cpp +363 -0
  64. data/ext/asmjit/asmjit/src/asmjit/core/constpool.h +250 -0
  65. data/ext/asmjit/asmjit/src/asmjit/core/cpuinfo.cpp +1162 -0
  66. data/ext/asmjit/asmjit/src/asmjit/core/cpuinfo.h +813 -0
  67. data/ext/asmjit/asmjit/src/asmjit/core/emithelper.cpp +323 -0
  68. data/ext/asmjit/asmjit/src/asmjit/core/emithelper_p.h +58 -0
  69. data/ext/asmjit/asmjit/src/asmjit/core/emitter.cpp +333 -0
  70. data/ext/asmjit/asmjit/src/asmjit/core/emitter.h +741 -0
  71. data/ext/asmjit/asmjit/src/asmjit/core/emitterutils.cpp +129 -0
  72. data/ext/asmjit/asmjit/src/asmjit/core/emitterutils_p.h +89 -0
  73. data/ext/asmjit/asmjit/src/asmjit/core/environment.cpp +46 -0
  74. data/ext/asmjit/asmjit/src/asmjit/core/environment.h +508 -0
  75. data/ext/asmjit/asmjit/src/asmjit/core/errorhandler.cpp +14 -0
  76. data/ext/asmjit/asmjit/src/asmjit/core/errorhandler.h +228 -0
  77. data/ext/asmjit/asmjit/src/asmjit/core/formatter.cpp +584 -0
  78. data/ext/asmjit/asmjit/src/asmjit/core/formatter.h +247 -0
  79. data/ext/asmjit/asmjit/src/asmjit/core/formatter_p.h +34 -0
  80. data/ext/asmjit/asmjit/src/asmjit/core/func.cpp +286 -0
  81. data/ext/asmjit/asmjit/src/asmjit/core/func.h +1445 -0
  82. data/ext/asmjit/asmjit/src/asmjit/core/funcargscontext.cpp +293 -0
  83. data/ext/asmjit/asmjit/src/asmjit/core/funcargscontext_p.h +199 -0
  84. data/ext/asmjit/asmjit/src/asmjit/core/globals.cpp +133 -0
  85. data/ext/asmjit/asmjit/src/asmjit/core/globals.h +393 -0
  86. data/ext/asmjit/asmjit/src/asmjit/core/inst.cpp +113 -0
  87. data/ext/asmjit/asmjit/src/asmjit/core/inst.h +772 -0
  88. data/ext/asmjit/asmjit/src/asmjit/core/jitallocator.cpp +1242 -0
  89. data/ext/asmjit/asmjit/src/asmjit/core/jitallocator.h +261 -0
  90. data/ext/asmjit/asmjit/src/asmjit/core/jitruntime.cpp +80 -0
  91. data/ext/asmjit/asmjit/src/asmjit/core/jitruntime.h +89 -0
  92. data/ext/asmjit/asmjit/src/asmjit/core/logger.cpp +69 -0
  93. data/ext/asmjit/asmjit/src/asmjit/core/logger.h +198 -0
  94. data/ext/asmjit/asmjit/src/asmjit/core/misc_p.h +33 -0
  95. data/ext/asmjit/asmjit/src/asmjit/core/operand.cpp +132 -0
  96. data/ext/asmjit/asmjit/src/asmjit/core/operand.h +1611 -0
  97. data/ext/asmjit/asmjit/src/asmjit/core/osutils.cpp +84 -0
  98. data/ext/asmjit/asmjit/src/asmjit/core/osutils.h +61 -0
  99. data/ext/asmjit/asmjit/src/asmjit/core/osutils_p.h +68 -0
  100. data/ext/asmjit/asmjit/src/asmjit/core/raassignment_p.h +418 -0
  101. data/ext/asmjit/asmjit/src/asmjit/core/rabuilders_p.h +612 -0
  102. data/ext/asmjit/asmjit/src/asmjit/core/radefs_p.h +1204 -0
  103. data/ext/asmjit/asmjit/src/asmjit/core/ralocal.cpp +1166 -0
  104. data/ext/asmjit/asmjit/src/asmjit/core/ralocal_p.h +254 -0
  105. data/ext/asmjit/asmjit/src/asmjit/core/rapass.cpp +1969 -0
  106. data/ext/asmjit/asmjit/src/asmjit/core/rapass_p.h +1183 -0
  107. data/ext/asmjit/asmjit/src/asmjit/core/rastack.cpp +184 -0
  108. data/ext/asmjit/asmjit/src/asmjit/core/rastack_p.h +171 -0
  109. data/ext/asmjit/asmjit/src/asmjit/core/string.cpp +559 -0
  110. data/ext/asmjit/asmjit/src/asmjit/core/string.h +372 -0
  111. data/ext/asmjit/asmjit/src/asmjit/core/support.cpp +494 -0
  112. data/ext/asmjit/asmjit/src/asmjit/core/support.h +1773 -0
  113. data/ext/asmjit/asmjit/src/asmjit/core/target.cpp +14 -0
  114. data/ext/asmjit/asmjit/src/asmjit/core/target.h +53 -0
  115. data/ext/asmjit/asmjit/src/asmjit/core/type.cpp +74 -0
  116. data/ext/asmjit/asmjit/src/asmjit/core/type.h +419 -0
  117. data/ext/asmjit/asmjit/src/asmjit/core/virtmem.cpp +722 -0
  118. data/ext/asmjit/asmjit/src/asmjit/core/virtmem.h +242 -0
  119. data/ext/asmjit/asmjit/src/asmjit/core/zone.cpp +353 -0
  120. data/ext/asmjit/asmjit/src/asmjit/core/zone.h +615 -0
  121. data/ext/asmjit/asmjit/src/asmjit/core/zonehash.cpp +309 -0
  122. data/ext/asmjit/asmjit/src/asmjit/core/zonehash.h +186 -0
  123. data/ext/asmjit/asmjit/src/asmjit/core/zonelist.cpp +163 -0
  124. data/ext/asmjit/asmjit/src/asmjit/core/zonelist.h +209 -0
  125. data/ext/asmjit/asmjit/src/asmjit/core/zonestack.cpp +176 -0
  126. data/ext/asmjit/asmjit/src/asmjit/core/zonestack.h +239 -0
  127. data/ext/asmjit/asmjit/src/asmjit/core/zonestring.h +120 -0
  128. data/ext/asmjit/asmjit/src/asmjit/core/zonetree.cpp +99 -0
  129. data/ext/asmjit/asmjit/src/asmjit/core/zonetree.h +380 -0
  130. data/ext/asmjit/asmjit/src/asmjit/core/zonevector.cpp +356 -0
  131. data/ext/asmjit/asmjit/src/asmjit/core/zonevector.h +690 -0
  132. data/ext/asmjit/asmjit/src/asmjit/core.h +1861 -0
  133. data/ext/asmjit/asmjit/src/asmjit/x86/x86archtraits_p.h +148 -0
  134. data/ext/asmjit/asmjit/src/asmjit/x86/x86assembler.cpp +5110 -0
  135. data/ext/asmjit/asmjit/src/asmjit/x86/x86assembler.h +685 -0
  136. data/ext/asmjit/asmjit/src/asmjit/x86/x86builder.cpp +52 -0
  137. data/ext/asmjit/asmjit/src/asmjit/x86/x86builder.h +351 -0
  138. data/ext/asmjit/asmjit/src/asmjit/x86/x86compiler.cpp +61 -0
  139. data/ext/asmjit/asmjit/src/asmjit/x86/x86compiler.h +721 -0
  140. data/ext/asmjit/asmjit/src/asmjit/x86/x86emithelper.cpp +619 -0
  141. data/ext/asmjit/asmjit/src/asmjit/x86/x86emithelper_p.h +60 -0
  142. data/ext/asmjit/asmjit/src/asmjit/x86/x86emitter.h +4315 -0
  143. data/ext/asmjit/asmjit/src/asmjit/x86/x86formatter.cpp +944 -0
  144. data/ext/asmjit/asmjit/src/asmjit/x86/x86formatter_p.h +58 -0
  145. data/ext/asmjit/asmjit/src/asmjit/x86/x86func.cpp +503 -0
  146. data/ext/asmjit/asmjit/src/asmjit/x86/x86func_p.h +33 -0
  147. data/ext/asmjit/asmjit/src/asmjit/x86/x86globals.h +2169 -0
  148. data/ext/asmjit/asmjit/src/asmjit/x86/x86instapi.cpp +1732 -0
  149. data/ext/asmjit/asmjit/src/asmjit/x86/x86instapi_p.h +41 -0
  150. data/ext/asmjit/asmjit/src/asmjit/x86/x86instdb.cpp +4427 -0
  151. data/ext/asmjit/asmjit/src/asmjit/x86/x86instdb.h +563 -0
  152. data/ext/asmjit/asmjit/src/asmjit/x86/x86instdb_p.h +311 -0
  153. data/ext/asmjit/asmjit/src/asmjit/x86/x86opcode_p.h +436 -0
  154. data/ext/asmjit/asmjit/src/asmjit/x86/x86operand.cpp +231 -0
  155. data/ext/asmjit/asmjit/src/asmjit/x86/x86operand.h +1085 -0
  156. data/ext/asmjit/asmjit/src/asmjit/x86/x86rapass.cpp +1509 -0
  157. data/ext/asmjit/asmjit/src/asmjit/x86/x86rapass_p.h +94 -0
  158. data/ext/asmjit/asmjit/src/asmjit/x86.h +93 -0
  159. data/ext/asmjit/asmjit/src/asmjit.natvis +245 -0
  160. data/ext/asmjit/asmjit/test/asmjit_test_assembler.cpp +84 -0
  161. data/ext/asmjit/asmjit/test/asmjit_test_assembler.h +85 -0
  162. data/ext/asmjit/asmjit/test/asmjit_test_assembler_a64.cpp +4006 -0
  163. data/ext/asmjit/asmjit/test/asmjit_test_assembler_x64.cpp +17833 -0
  164. data/ext/asmjit/asmjit/test/asmjit_test_assembler_x86.cpp +8300 -0
  165. data/ext/asmjit/asmjit/test/asmjit_test_compiler.cpp +253 -0
  166. data/ext/asmjit/asmjit/test/asmjit_test_compiler.h +73 -0
  167. data/ext/asmjit/asmjit/test/asmjit_test_compiler_a64.cpp +690 -0
  168. data/ext/asmjit/asmjit/test/asmjit_test_compiler_x86.cpp +4317 -0
  169. data/ext/asmjit/asmjit/test/asmjit_test_emitters.cpp +197 -0
  170. data/ext/asmjit/asmjit/test/asmjit_test_instinfo.cpp +181 -0
  171. data/ext/asmjit/asmjit/test/asmjit_test_misc.h +257 -0
  172. data/ext/asmjit/asmjit/test/asmjit_test_perf.cpp +62 -0
  173. data/ext/asmjit/asmjit/test/asmjit_test_perf.h +61 -0
  174. data/ext/asmjit/asmjit/test/asmjit_test_perf_a64.cpp +699 -0
  175. data/ext/asmjit/asmjit/test/asmjit_test_perf_x86.cpp +5032 -0
  176. data/ext/asmjit/asmjit/test/asmjit_test_unit.cpp +172 -0
  177. data/ext/asmjit/asmjit/test/asmjit_test_x86_sections.cpp +172 -0
  178. data/ext/asmjit/asmjit/test/asmjitutils.h +38 -0
  179. data/ext/asmjit/asmjit/test/broken.cpp +312 -0
  180. data/ext/asmjit/asmjit/test/broken.h +148 -0
  181. data/ext/asmjit/asmjit/test/cmdline.h +61 -0
  182. data/ext/asmjit/asmjit/test/performancetimer.h +41 -0
  183. data/ext/asmjit/asmjit/tools/configure-makefiles.sh +13 -0
  184. data/ext/asmjit/asmjit/tools/configure-ninja.sh +13 -0
  185. data/ext/asmjit/asmjit/tools/configure-sanitizers.sh +13 -0
  186. data/ext/asmjit/asmjit/tools/configure-vs2019-x64.bat +2 -0
  187. data/ext/asmjit/asmjit/tools/configure-vs2019-x86.bat +2 -0
  188. data/ext/asmjit/asmjit/tools/configure-vs2022-x64.bat +2 -0
  189. data/ext/asmjit/asmjit/tools/configure-vs2022-x86.bat +2 -0
  190. data/ext/asmjit/asmjit/tools/configure-xcode.sh +8 -0
  191. data/ext/asmjit/asmjit/tools/enumgen.js +417 -0
  192. data/ext/asmjit/asmjit/tools/enumgen.sh +3 -0
  193. data/ext/asmjit/asmjit/tools/tablegen-arm.js +365 -0
  194. data/ext/asmjit/asmjit/tools/tablegen-arm.sh +3 -0
  195. data/ext/asmjit/asmjit/tools/tablegen-x86.js +2638 -0
  196. data/ext/asmjit/asmjit/tools/tablegen-x86.sh +3 -0
  197. data/ext/asmjit/asmjit/tools/tablegen.js +947 -0
  198. data/ext/asmjit/asmjit/tools/tablegen.sh +4 -0
  199. data/ext/asmjit/asmjit.cc +18 -0
  200. data/lib/asmjit/version.rb +1 -1
  201. metadata +197 -2
@@ -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