mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2026-01-15 08:23:17 -03:00
JitArm64_RegCache: Fix is always true warnings
This commit is contained in:
@@ -182,12 +182,9 @@ Arm64GPRCache::GuestRegInfo Arm64GPRCache::GetGuestCR(size_t preg)
|
||||
|
||||
Arm64GPRCache::GuestRegInfo Arm64GPRCache::GetGuestByIndex(size_t index)
|
||||
{
|
||||
// We do not need to test for `index >= GUEST_GPR_OFFSET` because
|
||||
// GUEST_GPR_OFFSET is always 0. This otherwise raises a warning.
|
||||
static_assert(GUEST_GPR_OFFSET == 0);
|
||||
if (index < GUEST_GPR_OFFSET + GUEST_GPR_COUNT)
|
||||
if (IsIndexGPR(index))
|
||||
return GetGuestGPR(index - GUEST_GPR_OFFSET);
|
||||
if (index >= GUEST_CR_OFFSET && index < GUEST_CR_OFFSET + GUEST_CR_COUNT)
|
||||
if (IsIndexCR(index))
|
||||
return GetGuestCR(index - GUEST_CR_OFFSET);
|
||||
ASSERT_MSG(DYNA_REC, false, "Invalid index for guest register");
|
||||
return GetGuestGPR(0);
|
||||
@@ -198,7 +195,7 @@ void Arm64GPRCache::FlushRegister(size_t index, FlushMode mode, ARM64Reg tmp_reg
|
||||
GuestRegInfo guest_reg = GetGuestByIndex(index);
|
||||
OpArg& reg = guest_reg.reg;
|
||||
size_t bitsize = guest_reg.bitsize;
|
||||
const bool is_gpr = index >= GUEST_GPR_OFFSET && index < GUEST_GPR_OFFSET + GUEST_GPR_COUNT;
|
||||
const bool is_gpr = IsIndexGPR(index);
|
||||
|
||||
if (reg.IsInHostRegister())
|
||||
{
|
||||
@@ -349,7 +346,7 @@ ARM64Reg Arm64GPRCache::BindForRead(size_t index)
|
||||
GuestRegInfo guest_reg = GetGuestByIndex(index);
|
||||
OpArg& reg = guest_reg.reg;
|
||||
size_t bitsize = guest_reg.bitsize;
|
||||
const bool is_gpr = index >= GUEST_GPR_OFFSET && index < GUEST_GPR_OFFSET + GUEST_GPR_COUNT;
|
||||
const bool is_gpr = IsIndexGPR(index);
|
||||
|
||||
IncrementAllUsed();
|
||||
reg.ResetLastUsed();
|
||||
@@ -392,7 +389,7 @@ void Arm64GPRCache::BindForWrite(size_t index, bool will_read, bool will_write)
|
||||
GuestRegInfo guest_reg = GetGuestByIndex(index);
|
||||
OpArg& reg = guest_reg.reg;
|
||||
const size_t bitsize = guest_reg.bitsize;
|
||||
const bool is_gpr = index >= GUEST_GPR_OFFSET && index < GUEST_GPR_OFFSET + GUEST_GPR_COUNT;
|
||||
const bool is_gpr = IsIndexGPR(index);
|
||||
|
||||
reg.ResetLastUsed();
|
||||
|
||||
|
||||
@@ -419,6 +419,19 @@ private:
|
||||
GuestRegInfo GetGuestCR(size_t preg);
|
||||
GuestRegInfo GetGuestByIndex(size_t index);
|
||||
|
||||
constexpr bool IsIndexGPR(size_t index)
|
||||
{
|
||||
// We do not need to test for `index >= GUEST_GPR_OFFSET` because
|
||||
// GUEST_GPR_OFFSET is always 0. This otherwise raises a warning.
|
||||
static_assert(GUEST_GPR_OFFSET == 0);
|
||||
return index < GUEST_GPR_OFFSET + GUEST_GPR_COUNT;
|
||||
}
|
||||
|
||||
constexpr bool IsIndexCR(size_t index)
|
||||
{
|
||||
return index >= GUEST_CR_OFFSET && index < GUEST_CR_OFFSET + GUEST_CR_COUNT;
|
||||
}
|
||||
|
||||
Arm64Gen::ARM64Reg BindForRead(size_t index);
|
||||
void SetImmediateInternal(size_t index, u32 imm, bool dirty);
|
||||
void BindForWrite(size_t index, bool will_read, bool will_write = true);
|
||||
|
||||
Reference in New Issue
Block a user