externals: Update xbyak to 6.61
Merge commit '5b6e3d8b54e428fceedd907cf5c0f52ca98eb003'
This commit is contained in:
commit
8f890d327a
38 changed files with 94 additions and 13 deletions
2
externals/xbyak/CMakeLists.txt
vendored
2
externals/xbyak/CMakeLists.txt
vendored
|
@ -1,6 +1,6 @@
|
|||
cmake_minimum_required(VERSION 2.6...3.0.2)
|
||||
|
||||
project(xbyak LANGUAGES CXX VERSION 6.60.1)
|
||||
project(xbyak LANGUAGES CXX VERSION 6.61)
|
||||
|
||||
file(GLOB headers xbyak/*.h)
|
||||
|
||||
|
|
2
externals/xbyak/doc/changelog.md
vendored
2
externals/xbyak/doc/changelog.md
vendored
|
@ -1,5 +1,7 @@
|
|||
# History
|
||||
|
||||
* 2022/Jul/29 ver 6.61 fix exception of movzx eax, ah in 64-bit mode
|
||||
* 2022/Jun/16 ver 6.60.2 fix detection of GFNI, VAES, and VPCLMULQDQ
|
||||
* 2022/Jun/15 ver 6.60.1 fix link error of Xbyak::util::Cpu on Visual Studio with /O0 option
|
||||
* 2022/Jun/06 ver 6.60 change the version format to avoid it going backward
|
||||
* 2022/Jun/01 ver 6.06 refactor Cpu::Type class and improve MmapAllocator when XBYAK_USE_MEMFD is defined.
|
||||
|
|
2
externals/xbyak/meson.build
vendored
2
externals/xbyak/meson.build
vendored
|
@ -5,7 +5,7 @@
|
|||
project(
|
||||
'xbyak',
|
||||
'cpp',
|
||||
version: '6.60.1',
|
||||
version: '6.61',
|
||||
license: 'BSD-3-Clause',
|
||||
default_options: 'b_ndebug=if-release'
|
||||
)
|
||||
|
|
2
externals/xbyak/readme.md
vendored
2
externals/xbyak/readme.md
vendored
|
@ -1,5 +1,5 @@
|
|||
|
||||
# Xbyak 6.60.1 [![Badge Build]][Build Status]
|
||||
# Xbyak 6.61 [![Badge Build]][Build Status]
|
||||
|
||||
*A C++ JIT assembler for x86 (IA32), x64 (AMD64, x86-64)*
|
||||
|
||||
|
|
4
externals/xbyak/readme.txt
vendored
4
externals/xbyak/readme.txt
vendored
|
@ -1,5 +1,5 @@
|
|||
|
||||
C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak 6.60.1
|
||||
C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak 6.61
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
◎概要
|
||||
|
@ -400,6 +400,8 @@ sample/{echo,hello}.bfは http://www.kmonos.net/alang/etc/brainfuck.php から
|
|||
-----------------------------------------------------------------------------
|
||||
◎履歴
|
||||
|
||||
2022/07/29 ver 6.61 movzx eax, ahがエラーになるのを修正
|
||||
2022/06/16 ver 6.60.2 GFNI, VAES, VPCLMULQDQの判定修正
|
||||
2022/06/15 ver 6.60.1 Visual Studio /O0でXbyak::util::Cpuがリンクエラーになるのに対応
|
||||
2022/06/06 ver 6.60 バージョンのつけ方を数値が戻らないように変更
|
||||
2022/06/01 ver 6.06 Cpu::TypeクラスのリファクタリングとXBYAK_USE_MEMFDが定義されたときのMmapAllocatorの改善
|
||||
|
|
2
externals/xbyak/sample/cpuid/adl.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/adl.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq avx fma avx2 bmi1 bmi2 lzcnt prefetchw enh_rep rdrand adx rdseed smap sha f16c movbe avx_vnni waitpkg clflushopt cldemote movdiri movdir64b
|
2
externals/xbyak/sample/cpuid/bdw.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/bdw.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq avx fma avx2 bmi1 bmi2 lzcnt prefetchw enh_rep rdrand adx rdseed smap f16c movbe
|
2
externals/xbyak/sample/cpuid/clx.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/clx.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq avx fma avx2 bmi1 bmi2 lzcnt prefetchw enh_rep rdrand adx rdseed smap f16c movbe avx512f avx512dq avx512cd avx512bw avx512vl avx512_vnni clflushopt
|
2
externals/xbyak/sample/cpuid/cnl.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/cnl.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq avx fma avx2 bmi1 bmi2 lzcnt prefetchw enh_rep rdrand adx rdseed smap sha f16c movbe avx512f avx512dq avx512_ifma avx512cd avx512bw avx512vl avx512_vbmi clflushopt
|
11
externals/xbyak/sample/cpuid/cpuid.sh
vendored
Executable file
11
externals/xbyak/sample/cpuid/cpuid.sh
vendored
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/bash
|
||||
|
||||
make -C ../ test_util64
|
||||
|
||||
cpus=(p4p mrm pnr nhm wsm snb ivb hsw bdw slt slm glm glp tnt skl cnl icl skx clx cpx icx knl knm tgl adl spr)
|
||||
for cpu in ${cpus[@]} ; do
|
||||
echo $cpu
|
||||
~/bin/sde -$cpu -- ../test_util64 -cpuid > tmp.txt
|
||||
diff tmp.txt $cpu.txt
|
||||
done
|
||||
|
2
externals/xbyak/sample/cpuid/cpx.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/cpx.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq avx fma avx2 bmi1 bmi2 lzcnt prefetchw enh_rep rdrand adx rdseed smap f16c movbe avx512f avx512dq avx512cd avx512bw avx512vl avx512_vnni avx512_bf16 clflushopt
|
2
externals/xbyak/sample/cpuid/glm.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/glm.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq enh_rep rdrand rdseed smap sha movbe clflushopt
|
2
externals/xbyak/sample/cpuid/glp.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/glp.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq enh_rep rdrand rdseed smap sha movbe clflushopt
|
2
externals/xbyak/sample/cpuid/hsw.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/hsw.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq avx fma avx2 bmi1 bmi2 lzcnt enh_rep rdrand f16c movbe
|
2
externals/xbyak/sample/cpuid/icl.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/icl.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq avx fma avx2 bmi1 bmi2 lzcnt prefetchw enh_rep rdrand adx rdseed smap sha f16c movbe avx512f avx512dq avx512_ifma avx512cd avx512bw avx512vl avx512_vbmi avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq clflushopt
|
2
externals/xbyak/sample/cpuid/icx.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/icx.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq avx fma avx2 bmi1 bmi2 lzcnt prefetchw enh_rep rdrand adx rdseed smap sha f16c movbe avx512f avx512dq avx512_ifma avx512cd avx512bw avx512vl avx512_vbmi avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq clflushopt
|
2
externals/xbyak/sample/cpuid/ivb.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/ivb.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq avx enh_rep rdrand f16c
|
2
externals/xbyak/sample/cpuid/knl.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/knl.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq avx fma avx2 bmi1 bmi2 lzcnt prefetchw enh_rep rdrand adx rdseed prefetchwt1 f16c movbe avx512f avx512pf avx512er avx512cd
|
2
externals/xbyak/sample/cpuid/knm.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/knm.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq avx fma avx2 bmi1 bmi2 lzcnt prefetchw enh_rep rdrand adx rdseed prefetchwt1 f16c movbe avx512f avx512pf avx512er avx512cd avx512_4vnniw avx512_4fmaps avx512_vpopcntdq
|
2
externals/xbyak/sample/cpuid/mrm.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/mrm.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3
|
2
externals/xbyak/sample/cpuid/nhm.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/nhm.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt rdtscp
|
2
externals/xbyak/sample/cpuid/p4p.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/p4p.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3
|
2
externals/xbyak/sample/cpuid/pnr.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/pnr.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41
|
2
externals/xbyak/sample/cpuid/skl.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/skl.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq avx fma avx2 bmi1 bmi2 lzcnt prefetchw enh_rep rdrand adx rdseed smap f16c movbe clflushopt
|
2
externals/xbyak/sample/cpuid/skx.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/skx.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq avx fma avx2 bmi1 bmi2 lzcnt prefetchw enh_rep rdrand adx rdseed smap f16c movbe avx512f avx512dq avx512cd avx512bw avx512vl clflushopt
|
2
externals/xbyak/sample/cpuid/slm.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/slm.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp pclmulqdq prefetchw enh_rep rdrand movbe
|
2
externals/xbyak/sample/cpuid/slt.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/slt.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 movbe
|
2
externals/xbyak/sample/cpuid/snb.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/snb.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq avx
|
2
externals/xbyak/sample/cpuid/spr.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/spr.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq avx fma avx2 bmi1 bmi2 lzcnt prefetchw enh_rep rdrand adx rdseed smap sha f16c movbe avx512f avx512dq avx512_ifma avx512cd avx512bw avx512vl avx512_vbmi avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq avx512_bf16 avx512_vp2intersect amx(tile) amx(int8) amx(bf16) avx_vnni avx512_fp16 waitpkg clflushopt cldemote movdiri movdir64b
|
2
externals/xbyak/sample/cpuid/tgl.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/tgl.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq avx fma avx2 bmi1 bmi2 lzcnt prefetchw enh_rep rdrand adx rdseed smap sha f16c movbe avx512f avx512dq avx512_ifma avx512cd avx512bw avx512vl avx512_vbmi avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq avx512_vp2intersect clflushopt movdiri movdir64b
|
2
externals/xbyak/sample/cpuid/tmp.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/tmp.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq avx fma avx2 bmi1 bmi2 lzcnt prefetchw enh_rep rdrand adx rdseed smap sha f16c movbe avx512f avx512dq avx512_ifma avx512cd avx512bw avx512vl avx512_vbmi avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq avx512_bf16 avx512_vp2intersect amx(tile) amx(int8) amx(bf16) avx_vnni avx512_fp16 waitpkg clflushopt cldemote movdiri movdir64b
|
2
externals/xbyak/sample/cpuid/tnt.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/tnt.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq enh_rep rdrand rdseed smap sha movbe clflushopt
|
10
externals/xbyak/sample/cpuid/update-txt.sh
vendored
Executable file
10
externals/xbyak/sample/cpuid/update-txt.sh
vendored
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/bin/bash
|
||||
|
||||
make -C ../ test_util64
|
||||
|
||||
cpus=(p4p mrm pnr nhm wsm snb ivb hsw bdw slt slm glm glp tnt skl cnl icl skx clx cpx icx knl knm tgl adl spr)
|
||||
for cpu in ${cpus[@]} ; do
|
||||
echo $cpu
|
||||
~/bin/sde -$cpu -- ../test_util64 -cpuid > $cpu.txt
|
||||
done
|
||||
|
2
externals/xbyak/sample/cpuid/wsm.txt
vendored
Normal file
2
externals/xbyak/sample/cpuid/wsm.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
vendor intel
|
||||
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp pclmulqdq
|
1
externals/xbyak/test/make_nm.cpp
vendored
1
externals/xbyak/test/make_nm.cpp
vendored
|
@ -1317,6 +1317,7 @@ class Test {
|
|||
put(p, REG64, REG16|REG8|MEM8|MEM16);
|
||||
put(p, REG32, REG16|REG8|MEM8|MEM16);
|
||||
put(p, REG16, REG8|MEM8);
|
||||
put(p, "eax, ah");
|
||||
}
|
||||
}
|
||||
#ifdef XBYAK64
|
||||
|
|
9
externals/xbyak/xbyak/xbyak.h
vendored
9
externals/xbyak/xbyak/xbyak.h
vendored
|
@ -77,7 +77,11 @@
|
|||
#endif
|
||||
#include <windows.h>
|
||||
#include <malloc.h>
|
||||
#ifdef _MSC_VER
|
||||
#define XBYAK_TLS __declspec(thread)
|
||||
#else
|
||||
#define XBYAK_TLS __thread
|
||||
#endif
|
||||
#elif defined(__GNUC__)
|
||||
#include <unistd.h>
|
||||
#include <sys/mman.h>
|
||||
|
@ -144,7 +148,7 @@ namespace Xbyak {
|
|||
|
||||
enum {
|
||||
DEFAULT_MAX_CODE_SIZE = 4096,
|
||||
VERSION = 0x6601 /* 0xABCD = A.BC(.D) */
|
||||
VERSION = 0x6610 /* 0xABCD = A.BC(.D) */
|
||||
};
|
||||
|
||||
#ifndef MIE_INTEGER_TYPE_DEFINED
|
||||
|
@ -2187,9 +2191,6 @@ private:
|
|||
{
|
||||
if (op.isBit(32)) XBYAK_THROW(ERR_BAD_COMBINATION)
|
||||
int w = op.isBit(16);
|
||||
#ifdef XBYAK64
|
||||
if (op.isHigh8bit()) XBYAK_THROW(ERR_BAD_COMBINATION)
|
||||
#endif
|
||||
bool cond = reg.isREG() && (reg.getBit() > op.getBit());
|
||||
opModRM(reg, op, cond && op.isREG(), cond && op.isMEM(), 0x0F, code | w);
|
||||
}
|
||||
|
|
2
externals/xbyak/xbyak/xbyak_mnemonic.h
vendored
2
externals/xbyak/xbyak/xbyak_mnemonic.h
vendored
|
@ -1,4 +1,4 @@
|
|||
const char *getVersionString() const { return "6.60.1"; }
|
||||
const char *getVersionString() const { return "6.61"; }
|
||||
void adc(const Operand& op, uint32_t imm) { opRM_I(op, imm, 0x10, 2); }
|
||||
void adc(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x10); }
|
||||
void adcx(const Reg32e& reg, const Operand& op) { opGen(reg, op, 0xF6, 0x66, isREG32_REG32orMEM, NONE, 0x38); }
|
||||
|
|
6
externals/xbyak/xbyak/xbyak_util.h
vendored
6
externals/xbyak/xbyak/xbyak_util.h
vendored
|
@ -506,9 +506,6 @@ public:
|
|||
if (EBX & (1U << 31)) type_ |= tAVX512VL;
|
||||
if (ECX & (1U << 1)) type_ |= tAVX512_VBMI;
|
||||
if (ECX & (1U << 6)) type_ |= tAVX512_VBMI2;
|
||||
if (ECX & (1U << 8)) type_ |= tGFNI;
|
||||
if (ECX & (1U << 9)) type_ |= tVAES;
|
||||
if (ECX & (1U << 10)) type_ |= tVPCLMULQDQ;
|
||||
if (ECX & (1U << 11)) type_ |= tAVX512_VNNI;
|
||||
if (ECX & (1U << 12)) type_ |= tAVX512_BITALG;
|
||||
if (ECX & (1U << 14)) type_ |= tAVX512_VPOPCNTDQ;
|
||||
|
@ -537,6 +534,9 @@ public:
|
|||
if (EBX & (1U << 29)) type_ |= tSHA;
|
||||
if (ECX & (1U << 0)) type_ |= tPREFETCHWT1;
|
||||
if (ECX & (1U << 5)) type_ |= tWAITPKG;
|
||||
if (ECX & (1U << 8)) type_ |= tGFNI;
|
||||
if (ECX & (1U << 9)) type_ |= tVAES;
|
||||
if (ECX & (1U << 10)) type_ |= tVPCLMULQDQ;
|
||||
if (ECX & (1U << 25)) type_ |= tCLDEMOTE;
|
||||
if (ECX & (1U << 27)) type_ |= tMOVDIRI;
|
||||
if (ECX & (1U << 28)) type_ |= tMOVDIR64B;
|
||||
|
|
Loading…
Reference in a new issue