mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-14 18:58:36 +12:00
Remove std::rotr usage for now
It seems to be missing on some std implementations.
This commit is contained in:
parent
c22d778143
commit
7824419bbf
2 changed files with 5 additions and 3 deletions
|
@ -63,12 +63,13 @@ union ppu_opcode_t
|
||||||
|
|
||||||
constexpr u64 ppu_rotate_mask(u32 mb, u32 me)
|
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)
|
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.
|
// PPU decoder object. D provides functions. T is function pointer type returned.
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
#include "Overlays/overlay_perf_metrics.h"
|
#include "Overlays/overlay_perf_metrics.h"
|
||||||
#include "Utilities/date_time.h"
|
#include "Utilities/date_time.h"
|
||||||
#include "Utilities/span.h"
|
#include "Utilities/span.h"
|
||||||
|
#include "Utilities/asm.h"
|
||||||
#include "Utilities/StrUtil.h"
|
#include "Utilities/StrUtil.h"
|
||||||
|
|
||||||
#include <cereal/archives/binary.hpp>
|
#include <cereal/archives/binary.hpp>
|
||||||
|
@ -2443,7 +2444,7 @@ namespace rsx
|
||||||
|
|
||||||
for (u32 ea = address >> 20, end = ea + (size >> 20); ea < end; ea++)
|
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)
|
if (io + 1)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue