summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2020-12-30 20:24:41 -0500
committerLioncash <mathew1800@gmail.com>2020-12-30 20:49:20 -0500
commitfab2053439ace33e8a7380ac04ef48c22d3bc421 (patch)
tree73b9c8816d5992f6aba8b137bc3a2b41e634d05c /Source/Core
parentd87ec716158ac270cd1847d40ab0c28866562638 (diff)
Arm64Emitter: Make RoundingMode enum an enum class
Prevents namespace pollution and makes the enum members strongly typed.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Common/Arm64Emitter.cpp24
-rw-r--r--Source/Core/Common/Arm64Emitter.h12
-rw-r--r--Source/Core/Core/PowerPC/JitArm64/JitArm64_FloatingPoint.cpp4
-rw-r--r--Source/Core/Core/PowerPC/JitArm64/JitArm64_SystemRegisters.cpp2
4 files changed, 21 insertions, 21 deletions
diff --git a/Source/Core/Common/Arm64Emitter.cpp b/Source/Core/Common/Arm64Emitter.cpp
index 6246ae7b71..ce0820bff8 100644
--- a/Source/Core/Common/Arm64Emitter.cpp
+++ b/Source/Core/Common/Arm64Emitter.cpp
@@ -2327,28 +2327,28 @@ void ARM64FloatEmitter::EmitConvertScalarToInt(ARM64Reg Rd, ARM64Reg Rn, Roundin
if (IsGPR(Rd))
{
// Use the encoding that transfers the result to a GPR.
- bool sf = Is64Bit(Rd);
- int type = IsDouble(Rn) ? 1 : 0;
+ const bool sf = Is64Bit(Rd);
+ const int type = IsDouble(Rn) ? 1 : 0;
Rd = DecodeReg(Rd);
Rn = DecodeReg(Rn);
int opcode = (sign ? 1 : 0);
int rmode = 0;
switch (round)
{
- case ROUND_A:
+ case RoundingMode::A:
rmode = 0;
opcode |= 4;
break;
- case ROUND_P:
+ case RoundingMode::P:
rmode = 1;
break;
- case ROUND_M:
+ case RoundingMode::M:
rmode = 2;
break;
- case ROUND_Z:
+ case RoundingMode::Z:
rmode = 3;
break;
- case ROUND_N:
+ case RoundingMode::N:
rmode = 0;
break;
}
@@ -2363,20 +2363,20 @@ void ARM64FloatEmitter::EmitConvertScalarToInt(ARM64Reg Rd, ARM64Reg Rn, Roundin
int opcode = 0;
switch (round)
{
- case ROUND_A:
+ case RoundingMode::A:
opcode = 0x1C;
break;
- case ROUND_N:
+ case RoundingMode::N:
opcode = 0x1A;
break;
- case ROUND_M:
+ case RoundingMode::M:
opcode = 0x1B;
break;
- case ROUND_P:
+ case RoundingMode::P:
opcode = 0x1A;
sz |= 2;
break;
- case ROUND_Z:
+ case RoundingMode::Z:
opcode = 0x1B;
sz |= 2;
break;
diff --git a/Source/Core/Common/Arm64Emitter.h b/Source/Core/Common/Arm64Emitter.h
index 5fae0dd3d0..21f371ada3 100644
--- a/Source/Core/Common/Arm64Emitter.h
+++ b/Source/Core/Common/Arm64Emitter.h
@@ -310,13 +310,13 @@ enum ShiftAmount
SHIFT_48 = 3,
};
-enum RoundingMode
+enum class RoundingMode
{
- ROUND_A, // round to nearest, ties to away
- ROUND_M, // round towards -inf
- ROUND_N, // round to nearest, ties to even
- ROUND_P, // round towards +inf
- ROUND_Z, // round towards zero
+ A, // round to nearest, ties to away
+ M, // round towards -inf
+ N, // round to nearest, ties to even
+ P, // round towards +inf
+ Z, // round towards zero
};
struct FixupBranch
diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_FloatingPoint.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_FloatingPoint.cpp
index 9d75268042..1b3c7d9d55 100644
--- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_FloatingPoint.cpp
+++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_FloatingPoint.cpp
@@ -335,13 +335,13 @@ void JitArm64::fctiwzx(UGeckoInstruction inst)
if (single)
{
- m_float_emit.FCVTS(EncodeRegToSingle(VD), EncodeRegToSingle(VB), ROUND_Z);
+ m_float_emit.FCVTS(EncodeRegToSingle(VD), EncodeRegToSingle(VB), RoundingMode::Z);
}
else
{
ARM64Reg V1 = gpr.GetReg();
- m_float_emit.FCVTS(V1, EncodeRegToDouble(VB), ROUND_Z);
+ m_float_emit.FCVTS(V1, EncodeRegToDouble(VB), RoundingMode::Z);
m_float_emit.FMOV(EncodeRegToSingle(VD), V1);
gpr.Unlock(V1);
diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_SystemRegisters.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_SystemRegisters.cpp
index d5889fd62c..9e921d181b 100644
--- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_SystemRegisters.cpp
+++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_SystemRegisters.cpp
@@ -261,7 +261,7 @@ void JitArm64::mfspr(UGeckoInstruction inst)
m_float_emit.LDR(32, INDEX_UNSIGNED, SD, Xg,
offsetof(CoreTiming::Globals, last_OC_factor_inverted));
m_float_emit.FMUL(SC, SC, SD);
- m_float_emit.FCVTS(Xresult, SC, ROUND_Z);
+ m_float_emit.FCVTS(Xresult, SC, RoundingMode::Z);
LDP(INDEX_SIGNED, XA, XB, Xg, offsetof(CoreTiming::Globals, global_timer));
SXTW(XB, WB);