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,1228 @@
|
|
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_ARM_A64EMITTER_H_INCLUDED
|
7
|
+
#define ASMJIT_ARM_A64EMITTER_H_INCLUDED
|
8
|
+
|
9
|
+
#include "../core/emitter.h"
|
10
|
+
#include "../core/support.h"
|
11
|
+
#include "../arm/a64instdb.h"
|
12
|
+
#include "../arm/a64operand.h"
|
13
|
+
|
14
|
+
ASMJIT_BEGIN_SUB_NAMESPACE(a64)
|
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_2x(NAME, ID, T0, T1) \
|
23
|
+
inline Error NAME(const T0& o0, const T1& o1) { return _emitter()->_emitI(Inst::kId##ID, o0, o1); }
|
24
|
+
|
25
|
+
#define ASMJIT_INST_3x(NAME, ID, T0, T1, T2) \
|
26
|
+
inline Error NAME(const T0& o0, const T1& o1, const T2& o2) { return _emitter()->_emitI(Inst::kId##ID, o0, o1, o2); }
|
27
|
+
|
28
|
+
#define ASMJIT_INST_4x(NAME, ID, T0, T1, T2, T3) \
|
29
|
+
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); }
|
30
|
+
|
31
|
+
#define ASMJIT_INST_5x(NAME, ID, T0, T1, T2, T3, T4) \
|
32
|
+
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); }
|
33
|
+
|
34
|
+
#define ASMJIT_INST_6x(NAME, ID, T0, T1, T2, T3, T4, T5) \
|
35
|
+
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); }
|
36
|
+
|
37
|
+
#define ASMJIT_INST_1cc(NAME, ID, T0) \
|
38
|
+
inline Error NAME(const T0& o0) { return _emitter()->_emitI(Inst::kId##ID, o0); } \
|
39
|
+
\
|
40
|
+
inline Error NAME(CondCode cc, const T0& o0) { return _emitter()->_emitI(BaseInst::composeARMInstId(Inst::kId##ID, cc), o0); } \
|
41
|
+
\
|
42
|
+
inline Error NAME##_eq(const T0& o0) { return _emitter()->_emitI(BaseInst::composeARMInstId(Inst::kId##ID, CondCode::kEQ), o0); } \
|
43
|
+
inline Error NAME##_ne(const T0& o0) { return _emitter()->_emitI(BaseInst::composeARMInstId(Inst::kId##ID, CondCode::kNE), o0); } \
|
44
|
+
inline Error NAME##_cs(const T0& o0) { return _emitter()->_emitI(BaseInst::composeARMInstId(Inst::kId##ID, CondCode::kCS), o0); } \
|
45
|
+
inline Error NAME##_hs(const T0& o0) { return _emitter()->_emitI(BaseInst::composeARMInstId(Inst::kId##ID, CondCode::kHS), o0); } \
|
46
|
+
inline Error NAME##_cc(const T0& o0) { return _emitter()->_emitI(BaseInst::composeARMInstId(Inst::kId##ID, CondCode::kCC), o0); } \
|
47
|
+
inline Error NAME##_lo(const T0& o0) { return _emitter()->_emitI(BaseInst::composeARMInstId(Inst::kId##ID, CondCode::kLO), o0); } \
|
48
|
+
inline Error NAME##_mi(const T0& o0) { return _emitter()->_emitI(BaseInst::composeARMInstId(Inst::kId##ID, CondCode::kMI), o0); } \
|
49
|
+
inline Error NAME##_pl(const T0& o0) { return _emitter()->_emitI(BaseInst::composeARMInstId(Inst::kId##ID, CondCode::kPL), o0); } \
|
50
|
+
inline Error NAME##_vs(const T0& o0) { return _emitter()->_emitI(BaseInst::composeARMInstId(Inst::kId##ID, CondCode::kVS), o0); } \
|
51
|
+
inline Error NAME##_vc(const T0& o0) { return _emitter()->_emitI(BaseInst::composeARMInstId(Inst::kId##ID, CondCode::kVC), o0); } \
|
52
|
+
inline Error NAME##_hi(const T0& o0) { return _emitter()->_emitI(BaseInst::composeARMInstId(Inst::kId##ID, CondCode::kHI), o0); } \
|
53
|
+
inline Error NAME##_ls(const T0& o0) { return _emitter()->_emitI(BaseInst::composeARMInstId(Inst::kId##ID, CondCode::kLS), o0); } \
|
54
|
+
inline Error NAME##_ge(const T0& o0) { return _emitter()->_emitI(BaseInst::composeARMInstId(Inst::kId##ID, CondCode::kGE), o0); } \
|
55
|
+
inline Error NAME##_lt(const T0& o0) { return _emitter()->_emitI(BaseInst::composeARMInstId(Inst::kId##ID, CondCode::kLT), o0); } \
|
56
|
+
inline Error NAME##_gt(const T0& o0) { return _emitter()->_emitI(BaseInst::composeARMInstId(Inst::kId##ID, CondCode::kGT), o0); } \
|
57
|
+
inline Error NAME##_le(const T0& o0) { return _emitter()->_emitI(BaseInst::composeARMInstId(Inst::kId##ID, CondCode::kLE), o0); } \
|
58
|
+
inline Error NAME##_al(const T0& o0) { return _emitter()->_emitI(BaseInst::composeARMInstId(Inst::kId##ID, CondCode::kAL), o0); }
|
59
|
+
|
60
|
+
//! \addtogroup asmjit_a64
|
61
|
+
//! \{
|
62
|
+
|
63
|
+
//! ARM emitter.
|
64
|
+
//!
|
65
|
+
//! NOTE: This class cannot be instantiated, you can only cast to it and use it as emitter that emits to either
|
66
|
+
//! \ref Assembler, \ref Builder, or \ref Compiler (use withcaution with \ref Compiler as it expects virtual
|
67
|
+
//! registers to be used).
|
68
|
+
template<typename This>
|
69
|
+
struct EmitterExplicitT {
|
70
|
+
//! \cond
|
71
|
+
|
72
|
+
// These two are unfortunately reported by the sanitizer. We know what we do, however, the sanitizer doesn't.
|
73
|
+
// I have tried to use reinterpret_cast instead, but that would generate bad code when compiled by MSC.
|
74
|
+
ASMJIT_ATTRIBUTE_NO_SANITIZE_UNDEF inline This* _emitter() noexcept { return static_cast<This*>(this); }
|
75
|
+
ASMJIT_ATTRIBUTE_NO_SANITIZE_UNDEF inline const This* _emitter() const noexcept { return static_cast<const This*>(this); }
|
76
|
+
|
77
|
+
//! \endcond
|
78
|
+
|
79
|
+
// --------------------------------------------------------------------------
|
80
|
+
// [Options]
|
81
|
+
// --------------------------------------------------------------------------
|
82
|
+
|
83
|
+
protected:
|
84
|
+
inline This& _addInstOptions(InstOptions options) noexcept {
|
85
|
+
static_cast<This*>(this)->addInstOptions(options);
|
86
|
+
return *static_cast<This*>(this);
|
87
|
+
}
|
88
|
+
|
89
|
+
public:
|
90
|
+
//! \name General Purpose Instructions
|
91
|
+
//! \{
|
92
|
+
|
93
|
+
ASMJIT_INST_3x(adc, Adc, Gp, Gp, Gp)
|
94
|
+
ASMJIT_INST_3x(adcs, Adcs, Gp, Gp, Gp)
|
95
|
+
|
96
|
+
ASMJIT_INST_3x(add, Add, Gp, Gp, Gp)
|
97
|
+
ASMJIT_INST_4x(add, Add, Gp, Gp, Gp, Imm)
|
98
|
+
ASMJIT_INST_3x(add, Add, Gp, Gp, Imm)
|
99
|
+
ASMJIT_INST_4x(add, Add, Gp, Gp, Imm, Imm)
|
100
|
+
ASMJIT_INST_3x(adds, Adds, Gp, Gp, Gp)
|
101
|
+
ASMJIT_INST_3x(adds, Adds, Gp, Gp, Imm)
|
102
|
+
ASMJIT_INST_4x(adds, Adds, Gp, Gp, Gp, Imm)
|
103
|
+
ASMJIT_INST_4x(adds, Adds, Gp, Gp, Imm, Imm)
|
104
|
+
|
105
|
+
ASMJIT_INST_2x(adr, Adr, Gp, Imm)
|
106
|
+
ASMJIT_INST_2x(adr, Adr, Gp, Label)
|
107
|
+
ASMJIT_INST_2x(adrp, Adrp, Gp, Imm)
|
108
|
+
ASMJIT_INST_2x(adrp, Adrp, Gp, Label)
|
109
|
+
|
110
|
+
ASMJIT_INST_3x(and_, And, Gp, Gp, Imm)
|
111
|
+
ASMJIT_INST_3x(and_, And, Gp, Gp, Gp)
|
112
|
+
ASMJIT_INST_4x(and_, And, Gp, Gp, Gp, Imm)
|
113
|
+
ASMJIT_INST_3x(ands, Ands, Gp, Gp, Imm)
|
114
|
+
ASMJIT_INST_3x(ands, Ands, Gp, Gp, Gp)
|
115
|
+
ASMJIT_INST_4x(ands, Ands, Gp, Gp, Gp, Imm)
|
116
|
+
|
117
|
+
ASMJIT_INST_3x(asr, Asr, Gp, Gp, Imm)
|
118
|
+
ASMJIT_INST_3x(asr, Asr, Gp, Gp, Gp)
|
119
|
+
ASMJIT_INST_3x(asrv, Asrv, Gp, Gp, Gp)
|
120
|
+
|
121
|
+
ASMJIT_INST_2x(at, At, Imm, Gp)
|
122
|
+
|
123
|
+
ASMJIT_INST_3x(bfc, Bfc, Gp, Imm, Imm)
|
124
|
+
ASMJIT_INST_4x(bfi, Bfi, Gp, Gp, Imm, Imm)
|
125
|
+
ASMJIT_INST_4x(bfm, Bfm, Gp, Gp, Imm, Imm)
|
126
|
+
ASMJIT_INST_4x(bfxil, Bfxil, Gp, Gp, Imm, Imm)
|
127
|
+
|
128
|
+
ASMJIT_INST_3x(bic, Bic, Gp, Gp, Imm);
|
129
|
+
ASMJIT_INST_3x(bic, Bic, Gp, Gp, Gp);
|
130
|
+
ASMJIT_INST_4x(bic, Bic, Gp, Gp, Gp, Imm);
|
131
|
+
ASMJIT_INST_3x(bics, Bics, Gp, Gp, Imm);
|
132
|
+
ASMJIT_INST_3x(bics, Bics, Gp, Gp, Gp);
|
133
|
+
ASMJIT_INST_4x(bics, Bics, Gp, Gp, Gp, Imm);
|
134
|
+
|
135
|
+
ASMJIT_INST_1x(brk, Brk, Imm)
|
136
|
+
|
137
|
+
ASMJIT_INST_4x(ccmn, Ccmn, Gp, Gp, Imm, Imm);
|
138
|
+
ASMJIT_INST_4x(ccmn, Ccmn, Gp, Imm, Imm, Imm);
|
139
|
+
ASMJIT_INST_4x(ccmp, Ccmp, Gp, Gp, Imm, Imm);
|
140
|
+
ASMJIT_INST_4x(ccmp, Ccmp, Gp, Imm, Imm, Imm);
|
141
|
+
|
142
|
+
ASMJIT_INST_3x(cinc, Cinc, Gp, Gp, Imm);
|
143
|
+
ASMJIT_INST_3x(cinv, Cinv, Gp, Gp, Imm);
|
144
|
+
|
145
|
+
ASMJIT_INST_1x(clrex, Clrex, Imm)
|
146
|
+
|
147
|
+
ASMJIT_INST_2x(cls, Cls, Gp, Gp)
|
148
|
+
ASMJIT_INST_2x(clz, Clz, Gp, Gp)
|
149
|
+
|
150
|
+
ASMJIT_INST_2x(cmn, Cmn, Gp, Gp)
|
151
|
+
ASMJIT_INST_3x(cmn, Cmn, Gp, Gp, Imm)
|
152
|
+
ASMJIT_INST_2x(cmn, Cmn, Gp, Imm)
|
153
|
+
ASMJIT_INST_3x(cmn, Cmn, Gp, Imm, Imm)
|
154
|
+
ASMJIT_INST_2x(cmp, Cmp, Gp, Gp)
|
155
|
+
ASMJIT_INST_3x(cmp, Cmp, Gp, Gp, Imm)
|
156
|
+
ASMJIT_INST_2x(cmp, Cmp, Gp, Imm)
|
157
|
+
ASMJIT_INST_3x(cmp, Cmp, Gp, Imm, Imm)
|
158
|
+
|
159
|
+
ASMJIT_INST_3x(cneg, Cneg, Gp, Gp, Imm);
|
160
|
+
|
161
|
+
ASMJIT_INST_4x(csel, Csel, Gp, Gp, Gp, Imm);
|
162
|
+
ASMJIT_INST_2x(cset, Cset, Gp, Imm);
|
163
|
+
ASMJIT_INST_2x(csetm, Csetm, Gp, Imm);
|
164
|
+
|
165
|
+
ASMJIT_INST_4x(csinc, Csinc, Gp, Gp, Gp, Imm);
|
166
|
+
ASMJIT_INST_4x(csinv, Csinv, Gp, Gp, Gp, Imm);
|
167
|
+
ASMJIT_INST_4x(csneg, Csneg, Gp, Gp, Gp, Imm);
|
168
|
+
|
169
|
+
ASMJIT_INST_2x(dc, Dc, Imm, Gp)
|
170
|
+
ASMJIT_INST_1x(dmb, Dmb, Imm)
|
171
|
+
ASMJIT_INST_1x(dsb, Dsb, Imm)
|
172
|
+
ASMJIT_INST_0x(drps, Drps)
|
173
|
+
|
174
|
+
ASMJIT_INST_3x(eon, Eon, Gp, Gp, Gp)
|
175
|
+
ASMJIT_INST_4x(eon, Eon, Gp, Gp, Gp, Imm)
|
176
|
+
|
177
|
+
ASMJIT_INST_3x(eor, Eor, Gp, Gp, Imm)
|
178
|
+
ASMJIT_INST_3x(eor, Eor, Gp, Gp, Gp)
|
179
|
+
ASMJIT_INST_4x(eor, Eor, Gp, Gp, Gp, Imm)
|
180
|
+
|
181
|
+
ASMJIT_INST_0x(eret, Eret)
|
182
|
+
ASMJIT_INST_0x(esb, Esb)
|
183
|
+
|
184
|
+
ASMJIT_INST_4x(extr, Extr, Gp, Gp, Gp, Imm)
|
185
|
+
|
186
|
+
ASMJIT_INST_1x(hlt, Hlt, Imm)
|
187
|
+
ASMJIT_INST_1x(hvc, Hvc, Imm)
|
188
|
+
ASMJIT_INST_2x(ic, Ic, Imm, Gp)
|
189
|
+
ASMJIT_INST_1x(isb, Isb, Imm)
|
190
|
+
|
191
|
+
ASMJIT_INST_3x(lsl, Lsl, Gp, Gp, Imm)
|
192
|
+
ASMJIT_INST_3x(lsl, Lsl, Gp, Gp, Gp)
|
193
|
+
ASMJIT_INST_3x(lslv, Lslv, Gp, Gp, Gp)
|
194
|
+
|
195
|
+
ASMJIT_INST_3x(lsr, Lsr, Gp, Gp, Imm)
|
196
|
+
ASMJIT_INST_3x(lsr, Lsr, Gp, Gp, Gp)
|
197
|
+
ASMJIT_INST_3x(lsrv, Lsrv, Gp, Gp, Gp)
|
198
|
+
|
199
|
+
ASMJIT_INST_4x(madd, Madd, Gp, Gp, Gp, Gp)
|
200
|
+
ASMJIT_INST_3x(mneg, Mneg, Gp, Gp, Gp)
|
201
|
+
|
202
|
+
ASMJIT_INST_2x(mov, Mov, Gp, Gp)
|
203
|
+
ASMJIT_INST_2x(mov, Mov, Gp, Imm)
|
204
|
+
ASMJIT_INST_2x(movk, Movk, Gp, Imm)
|
205
|
+
ASMJIT_INST_3x(movk, Movk, Gp, Imm, Imm)
|
206
|
+
ASMJIT_INST_2x(movn, Movn, Gp, Imm)
|
207
|
+
ASMJIT_INST_3x(movn, Movn, Gp, Imm, Imm)
|
208
|
+
ASMJIT_INST_2x(movz, Movz, Gp, Imm)
|
209
|
+
ASMJIT_INST_3x(movz, Movz, Gp, Imm, Imm)
|
210
|
+
|
211
|
+
ASMJIT_INST_2x(mrs, Mrs, Gp, Imm)
|
212
|
+
ASMJIT_INST_2x(msr, Msr, Imm, Gp)
|
213
|
+
ASMJIT_INST_2x(msr, Msr, Imm, Imm)
|
214
|
+
|
215
|
+
ASMJIT_INST_4x(msub, Msub, Gp, Gp, Gp, Gp)
|
216
|
+
ASMJIT_INST_3x(mul, Mul, Gp, Gp, Gp)
|
217
|
+
|
218
|
+
ASMJIT_INST_2x(mvn, Mvn, Gp, Gp)
|
219
|
+
ASMJIT_INST_3x(mvn, Mvn, Gp, Gp, Imm)
|
220
|
+
|
221
|
+
ASMJIT_INST_2x(neg, Neg, Gp, Gp)
|
222
|
+
ASMJIT_INST_3x(neg, Neg, Gp, Gp, Imm)
|
223
|
+
ASMJIT_INST_2x(negs, Negs, Gp, Gp)
|
224
|
+
ASMJIT_INST_3x(negs, Negs, Gp, Gp, Imm)
|
225
|
+
|
226
|
+
ASMJIT_INST_2x(ngc, Ngc, Gp, Gp)
|
227
|
+
ASMJIT_INST_2x(ngcs, Ngcs, Gp, Gp)
|
228
|
+
|
229
|
+
ASMJIT_INST_3x(orn, Orn, Gp, Gp, Gp)
|
230
|
+
ASMJIT_INST_4x(orn, Orn, Gp, Gp, Gp, Imm)
|
231
|
+
|
232
|
+
ASMJIT_INST_3x(orr, Orr, Gp, Gp, Imm)
|
233
|
+
ASMJIT_INST_3x(orr, Orr, Gp, Gp, Gp)
|
234
|
+
ASMJIT_INST_4x(orr, Orr, Gp, Gp, Gp, Imm)
|
235
|
+
|
236
|
+
ASMJIT_INST_2x(rbit, Rbit, Gp, Gp)
|
237
|
+
ASMJIT_INST_1x(ret, Ret, Gp)
|
238
|
+
|
239
|
+
ASMJIT_INST_2x(rev, Rev, Gp, Gp)
|
240
|
+
ASMJIT_INST_2x(rev16, Rev16, Gp, Gp)
|
241
|
+
ASMJIT_INST_2x(rev32, Rev32, Gp, Gp)
|
242
|
+
ASMJIT_INST_2x(rev64, Rev64, Gp, Gp)
|
243
|
+
|
244
|
+
ASMJIT_INST_3x(ror, Ror, Gp, Gp, Imm)
|
245
|
+
ASMJIT_INST_3x(ror, Ror, Gp, Gp, Gp)
|
246
|
+
ASMJIT_INST_3x(rorv, Rorv, Gp, Gp, Gp)
|
247
|
+
|
248
|
+
ASMJIT_INST_3x(sbc, Sbc, Gp, Gp, Gp)
|
249
|
+
ASMJIT_INST_3x(sbcs, Sbcs, Gp, Gp, Gp)
|
250
|
+
|
251
|
+
ASMJIT_INST_4x(sbfiz, Sbfiz, Gp, Gp, Imm, Imm)
|
252
|
+
ASMJIT_INST_4x(sbfm, Sbfm, Gp, Gp, Imm, Imm)
|
253
|
+
ASMJIT_INST_4x(sbfx, Sbfx, Gp, Gp, Imm, Imm)
|
254
|
+
|
255
|
+
ASMJIT_INST_3x(sdiv, Sdiv, Gp, Gp, Gp)
|
256
|
+
|
257
|
+
ASMJIT_INST_4x(smaddl, Smaddl, Gp, Gp, Gp, Gp)
|
258
|
+
ASMJIT_INST_1x(smc, Smc, Imm)
|
259
|
+
ASMJIT_INST_3x(smnegl, Smnegl, Gp, Gp, Gp)
|
260
|
+
ASMJIT_INST_4x(smsubl, Smsubl, Gp, Gp, Gp, Gp)
|
261
|
+
ASMJIT_INST_3x(smulh, Smulh, Gp, Gp, Gp)
|
262
|
+
ASMJIT_INST_3x(smull, Smull, Gp, Gp, Gp)
|
263
|
+
|
264
|
+
ASMJIT_INST_3x(sub, Sub, Gp, Gp, Gp)
|
265
|
+
ASMJIT_INST_4x(sub, Sub, Gp, Gp, Gp, Imm)
|
266
|
+
ASMJIT_INST_3x(sub, Sub, Gp, Gp, Imm)
|
267
|
+
ASMJIT_INST_4x(sub, Sub, Gp, Gp, Imm, Imm)
|
268
|
+
ASMJIT_INST_3x(subs, Subs, Gp, Gp, Gp)
|
269
|
+
ASMJIT_INST_4x(subs, Subs, Gp, Gp, Gp, Imm)
|
270
|
+
ASMJIT_INST_3x(subs, Subs, Gp, Gp, Imm)
|
271
|
+
ASMJIT_INST_4x(subs, Subs, Gp, Gp, Imm, Imm)
|
272
|
+
|
273
|
+
ASMJIT_INST_1x(svc, Svc, Imm)
|
274
|
+
|
275
|
+
ASMJIT_INST_2x(sxtb, Sxtb, Gp, Gp)
|
276
|
+
ASMJIT_INST_2x(sxth, Sxth, Gp, Gp)
|
277
|
+
ASMJIT_INST_2x(sxtw, Sxtw, Gp, Gp)
|
278
|
+
|
279
|
+
ASMJIT_INST_4x(sys, Sys, Imm, Imm, Imm, Imm)
|
280
|
+
ASMJIT_INST_5x(sys, Sys, Imm, Imm, Imm, Imm, Gp)
|
281
|
+
|
282
|
+
ASMJIT_INST_2x(tlbi, Tlbi, Imm, Gp)
|
283
|
+
ASMJIT_INST_2x(tst, Tst, Gp, Imm)
|
284
|
+
ASMJIT_INST_2x(tst, Tst, Gp, Gp)
|
285
|
+
ASMJIT_INST_3x(tst, Tst, Gp, Gp, Imm)
|
286
|
+
|
287
|
+
ASMJIT_INST_3x(udiv, Udiv, Gp, Gp, Gp)
|
288
|
+
|
289
|
+
ASMJIT_INST_4x(ubfiz, Ubfiz, Gp, Gp, Imm, Imm)
|
290
|
+
ASMJIT_INST_4x(ubfm, Ubfm, Gp, Gp, Imm, Imm)
|
291
|
+
ASMJIT_INST_4x(ubfx, Ubfx, Gp, Gp, Imm, Imm)
|
292
|
+
|
293
|
+
ASMJIT_INST_4x(umaddl, Umaddl, Gp, Gp, Gp, Gp)
|
294
|
+
ASMJIT_INST_3x(umnegl, Umnegl, Gp, Gp, Gp)
|
295
|
+
ASMJIT_INST_4x(umsubl, Umsubl, Gp, Gp, Gp, Gp)
|
296
|
+
ASMJIT_INST_3x(umull, Umull, Gp, Gp, Gp)
|
297
|
+
ASMJIT_INST_3x(umulh, Umulh, Gp, Gp, Gp)
|
298
|
+
|
299
|
+
ASMJIT_INST_2x(uxtb, Uxtb, Gp, Gp)
|
300
|
+
ASMJIT_INST_2x(uxth, Uxth, Gp, Gp)
|
301
|
+
|
302
|
+
ASMJIT_INST_0x(csdb, Csdb)
|
303
|
+
ASMJIT_INST_1x(dcps1, Dcps1, Imm)
|
304
|
+
ASMJIT_INST_1x(dcps2, Dcps2, Imm)
|
305
|
+
ASMJIT_INST_1x(dcps3, Dcps3, Imm)
|
306
|
+
ASMJIT_INST_0x(dgh, Dgh)
|
307
|
+
ASMJIT_INST_0x(pssbb, Pssbb)
|
308
|
+
ASMJIT_INST_0x(ssbb, Ssbb)
|
309
|
+
ASMJIT_INST_1x(udf, Udf, Imm)
|
310
|
+
ASMJIT_INST_1x(setf8, Setf8, Gp)
|
311
|
+
ASMJIT_INST_1x(setf16, Setf16, Gp)
|
312
|
+
|
313
|
+
//! \}
|
314
|
+
|
315
|
+
//! \name ARMv8.4 Instructions
|
316
|
+
//! \{
|
317
|
+
|
318
|
+
ASMJIT_INST_0x(cfinv, Cfinv)
|
319
|
+
|
320
|
+
//! \}
|
321
|
+
|
322
|
+
//! \name ARMv8.5 Instructions
|
323
|
+
//! \{
|
324
|
+
|
325
|
+
ASMJIT_INST_0x(axflag, Axflag)
|
326
|
+
ASMJIT_INST_0x(xaflag, Xaflag)
|
327
|
+
|
328
|
+
//! \}
|
329
|
+
|
330
|
+
//! \name Branch Instructions
|
331
|
+
//! \{
|
332
|
+
|
333
|
+
ASMJIT_INST_1cc(b, B, Imm)
|
334
|
+
ASMJIT_INST_1cc(b, B, Label)
|
335
|
+
ASMJIT_INST_1x(bl, Bl, Imm)
|
336
|
+
ASMJIT_INST_1x(bl, Bl, Label)
|
337
|
+
ASMJIT_INST_1x(blr, Blr, Gp)
|
338
|
+
ASMJIT_INST_1x(br, Br, Gp)
|
339
|
+
ASMJIT_INST_2x(cbz, Cbz, Gp, Imm)
|
340
|
+
ASMJIT_INST_2x(cbz, Cbz, Gp, Label)
|
341
|
+
ASMJIT_INST_2x(cbnz, Cbnz, Gp, Imm)
|
342
|
+
ASMJIT_INST_2x(cbnz, Cbnz, Gp, Label)
|
343
|
+
ASMJIT_INST_3x(tbnz, Tbnz, Gp, Imm, Imm)
|
344
|
+
ASMJIT_INST_3x(tbnz, Tbnz, Gp, Imm, Label)
|
345
|
+
ASMJIT_INST_3x(tbz, Tbz, Gp, Imm, Imm)
|
346
|
+
ASMJIT_INST_3x(tbz, Tbz, Gp, Imm, Label)
|
347
|
+
|
348
|
+
//! \}
|
349
|
+
|
350
|
+
//! \name Load & Store Instructions
|
351
|
+
//! \{
|
352
|
+
|
353
|
+
ASMJIT_INST_3x(cas, Cas, Gp, Gp, Mem)
|
354
|
+
ASMJIT_INST_3x(casa, Casa, Gp, Gp, Mem)
|
355
|
+
ASMJIT_INST_3x(casab, Casab, Gp, Gp, Mem)
|
356
|
+
ASMJIT_INST_3x(casah, Casah, Gp, Gp, Mem)
|
357
|
+
ASMJIT_INST_3x(casal, Casal, Gp, Gp, Mem)
|
358
|
+
ASMJIT_INST_3x(casalb, Casalb, Gp, Gp, Mem)
|
359
|
+
ASMJIT_INST_3x(casalh, Casalh, Gp, Gp, Mem)
|
360
|
+
ASMJIT_INST_3x(casb, Casb, Gp, Gp, Mem)
|
361
|
+
ASMJIT_INST_3x(cash, Cash, Gp, Gp, Mem)
|
362
|
+
ASMJIT_INST_3x(casl, Casl, Gp, Gp, Mem)
|
363
|
+
ASMJIT_INST_3x(caslb, Caslb, Gp, Gp, Mem)
|
364
|
+
ASMJIT_INST_3x(caslh, Caslh, Gp, Gp, Mem)
|
365
|
+
|
366
|
+
ASMJIT_INST_5x(casp, Casp, Gp, Gp, Gp, Gp, Mem)
|
367
|
+
ASMJIT_INST_5x(caspa, Caspa, Gp, Gp, Gp, Gp, Mem)
|
368
|
+
ASMJIT_INST_5x(caspal, Caspal, Gp, Gp, Gp, Gp, Mem)
|
369
|
+
ASMJIT_INST_5x(caspl, Caspl, Gp, Gp, Gp, Gp, Mem)
|
370
|
+
|
371
|
+
ASMJIT_INST_3x(ldadd, Ldadd, Gp, Gp, Mem)
|
372
|
+
ASMJIT_INST_3x(ldadda, Ldadda, Gp, Gp, Mem)
|
373
|
+
ASMJIT_INST_3x(ldaddab, Ldaddab, Gp, Gp, Mem)
|
374
|
+
ASMJIT_INST_3x(ldaddah, Ldaddah, Gp, Gp, Mem)
|
375
|
+
ASMJIT_INST_3x(ldaddal, Ldaddal, Gp, Gp, Mem)
|
376
|
+
ASMJIT_INST_3x(ldaddalb, Ldaddalb, Gp, Gp, Mem)
|
377
|
+
ASMJIT_INST_3x(ldaddalh, Ldaddalh, Gp, Gp, Mem)
|
378
|
+
ASMJIT_INST_3x(ldaddb, Ldaddb, Gp, Gp, Mem)
|
379
|
+
ASMJIT_INST_3x(ldaddh, Ldaddh, Gp, Gp, Mem)
|
380
|
+
ASMJIT_INST_3x(ldaddl, Ldaddl, Gp, Gp, Mem)
|
381
|
+
ASMJIT_INST_3x(ldaddlb, Ldaddlb, Gp, Gp, Mem)
|
382
|
+
ASMJIT_INST_3x(ldaddlh, Ldaddlh, Gp, Gp, Mem)
|
383
|
+
|
384
|
+
ASMJIT_INST_2x(ldar, Ldar, Gp, Mem)
|
385
|
+
ASMJIT_INST_2x(ldarb, Ldarb, Gp, Mem)
|
386
|
+
ASMJIT_INST_2x(ldarh, Ldarh, Gp, Mem)
|
387
|
+
|
388
|
+
ASMJIT_INST_2x(ldaxr, Ldaxr, Gp, Mem)
|
389
|
+
ASMJIT_INST_2x(ldaxrb, Ldaxrb, Gp, Mem)
|
390
|
+
ASMJIT_INST_2x(ldaxrh, Ldaxrh, Gp, Mem)
|
391
|
+
|
392
|
+
ASMJIT_INST_3x(ldclr, Ldclr, Gp, Gp, Mem)
|
393
|
+
ASMJIT_INST_3x(ldclra, Ldclra, Gp, Gp, Mem)
|
394
|
+
ASMJIT_INST_3x(ldclrab, Ldclrab, Gp, Gp, Mem)
|
395
|
+
ASMJIT_INST_3x(ldclrah, Ldclrah, Gp, Gp, Mem)
|
396
|
+
ASMJIT_INST_3x(ldclral, Ldclral, Gp, Gp, Mem)
|
397
|
+
ASMJIT_INST_3x(ldclralb, Ldclralb, Gp, Gp, Mem)
|
398
|
+
ASMJIT_INST_3x(ldclralh, Ldclralh, Gp, Gp, Mem)
|
399
|
+
ASMJIT_INST_3x(ldclrb, Ldclrb, Gp, Gp, Mem)
|
400
|
+
ASMJIT_INST_3x(ldclrh, Ldclrh, Gp, Gp, Mem)
|
401
|
+
ASMJIT_INST_3x(ldclrl, Ldclrl, Gp, Gp, Mem)
|
402
|
+
ASMJIT_INST_3x(ldclrlb, Ldclrlb, Gp, Gp, Mem)
|
403
|
+
ASMJIT_INST_3x(ldclrlh, Ldclrlh, Gp, Gp, Mem)
|
404
|
+
|
405
|
+
ASMJIT_INST_3x(ldeor, Ldeor, Gp, Gp, Mem)
|
406
|
+
ASMJIT_INST_3x(ldeora, Ldeora, Gp, Gp, Mem)
|
407
|
+
ASMJIT_INST_3x(ldeorab, Ldeorab, Gp, Gp, Mem)
|
408
|
+
ASMJIT_INST_3x(ldeorah, Ldeorah, Gp, Gp, Mem)
|
409
|
+
ASMJIT_INST_3x(ldeoral, Ldeoral, Gp, Gp, Mem)
|
410
|
+
ASMJIT_INST_3x(ldeoralb, Ldeoralb, Gp, Gp, Mem)
|
411
|
+
ASMJIT_INST_3x(ldeoralh, Ldeoralh, Gp, Gp, Mem)
|
412
|
+
ASMJIT_INST_3x(ldeorb, Ldeorb, Gp, Gp, Mem)
|
413
|
+
ASMJIT_INST_3x(ldeorh, Ldeorh, Gp, Gp, Mem)
|
414
|
+
ASMJIT_INST_3x(ldeorl, Ldeorl, Gp, Gp, Mem)
|
415
|
+
ASMJIT_INST_3x(ldeorlb, Ldeorlb, Gp, Gp, Mem)
|
416
|
+
ASMJIT_INST_3x(ldeorlh, Ldeorlh, Gp, Gp, Mem)
|
417
|
+
|
418
|
+
ASMJIT_INST_2x(ldlar, Ldlar, Gp, Mem)
|
419
|
+
ASMJIT_INST_2x(ldlarb, Ldlarb, Gp, Mem)
|
420
|
+
ASMJIT_INST_2x(ldlarh, Ldlarh, Gp, Mem)
|
421
|
+
|
422
|
+
ASMJIT_INST_3x(ldnp, Ldnp, Gp, Gp, Mem)
|
423
|
+
|
424
|
+
ASMJIT_INST_3x(ldp, Ldp, Gp, Gp, Mem)
|
425
|
+
ASMJIT_INST_3x(ldpsw, Ldpsw, Gp, Gp, Mem)
|
426
|
+
|
427
|
+
ASMJIT_INST_2x(ldr, Ldr, Gp, Mem)
|
428
|
+
ASMJIT_INST_2x(ldrb, Ldrb, Gp, Mem)
|
429
|
+
ASMJIT_INST_2x(ldrh, Ldrh, Gp, Mem)
|
430
|
+
ASMJIT_INST_2x(ldrsb, Ldrsb, Gp, Mem)
|
431
|
+
ASMJIT_INST_2x(ldrsh, Ldrsh, Gp, Mem)
|
432
|
+
ASMJIT_INST_2x(ldrsw, Ldrsw, Gp, Mem)
|
433
|
+
|
434
|
+
ASMJIT_INST_3x(ldset, Ldset, Gp, Gp, Mem)
|
435
|
+
ASMJIT_INST_3x(ldseta, Ldseta, Gp, Gp, Mem)
|
436
|
+
ASMJIT_INST_3x(ldsetab, Ldsetab, Gp, Gp, Mem)
|
437
|
+
ASMJIT_INST_3x(ldsetah, Ldsetah, Gp, Gp, Mem)
|
438
|
+
ASMJIT_INST_3x(ldsetal, Ldsetal, Gp, Gp, Mem)
|
439
|
+
ASMJIT_INST_3x(ldsetalb, Ldsetalb, Gp, Gp, Mem)
|
440
|
+
ASMJIT_INST_3x(ldsetalh, Ldsetalh, Gp, Gp, Mem)
|
441
|
+
ASMJIT_INST_3x(ldsetb, Ldsetb, Gp, Gp, Mem)
|
442
|
+
ASMJIT_INST_3x(ldseth, Ldseth, Gp, Gp, Mem)
|
443
|
+
ASMJIT_INST_3x(ldsetl, Ldsetl, Gp, Gp, Mem)
|
444
|
+
ASMJIT_INST_3x(ldsetlb, Ldsetlb, Gp, Gp, Mem)
|
445
|
+
ASMJIT_INST_3x(ldsetlh, Ldsetlh, Gp, Gp, Mem)
|
446
|
+
|
447
|
+
ASMJIT_INST_3x(ldsmax, Ldsmax, Gp, Gp, Mem)
|
448
|
+
ASMJIT_INST_3x(ldsmaxa, Ldsmaxa, Gp, Gp, Mem)
|
449
|
+
ASMJIT_INST_3x(ldsmaxab, Ldsmaxab, Gp, Gp, Mem)
|
450
|
+
ASMJIT_INST_3x(ldsmaxah, Ldsmaxah, Gp, Gp, Mem)
|
451
|
+
ASMJIT_INST_3x(ldsmaxal, Ldsmaxal, Gp, Gp, Mem)
|
452
|
+
ASMJIT_INST_3x(ldsmaxalb, Ldsmaxalb, Gp, Gp, Mem)
|
453
|
+
ASMJIT_INST_3x(ldsmaxalh, Ldsmaxalh, Gp, Gp, Mem)
|
454
|
+
ASMJIT_INST_3x(ldsmaxb, Ldsmaxb, Gp, Gp, Mem)
|
455
|
+
ASMJIT_INST_3x(ldsmaxh, Ldsmaxh, Gp, Gp, Mem)
|
456
|
+
ASMJIT_INST_3x(ldsmaxl, Ldsmaxl, Gp, Gp, Mem)
|
457
|
+
ASMJIT_INST_3x(ldsmaxlb, Ldsmaxlb, Gp, Gp, Mem)
|
458
|
+
ASMJIT_INST_3x(ldsmaxlh, Ldsmaxlh, Gp, Gp, Mem)
|
459
|
+
|
460
|
+
ASMJIT_INST_3x(ldsmin, Ldsmin, Gp, Gp, Mem)
|
461
|
+
ASMJIT_INST_3x(ldsmina, Ldsmina, Gp, Gp, Mem)
|
462
|
+
ASMJIT_INST_3x(ldsminab, Ldsminab, Gp, Gp, Mem)
|
463
|
+
ASMJIT_INST_3x(ldsminah, Ldsminah, Gp, Gp, Mem)
|
464
|
+
ASMJIT_INST_3x(ldsminal, Ldsminal, Gp, Gp, Mem)
|
465
|
+
ASMJIT_INST_3x(ldsminalb, Ldsminalb, Gp, Gp, Mem)
|
466
|
+
ASMJIT_INST_3x(ldsminalh, Ldsminalh, Gp, Gp, Mem)
|
467
|
+
ASMJIT_INST_3x(ldsminb, Ldsminb, Gp, Gp, Mem)
|
468
|
+
ASMJIT_INST_3x(ldsminh, Ldsminh, Gp, Gp, Mem)
|
469
|
+
ASMJIT_INST_3x(ldsminl, Ldsminl, Gp, Gp, Mem)
|
470
|
+
ASMJIT_INST_3x(ldsminlb, Ldsminlb, Gp, Gp, Mem)
|
471
|
+
ASMJIT_INST_3x(ldsminlh, Ldsminlh, Gp, Gp, Mem)
|
472
|
+
|
473
|
+
ASMJIT_INST_2x(ldtr, Ldtr, Gp, Mem)
|
474
|
+
ASMJIT_INST_2x(ldtrb, Ldtrb, Gp, Mem)
|
475
|
+
ASMJIT_INST_2x(ldtrh, Ldtrh, Gp, Mem)
|
476
|
+
ASMJIT_INST_2x(ldtrsb, Ldtrsb, Gp, Mem)
|
477
|
+
ASMJIT_INST_2x(ldtrsh, Ldtrsh, Gp, Mem)
|
478
|
+
ASMJIT_INST_2x(ldtrsw, Ldtrsw, Gp, Mem)
|
479
|
+
|
480
|
+
ASMJIT_INST_3x(ldumax, Ldumax, Gp, Gp, Mem)
|
481
|
+
ASMJIT_INST_3x(ldumaxa, Ldumaxa, Gp, Gp, Mem)
|
482
|
+
ASMJIT_INST_3x(ldumaxab, Ldumaxab, Gp, Gp, Mem)
|
483
|
+
ASMJIT_INST_3x(ldumaxah, Ldumaxah, Gp, Gp, Mem)
|
484
|
+
ASMJIT_INST_3x(ldumaxal, Ldumaxal, Gp, Gp, Mem)
|
485
|
+
ASMJIT_INST_3x(ldumaxalb, Ldumaxalb, Gp, Gp, Mem)
|
486
|
+
ASMJIT_INST_3x(ldumaxalh, Ldumaxalh, Gp, Gp, Mem)
|
487
|
+
ASMJIT_INST_3x(ldumaxb, Ldumaxb, Gp, Gp, Mem)
|
488
|
+
ASMJIT_INST_3x(ldumaxh, Ldumaxh, Gp, Gp, Mem)
|
489
|
+
ASMJIT_INST_3x(ldumaxl, Ldumaxl, Gp, Gp, Mem)
|
490
|
+
ASMJIT_INST_3x(ldumaxlb, Ldumaxlb, Gp, Gp, Mem)
|
491
|
+
ASMJIT_INST_3x(ldumaxlh, Ldumaxlh, Gp, Gp, Mem)
|
492
|
+
|
493
|
+
ASMJIT_INST_3x(ldumin, Ldumin, Gp, Gp, Mem)
|
494
|
+
ASMJIT_INST_3x(ldumina, Ldumina, Gp, Gp, Mem)
|
495
|
+
ASMJIT_INST_3x(lduminab, Lduminab, Gp, Gp, Mem)
|
496
|
+
ASMJIT_INST_3x(lduminah, Lduminah, Gp, Gp, Mem)
|
497
|
+
ASMJIT_INST_3x(lduminal, Lduminal, Gp, Gp, Mem)
|
498
|
+
ASMJIT_INST_3x(lduminalb, Lduminalb, Gp, Gp, Mem)
|
499
|
+
ASMJIT_INST_3x(lduminalh, Lduminalh, Gp, Gp, Mem)
|
500
|
+
ASMJIT_INST_3x(lduminb, Lduminb, Gp, Gp, Mem)
|
501
|
+
ASMJIT_INST_3x(lduminh, Lduminh, Gp, Gp, Mem)
|
502
|
+
ASMJIT_INST_3x(lduminl, Lduminl, Gp, Gp, Mem)
|
503
|
+
ASMJIT_INST_3x(lduminlb, Lduminlb, Gp, Gp, Mem)
|
504
|
+
ASMJIT_INST_3x(lduminlh, Lduminlh, Gp, Gp, Mem)
|
505
|
+
|
506
|
+
ASMJIT_INST_2x(ldur, Ldur, Gp, Mem)
|
507
|
+
ASMJIT_INST_2x(ldurb, Ldurb, Gp, Mem)
|
508
|
+
ASMJIT_INST_2x(ldurh, Ldurh, Gp, Mem)
|
509
|
+
ASMJIT_INST_2x(ldursb, Ldursb, Gp, Mem)
|
510
|
+
ASMJIT_INST_2x(ldursh, Ldursh, Gp, Mem)
|
511
|
+
ASMJIT_INST_2x(ldursw, Ldursw, Gp, Mem)
|
512
|
+
|
513
|
+
ASMJIT_INST_3x(ldxp, Ldxp, Gp, Gp, Mem)
|
514
|
+
ASMJIT_INST_3x(ldaxp, Ldaxp, Gp, Gp, Mem)
|
515
|
+
|
516
|
+
ASMJIT_INST_2x(ldxr, Ldxr, Gp, Mem)
|
517
|
+
ASMJIT_INST_2x(ldxrb, Ldxrb, Gp, Mem)
|
518
|
+
ASMJIT_INST_2x(ldxrh, Ldxrh, Gp, Mem)
|
519
|
+
|
520
|
+
ASMJIT_INST_2x(stadd, Stadd, Gp, Mem)
|
521
|
+
ASMJIT_INST_2x(staddb, Staddb, Gp, Mem)
|
522
|
+
ASMJIT_INST_2x(staddh, Staddh, Gp, Mem)
|
523
|
+
ASMJIT_INST_2x(staddl, Staddl, Gp, Mem)
|
524
|
+
ASMJIT_INST_2x(staddlb, Staddlb, Gp, Mem)
|
525
|
+
ASMJIT_INST_2x(staddlh, Staddlh, Gp, Mem)
|
526
|
+
|
527
|
+
ASMJIT_INST_2x(stclr, Stclr, Gp, Mem)
|
528
|
+
ASMJIT_INST_2x(stclrb, Stclrb, Gp, Mem)
|
529
|
+
ASMJIT_INST_2x(stclrh, Stclrh, Gp, Mem)
|
530
|
+
ASMJIT_INST_2x(stclrl, Stclrl, Gp, Mem)
|
531
|
+
ASMJIT_INST_2x(stclrlb, Stclrlb, Gp, Mem)
|
532
|
+
ASMJIT_INST_2x(stclrlh, Stclrlh, Gp, Mem)
|
533
|
+
|
534
|
+
ASMJIT_INST_2x(steor, Steor, Gp, Mem)
|
535
|
+
ASMJIT_INST_2x(steorb, Steorb, Gp, Mem)
|
536
|
+
ASMJIT_INST_2x(steorh, Steorh, Gp, Mem)
|
537
|
+
ASMJIT_INST_2x(steorl, Steorl, Gp, Mem)
|
538
|
+
ASMJIT_INST_2x(steorlb, Steorlb, Gp, Mem)
|
539
|
+
ASMJIT_INST_2x(steorlh, Steorlh, Gp, Mem)
|
540
|
+
|
541
|
+
ASMJIT_INST_2x(stllr, Stllr, Gp, Mem)
|
542
|
+
ASMJIT_INST_2x(stllrb, Stllrb, Gp, Mem)
|
543
|
+
ASMJIT_INST_2x(stllrh, Stllrh, Gp, Mem)
|
544
|
+
|
545
|
+
ASMJIT_INST_2x(stlr, Stllr, Gp, Mem)
|
546
|
+
ASMJIT_INST_2x(stlrb, Stllrb, Gp, Mem)
|
547
|
+
ASMJIT_INST_2x(stlrh, Stllrh, Gp, Mem)
|
548
|
+
|
549
|
+
ASMJIT_INST_3x(stlxr, Stlxr, Gp, Gp, Mem)
|
550
|
+
ASMJIT_INST_3x(stlxrb, Stlxrb, Gp, Gp, Mem)
|
551
|
+
ASMJIT_INST_3x(stlxrh, Stlxrh, Gp, Gp, Mem)
|
552
|
+
|
553
|
+
ASMJIT_INST_3x(stnp, Stnp, Gp, Gp, Mem)
|
554
|
+
ASMJIT_INST_3x(stp, Stp, Gp, Gp, Mem)
|
555
|
+
|
556
|
+
ASMJIT_INST_2x(str, Str, Gp, Mem)
|
557
|
+
ASMJIT_INST_2x(strb, Strb, Gp, Mem)
|
558
|
+
ASMJIT_INST_2x(strh, Strh, Gp, Mem)
|
559
|
+
|
560
|
+
ASMJIT_INST_2x(stset, Stset, Gp, Mem)
|
561
|
+
ASMJIT_INST_2x(stsetb, Stsetb, Gp, Mem)
|
562
|
+
ASMJIT_INST_2x(stseth, Stseth, Gp, Mem)
|
563
|
+
ASMJIT_INST_2x(stsetl, Stsetl, Gp, Mem)
|
564
|
+
ASMJIT_INST_2x(stsetlb, Stsetlb, Gp, Mem)
|
565
|
+
ASMJIT_INST_2x(stsetlh, Stsetlh, Gp, Mem)
|
566
|
+
|
567
|
+
ASMJIT_INST_2x(stsmax, Stsmax, Gp, Mem)
|
568
|
+
ASMJIT_INST_2x(stsmaxb, Stsmaxb, Gp, Mem)
|
569
|
+
ASMJIT_INST_2x(stsmaxh, Stsmaxh, Gp, Mem)
|
570
|
+
ASMJIT_INST_2x(stsmaxl, Stsmaxl, Gp, Mem)
|
571
|
+
ASMJIT_INST_2x(stsmaxlb, Stsmaxlb, Gp, Mem)
|
572
|
+
ASMJIT_INST_2x(stsmaxlh, Stsmaxlh, Gp, Mem)
|
573
|
+
|
574
|
+
ASMJIT_INST_2x(stsmin, Stsmin, Gp, Mem)
|
575
|
+
ASMJIT_INST_2x(stsminb, Stsminb, Gp, Mem)
|
576
|
+
ASMJIT_INST_2x(stsminh, Stsminh, Gp, Mem)
|
577
|
+
ASMJIT_INST_2x(stsminl, Stsminl, Gp, Mem)
|
578
|
+
ASMJIT_INST_2x(stsminlb, Stsminlb, Gp, Mem)
|
579
|
+
ASMJIT_INST_2x(stsminlh, Stsminlh, Gp, Mem)
|
580
|
+
|
581
|
+
ASMJIT_INST_2x(sttr, Sttr, Gp, Mem)
|
582
|
+
ASMJIT_INST_2x(sttrb, Sttrb, Gp, Mem)
|
583
|
+
ASMJIT_INST_2x(sttrh, Sttrh, Gp, Mem)
|
584
|
+
|
585
|
+
ASMJIT_INST_2x(stumax, Stumax, Gp, Mem)
|
586
|
+
ASMJIT_INST_2x(stumaxb, Stumaxb, Gp, Mem)
|
587
|
+
ASMJIT_INST_2x(stumaxh, Stumaxh, Gp, Mem)
|
588
|
+
ASMJIT_INST_2x(stumaxl, Stumaxl, Gp, Mem)
|
589
|
+
ASMJIT_INST_2x(stumaxlb, Stumaxlb, Gp, Mem)
|
590
|
+
ASMJIT_INST_2x(stumaxlh, Stumaxlh, Gp, Mem)
|
591
|
+
|
592
|
+
ASMJIT_INST_2x(stumin, Stumin, Gp, Mem)
|
593
|
+
ASMJIT_INST_2x(stuminb, Stuminb, Gp, Mem)
|
594
|
+
ASMJIT_INST_2x(stuminh, Stuminh, Gp, Mem)
|
595
|
+
ASMJIT_INST_2x(stuminl, Stuminl, Gp, Mem)
|
596
|
+
ASMJIT_INST_2x(stuminlb, Stuminlb, Gp, Mem)
|
597
|
+
ASMJIT_INST_2x(stuminlh, Stuminlh, Gp, Mem)
|
598
|
+
|
599
|
+
ASMJIT_INST_2x(stur, Stur, Gp, Mem)
|
600
|
+
ASMJIT_INST_2x(sturb, Sturb, Gp, Mem)
|
601
|
+
ASMJIT_INST_2x(sturh, Sturh, Gp, Mem)
|
602
|
+
|
603
|
+
ASMJIT_INST_4x(stxp, Stxp, Gp, Gp, Gp, Mem)
|
604
|
+
ASMJIT_INST_4x(stlxp, Stlxp, Gp, Gp, Gp, Mem)
|
605
|
+
|
606
|
+
ASMJIT_INST_3x(stxr, Stxr, Gp, Gp, Mem)
|
607
|
+
ASMJIT_INST_3x(stxrb, Stxrb, Gp, Gp, Mem)
|
608
|
+
ASMJIT_INST_3x(stxrh, Stxrh, Gp, Gp, Mem)
|
609
|
+
|
610
|
+
ASMJIT_INST_3x(swp, Swp, Gp, Gp, Mem)
|
611
|
+
ASMJIT_INST_3x(swpa, Swpa, Gp, Gp, Mem)
|
612
|
+
ASMJIT_INST_3x(swpab, Swpab, Gp, Gp, Mem)
|
613
|
+
ASMJIT_INST_3x(swpah, Swpah, Gp, Gp, Mem)
|
614
|
+
ASMJIT_INST_3x(swpal, Swpal, Gp, Gp, Mem)
|
615
|
+
ASMJIT_INST_3x(swpalb, Swpalb, Gp, Gp, Mem)
|
616
|
+
ASMJIT_INST_3x(swpalh, Swpalh, Gp, Gp, Mem)
|
617
|
+
ASMJIT_INST_3x(swpb, Swpb, Gp, Gp, Mem)
|
618
|
+
ASMJIT_INST_3x(swph, Swph, Gp, Gp, Mem)
|
619
|
+
ASMJIT_INST_3x(swpl, Swpl, Gp, Gp, Mem)
|
620
|
+
ASMJIT_INST_3x(swplb, Swplb, Gp, Gp, Mem)
|
621
|
+
ASMJIT_INST_3x(swplh, Swplh, Gp, Gp, Mem)
|
622
|
+
//! \}
|
623
|
+
|
624
|
+
//! \name CRC Instructions (ARMv8.1-A, optional in ARMv8.0-A)
|
625
|
+
//! \{
|
626
|
+
|
627
|
+
ASMJIT_INST_3x(crc32b, Crc32b, Gp, Gp, Gp);
|
628
|
+
ASMJIT_INST_3x(crc32h, Crc32h, Gp, Gp, Gp);
|
629
|
+
ASMJIT_INST_3x(crc32w, Crc32w, Gp, Gp, Gp);
|
630
|
+
ASMJIT_INST_3x(crc32x, Crc32x, Gp, Gp, Gp);
|
631
|
+
|
632
|
+
ASMJIT_INST_3x(crc32cb, Crc32cb, Gp, Gp, Gp);
|
633
|
+
ASMJIT_INST_3x(crc32ch, Crc32ch, Gp, Gp, Gp);
|
634
|
+
ASMJIT_INST_3x(crc32cw, Crc32cw, Gp, Gp, Gp);
|
635
|
+
ASMJIT_INST_3x(crc32cx, Crc32cx, Gp, Gp, Gp);
|
636
|
+
|
637
|
+
//! \}
|
638
|
+
|
639
|
+
//! \name MTE Instructions
|
640
|
+
//! \{
|
641
|
+
|
642
|
+
ASMJIT_INST_2x(autda, Autda, Gp, Gp);
|
643
|
+
ASMJIT_INST_2x(autdb, Autdb, Gp, Gp);
|
644
|
+
ASMJIT_INST_1x(autdza, Autdza, Gp);
|
645
|
+
ASMJIT_INST_1x(autdzb, Autdzb, Gp);
|
646
|
+
ASMJIT_INST_2x(autia, Autia, Gp, Gp);
|
647
|
+
ASMJIT_INST_0x(autia1716, Autia1716);
|
648
|
+
ASMJIT_INST_0x(autiasp, Autiasp);
|
649
|
+
ASMJIT_INST_0x(autiaz, Autiaz);
|
650
|
+
ASMJIT_INST_2x(autib, Autib, Gp, Gp);
|
651
|
+
ASMJIT_INST_0x(autib1716, Autib1716);
|
652
|
+
ASMJIT_INST_0x(autibsp, Autibsp);
|
653
|
+
ASMJIT_INST_0x(autibz, Autibz);
|
654
|
+
ASMJIT_INST_1x(autiza, Autiza, Gp);
|
655
|
+
ASMJIT_INST_1x(autizb, Autizb, Gp);
|
656
|
+
|
657
|
+
ASMJIT_INST_3x(gmi, Gmi, Gp, Gp, Gp);
|
658
|
+
|
659
|
+
ASMJIT_INST_2x(cmpp, Cmpp, Gp, Gp);
|
660
|
+
ASMJIT_INST_4x(addg, Addg, Gp, Gp, Imm, Imm);
|
661
|
+
|
662
|
+
ASMJIT_INST_2x(ldg, Ldg, Gp, Mem)
|
663
|
+
ASMJIT_INST_2x(ldgm, Ldgm, Gp, Mem)
|
664
|
+
ASMJIT_INST_2x(ldraa, Ldraa, Gp, Mem)
|
665
|
+
ASMJIT_INST_2x(ldrab, Ldrab, Gp, Mem)
|
666
|
+
|
667
|
+
ASMJIT_INST_2x(pacda, Pacda, Gp, Gp);
|
668
|
+
ASMJIT_INST_2x(pacdb, Pacdb, Gp, Gp);
|
669
|
+
ASMJIT_INST_1x(pacdza, Pacdza, Gp);
|
670
|
+
ASMJIT_INST_1x(pacdzb, Pacdzb, Gp);
|
671
|
+
ASMJIT_INST_3x(pacga, Pacga, Gp, Gp, Gp);
|
672
|
+
|
673
|
+
ASMJIT_INST_3x(subp, Subp, Gp, Gp, Gp);
|
674
|
+
ASMJIT_INST_3x(subps, Subps, Gp, Gp, Gp);
|
675
|
+
ASMJIT_INST_4x(subg, Subg, Gp, Gp, Imm, Imm);
|
676
|
+
|
677
|
+
ASMJIT_INST_2x(st2g, St2g, Gp, Mem)
|
678
|
+
ASMJIT_INST_2x(stg, Stg, Gp, Mem)
|
679
|
+
ASMJIT_INST_3x(stgp, Stgp, Gp, Gp, Mem)
|
680
|
+
ASMJIT_INST_2x(stgm, Stgm, Gp, Mem)
|
681
|
+
ASMJIT_INST_2x(stzg, Stzg, Gp, Mem)
|
682
|
+
ASMJIT_INST_2x(stz2g, Stz2g, Gp, Mem)
|
683
|
+
ASMJIT_INST_2x(stzgm, Stzgm, Gp, Mem)
|
684
|
+
|
685
|
+
ASMJIT_INST_1x(xpacd, Xpacd, Gp);
|
686
|
+
ASMJIT_INST_1x(xpaci, Xpaci, Gp);
|
687
|
+
ASMJIT_INST_0x(xpaclri, Xpaclri);
|
688
|
+
|
689
|
+
//! \}
|
690
|
+
|
691
|
+
//! \name Hint Instructions
|
692
|
+
//! \{
|
693
|
+
|
694
|
+
ASMJIT_INST_1x(hint, Hint, Imm)
|
695
|
+
ASMJIT_INST_0x(nop, Nop)
|
696
|
+
ASMJIT_INST_0x(sev, Sev)
|
697
|
+
ASMJIT_INST_0x(sevl, Sevl)
|
698
|
+
ASMJIT_INST_0x(wfe, Wfe)
|
699
|
+
ASMJIT_INST_0x(wfi, Wfi)
|
700
|
+
ASMJIT_INST_0x(yield, Yield)
|
701
|
+
|
702
|
+
//! \}
|
703
|
+
|
704
|
+
//! \name SIMD & FP Instructions
|
705
|
+
//! \{
|
706
|
+
|
707
|
+
ASMJIT_INST_2x(abs, Abs_v, Vec, Vec);
|
708
|
+
ASMJIT_INST_3x(add, Add_v, Vec, Vec, Vec);
|
709
|
+
ASMJIT_INST_3x(addhn, Addhn_v, Vec, Vec, Vec);
|
710
|
+
ASMJIT_INST_3x(addhn2, Addhn2_v, Vec, Vec, Vec);
|
711
|
+
ASMJIT_INST_2x(addp, Addp_v, Vec, Vec);
|
712
|
+
ASMJIT_INST_3x(addp, Addp_v, Vec, Vec, Vec);
|
713
|
+
ASMJIT_INST_2x(addv, Addv_v, Vec, Vec);
|
714
|
+
ASMJIT_INST_3x(and_, And_v, Vec, Vec, Vec);
|
715
|
+
ASMJIT_INST_2x(bic, Bic_v, Vec, Imm);
|
716
|
+
ASMJIT_INST_3x(bic, Bic_v, Vec, Vec, Vec);
|
717
|
+
ASMJIT_INST_3x(bic, Bic_v, Vec, Imm, Imm);
|
718
|
+
ASMJIT_INST_3x(bif, Bif_v, Vec, Vec, Vec);
|
719
|
+
ASMJIT_INST_3x(bit, Bit_v, Vec, Vec, Vec);
|
720
|
+
ASMJIT_INST_3x(bsl, Bsl_v, Vec, Vec, Vec);
|
721
|
+
ASMJIT_INST_2x(cls, Cls_v, Vec, Vec);
|
722
|
+
ASMJIT_INST_2x(clz, Clz_v, Vec, Vec);
|
723
|
+
ASMJIT_INST_3x(cmeq, Cmeq_v, Vec, Vec, Vec);
|
724
|
+
ASMJIT_INST_3x(cmeq, Cmeq_v, Vec, Vec, Imm);
|
725
|
+
ASMJIT_INST_3x(cmge, Cmge_v, Vec, Vec, Vec);
|
726
|
+
ASMJIT_INST_3x(cmge, Cmge_v, Vec, Vec, Imm);
|
727
|
+
ASMJIT_INST_3x(cmgt, Cmgt_v, Vec, Vec, Vec);
|
728
|
+
ASMJIT_INST_3x(cmgt, Cmgt_v, Vec, Vec, Imm);
|
729
|
+
ASMJIT_INST_3x(cmhi, Cmhi_v, Vec, Vec, Vec);
|
730
|
+
ASMJIT_INST_3x(cmhs, Cmhs_v, Vec, Vec, Vec);
|
731
|
+
ASMJIT_INST_3x(cmle, Cmle_v, Vec, Vec, Imm);
|
732
|
+
ASMJIT_INST_3x(cmlt, Cmlt_v, Vec, Vec, Imm);
|
733
|
+
ASMJIT_INST_3x(cmtst, Cmtst_v, Vec, Vec, Vec);
|
734
|
+
ASMJIT_INST_2x(cnt, Cnt_v, Vec, Vec);
|
735
|
+
ASMJIT_INST_2x(dup, Dup_v, Vec, Gp);
|
736
|
+
ASMJIT_INST_2x(dup, Dup_v, Vec, Vec);
|
737
|
+
ASMJIT_INST_3x(eor, Eor_v, Vec, Vec, Vec);
|
738
|
+
ASMJIT_INST_4x(ext, Ext_v, Vec, Vec, Vec, Imm);
|
739
|
+
ASMJIT_INST_3x(fabd, Fabd_v, Vec, Vec, Vec);
|
740
|
+
ASMJIT_INST_2x(fabs, Fabs_v, Vec, Vec);
|
741
|
+
ASMJIT_INST_3x(facge, Facge_v, Vec, Vec, Vec);
|
742
|
+
ASMJIT_INST_3x(facgt, Facgt_v, Vec, Vec, Vec);
|
743
|
+
ASMJIT_INST_3x(fadd, Fadd_v, Vec, Vec, Vec);
|
744
|
+
ASMJIT_INST_2x(faddp, Faddp_v, Vec, Vec);
|
745
|
+
ASMJIT_INST_3x(faddp, Faddp_v, Vec, Vec, Vec);
|
746
|
+
ASMJIT_INST_4x(fccmp, Fccmp_v, Vec, Vec, Imm, Imm);
|
747
|
+
ASMJIT_INST_4x(fccmpe, Fccmpe_v, Vec, Vec, Imm, Imm);
|
748
|
+
ASMJIT_INST_3x(fcmeq, Fcmeq_v, Vec, Vec, Vec);
|
749
|
+
ASMJIT_INST_3x(fcmeq, Fcmeq_v, Vec, Vec, Imm);
|
750
|
+
ASMJIT_INST_3x(fcmge, Fcmge_v, Vec, Vec, Vec);
|
751
|
+
ASMJIT_INST_3x(fcmge, Fcmge_v, Vec, Vec, Imm);
|
752
|
+
ASMJIT_INST_3x(fcmgt, Fcmgt_v, Vec, Vec, Vec);
|
753
|
+
ASMJIT_INST_3x(fcmgt, Fcmgt_v, Vec, Vec, Imm);
|
754
|
+
ASMJIT_INST_3x(fcmle, Fcmle_v, Vec, Vec, Imm);
|
755
|
+
ASMJIT_INST_3x(fcmlt, Fcmlt_v, Vec, Vec, Imm);
|
756
|
+
ASMJIT_INST_2x(fcmp, Fcmp_v, Vec, Vec);
|
757
|
+
ASMJIT_INST_2x(fcmp, Fcmp_v, Vec, Imm);
|
758
|
+
ASMJIT_INST_2x(fcmpe, Fcmpe_v, Vec, Vec);
|
759
|
+
ASMJIT_INST_2x(fcmpe, Fcmpe_v, Vec, Imm);
|
760
|
+
ASMJIT_INST_4x(fcsel, Fcsel_v, Vec, Vec, Vec, Imm);
|
761
|
+
ASMJIT_INST_2x(fcvt, Fcvt_v, Vec, Vec);
|
762
|
+
ASMJIT_INST_2x(fcvtas, Fcvtas_v, Gp, Vec);
|
763
|
+
ASMJIT_INST_2x(fcvtas, Fcvtas_v, Vec, Vec);
|
764
|
+
ASMJIT_INST_2x(fcvtau, Fcvtau_v, Gp, Vec);
|
765
|
+
ASMJIT_INST_2x(fcvtau, Fcvtau_v, Vec, Vec);
|
766
|
+
ASMJIT_INST_2x(fcvtl, Fcvtl_v, Vec, Vec);
|
767
|
+
ASMJIT_INST_2x(fcvtl2, Fcvtl2_v, Vec, Vec);
|
768
|
+
ASMJIT_INST_2x(fcvtms, Fcvtms_v, Gp, Vec);
|
769
|
+
ASMJIT_INST_2x(fcvtms, Fcvtms_v, Vec, Vec);
|
770
|
+
ASMJIT_INST_2x(fcvtmu, Fcvtmu_v, Gp, Vec);
|
771
|
+
ASMJIT_INST_2x(fcvtmu, Fcvtmu_v, Vec, Vec);
|
772
|
+
ASMJIT_INST_2x(fcvtn, Fcvtn_v, Vec, Vec);
|
773
|
+
ASMJIT_INST_2x(fcvtn2, Fcvtn2_v, Vec, Vec);
|
774
|
+
ASMJIT_INST_2x(fcvtns, Fcvtns_v, Gp, Vec);
|
775
|
+
ASMJIT_INST_2x(fcvtns, Fcvtns_v, Vec, Vec);
|
776
|
+
ASMJIT_INST_2x(fcvtnu, Fcvtnu_v, Gp, Vec);
|
777
|
+
ASMJIT_INST_2x(fcvtnu, Fcvtnu_v, Vec, Vec);
|
778
|
+
ASMJIT_INST_2x(fcvtps, Fcvtps_v, Gp, Vec);
|
779
|
+
ASMJIT_INST_2x(fcvtps, Fcvtps_v, Vec, Vec);
|
780
|
+
ASMJIT_INST_2x(fcvtpu, Fcvtpu_v, Gp, Vec);
|
781
|
+
ASMJIT_INST_2x(fcvtpu, Fcvtpu_v, Vec, Vec);
|
782
|
+
ASMJIT_INST_2x(fcvtxn, Fcvtxn_v, Vec, Vec);
|
783
|
+
ASMJIT_INST_2x(fcvtxn2, Fcvtxn2_v, Vec, Vec);
|
784
|
+
ASMJIT_INST_2x(fcvtzs, Fcvtzs_v, Gp, Vec);
|
785
|
+
ASMJIT_INST_3x(fcvtzs, Fcvtzs_v, Gp, Vec, Imm);
|
786
|
+
ASMJIT_INST_2x(fcvtzs, Fcvtzs_v, Vec, Vec);
|
787
|
+
ASMJIT_INST_3x(fcvtzs, Fcvtzs_v, Vec, Vec, Imm);
|
788
|
+
ASMJIT_INST_2x(fcvtzu, Fcvtzu_v, Gp, Vec);
|
789
|
+
ASMJIT_INST_3x(fcvtzu, Fcvtzu_v, Gp, Vec, Imm);
|
790
|
+
ASMJIT_INST_2x(fcvtzu, Fcvtzu_v, Vec, Vec);
|
791
|
+
ASMJIT_INST_3x(fcvtzu, Fcvtzu_v, Vec, Vec, Imm);
|
792
|
+
ASMJIT_INST_3x(fdiv, Fdiv_v, Vec, Vec, Vec);
|
793
|
+
ASMJIT_INST_4x(fmadd, Fmadd_v, Vec, Vec, Vec, Vec);
|
794
|
+
ASMJIT_INST_3x(fmax, Fmax_v, Vec, Vec, Vec);
|
795
|
+
ASMJIT_INST_3x(fmaxnm, Fmaxnm_v, Vec, Vec, Vec);
|
796
|
+
ASMJIT_INST_3x(fmaxnmp, Fmaxnmp_v, Vec, Vec, Vec);
|
797
|
+
ASMJIT_INST_2x(fmaxnmp, Fmaxnmp_v, Vec, Vec);
|
798
|
+
ASMJIT_INST_2x(fmaxnmv, Fmaxnmv_v, Vec, Vec);
|
799
|
+
ASMJIT_INST_3x(fmaxp, Fmaxp_v, Vec, Vec, Vec);
|
800
|
+
ASMJIT_INST_2x(fmaxp, Fmaxp_v, Vec, Vec);
|
801
|
+
ASMJIT_INST_2x(fmaxv, Fmaxv_v, Vec, Vec);
|
802
|
+
ASMJIT_INST_3x(fmin, Fmin_v, Vec, Vec, Vec);
|
803
|
+
ASMJIT_INST_3x(fminnm, Fminnm_v, Vec, Vec, Vec);
|
804
|
+
ASMJIT_INST_2x(fminnmv, Fminnmv_v, Vec, Vec);
|
805
|
+
ASMJIT_INST_3x(fminnmp, Fminnmp_v, Vec, Vec, Vec);
|
806
|
+
ASMJIT_INST_2x(fminnmp, Fminnmp_v, Vec, Vec);
|
807
|
+
ASMJIT_INST_2x(fminp, Fminp_v, Vec, Vec);
|
808
|
+
ASMJIT_INST_3x(fminp, Fminp_v, Vec, Vec, Vec);
|
809
|
+
ASMJIT_INST_2x(fminv, Fminv_v, Vec, Vec);
|
810
|
+
ASMJIT_INST_3x(fmla, Fmla_v, Vec, Vec, Vec);
|
811
|
+
ASMJIT_INST_3x(fmls, Fmls_v, Vec, Vec, Vec);
|
812
|
+
ASMJIT_INST_2x(fmov, Fmov_v, Gp, Vec);
|
813
|
+
ASMJIT_INST_2x(fmov, Fmov_v, Vec, Gp);
|
814
|
+
ASMJIT_INST_2x(fmov, Fmov_v, Vec, Vec);
|
815
|
+
ASMJIT_INST_2x(fmov, Fmov_v, Vec, Imm);
|
816
|
+
ASMJIT_INST_4x(fmsub, Fmsub_v, Vec, Vec, Vec, Vec);
|
817
|
+
ASMJIT_INST_3x(fmul, Fmul_v, Vec, Vec, Vec);
|
818
|
+
ASMJIT_INST_3x(fmulx, Fmulx_v, Vec, Vec, Vec);
|
819
|
+
ASMJIT_INST_2x(fneg, Fneg_v, Vec, Vec);
|
820
|
+
ASMJIT_INST_4x(fnmadd, Fnmadd_v, Vec, Vec, Vec, Vec);
|
821
|
+
ASMJIT_INST_4x(fnmsub, Fnmsub_v, Vec, Vec, Vec, Vec);
|
822
|
+
ASMJIT_INST_3x(fnmul, Fnmul_v, Vec, Vec, Vec);
|
823
|
+
ASMJIT_INST_2x(frecpe, Frecpe_v, Vec, Vec);
|
824
|
+
ASMJIT_INST_3x(frecps, Frecps_v, Vec, Vec, Vec);
|
825
|
+
ASMJIT_INST_2x(frecpx, Frecpx_v, Vec, Vec);
|
826
|
+
ASMJIT_INST_2x(frint32x, Frint32x_v, Vec, Vec);
|
827
|
+
ASMJIT_INST_2x(frint32z, Frint32z_v, Vec, Vec);
|
828
|
+
ASMJIT_INST_2x(frint64x, Frint64x_v, Vec, Vec);
|
829
|
+
ASMJIT_INST_2x(frint64z, Frint64z_v, Vec, Vec);
|
830
|
+
ASMJIT_INST_2x(frinta, Frinta_v, Vec, Vec);
|
831
|
+
ASMJIT_INST_2x(frinti, Frinti_v, Vec, Vec);
|
832
|
+
ASMJIT_INST_2x(frintm, Frintm_v, Vec, Vec);
|
833
|
+
ASMJIT_INST_2x(frintn, Frintn_v, Vec, Vec);
|
834
|
+
ASMJIT_INST_2x(frintp, Frintp_v, Vec, Vec);
|
835
|
+
ASMJIT_INST_2x(frintx, Frintx_v, Vec, Vec);
|
836
|
+
ASMJIT_INST_2x(frintz, Frintz_v, Vec, Vec);
|
837
|
+
ASMJIT_INST_2x(frsqrte, Frsqrte_v, Vec, Vec);
|
838
|
+
ASMJIT_INST_3x(frsqrts, Frsqrts_v, Vec, Vec, Vec);
|
839
|
+
ASMJIT_INST_2x(fsqrt, Fsqrt_v, Vec, Vec);
|
840
|
+
ASMJIT_INST_3x(fsub, Fsub_v, Vec, Vec, Vec);
|
841
|
+
ASMJIT_INST_2x(ins, Ins_v, Vec, Gp);
|
842
|
+
ASMJIT_INST_2x(ins, Ins_v, Vec, Vec);
|
843
|
+
ASMJIT_INST_2x(ld1, Ld1_v, Vec, Mem);
|
844
|
+
ASMJIT_INST_3x(ld1, Ld1_v, Vec, Vec, Mem);
|
845
|
+
ASMJIT_INST_4x(ld1, Ld1_v, Vec, Vec, Vec, Mem);
|
846
|
+
ASMJIT_INST_5x(ld1, Ld1_v, Vec, Vec, Vec, Vec, Mem);
|
847
|
+
ASMJIT_INST_2x(ld1r, Ld1r_v, Vec, Mem);
|
848
|
+
ASMJIT_INST_3x(ld2, Ld2_v, Vec, Vec, Mem);
|
849
|
+
ASMJIT_INST_3x(ld2r, Ld2r_v, Vec, Vec, Mem);
|
850
|
+
ASMJIT_INST_4x(ld3, Ld3_v, Vec, Vec, Vec, Mem);
|
851
|
+
ASMJIT_INST_4x(ld3r, Ld3r_v, Vec, Vec, Vec, Mem);
|
852
|
+
ASMJIT_INST_5x(ld4, Ld4_v, Vec, Vec, Vec, Vec, Mem);
|
853
|
+
ASMJIT_INST_5x(ld4r, Ld4r_v, Vec, Vec, Vec, Vec, Mem);
|
854
|
+
ASMJIT_INST_3x(ldnp, Ldnp_v, Vec, Vec, Mem);
|
855
|
+
ASMJIT_INST_3x(ldp, Ldp_v, Vec, Vec, Mem);
|
856
|
+
ASMJIT_INST_2x(ldr, Ldr_v, Vec, Mem);
|
857
|
+
ASMJIT_INST_2x(ldur, Ldur_v, Vec, Mem);
|
858
|
+
ASMJIT_INST_3x(mla, Mla_v, Vec, Vec, Vec);
|
859
|
+
ASMJIT_INST_3x(mls, Mls_v, Vec, Vec, Vec);
|
860
|
+
ASMJIT_INST_2x(mov, Mov_v, Vec, Vec);
|
861
|
+
ASMJIT_INST_2x(mov, Mov_v, Gp, Vec);
|
862
|
+
ASMJIT_INST_2x(mov, Mov_v, Vec, Gp);
|
863
|
+
ASMJIT_INST_2x(movi, Movi_v, Vec, Imm);
|
864
|
+
ASMJIT_INST_3x(movi, Movi_v, Vec, Imm, Imm);
|
865
|
+
ASMJIT_INST_3x(mul, Mul_v, Vec, Vec, Vec);
|
866
|
+
ASMJIT_INST_2x(mvn, Mvn_v, Vec, Vec);
|
867
|
+
ASMJIT_INST_2x(mvni, Mvni_v, Vec, Imm);
|
868
|
+
ASMJIT_INST_3x(mvni, Mvni_v, Vec, Imm, Imm);
|
869
|
+
ASMJIT_INST_2x(neg, Neg_v, Vec, Vec);
|
870
|
+
ASMJIT_INST_2x(not_, Not_v, Vec, Vec);
|
871
|
+
ASMJIT_INST_3x(orn, Orn_v, Vec, Vec, Vec);
|
872
|
+
ASMJIT_INST_2x(orr, Orr_v, Vec, Imm);
|
873
|
+
ASMJIT_INST_3x(orr, Orr_v, Vec, Vec, Vec);
|
874
|
+
ASMJIT_INST_3x(orr, Orr_v, Vec, Imm, Imm);
|
875
|
+
ASMJIT_INST_3x(pmul, Pmul_v, Vec, Vec, Vec);
|
876
|
+
ASMJIT_INST_3x(pmull, Pmull_v, Vec, Vec, Vec);
|
877
|
+
ASMJIT_INST_3x(pmull2, Pmull2_v, Vec, Vec, Vec);
|
878
|
+
ASMJIT_INST_3x(raddhn, Raddhn_v, Vec, Vec, Vec);
|
879
|
+
ASMJIT_INST_3x(raddhn2, Raddhn2_v, Vec, Vec, Vec);
|
880
|
+
ASMJIT_INST_2x(rbit, Rbit_v, Vec, Vec);
|
881
|
+
ASMJIT_INST_2x(rev16, Rev16_v, Vec, Vec);
|
882
|
+
ASMJIT_INST_2x(rev32, Rev32_v, Vec, Vec);
|
883
|
+
ASMJIT_INST_2x(rev64, Rev64_v, Vec, Vec);
|
884
|
+
ASMJIT_INST_3x(rshrn, Rshrn_v, Vec, Vec, Imm);
|
885
|
+
ASMJIT_INST_3x(rshrn2, Rshrn2_v, Vec, Vec, Imm);
|
886
|
+
ASMJIT_INST_3x(rsubhn, Rsubhn_v, Vec, Vec, Vec);
|
887
|
+
ASMJIT_INST_3x(rsubhn2, Rsubhn2_v, Vec, Vec, Vec);
|
888
|
+
ASMJIT_INST_3x(saba, Saba_v, Vec, Vec, Vec);
|
889
|
+
ASMJIT_INST_3x(sabal, Sabal_v, Vec, Vec, Vec);
|
890
|
+
ASMJIT_INST_3x(sabal2, Sabal2_v, Vec, Vec, Vec);
|
891
|
+
ASMJIT_INST_3x(sabd, Sabd_v, Vec, Vec, Vec);
|
892
|
+
ASMJIT_INST_3x(sabdl, Sabdl_v, Vec, Vec, Vec);
|
893
|
+
ASMJIT_INST_3x(sabdl2, Sabdl2_v, Vec, Vec, Vec);
|
894
|
+
ASMJIT_INST_2x(sadalp, Sadalp_v, Vec, Vec);
|
895
|
+
ASMJIT_INST_3x(saddl, Saddl_v, Vec, Vec, Vec);
|
896
|
+
ASMJIT_INST_3x(saddl2, Saddl2_v, Vec, Vec, Vec);
|
897
|
+
ASMJIT_INST_2x(saddlp, Saddlp_v, Vec, Vec);
|
898
|
+
ASMJIT_INST_2x(saddlv, Saddlv_v, Vec, Vec);
|
899
|
+
ASMJIT_INST_3x(saddw, Saddw_v, Vec, Vec, Vec);
|
900
|
+
ASMJIT_INST_3x(saddw2, Saddw2_v, Vec, Vec, Vec);
|
901
|
+
ASMJIT_INST_2x(scvtf, Scvtf_v, Vec, Gp);
|
902
|
+
ASMJIT_INST_3x(scvtf, Scvtf_v, Vec, Gp, Imm);
|
903
|
+
ASMJIT_INST_2x(scvtf, Scvtf_v, Vec, Vec);
|
904
|
+
ASMJIT_INST_3x(scvtf, Scvtf_v, Vec, Vec, Imm);
|
905
|
+
ASMJIT_INST_3x(shadd, Shadd_v, Vec, Vec, Vec);
|
906
|
+
ASMJIT_INST_3x(shl, Shl_v, Vec, Vec, Imm);
|
907
|
+
ASMJIT_INST_3x(shll, Shll_v, Vec, Vec, Imm);
|
908
|
+
ASMJIT_INST_3x(shll2, Shll2_v, Vec, Vec, Imm);
|
909
|
+
ASMJIT_INST_3x(shrn, Shrn_v, Vec, Vec, Imm);
|
910
|
+
ASMJIT_INST_3x(shrn2, Shrn2_v, Vec, Vec, Imm);
|
911
|
+
ASMJIT_INST_3x(shsub, Shsub_v, Vec, Vec, Vec);
|
912
|
+
ASMJIT_INST_3x(sli, Sli_v, Vec, Vec, Imm);
|
913
|
+
ASMJIT_INST_3x(smax, Smax_v, Vec, Vec, Vec);
|
914
|
+
ASMJIT_INST_3x(smaxp, Smaxp_v, Vec, Vec, Vec);
|
915
|
+
ASMJIT_INST_2x(smaxv, Smaxv_v, Vec, Vec);
|
916
|
+
ASMJIT_INST_3x(smin, Smin_v, Vec, Vec, Vec);
|
917
|
+
ASMJIT_INST_3x(sminp, Sminp_v, Vec, Vec, Vec);
|
918
|
+
ASMJIT_INST_2x(sminv, Sminv_v, Vec, Vec);
|
919
|
+
ASMJIT_INST_3x(smlal, Smlal_v, Vec, Vec, Vec);
|
920
|
+
ASMJIT_INST_3x(smlal2, Smlal2_v, Vec, Vec, Vec);
|
921
|
+
ASMJIT_INST_3x(smlsl, Smlsl_v, Vec, Vec, Vec);
|
922
|
+
ASMJIT_INST_3x(smlsl2, Smlsl2_v, Vec, Vec, Vec);
|
923
|
+
ASMJIT_INST_2x(smov, Smov_v, Gp, Vec);
|
924
|
+
ASMJIT_INST_3x(smull, Smull_v, Vec, Vec, Vec);
|
925
|
+
ASMJIT_INST_3x(smull2, Smull2_v, Vec, Vec, Vec);
|
926
|
+
ASMJIT_INST_2x(sqabs, Sqabs_v, Vec, Vec);
|
927
|
+
ASMJIT_INST_3x(sqadd, Sqadd_v, Vec, Vec, Vec);
|
928
|
+
ASMJIT_INST_3x(sqdmlal, Sqdmlal_v, Vec, Vec, Vec);
|
929
|
+
ASMJIT_INST_3x(sqdmlal2, Sqdmlal2_v, Vec, Vec, Vec);
|
930
|
+
ASMJIT_INST_3x(sqdmlsl, Sqdmlsl_v, Vec, Vec, Vec);
|
931
|
+
ASMJIT_INST_3x(sqdmlsl2, Sqdmlsl2_v, Vec, Vec, Vec);
|
932
|
+
ASMJIT_INST_3x(sqdmulh, Sqdmulh_v, Vec, Vec, Vec);
|
933
|
+
ASMJIT_INST_3x(sqdmull, Sqdmull_v, Vec, Vec, Vec);
|
934
|
+
ASMJIT_INST_3x(sqdmull2, Sqdmull2_v, Vec, Vec, Vec);
|
935
|
+
ASMJIT_INST_2x(sqneg, Sqneg_v, Vec, Vec);
|
936
|
+
ASMJIT_INST_3x(sqrdmulh, Sqrdmulh_v, Vec, Vec, Vec);
|
937
|
+
ASMJIT_INST_3x(sqrshl, Sqrshl_v, Vec, Vec, Vec);
|
938
|
+
ASMJIT_INST_3x(sqrshrn, Sqrshrn_v, Vec, Vec, Imm);
|
939
|
+
ASMJIT_INST_3x(sqrshrn2, Sqrshrn2_v, Vec, Vec, Imm);
|
940
|
+
ASMJIT_INST_3x(sqrshrun, Sqrshrun_v, Vec, Vec, Imm);
|
941
|
+
ASMJIT_INST_3x(sqrshrun2, Sqrshrun2_v, Vec, Vec, Imm);
|
942
|
+
ASMJIT_INST_3x(sqshl, Sqshl_v, Vec, Vec, Vec);
|
943
|
+
ASMJIT_INST_3x(sqshl, Sqshl_v, Vec, Vec, Imm);
|
944
|
+
ASMJIT_INST_3x(sqshlu, Sqshlu_v, Vec, Vec, Imm);
|
945
|
+
ASMJIT_INST_3x(sqshrn, Sqshrn_v, Vec, Vec, Imm);
|
946
|
+
ASMJIT_INST_3x(sqshrn2, Sqshrn2_v, Vec, Vec, Imm);
|
947
|
+
ASMJIT_INST_3x(sqshrun, Sqshrun_v, Vec, Vec, Imm);
|
948
|
+
ASMJIT_INST_3x(sqshrun2, Sqshrun2_v, Vec, Vec, Imm);
|
949
|
+
ASMJIT_INST_3x(sqsub, Sqsub_v, Vec, Vec, Vec);
|
950
|
+
ASMJIT_INST_2x(sqxtn, Sqxtn_v, Vec, Vec);
|
951
|
+
ASMJIT_INST_2x(sqxtn2, Sqxtn2_v, Vec, Vec);
|
952
|
+
ASMJIT_INST_2x(sqxtun, Sqxtun_v, Vec, Vec);
|
953
|
+
ASMJIT_INST_2x(sqxtun2, Sqxtun2_v, Vec, Vec);
|
954
|
+
ASMJIT_INST_3x(srhadd, Srhadd_v, Vec, Vec, Vec);
|
955
|
+
ASMJIT_INST_3x(sri, Sri_v, Vec, Vec, Imm);
|
956
|
+
ASMJIT_INST_3x(srshl, Srshl_v, Vec, Vec, Vec);
|
957
|
+
ASMJIT_INST_3x(srshr, Srshr_v, Vec, Vec, Imm);
|
958
|
+
ASMJIT_INST_3x(srsra, Srsra_v, Vec, Vec, Imm);
|
959
|
+
ASMJIT_INST_3x(sshl, Sshl_v, Vec, Vec, Vec);
|
960
|
+
ASMJIT_INST_3x(sshll, Sshll_v, Vec, Vec, Imm);
|
961
|
+
ASMJIT_INST_3x(sshll2, Sshll2_v, Vec, Vec, Imm);
|
962
|
+
ASMJIT_INST_3x(sshr, Sshr_v, Vec, Vec, Imm);
|
963
|
+
ASMJIT_INST_3x(ssra, Ssra_v, Vec, Vec, Imm);
|
964
|
+
ASMJIT_INST_3x(ssubl, Ssubl_v, Vec, Vec, Vec);
|
965
|
+
ASMJIT_INST_3x(ssubl2, Ssubl2_v, Vec, Vec, Vec);
|
966
|
+
ASMJIT_INST_3x(ssubw, Ssubw_v, Vec, Vec, Vec);
|
967
|
+
ASMJIT_INST_3x(ssubw2, Ssubw2_v, Vec, Vec, Vec);
|
968
|
+
ASMJIT_INST_2x(st1, St1_v, Vec, Mem);
|
969
|
+
ASMJIT_INST_3x(st1, St1_v, Vec, Vec, Mem);
|
970
|
+
ASMJIT_INST_4x(st1, St1_v, Vec, Vec, Vec, Mem);
|
971
|
+
ASMJIT_INST_5x(st1, St1_v, Vec, Vec, Vec, Vec, Mem);
|
972
|
+
ASMJIT_INST_3x(st2, St2_v, Vec, Vec, Mem);
|
973
|
+
ASMJIT_INST_4x(st3, St3_v, Vec, Vec, Vec, Mem);
|
974
|
+
ASMJIT_INST_5x(st4, St4_v, Vec, Vec, Vec, Vec, Mem);
|
975
|
+
ASMJIT_INST_3x(stnp, Stnp_v, Vec, Vec, Mem);
|
976
|
+
ASMJIT_INST_3x(stp, Stp_v, Vec, Vec, Mem);
|
977
|
+
ASMJIT_INST_2x(str, Str_v, Vec, Mem);
|
978
|
+
ASMJIT_INST_2x(stur, Stur_v, Vec, Mem);
|
979
|
+
ASMJIT_INST_3x(sub, Sub_v, Vec, Vec, Vec);
|
980
|
+
ASMJIT_INST_3x(subhn, Subhn_v, Vec, Vec, Vec);
|
981
|
+
ASMJIT_INST_3x(subhn2, Subhn2_v, Vec, Vec, Vec);
|
982
|
+
ASMJIT_INST_2x(suqadd, Suqadd_v, Vec, Vec);
|
983
|
+
ASMJIT_INST_2x(sxtl, Sxtl_v, Vec, Vec);
|
984
|
+
ASMJIT_INST_2x(sxtl2, Sxtl2_v, Vec, Vec);
|
985
|
+
ASMJIT_INST_3x(tbl, Tbl_v, Vec, Vec, Vec);
|
986
|
+
ASMJIT_INST_4x(tbl, Tbl_v, Vec, Vec, Vec, Vec);
|
987
|
+
ASMJIT_INST_5x(tbl, Tbl_v, Vec, Vec, Vec, Vec, Vec);
|
988
|
+
ASMJIT_INST_6x(tbl, Tbl_v, Vec, Vec, Vec, Vec, Vec, Vec);
|
989
|
+
ASMJIT_INST_3x(tbx, Tbx_v, Vec, Vec, Vec);
|
990
|
+
ASMJIT_INST_4x(tbx, Tbx_v, Vec, Vec, Vec, Vec);
|
991
|
+
ASMJIT_INST_5x(tbx, Tbx_v, Vec, Vec, Vec, Vec, Vec);
|
992
|
+
ASMJIT_INST_6x(tbx, Tbx_v, Vec, Vec, Vec, Vec, Vec, Vec);
|
993
|
+
ASMJIT_INST_3x(trn1, Trn1_v, Vec, Vec, Vec);
|
994
|
+
ASMJIT_INST_3x(trn2, Trn2_v, Vec, Vec, Vec);
|
995
|
+
ASMJIT_INST_3x(uaba, Uaba_v, Vec, Vec, Vec);
|
996
|
+
ASMJIT_INST_3x(uabal, Uabal_v, Vec, Vec, Vec);
|
997
|
+
ASMJIT_INST_3x(uabal2, Uabal2_v, Vec, Vec, Vec);
|
998
|
+
ASMJIT_INST_3x(uabd, Uabd_v, Vec, Vec, Vec);
|
999
|
+
ASMJIT_INST_3x(uabdl, Uabdl_v, Vec, Vec, Vec);
|
1000
|
+
ASMJIT_INST_3x(uabdl2, Uabdl2_v, Vec, Vec, Vec);
|
1001
|
+
ASMJIT_INST_2x(uadalp, Uadalp_v, Vec, Vec);
|
1002
|
+
ASMJIT_INST_3x(uaddl, Uaddl_v, Vec, Vec, Vec);
|
1003
|
+
ASMJIT_INST_3x(uaddl2, Uaddl2_v, Vec, Vec, Vec);
|
1004
|
+
ASMJIT_INST_2x(uaddlp, Uaddlp_v, Vec, Vec);
|
1005
|
+
ASMJIT_INST_2x(uaddlv, Uaddlv_v, Vec, Vec);
|
1006
|
+
ASMJIT_INST_3x(uaddw, Uaddw_v, Vec, Vec, Vec);
|
1007
|
+
ASMJIT_INST_3x(uaddw2, Uaddw2_v, Vec, Vec, Vec);
|
1008
|
+
ASMJIT_INST_2x(ucvtf, Ucvtf_v, Vec, Gp);
|
1009
|
+
ASMJIT_INST_3x(ucvtf, Ucvtf_v, Vec, Gp, Imm);
|
1010
|
+
ASMJIT_INST_2x(ucvtf, Ucvtf_v, Vec, Vec);
|
1011
|
+
ASMJIT_INST_3x(ucvtf, Ucvtf_v, Vec, Vec, Imm);
|
1012
|
+
ASMJIT_INST_3x(uhadd, Uhadd_v, Vec, Vec, Vec);
|
1013
|
+
ASMJIT_INST_3x(uhsub, Uhsub_v, Vec, Vec, Vec);
|
1014
|
+
ASMJIT_INST_3x(umax, Umax_v, Vec, Vec, Vec);
|
1015
|
+
ASMJIT_INST_3x(umaxp, Umaxp_v, Vec, Vec, Vec);
|
1016
|
+
ASMJIT_INST_2x(umaxv, Umaxv_v, Vec, Vec);
|
1017
|
+
ASMJIT_INST_3x(umin, Umin_v, Vec, Vec, Vec);
|
1018
|
+
ASMJIT_INST_3x(uminp, Uminp_v, Vec, Vec, Vec);
|
1019
|
+
ASMJIT_INST_2x(uminv, Uminv_v, Vec, Vec);
|
1020
|
+
ASMJIT_INST_3x(umlal, Umlal_v, Vec, Vec, Vec);
|
1021
|
+
ASMJIT_INST_3x(umlal2, Umlal2_v, Vec, Vec, Vec);
|
1022
|
+
ASMJIT_INST_3x(umlsl, Umlsl_v, Vec, Vec, Vec);
|
1023
|
+
ASMJIT_INST_3x(umlsl2, Umlsl2_v, Vec, Vec, Vec);
|
1024
|
+
ASMJIT_INST_2x(umov, Umov_v, Gp, Vec);
|
1025
|
+
ASMJIT_INST_3x(umull, Umull_v, Vec, Vec, Vec);
|
1026
|
+
ASMJIT_INST_3x(umull2, Umull2_v, Vec, Vec, Vec);
|
1027
|
+
ASMJIT_INST_3x(uqadd, Uqadd_v, Vec, Vec, Vec);
|
1028
|
+
ASMJIT_INST_3x(uqrshl, Uqrshl_v, Vec, Vec, Vec);
|
1029
|
+
ASMJIT_INST_3x(uqrshl, Uqrshl_v, Vec, Vec, Imm);
|
1030
|
+
ASMJIT_INST_3x(uqrshrn, Uqrshrn_v, Vec, Vec, Imm);
|
1031
|
+
ASMJIT_INST_3x(uqrshrn2, Uqrshrn2_v, Vec, Vec, Imm);
|
1032
|
+
ASMJIT_INST_3x(uqshl, Uqshl_v, Vec, Vec, Vec);
|
1033
|
+
ASMJIT_INST_3x(uqshl, Uqshl_v, Vec, Vec, Imm);
|
1034
|
+
ASMJIT_INST_3x(uqshrn, Uqshrn_v, Vec, Vec, Imm);
|
1035
|
+
ASMJIT_INST_3x(uqshrn2, Uqshrn2_v, Vec, Vec, Imm);
|
1036
|
+
ASMJIT_INST_3x(uqsub, Uqsub_v, Vec, Vec, Vec);
|
1037
|
+
ASMJIT_INST_2x(uqxtn, Uqxtn_v, Vec, Vec);
|
1038
|
+
ASMJIT_INST_2x(uqxtn2, Uqxtn2_v, Vec, Vec);
|
1039
|
+
ASMJIT_INST_2x(urecpe, Urecpe_v, Vec, Vec);
|
1040
|
+
ASMJIT_INST_3x(urhadd, Urhadd_v, Vec, Vec, Vec);
|
1041
|
+
ASMJIT_INST_3x(urshl, Urshl_v, Vec, Vec, Vec);
|
1042
|
+
ASMJIT_INST_3x(urshr, Urshr_v, Vec, Vec, Imm);
|
1043
|
+
ASMJIT_INST_2x(ursqrte, Ursqrte_v, Vec, Vec);
|
1044
|
+
ASMJIT_INST_3x(ursra, Ursra_v, Vec, Vec, Imm);
|
1045
|
+
ASMJIT_INST_3x(ushl, Ushl_v, Vec, Vec, Vec);
|
1046
|
+
ASMJIT_INST_3x(ushll, Ushll_v, Vec, Vec, Imm);
|
1047
|
+
ASMJIT_INST_3x(ushll2, Ushll2_v, Vec, Vec, Imm);
|
1048
|
+
ASMJIT_INST_3x(ushr, Ushr_v, Vec, Vec, Imm);
|
1049
|
+
ASMJIT_INST_2x(usqadd, Usqadd_v, Vec, Vec);
|
1050
|
+
ASMJIT_INST_3x(usra, Usra_v, Vec, Vec, Imm);
|
1051
|
+
ASMJIT_INST_3x(usubl, Usubl_v, Vec, Vec, Vec);
|
1052
|
+
ASMJIT_INST_3x(usubl2, Usubl2_v, Vec, Vec, Vec);
|
1053
|
+
ASMJIT_INST_3x(usubw, Usubw_v, Vec, Vec, Vec);
|
1054
|
+
ASMJIT_INST_3x(usubw2, Usubw2_v, Vec, Vec, Vec);
|
1055
|
+
ASMJIT_INST_2x(uxtl, Uxtl_v, Vec, Vec);
|
1056
|
+
ASMJIT_INST_2x(uxtl2, Uxtl2_v, Vec, Vec);
|
1057
|
+
ASMJIT_INST_3x(uzp1, Uzp1_v, Vec, Vec, Vec);
|
1058
|
+
ASMJIT_INST_3x(uzp2, Uzp2_v, Vec, Vec, Vec);
|
1059
|
+
ASMJIT_INST_2x(xtn, Xtn_v, Vec, Vec);
|
1060
|
+
ASMJIT_INST_2x(xtn2, Xtn2_v, Vec, Vec);
|
1061
|
+
ASMJIT_INST_3x(zip1, Zip1_v, Vec, Vec, Vec);
|
1062
|
+
ASMJIT_INST_3x(zip2, Zip2_v, Vec, Vec, Vec);
|
1063
|
+
|
1064
|
+
//! \}
|
1065
|
+
|
1066
|
+
//! \name AES Instructions
|
1067
|
+
//! \{
|
1068
|
+
|
1069
|
+
ASMJIT_INST_2x(aesd, Aesd_v, Vec, Vec);
|
1070
|
+
ASMJIT_INST_2x(aese, Aese_v, Vec, Vec);
|
1071
|
+
ASMJIT_INST_2x(aesimc, Aesimc_v, Vec, Vec);
|
1072
|
+
ASMJIT_INST_2x(aesmc, Aesmc_v, Vec, Vec);
|
1073
|
+
|
1074
|
+
//! \}
|
1075
|
+
|
1076
|
+
//! \name SHA1 Instructions
|
1077
|
+
//! \{
|
1078
|
+
|
1079
|
+
ASMJIT_INST_3x(sha1c, Sha1c_v, Vec, Vec, Vec);
|
1080
|
+
ASMJIT_INST_2x(sha1h, Sha1h_v, Vec, Vec);
|
1081
|
+
ASMJIT_INST_3x(sha1m, Sha1m_v, Vec, Vec, Vec);
|
1082
|
+
ASMJIT_INST_3x(sha1p, Sha1p_v, Vec, Vec, Vec);
|
1083
|
+
ASMJIT_INST_3x(sha1su0, Sha1su0_v, Vec, Vec, Vec);
|
1084
|
+
ASMJIT_INST_2x(sha1su1, Sha1su1_v, Vec, Vec);
|
1085
|
+
|
1086
|
+
//! \}
|
1087
|
+
|
1088
|
+
//! \name SHA2 Instructions
|
1089
|
+
//! \{
|
1090
|
+
|
1091
|
+
ASMJIT_INST_3x(sha256h, Sha256h_v, Vec, Vec, Vec);
|
1092
|
+
ASMJIT_INST_3x(sha256h2, Sha256h2_v, Vec, Vec, Vec);
|
1093
|
+
ASMJIT_INST_2x(sha256su0, Sha256su0_v, Vec, Vec);
|
1094
|
+
ASMJIT_INST_3x(sha256su1, Sha256su1_v, Vec, Vec, Vec);
|
1095
|
+
|
1096
|
+
//! \}
|
1097
|
+
|
1098
|
+
//! \name RDMA Instructions (ARMv8.1-A)
|
1099
|
+
//! \{
|
1100
|
+
|
1101
|
+
ASMJIT_INST_3x(sqrdmlah, Sqrdmlah_v, Vec, Vec, Vec);
|
1102
|
+
ASMJIT_INST_3x(sqrdmlsh, Sqrdmlsh_v, Vec, Vec, Vec);
|
1103
|
+
|
1104
|
+
//! \}
|
1105
|
+
|
1106
|
+
//! \name FCMA Instruction (ARMv8.3-A)
|
1107
|
+
//! \{
|
1108
|
+
|
1109
|
+
ASMJIT_INST_4x(fcadd, Fcadd_v, Vec, Vec, Vec, Imm);
|
1110
|
+
ASMJIT_INST_4x(fcmla, Fcmla_v, Vec, Vec, Vec, Imm);
|
1111
|
+
|
1112
|
+
//! \}
|
1113
|
+
|
1114
|
+
//! \name FJCVTZS Instruction (ARMv8.3-A)
|
1115
|
+
//! \{
|
1116
|
+
|
1117
|
+
ASMJIT_INST_2x(fjcvtzs, Fjcvtzs_v, Gp, Vec);
|
1118
|
+
|
1119
|
+
//! \}
|
1120
|
+
|
1121
|
+
//! \name FP16FML Instructions (ARMv8.4-A, optional in ARMv8.2-A)
|
1122
|
+
//! \{
|
1123
|
+
|
1124
|
+
ASMJIT_INST_3x(fmlal, Fmlal_v, Vec, Vec, Vec);
|
1125
|
+
ASMJIT_INST_3x(fmlal2, Fmlal2_v, Vec, Vec, Vec);
|
1126
|
+
ASMJIT_INST_3x(fmlsl, Fmlsl_v, Vec, Vec, Vec);
|
1127
|
+
ASMJIT_INST_3x(fmlsl2, Fmlsl2_v, Vec, Vec, Vec);
|
1128
|
+
|
1129
|
+
|
1130
|
+
//! \}
|
1131
|
+
|
1132
|
+
//! \name SHA3 Instructions (ARMv8.4-A, optional in ARMv8.2-A)
|
1133
|
+
//! \{
|
1134
|
+
|
1135
|
+
ASMJIT_INST_4x(bcax, Bcax_v, Vec, Vec, Vec, Vec);
|
1136
|
+
ASMJIT_INST_4x(eor3, Eor3_v, Vec, Vec, Vec, Vec);
|
1137
|
+
ASMJIT_INST_3x(rax1, Rax1_v, Vec, Vec, Vec);
|
1138
|
+
ASMJIT_INST_4x(xar, Xar_v, Vec, Vec, Vec, Imm);
|
1139
|
+
|
1140
|
+
//! \}
|
1141
|
+
|
1142
|
+
//! \name SHA512 Instructions (ARMv8.4-A)
|
1143
|
+
//! \{
|
1144
|
+
|
1145
|
+
ASMJIT_INST_3x(sha512h, Sha512h_v, Vec, Vec, Vec);
|
1146
|
+
ASMJIT_INST_3x(sha512h2, Sha512h2_v, Vec, Vec, Vec);
|
1147
|
+
ASMJIT_INST_2x(sha512su0, Sha512su0_v, Vec, Vec);
|
1148
|
+
ASMJIT_INST_3x(sha512su1, Sha512su1_v, Vec, Vec, Vec);
|
1149
|
+
|
1150
|
+
//! \}
|
1151
|
+
|
1152
|
+
//! \name SM3 Instructions (ARMv8.4-A)
|
1153
|
+
//! \{
|
1154
|
+
|
1155
|
+
ASMJIT_INST_3x(sm3partw1, Sm3partw1_v, Vec, Vec, Vec);
|
1156
|
+
ASMJIT_INST_3x(sm3partw2, Sm3partw2_v, Vec, Vec, Vec);
|
1157
|
+
ASMJIT_INST_4x(sm3ss1, Sm3ss1_v, Vec, Vec, Vec, Vec);
|
1158
|
+
ASMJIT_INST_3x(sm3tt1a, Sm3tt1a_v, Vec, Vec, Vec);
|
1159
|
+
ASMJIT_INST_3x(sm3tt1b, Sm3tt1b_v, Vec, Vec, Vec);
|
1160
|
+
ASMJIT_INST_3x(sm3tt2a, Sm3tt2a_v, Vec, Vec, Vec);
|
1161
|
+
ASMJIT_INST_3x(sm3tt2b, Sm3tt2b_v, Vec, Vec, Vec);
|
1162
|
+
|
1163
|
+
//! \}
|
1164
|
+
|
1165
|
+
//! \name SM4 Instructions (ARMv8.4-A)
|
1166
|
+
//! \{
|
1167
|
+
|
1168
|
+
ASMJIT_INST_2x(sm4e, Sm4e_v, Vec, Vec);
|
1169
|
+
ASMJIT_INST_3x(sm4ekey, Sm4ekey_v, Vec, Vec, Vec);
|
1170
|
+
|
1171
|
+
//! \}
|
1172
|
+
|
1173
|
+
//! \name DOTPROD Instructions (ARMv8.4-A, optional in ARMv8.2-A)
|
1174
|
+
//! \{
|
1175
|
+
|
1176
|
+
ASMJIT_INST_3x(sdot, Sdot_v, Vec, Vec, Vec);
|
1177
|
+
ASMJIT_INST_3x(udot, Udot_v, Vec, Vec, Vec);
|
1178
|
+
|
1179
|
+
//! \}
|
1180
|
+
|
1181
|
+
//! \name BF16 Instructions (ARMv8.6-A)
|
1182
|
+
//! \{
|
1183
|
+
|
1184
|
+
ASMJIT_INST_2x(bfcvt, Bfcvt_v, Vec, Vec);
|
1185
|
+
ASMJIT_INST_2x(bfcvtn, Bfcvtn_v, Vec, Vec);
|
1186
|
+
ASMJIT_INST_2x(bfcvtn2, Bfcvtn2_v, Vec, Vec);
|
1187
|
+
ASMJIT_INST_3x(bfmlalb, Bfmlalb_v, Vec, Vec, Vec);
|
1188
|
+
ASMJIT_INST_3x(bfmlalt, Bfmlalt_v, Vec, Vec, Vec);
|
1189
|
+
ASMJIT_INST_3x(bfmmla, Bfmmla_v, Vec, Vec, Vec);
|
1190
|
+
ASMJIT_INST_3x(bfdot, Bfdot_v, Vec, Vec, Vec);
|
1191
|
+
|
1192
|
+
//! \}
|
1193
|
+
|
1194
|
+
//! \name I8MM Instructions (ARMv8.6-A)
|
1195
|
+
//! \{
|
1196
|
+
|
1197
|
+
ASMJIT_INST_3x(smmla, Smmla_v, Vec, Vec, Vec);
|
1198
|
+
ASMJIT_INST_3x(sudot, Sudot_v, Vec, Vec, Vec);
|
1199
|
+
ASMJIT_INST_3x(ummla, Ummla_v, Vec, Vec, Vec);
|
1200
|
+
ASMJIT_INST_3x(usdot, Usdot_v, Vec, Vec, Vec);
|
1201
|
+
ASMJIT_INST_3x(usmmla, Usmmla_v, Vec, Vec, Vec);
|
1202
|
+
|
1203
|
+
//! \}
|
1204
|
+
};
|
1205
|
+
|
1206
|
+
//! Emitter (ARM).
|
1207
|
+
//!
|
1208
|
+
//! \note This class cannot be instantiated, you can only cast to it and use it as emitter that emits to either
|
1209
|
+
//! `a64::Assembler`, `a64::Builder`, or `a64::Compiler` (use with caution with `a64::Compiler` as it requires
|
1210
|
+
//! virtual registers).
|
1211
|
+
class Emitter : public BaseEmitter, public EmitterExplicitT<Emitter> {
|
1212
|
+
ASMJIT_NONCONSTRUCTIBLE(Emitter)
|
1213
|
+
};
|
1214
|
+
|
1215
|
+
//! \}
|
1216
|
+
|
1217
|
+
#undef ASMJIT_INST_0x
|
1218
|
+
#undef ASMJIT_INST_1x
|
1219
|
+
#undef ASMJIT_INST_2x
|
1220
|
+
#undef ASMJIT_INST_3x
|
1221
|
+
#undef ASMJIT_INST_4x
|
1222
|
+
#undef ASMJIT_INST_5x
|
1223
|
+
#undef ASMJIT_INST_6x
|
1224
|
+
#undef ASMJIT_INST_1cc
|
1225
|
+
|
1226
|
+
ASMJIT_END_SUB_NAMESPACE
|
1227
|
+
|
1228
|
+
#endif // ASMJIT_ARM_A64EMITTER_H_INCLUDED
|