Index: tests/MathTest.cpp |
diff --git a/tests/MathTest.cpp b/tests/MathTest.cpp |
index 3efbbcb9fc0184bc79d05fe3786fc9cc14122f1d..1b8954a361e689848ba10a809c06779ea396a0fe 100644 |
--- a/tests/MathTest.cpp |
+++ b/tests/MathTest.cpp |
@@ -188,6 +188,7 @@ static void test_blend(skiatest::Reporter* reporter) { |
} |
} |
+#if defined(SkLONGLONG) |
static int symmetric_fixmul(int a, int b) { |
int sa = SkExtractSign(a); |
int sb = SkExtractSign(b); |
@@ -195,9 +196,19 @@ static int symmetric_fixmul(int a, int b) { |
a = SkApplySign(a, sa); |
b = SkApplySign(b, sb); |
- int c = (int)(((int64_t)a * b) >> 16); |
+#if 1 |
+ int c = (int)(((SkLONGLONG)a * b) >> 16); |
+ |
return SkApplySign(c, sa ^ sb); |
+#else |
+ SkLONGLONG ab = (SkLONGLONG)a * b; |
+ if (sa ^ sb) { |
+ ab = -ab; |
+ } |
+ return ab >> 16; |
+#endif |
} |
+#endif |
static void check_length(skiatest::Reporter* reporter, |
const SkPoint& p, SkScalar targetLen) { |
@@ -481,11 +492,12 @@ DEF_TEST(Math, reporter) { |
unittest_fastfloat(reporter); |
unittest_isfinite(reporter); |
+#ifdef SkLONGLONG |
for (i = 0; i < 10000; i++) { |
SkFixed numer = rand.nextS(); |
SkFixed denom = rand.nextS(); |
SkFixed result = SkFixedDiv(numer, denom); |
- int64_t check = ((int64_t)numer << 16) / denom; |
+ SkLONGLONG check = ((SkLONGLONG)numer << 16) / denom; |
(void)SkCLZ(numer); |
(void)SkCLZ(denom); |
@@ -510,6 +522,7 @@ DEF_TEST(Math, reporter) { |
r2 = SkFixedSquare(numer); |
REPORTER_ASSERT(reporter, result == r2); |
} |
+#endif |
test_blend(reporter); |