| 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);
|
|
|
|
|