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