small collection of fixes

This commit is contained in:
p01arst0rm 2021-04-14 20:44:37 +01:00 committed by Ivan
parent a16cc3ac8a
commit c9d2aed286
3 changed files with 12 additions and 25 deletions

View File

@ -450,7 +450,7 @@ void decode_x64_reg_op(const u8* code, x64_op_t& out_op, x64_reg_t& out_reg, usz
} }
case 0x7f: case 0x7f:
{ {
if ((repe && !oso) || (!repe && oso)) // MOVDQU/MOVDQA xmm/m, xmm if (repe != oso) // MOVDQU/MOVDQA xmm/m, xmm
{ {
out_op = X64OP_STORE; out_op = X64OP_STORE;
out_reg = get_modRM_reg_xmm(code, rex); out_reg = get_modRM_reg_xmm(code, rex);

View File

@ -255,6 +255,8 @@ struct RSXFragmentProgram
data_storage_helper& operator=(const data_storage_helper& other) data_storage_helper& operator=(const data_storage_helper& other)
{ {
if (this == &other) return *this;
if (other.data_ptr == other.local_storage.data()) if (other.data_ptr == other.local_storage.data())
{ {
local_storage = other.local_storage; local_storage = other.local_storage;
@ -271,12 +273,11 @@ struct RSXFragmentProgram
data_storage_helper& operator=(data_storage_helper&& other) data_storage_helper& operator=(data_storage_helper&& other)
{ {
if (this != &other) if (this == &other) return *this;
{
data_ptr = other.data_ptr; data_ptr = other.data_ptr;
local_storage = std::move(other.local_storage); local_storage = std::move(other.local_storage);
other.data_ptr = nullptr; other.data_ptr = nullptr;
}
return *this; return *this;
} }

View File

@ -1053,15 +1053,8 @@ namespace stx
ensure(is_same_ptr_test<T, U>(cmp.m_ptr)); ensure(is_same_ptr_test<T, U>(cmp.m_ptr));
shared_type old = cmp; shared_type old = cmp;
static_cast<void>(compare_exchange(old, std::move(exch)));
if (compare_exchange(old, std::move(exch))) return old;
{
return old;
}
else
{
return old;
}
} }
// More lightweight than compare_exchange // More lightweight than compare_exchange
@ -1114,15 +1107,8 @@ namespace stx
ensure(is_same_ptr_test<T, U>(cmp.m_ptr)); ensure(is_same_ptr_test<T, U>(cmp.m_ptr));
shared_type old = cmp; shared_type old = cmp;
static_cast<void>(compare_exchange(old, std::move(exch)));
if (compare_exchange(old, std::move(exch))) return old;
{
return old;
}
else
{
return old;
}
} }
// Supplementary // Supplementary