summaryrefslogtreecommitdiff
path: root/Source/UnitTests/Core/PowerPC/DivUtilsTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/UnitTests/Core/PowerPC/DivUtilsTest.cpp')
-rw-r--r--Source/UnitTests/Core/PowerPC/DivUtilsTest.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/Source/UnitTests/Core/PowerPC/DivUtilsTest.cpp b/Source/UnitTests/Core/PowerPC/DivUtilsTest.cpp
new file mode 100644
index 0000000000..7802fc8496
--- /dev/null
+++ b/Source/UnitTests/Core/PowerPC/DivUtilsTest.cpp
@@ -0,0 +1,33 @@
+// Copyright 2021 Dolphin Emulator Project
+// Licensed under GPLv2+
+// Refer to the license.txt file included.
+
+#include <gtest/gtest.h>
+
+#include "Core/PowerPC/JitCommon/DivUtils.h"
+
+using namespace JitCommon;
+
+TEST(DivUtils, Signed)
+{
+ Magic m3 = SignedDivisionConstants(3);
+ Magic m5 = SignedDivisionConstants(5);
+ Magic m7 = SignedDivisionConstants(7);
+ Magic minus3 = SignedDivisionConstants(-3);
+ Magic minus5 = SignedDivisionConstants(-5);
+ Magic minus7 = SignedDivisionConstants(-7);
+
+ EXPECT_EQ(0x55555556, m3.multiplier);
+ EXPECT_EQ(0, m3.shift);
+ EXPECT_EQ(0x66666667, m5.multiplier);
+ EXPECT_EQ(1, m5.shift);
+ EXPECT_EQ(-0x6DB6DB6D, m7.multiplier);
+ EXPECT_EQ(2, m7.shift);
+
+ EXPECT_EQ(-0x55555556, minus3.multiplier);
+ EXPECT_EQ(0, minus3.shift);
+ EXPECT_EQ(-0x66666667, minus5.multiplier);
+ EXPECT_EQ(1, minus5.shift);
+ EXPECT_EQ(0x6DB6DB6D, minus7.multiplier);
+ EXPECT_EQ(2, minus7.shift);
+}