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