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