diff --git a/Source/3rdParty/mupen64plus-rsp-parallel/.gitrepo b/Source/3rdParty/mupen64plus-rsp-parallel/.gitrepo index 1d075419..23d6baf2 100644 --- a/Source/3rdParty/mupen64plus-rsp-parallel/.gitrepo +++ b/Source/3rdParty/mupen64plus-rsp-parallel/.gitrepo @@ -6,7 +6,7 @@ [subrepo] remote = git@github.com:/Rosalie241/parallel-rsp.git branch = RMG - commit = caafb9e1197368e097e2f8e08e9f9ebec312f5eb - parent = 6eab08cce5202bae87a7b9ba33dd9a95e2ee0bac + commit = c4648a228743ca3248d54d0d61c886cfeeeac8ac + parent = 85159348a12f71e5d19f46b1027b75c36e38bf21 method = merge cmdver = 0.4.6 diff --git a/Source/3rdParty/mupen64plus-rsp-parallel/CMakeLists.txt b/Source/3rdParty/mupen64plus-rsp-parallel/CMakeLists.txt index cbc12478..c634c457 100644 --- a/Source/3rdParty/mupen64plus-rsp-parallel/CMakeLists.txt +++ b/Source/3rdParty/mupen64plus-rsp-parallel/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.10) set(CMAKE_CXX_STANDARD 14) set(CMAKE_C_STANDARD 99) project(parallel-rsp LANGUAGES CXX C) diff --git a/Source/3rdParty/mupen64plus-rsp-parallel/jit_allocator.cpp b/Source/3rdParty/mupen64plus-rsp-parallel/jit_allocator.cpp index 4207fabf..5100e60d 100644 --- a/Source/3rdParty/mupen64plus-rsp-parallel/jit_allocator.cpp +++ b/Source/3rdParty/mupen64plus-rsp-parallel/jit_allocator.cpp @@ -14,7 +14,7 @@ namespace RSP { namespace JIT { -#if TARGET_OS_TV // tvOS is 64bit but does not allow an infinite amount of VA space +#ifdef IOS // iOS/tvOS is 64bit but does not allow an infinite amount of VA space static constexpr bool huge_va = false; #else static constexpr bool huge_va = std::numeric_limits::max() > 0x100000000ull; diff --git a/Source/3rdParty/mupen64plus-rsp-parallel/rsp/ls.cpp b/Source/3rdParty/mupen64plus-rsp-parallel/rsp/ls.cpp index 0544dc3f..b03f8a22 100644 --- a/Source/3rdParty/mupen64plus-rsp-parallel/rsp/ls.cpp +++ b/Source/3rdParty/mupen64plus-rsp-parallel/rsp/ls.cpp @@ -148,7 +148,7 @@ extern "C" auto *reg = rsp->cp2.regs[rt].e; for (unsigned i = 0; i < 8; i++) - reg[i] = READ_MEM_U8(rsp->dmem, (addr + (i + index & 0xf)) & 0xfff) << 8; + reg[i] = READ_MEM_U8(rsp->dmem, (addr + ((i + index) & 0xf)) & 0xfff) << 8; } void RSP_SPV(RSP::CPUState *rsp, unsigned rt, unsigned e, int offset, unsigned base) @@ -175,7 +175,7 @@ extern "C" auto *reg = rsp->cp2.regs[rt].e; for (unsigned i = 0; i < 8; i++) - reg[i] = READ_MEM_U8(rsp->dmem, (addr + (i + index & 0xf)) & 0xfff) << 7; + reg[i] = READ_MEM_U8(rsp->dmem, (addr + ((i + index) & 0xf)) & 0xfff) << 7; } void RSP_SUV(RSP::CPUState *rsp, unsigned rt, unsigned e, int offset, unsigned base) @@ -201,7 +201,7 @@ extern "C" auto *reg = rsp->cp2.regs[rt].e; for (unsigned i = 0; i < 8; i++) - reg[i] = (uint16_t)READ_MEM_U8(rsp->dmem, (addr + (index + i * 2 & 0xf)) & 0xfff) << 7; + reg[i] = (uint16_t)READ_MEM_U8(rsp->dmem, (addr + ((index + i * 2) & 0xf)) & 0xfff) << 7; } void RSP_SHV(RSP::CPUState *rsp, unsigned rt, unsigned e, int offset, unsigned base) @@ -215,8 +215,8 @@ extern "C" for (unsigned i = 0; i < 8; i++) { const unsigned b = e + (i << 1); - const uint8_t byte = byteFromHalfWords(reg, b & 0xf) << 1 | byteFromHalfWords(reg, b + 1 & 0xf) >> 7; - WRITE_MEM_U8(rsp->dmem, addr + (index + i * 2 & 0xf), byte); + const uint8_t byte = byteFromHalfWords(reg, b & 0xf) << 1 | byteFromHalfWords(reg, (b + 1) & 0xf) >> 7; + WRITE_MEM_U8(rsp->dmem, addr + ((index + i * 2) & 0xf), byte); } } @@ -232,8 +232,8 @@ extern "C" for (unsigned i = 0; i < 4; i++) { - temp[i] = (uint16_t)READ_MEM_U8(rsp->dmem, (addr + (index + i * 4 & 0xf)) & 0xfff) << 7; - temp[i+4] = (uint16_t)READ_MEM_U8(rsp->dmem, (addr + (index + i * 4 + 8 & 0xf)) & 0xfff) << 7; + temp[i] = (uint16_t)READ_MEM_U8(rsp->dmem, (addr + ((index + i * 4) & 0xf)) & 0xfff) << 7; + temp[i+4] = (uint16_t)READ_MEM_U8(rsp->dmem, (addr + ((index + i * 4 + 8) & 0xf)) & 0xfff) << 7; } for (unsigned i = e; i < end; i++) @@ -243,8 +243,8 @@ extern "C" #define RSP_SFV_CASE(a,b,c,d) \ WRITE_MEM_U8(rsp->dmem, addr + base, int16_t(reg[a]) >> 7); \ WRITE_MEM_U8(rsp->dmem, addr + 4 + base, int16_t(reg[b]) >> 7); \ - WRITE_MEM_U8(rsp->dmem, addr + (8 + base & 0xf), int16_t(reg[c]) >> 7); \ - WRITE_MEM_U8(rsp->dmem, addr + (12 + base & 0xf), int16_t(reg[d]) >> 7); + WRITE_MEM_U8(rsp->dmem, addr + ((8 + base) & 0xf), int16_t(reg[c]) >> 7); \ + WRITE_MEM_U8(rsp->dmem, addr + ((12 + base) & 0xf), int16_t(reg[d]) >> 7); void RSP_SFV(RSP::CPUState *rsp, unsigned rt, unsigned e, int offset, unsigned base) { @@ -281,8 +281,8 @@ extern "C" default: WRITE_MEM_U8(rsp->dmem, addr + base, 0); WRITE_MEM_U8(rsp->dmem, addr + 4 + base, 0); - WRITE_MEM_U8(rsp->dmem, addr + (8 + base & 0xf), 0); - WRITE_MEM_U8(rsp->dmem, addr + (12 + base & 0xf), 0); + WRITE_MEM_U8(rsp->dmem, addr + ((8 + base) & 0xf), 0); + WRITE_MEM_U8(rsp->dmem, addr + ((12 + base) & 0xf), 0); break; } } @@ -351,7 +351,7 @@ extern "C" addr &= ~0xf; for (unsigned i = e; i < end; i++) - WRITE_MEM_U8(rsp->dmem, addr++, byteFromHalfWords(rsp->cp2.regs[rt].e, i + base & 0xf)); + WRITE_MEM_U8(rsp->dmem, addr++, byteFromHalfWords(rsp->cp2.regs[rt].e, (i + base) & 0xf)); } void RSP_LTV(RSP::CPUState *rsp, unsigned rt, unsigned e, int offset, unsigned base)