diff options
Diffstat (limited to 'src/common/x64/emitter.cpp')
| -rw-r--r-- | src/common/x64/emitter.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/common/x64/emitter.cpp b/src/common/x64/emitter.cpp index 5463841d7..030c73918 100644 --- a/src/common/x64/emitter.cpp +++ b/src/common/x64/emitter.cpp | |||
| @@ -826,14 +826,14 @@ void XEmitter::BSR(int bits, X64Reg dest, OpArg src) {WriteBitSearchType(bits,de | |||
| 826 | void XEmitter::TZCNT(int bits, X64Reg dest, OpArg src) | 826 | void XEmitter::TZCNT(int bits, X64Reg dest, OpArg src) |
| 827 | { | 827 | { |
| 828 | CheckFlags(); | 828 | CheckFlags(); |
| 829 | if (!Common::cpu_info.bBMI1) | 829 | if (!Common::GetCPUCaps().bmi1) |
| 830 | ASSERT_MSG(0, "Trying to use BMI1 on a system that doesn't support it. Bad programmer."); | 830 | ASSERT_MSG(0, "Trying to use BMI1 on a system that doesn't support it. Bad programmer."); |
| 831 | WriteBitSearchType(bits, dest, src, 0xBC, true); | 831 | WriteBitSearchType(bits, dest, src, 0xBC, true); |
| 832 | } | 832 | } |
| 833 | void XEmitter::LZCNT(int bits, X64Reg dest, OpArg src) | 833 | void XEmitter::LZCNT(int bits, X64Reg dest, OpArg src) |
| 834 | { | 834 | { |
| 835 | CheckFlags(); | 835 | CheckFlags(); |
| 836 | if (!Common::cpu_info.bLZCNT) | 836 | if (!Common::GetCPUCaps().lzcnt) |
| 837 | ASSERT_MSG(0, "Trying to use LZCNT on a system that doesn't support it. Bad programmer."); | 837 | ASSERT_MSG(0, "Trying to use LZCNT on a system that doesn't support it. Bad programmer."); |
| 838 | WriteBitSearchType(bits, dest, src, 0xBD, true); | 838 | WriteBitSearchType(bits, dest, src, 0xBD, true); |
| 839 | } | 839 | } |
| @@ -907,7 +907,7 @@ void XEmitter::MOVZX(int dbits, int sbits, X64Reg dest, OpArg src) | |||
| 907 | 907 | ||
| 908 | void XEmitter::MOVBE(int bits, const OpArg& dest, const OpArg& src) | 908 | void XEmitter::MOVBE(int bits, const OpArg& dest, const OpArg& src) |
| 909 | { | 909 | { |
| 910 | ASSERT_MSG(Common::cpu_info.bMOVBE, "Generating MOVBE on a system that does not support it."); | 910 | ASSERT_MSG(Common::GetCPUCaps().movbe, "Generating MOVBE on a system that does not support it."); |
| 911 | if (bits == 8) | 911 | if (bits == 8) |
| 912 | { | 912 | { |
| 913 | MOV(bits, dest, src); | 913 | MOV(bits, dest, src); |
| @@ -1420,7 +1420,7 @@ static int GetVEXpp(u8 opPrefix) | |||
| 1420 | 1420 | ||
| 1421 | void XEmitter::WriteAVXOp(u8 opPrefix, u16 op, X64Reg regOp1, X64Reg regOp2, OpArg arg, int extrabytes) | 1421 | void XEmitter::WriteAVXOp(u8 opPrefix, u16 op, X64Reg regOp1, X64Reg regOp2, OpArg arg, int extrabytes) |
| 1422 | { | 1422 | { |
| 1423 | if (!Common::cpu_info.bAVX) | 1423 | if (!Common::GetCPUCaps().avx) |
| 1424 | ASSERT_MSG(0, "Trying to use AVX on a system that doesn't support it. Bad programmer."); | 1424 | ASSERT_MSG(0, "Trying to use AVX on a system that doesn't support it. Bad programmer."); |
| 1425 | int mmmmm = GetVEXmmmmm(op); | 1425 | int mmmmm = GetVEXmmmmm(op); |
| 1426 | int pp = GetVEXpp(opPrefix); | 1426 | int pp = GetVEXpp(opPrefix); |
| @@ -1445,7 +1445,7 @@ void XEmitter::WriteVEXOp(int size, u8 opPrefix, u16 op, X64Reg regOp1, X64Reg r | |||
| 1445 | void XEmitter::WriteBMI1Op(int size, u8 opPrefix, u16 op, X64Reg regOp1, X64Reg regOp2, OpArg arg, int extrabytes) | 1445 | void XEmitter::WriteBMI1Op(int size, u8 opPrefix, u16 op, X64Reg regOp1, X64Reg regOp2, OpArg arg, int extrabytes) |
| 1446 | { | 1446 | { |
| 1447 | CheckFlags(); | 1447 | CheckFlags(); |
| 1448 | if (!Common::cpu_info.bBMI1) | 1448 | if (!Common::GetCPUCaps().bmi1) |
| 1449 | ASSERT_MSG(0, "Trying to use BMI1 on a system that doesn't support it. Bad programmer."); | 1449 | ASSERT_MSG(0, "Trying to use BMI1 on a system that doesn't support it. Bad programmer."); |
| 1450 | WriteVEXOp(size, opPrefix, op, regOp1, regOp2, arg, extrabytes); | 1450 | WriteVEXOp(size, opPrefix, op, regOp1, regOp2, arg, extrabytes); |
| 1451 | } | 1451 | } |
| @@ -1453,7 +1453,7 @@ void XEmitter::WriteBMI1Op(int size, u8 opPrefix, u16 op, X64Reg regOp1, X64Reg | |||
| 1453 | void XEmitter::WriteBMI2Op(int size, u8 opPrefix, u16 op, X64Reg regOp1, X64Reg regOp2, OpArg arg, int extrabytes) | 1453 | void XEmitter::WriteBMI2Op(int size, u8 opPrefix, u16 op, X64Reg regOp1, X64Reg regOp2, OpArg arg, int extrabytes) |
| 1454 | { | 1454 | { |
| 1455 | CheckFlags(); | 1455 | CheckFlags(); |
| 1456 | if (!Common::cpu_info.bBMI2) | 1456 | if (!Common::GetCPUCaps().bmi2) |
| 1457 | ASSERT_MSG(0, "Trying to use BMI2 on a system that doesn't support it. Bad programmer."); | 1457 | ASSERT_MSG(0, "Trying to use BMI2 on a system that doesn't support it. Bad programmer."); |
| 1458 | WriteVEXOp(size, opPrefix, op, regOp1, regOp2, arg, extrabytes); | 1458 | WriteVEXOp(size, opPrefix, op, regOp1, regOp2, arg, extrabytes); |
| 1459 | } | 1459 | } |
| @@ -1647,7 +1647,7 @@ void XEmitter::UNPCKHPD(X64Reg dest, OpArg arg) {WriteSSEOp(0x66, 0x15, dest, ar | |||
| 1647 | 1647 | ||
| 1648 | void XEmitter::MOVDDUP(X64Reg regOp, OpArg arg) | 1648 | void XEmitter::MOVDDUP(X64Reg regOp, OpArg arg) |
| 1649 | { | 1649 | { |
| 1650 | if (Common::cpu_info.bSSE3) | 1650 | if (Common::GetCPUCaps().sse3) |
| 1651 | { | 1651 | { |
| 1652 | WriteSSEOp(0xF2, 0x12, regOp, arg); //SSE3 movddup | 1652 | WriteSSEOp(0xF2, 0x12, regOp, arg); //SSE3 movddup |
| 1653 | } | 1653 | } |
| @@ -1737,14 +1737,14 @@ void XEmitter::PSRAD(X64Reg reg, int shift) | |||
| 1737 | 1737 | ||
| 1738 | void XEmitter::WriteSSSE3Op(u8 opPrefix, u16 op, X64Reg regOp, OpArg arg, int extrabytes) | 1738 | void XEmitter::WriteSSSE3Op(u8 opPrefix, u16 op, X64Reg regOp, OpArg arg, int extrabytes) |
| 1739 | { | 1739 | { |
| 1740 | if (!Common::cpu_info.bSSSE3) | 1740 | if (!Common::GetCPUCaps().ssse3) |
| 1741 | ASSERT_MSG(0, "Trying to use SSSE3 on a system that doesn't support it. Bad programmer."); | 1741 | ASSERT_MSG(0, "Trying to use SSSE3 on a system that doesn't support it. Bad programmer."); |
| 1742 | WriteSSEOp(opPrefix, op, regOp, arg, extrabytes); | 1742 | WriteSSEOp(opPrefix, op, regOp, arg, extrabytes); |
| 1743 | } | 1743 | } |
| 1744 | 1744 | ||
| 1745 | void XEmitter::WriteSSE41Op(u8 opPrefix, u16 op, X64Reg regOp, OpArg arg, int extrabytes) | 1745 | void XEmitter::WriteSSE41Op(u8 opPrefix, u16 op, X64Reg regOp, OpArg arg, int extrabytes) |
| 1746 | { | 1746 | { |
| 1747 | if (!Common::cpu_info.bSSE4_1) | 1747 | if (!Common::GetCPUCaps().sse4_1) |
| 1748 | ASSERT_MSG(0, "Trying to use SSE4.1 on a system that doesn't support it. Bad programmer."); | 1748 | ASSERT_MSG(0, "Trying to use SSE4.1 on a system that doesn't support it. Bad programmer."); |
| 1749 | WriteSSEOp(opPrefix, op, regOp, arg, extrabytes); | 1749 | WriteSSEOp(opPrefix, op, regOp, arg, extrabytes); |
| 1750 | } | 1750 | } |