1
0
Fork 0
forked from suyu/suyu

xbyak_abi: Avoid implicit sign conversions

This commit is contained in:
Lioncash 2020-12-05 00:40:42 -05:00
parent 1c8de85045
commit b126267442

View file

@ -11,12 +11,12 @@
namespace Common::X64 { namespace Common::X64 {
constexpr std::size_t RegToIndex(const Xbyak::Reg& reg) { constexpr size_t RegToIndex(const Xbyak::Reg& reg) {
using Kind = Xbyak::Reg::Kind; using Kind = Xbyak::Reg::Kind;
ASSERT_MSG((reg.getKind() & (Kind::REG | Kind::XMM)) != 0, ASSERT_MSG((reg.getKind() & (Kind::REG | Kind::XMM)) != 0,
"RegSet only support GPRs and XMM registers."); "RegSet only support GPRs and XMM registers.");
ASSERT_MSG(reg.getIdx() < 16, "RegSet only supports XXM0-15."); ASSERT_MSG(reg.getIdx() < 16, "RegSet only supports XXM0-15.");
return reg.getIdx() + (reg.getKind() == Kind::REG ? 0 : 16); return static_cast<size_t>(reg.getIdx()) + (reg.getKind() == Kind::REG ? 0 : 16);
} }
constexpr Xbyak::Reg64 IndexToReg64(std::size_t reg_index) { constexpr Xbyak::Reg64 IndexToReg64(std::size_t reg_index) {