[Platform][Decimal] UInt128::operator/= calls makeUInt128 with wrong argument order
https://bugs.webkit.org/show_bug.cgi?id=88044

Reviewed by Kent Tamura.

Source/WebCore:

This patch fixed wrong argument of makeUInt128 in UInt128::operator/= to get right
result for decimal multiplication.

Test: WebKit/chromium/tests/DecimalTest.cpp: Add new a new test case.

* platform/Decimal.cpp:
(WebCore::DecimalPrivate::UInt128::operator/=):

Source/WebKit/chromium:

* tests/DecimalTest.cpp:
(TEST_F): Add a new test for multiplication.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@119205 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/platform/Decimal.cpp b/Source/WebCore/platform/Decimal.cpp
index d2dd832..5969e3b 100644
--- a/Source/WebCore/platform/Decimal.cpp
+++ b/Source/WebCore/platform/Decimal.cpp
@@ -168,7 +168,7 @@
     uint32_t quotient[4];
     uint32_t remainder = 0;
     for (int i = 3; i >= 0; --i) {
-        const uint64_t work = makeUInt64(remainder, dividend[i]);
+        const uint64_t work = makeUInt64(dividend[i], remainder);
         remainder = static_cast<uint32_t>(work % divisor);
         quotient[i] = static_cast<uint32_t>(work / divisor);
     }