mirror of
https://git.suyu.dev/suyu/dynarmic.git
synced 2026-03-13 20:56:27 +00:00
Squashed 'externals/xbyak/' changes from 0140eeff1..590c10e37
590c10e37 fix typo 396715a89 use github action 69a25fd92 change build status to travis-ci.com a6a9dac91 meanings of the name 8d1e41b65 test_util.cpp supports OpenBSD 77ffe7173 Merge pull request #115 from Ryan-rsm-McKenzie/master a1da3403a fix build interface include directory e0136d4ef fix add_library call with INTERFACE 3071eee0c support slightly more modern cmake e626d6209 v5.991 a49c4bc11 disable XBYAK_CONSTEXPR for g++-5 -std=c++-14 70777a699 Merge branch 'atafra-old_mac_fix' into dev 6b81678d0 fixed compile error on some older macOS versions 2c3b43f15 refactor util 91784e2b8 test_util checks AMX and AVX_VNNI 70b70c557 update to v5.99 284cc5bed refactor 6b3eb9c1e default encoding is always evex f85b1100b refactor vnni 276d09bae Merge branch 'akharito-akharito/adl_support' into dev 50df86ce3 v5.98 97ce92d58 Merge branch 'akharito/adl_support' of https://github.com/akharito/xbyak into akharito-akharito/adl_support 1f119a04a support [scale * reg] 9ee1bef9a cpuid - check that GRT CPUID leaf 7 subleaf 0 should return EAX=1 be93adb2c add AVX VNNI instruction support 0c277240a add ADL CPUID a9a5cc2e2 Add option to choose VEX or EVEX encoding 29bfd25ba fix indent a0c49fa2e Merge branch 'atafra-mac_avx512_fix' into dev ea388b3c6 fixed incorrect detection of AVX-512 on macOS ed1b8186f Merge branch 'FEX-Emu-extended_features' into dev 3dacddfec Merge branch 'extended_features' of https://github.com/FEX-Emu/xbyak into FEX-Emu-extended_features 898f78ca3 Merge branch 'kariya-mitsuru-use-sh' 0b7f1411c Merge branch 'use-sh' of https://github.com/kariya-mitsuru/xbyak into kariya-mitsuru-use-sh 99e2b13b2 Fixes extended feature support checking b0a43c7e5 Use sh instead of tcsh for test scripts 87e8f41ae remove warning of _MSC_VER git-subtree-dir: externals/xbyak git-subtree-split: 590c10e3746978dbfcf102d6da933ac2659e4544
This commit is contained in:
@@ -643,6 +643,7 @@ class Test {
|
||||
puts(isXbyak_ ? "out_(dx, al); dump();" : "out dx, al");
|
||||
puts(isXbyak_ ? "out_(dx, ax); dump();" : "out dx, ax");
|
||||
puts(isXbyak_ ? "out_(dx, eax); dump();" : "out dx, eax");
|
||||
puts(isXbyak_ ? "lea(eax, ptr[edi + 4 * eax]); dump();" : "lea eax, [edi + 4 * eax]");
|
||||
}
|
||||
void putJmp() const
|
||||
{
|
||||
|
||||
@@ -815,4 +815,32 @@ CYBOZU_TEST_AUTO(tileloadd)
|
||||
CYBOZU_TEST_EXCEPTION(c.notSupported(), std::exception);
|
||||
CYBOZU_TEST_EXCEPTION(c.notSupported2(), std::exception);
|
||||
}
|
||||
|
||||
CYBOZU_TEST_AUTO(vnni)
|
||||
{
|
||||
struct Code : Xbyak::CodeGenerator {
|
||||
Code()
|
||||
{
|
||||
// default encoding is EVEX
|
||||
vpdpbusd(xm0, xm1, xm2);
|
||||
vpdpbusd(xm0, xm1, xm2, EvexEncoding); // EVEX
|
||||
vpdpbusd(xm0, xm1, xm2, VexEncoding); // VEX
|
||||
}
|
||||
void badVex()
|
||||
{
|
||||
vpdpbusd(xm0, xm1, xm31, VexEncoding);
|
||||
}
|
||||
} c;
|
||||
const uint8_t tbl[] = {
|
||||
0x62, 0xF2, 0x75, 0x08, 0x50, 0xC2,
|
||||
0x62, 0xF2, 0x75, 0x08, 0x50, 0xC2,
|
||||
0xC4, 0xE2, 0x71, 0x50, 0xC2,
|
||||
};
|
||||
const size_t n = sizeof(tbl) / sizeof(tbl[0]);
|
||||
CYBOZU_TEST_EQUAL(c.getSize(), n);
|
||||
CYBOZU_TEST_EQUAL_ARRAY(c.getCode(), tbl, n);
|
||||
|
||||
CYBOZU_TEST_EXCEPTION(c.badVex(), std::exception);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -12,7 +12,7 @@ g++ $CFLAGS address.cpp -o address
|
||||
./address $1 > a.asm
|
||||
echo "asm"
|
||||
$EXE -f$OPT3 a.asm -l a.lst
|
||||
awk '{if (index($3, "-")) { conti=substr($3, 0, length($3) - 1) } else { conti = conti $3; print conti; conti = "" }} ' < a.lst | $FILTER > ok.lst
|
||||
awk '{printf "%s", sub(/-$/, "", $3) ? $3 : $3 ORS}' a.lst | $FILTER > ok.lst
|
||||
|
||||
echo "xbyak"
|
||||
./address $1 jit > nm.cpp
|
||||
|
||||
@@ -1,39 +1,44 @@
|
||||
#!/bin/tcsh
|
||||
#!/bin/sh
|
||||
|
||||
set FILTER="grep -v warning"
|
||||
FILTER="grep -v warning"
|
||||
|
||||
if ($1 == "Y") then
|
||||
case $1 in
|
||||
Y)
|
||||
echo "yasm(32bit)"
|
||||
set EXE=yasm
|
||||
set OPT2="-DUSE_YASM -DXBYAK32"
|
||||
set OPT3=win32
|
||||
else if ($1 == "64") then
|
||||
EXE=yasm
|
||||
OPT2="-DUSE_YASM -DXBYAK32"
|
||||
OPT3=win32
|
||||
;;
|
||||
64)
|
||||
echo "nasm(64bit)"
|
||||
set EXE=nasm
|
||||
set OPT2=-DXBYAK64
|
||||
set OPT3=win64
|
||||
set FILTER=./normalize_prefix
|
||||
else if ($1 == "Y64") then
|
||||
EXE=nasm
|
||||
OPT2=-DXBYAK64
|
||||
OPT3=win64
|
||||
FILTER=./normalize_prefix
|
||||
;;
|
||||
Y64)
|
||||
echo "yasm(64bit)"
|
||||
set EXE=yasm
|
||||
set OPT2="-DUSE_YASM -DXBYAK64"
|
||||
set OPT3=win64
|
||||
set FILTER=./normalize_prefix
|
||||
else
|
||||
EXE=yasm
|
||||
OPT2="-DUSE_YASM -DXBYAK64"
|
||||
OPT3=win64
|
||||
FILTER=./normalize_prefix
|
||||
;;
|
||||
*)
|
||||
echo "nasm(32bit)"
|
||||
set EXE=nasm
|
||||
set OPT2=-DXBYAK32
|
||||
set OPT3=win32
|
||||
endif
|
||||
EXE=nasm
|
||||
OPT2=-DXBYAK32
|
||||
OPT3=win32
|
||||
;;
|
||||
esac
|
||||
|
||||
set CFLAGS="-Wall -fno-operator-names -I../ $OPT2 -DUSE_AVX"
|
||||
CFLAGS="-Wall -fno-operator-names -I../ $OPT2 -DUSE_AVX"
|
||||
echo "compile make_nm.cpp"
|
||||
g++ $CFLAGS make_nm.cpp -o make_nm
|
||||
|
||||
./make_nm > a.asm
|
||||
echo "asm"
|
||||
$EXE -f$OPT3 a.asm -l a.lst
|
||||
awk '{if (index($3, "-")) { conti=substr($3, 0, length($3) - 1) } else { conti = conti $3; print conti; conti = "" }} ' < a.lst | $FILTER | grep -v "1+1" > ok.lst
|
||||
awk '$3 != "1+1" {printf "%s", sub(/-$/, "", $3) ? $3 : $3 ORS}' a.lst | $FILTER > ok.lst
|
||||
|
||||
echo "xbyak"
|
||||
./make_nm jit > nm.cpp
|
||||
|
||||
@@ -1,28 +1,31 @@
|
||||
#!/bin/tcsh
|
||||
#!/bin/sh
|
||||
|
||||
set FILTER="grep -v warning"
|
||||
FILTER="grep -v warning"
|
||||
|
||||
if ($1 == "64") then
|
||||
case $1 in
|
||||
64)
|
||||
echo "nasm(64bit)"
|
||||
set EXE=nasm
|
||||
set OPT2=-DXBYAK64
|
||||
set OPT3=win64
|
||||
set FILTER=./normalize_prefix
|
||||
else
|
||||
EXE=nasm
|
||||
OPT2=-DXBYAK64
|
||||
OPT3=win64
|
||||
FILTER=./normalize_prefix
|
||||
;;
|
||||
*)
|
||||
echo "nasm(32bit)"
|
||||
set EXE=nasm
|
||||
set OPT2=-DXBYAK32
|
||||
set OPT3=win32
|
||||
endif
|
||||
EXE=nasm
|
||||
OPT2=-DXBYAK32
|
||||
OPT3=win32
|
||||
;;
|
||||
esac
|
||||
|
||||
set CFLAGS="-Wall -fno-operator-names -I../ $OPT2 -DUSE_AVX512"
|
||||
CFLAGS="-Wall -fno-operator-names -I../ $OPT2 -DUSE_AVX512"
|
||||
echo "compile make_512.cpp"
|
||||
g++ $CFLAGS make_512.cpp -o make_512
|
||||
|
||||
./make_512 > a.asm
|
||||
echo "asm"
|
||||
$EXE -f$OPT3 a.asm -l a.lst
|
||||
awk '{if (index($3, "-")) { conti=substr($3, 0, length($3) - 1) } else { conti = conti $3; print conti; conti = "" }} ' < a.lst | $FILTER > ok.lst
|
||||
awk '{printf "%s", sub(/-$/, "", $3) ? $3 : $3 ORS}' a.lst | $FILTER > ok.lst
|
||||
|
||||
echo "xbyak"
|
||||
./make_512 jit > nm.cpp
|
||||
|
||||
@@ -1,50 +1,57 @@
|
||||
#!/bin/tcsh
|
||||
#!/bin/sh
|
||||
|
||||
set FILTER=cat
|
||||
FILTER=cat
|
||||
|
||||
if ($1 == "Y") then
|
||||
case $1 in
|
||||
Y)
|
||||
echo "yasm(32bit)"
|
||||
set EXE=yasm
|
||||
set OPT2="-DUSE_YASM -DXBYAK32"
|
||||
set OPT3=win32
|
||||
else if ($1 == "64") then
|
||||
EXE=yasm
|
||||
OPT2="-DUSE_YASM -DXBYAK32"
|
||||
OPT3=win32
|
||||
;;
|
||||
64)
|
||||
echo "nasm(64bit)"
|
||||
set EXE=nasm
|
||||
set OPT2=-DXBYAK64
|
||||
set OPT3=win64
|
||||
set FILTER=./normalize_prefix
|
||||
else if ($1 == "Y64") then
|
||||
EXE=nasm
|
||||
OPT2=-DXBYAK64
|
||||
OPT3=win64
|
||||
FILTER=./normalize_prefix
|
||||
;;
|
||||
Y64)
|
||||
echo "yasm(64bit)"
|
||||
set EXE=yasm
|
||||
set OPT2="-DUSE_YASM -DXBYAK64"
|
||||
set OPT3=win64
|
||||
set FILTER=./normalize_prefix
|
||||
else if ($1 == "avx512") then
|
||||
EXE=yasm
|
||||
OPT2="-DUSE_YASM -DXBYAK64"
|
||||
OPT3=win64
|
||||
FILTER=./normalize_prefix
|
||||
;;
|
||||
avx512)
|
||||
echo "nasm(64bit) + avx512"
|
||||
set EXE=nasm
|
||||
set OPT2="-DXBYAK64 -DUSE_AVX512"
|
||||
set OPT3=win64
|
||||
set FILTER=./normalize_prefix
|
||||
else if ($1 == "noexcept") then
|
||||
EXE=nasm
|
||||
OPT2="-DXBYAK64 -DUSE_AVX512"
|
||||
OPT3=win64
|
||||
FILTER=./normalize_prefix
|
||||
;;
|
||||
noexcept)
|
||||
echo "nasm(32bit) without exception"
|
||||
set EXE=nasm
|
||||
set OPT2="-DXBYAK32 -DXBYAK_NO_EXCEPTION"
|
||||
set OPT3=win32
|
||||
else
|
||||
EXE=nasm
|
||||
OPT2="-DXBYAK32 -DXBYAK_NO_EXCEPTION"
|
||||
OPT3=win32
|
||||
;;
|
||||
*)
|
||||
echo "nasm(32bit)"
|
||||
set EXE=nasm
|
||||
set OPT2=-DXBYAK32
|
||||
set OPT3=win32
|
||||
endif
|
||||
EXE=nasm
|
||||
OPT2=-DXBYAK32
|
||||
OPT3=win32
|
||||
;;
|
||||
esac
|
||||
|
||||
set CFLAGS="-Wall -fno-operator-names -I../ $OPT2"
|
||||
CFLAGS="-Wall -fno-operator-names -I../ $OPT2"
|
||||
echo "compile make_nm.cpp with $CFLAGS"
|
||||
g++ $CFLAGS make_nm.cpp -o make_nm
|
||||
|
||||
./make_nm > a.asm
|
||||
echo "asm"
|
||||
$EXE -f$OPT3 a.asm -l a.lst
|
||||
awk '{if (index($3, "-")) { conti=substr($3, 0, length($3) - 1) } else { conti = conti $3; print conti; conti = "" }} ' < a.lst | $FILTER | grep -v "1+1" > ok.lst
|
||||
awk '$3 != "1+1" {printf "%s", sub(/-$/, "", $3) ? $3 : $3 ORS}' a.lst | $FILTER > ok.lst
|
||||
|
||||
echo "xbyak"
|
||||
./make_nm jit > nm.cpp
|
||||
|
||||
Reference in New Issue
Block a user