Remove std::rotr usage for now

It seems to be missing on some std implementations.
This commit is contained in:
Nekotekina 2020-05-14 21:39:33 +03:00
parent c22d778143
commit 7824419bbf
2 changed files with 5 additions and 3 deletions

View File

@ -63,12 +63,13 @@ union ppu_opcode_t
constexpr u64 ppu_rotate_mask(u32 mb, u32 me)
{
return std::rotr<u64>(~0ull << (~(me - mb) & 63), mb & 63);
const u64 mask = ~0ull << (~(me - mb) & 63);
return (mask >> (mb & 63)) | (mask << ((64 - mb) & 63));
}
constexpr u32 ppu_decode(u32 inst)
{
return std::rotr<u32>(inst, 26) & 0x1ffff; // Rotate + mask
return ((inst >> 26) | (inst << 6)) & 0x1ffff; // Rotate + mask
}
// PPU decoder object. D provides functions. T is function pointer type returned.

View File

@ -14,6 +14,7 @@
#include "Overlays/overlay_perf_metrics.h"
#include "Utilities/date_time.h"
#include "Utilities/span.h"
#include "Utilities/asm.h"
#include "Utilities/StrUtil.h"
#include <cereal/archives/binary.hpp>
@ -2443,7 +2444,7 @@ namespace rsx
for (u32 ea = address >> 20, end = ea + (size >> 20); ea < end; ea++)
{
const u32 io = std::rotr<u32>(iomap_table.io[ea], 20);
const u32 io = utils::ror32(iomap_table.io[ea], 20);
if (io + 1)
{