Title: [104517] branches/safari-534.54-branch

Diff

Modified: branches/safari-534.54-branch/LayoutTests/ChangeLog (104516 => 104517)


--- branches/safari-534.54-branch/LayoutTests/ChangeLog	2012-01-10 01:05:10 UTC (rev 104516)
+++ branches/safari-534.54-branch/LayoutTests/ChangeLog	2012-01-10 01:07:07 UTC (rev 104517)
@@ -1,5 +1,23 @@
 2011-1-9  Lucas Forschler  <[email protected]>
 
+    Merge 102509
+
+    2011-12-09  Filip Pizlo  <[email protected]>
+
+            DFG ArithMul power-of-two case does not check for overflow
+            https://bugs.webkit.org/show_bug.cgi?id=74230
+
+            Reviewed by Gavin Barraclough.
+
+            * fast/js/dfg-multiply-expected.txt: Added.
+            * fast/js/dfg-multiply.html: Added.
+            * fast/js/script-tests/dfg-multiply.js: Added.
+            (doMultiplyConstant2):
+            (doMultiplyConstant3):
+            (doMultiplyConstant4):
+
+2011-1-9  Lucas Forschler  <[email protected]>
+
     Merge 102263
 
     2011-12-07  Ken Buchanan <[email protected]>

Copied: branches/safari-534.54-branch/LayoutTests/fast/js/dfg-multiply-expected.txt (from rev 102509, trunk/LayoutTests/fast/js/dfg-multiply-expected.txt) (0 => 104517)


--- branches/safari-534.54-branch/LayoutTests/fast/js/dfg-multiply-expected.txt	                        (rev 0)
+++ branches/safari-534.54-branch/LayoutTests/fast/js/dfg-multiply-expected.txt	2012-01-10 01:07:07 UTC (rev 104517)
@@ -0,0 +1,1029 @@
+This tests that the DFG can multiply numbers correctly.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1) is 2
+PASS doMultiplyConstant2(2) is 4
+PASS doMultiplyConstant2(4) is 8
+PASS doMultiplyConstant3(1) is 3
+PASS doMultiplyConstant3(2) is 6
+PASS doMultiplyConstant3(4) is 12
+PASS doMultiplyConstant4(1) is 4
+PASS doMultiplyConstant4(2) is 8
+PASS doMultiplyConstant4(4) is 16
+PASS doMultiplyConstant2(1073741824) is 2147483648
+PASS doMultiplyConstant2(2147483648) is 4294967296
+PASS doMultiplyConstant3(1073741824) is 3221225472
+PASS doMultiplyConstant3(2147483648) is 6442450944
+PASS doMultiplyConstant4(1073741824) is 4294967296
+PASS doMultiplyConstant4(2147483648) is 8589934592
+PASS doMultiplyConstant2(-1073741824) is -2147483648
+PASS doMultiplyConstant2(-2147483648) is -4294967296
+PASS doMultiplyConstant3(-1073741824) is -3221225472
+PASS doMultiplyConstant3(-2147483648) is -6442450944
+PASS doMultiplyConstant4(-1073741824) is -4294967296
+PASS doMultiplyConstant4(-2147483648) is -8589934592
+PASS doMultiplyConstant2(1073741824) is 2147483648
+PASS doMultiplyConstant2(2147483648) is 4294967296
+PASS doMultiplyConstant3(1073741824) is 3221225472
+PASS doMultiplyConstant3(2147483648) is 6442450944
+PASS doMultiplyConstant4(1073741824) is 4294967296
+PASS doMultiplyConstant4(2147483648) is 8589934592
+PASS doMultiplyConstant2(-1073741824) is -2147483648
+PASS doMultiplyConstant2(-2147483648) is -4294967296
+PASS doMultiplyConstant3(-1073741824) is -3221225472
+PASS doMultiplyConstant3(-2147483648) is -6442450944
+PASS doMultiplyConstant4(-1073741824) is -4294967296
+PASS doMultiplyConstant4(-2147483648) is -8589934592
+PASS doMultiplyConstant2(1073741824) is 2147483648
+PASS doMultiplyConstant2(2147483648) is 4294967296
+PASS doMultiplyConstant3(1073741824) is 3221225472
+PASS doMultiplyConstant3(2147483648) is 6442450944
+PASS doMultiplyConstant4(1073741824) is 4294967296
+PASS doMultiplyConstant4(2147483648) is 8589934592
+PASS doMultiplyConstant2(-1073741824) is -2147483648
+PASS doMultiplyConstant2(-2147483648) is -4294967296
+PASS doMultiplyConstant3(-1073741824) is -3221225472
+PASS doMultiplyConstant3(-2147483648) is -6442450944
+PASS doMultiplyConstant4(-1073741824) is -4294967296
+PASS doMultiplyConstant4(-2147483648) is -8589934592
+PASS doMultiplyConstant2(1073741824) is 2147483648
+PASS doMultiplyConstant2(2147483648) is 4294967296
+PASS doMultiplyConstant3(1073741824) is 3221225472
+PASS doMultiplyConstant3(2147483648) is 6442450944
+PASS doMultiplyConstant4(1073741824) is 4294967296
+PASS doMultiplyConstant4(2147483648) is 8589934592
+PASS doMultiplyConstant2(-1073741824) is -2147483648
+PASS doMultiplyConstant2(-2147483648) is -4294967296
+PASS doMultiplyConstant3(-1073741824) is -3221225472
+PASS doMultiplyConstant3(-2147483648) is -6442450944
+PASS doMultiplyConstant4(-1073741824) is -4294967296
+PASS doMultiplyConstant4(-2147483648) is -8589934592
+PASS doMultiplyConstant2(1073741824) is 2147483648
+PASS doMultiplyConstant2(2147483648) is 4294967296
+PASS doMultiplyConstant3(1073741824) is 3221225472
+PASS doMultiplyConstant3(2147483648) is 6442450944
+PASS doMultiplyConstant4(1073741824) is 4294967296
+PASS doMultiplyConstant4(2147483648) is 8589934592
+PASS doMultiplyConstant2(-1073741824) is -2147483648
+PASS doMultiplyConstant2(-2147483648) is -4294967296
+PASS doMultiplyConstant3(-1073741824) is -3221225472
+PASS doMultiplyConstant3(-2147483648) is -6442450944
+PASS doMultiplyConstant4(-1073741824) is -4294967296
+PASS doMultiplyConstant4(-2147483648) is -8589934592
+PASS doMultiplyConstant2(1073741824) is 2147483648
+PASS doMultiplyConstant2(2147483648) is 4294967296
+PASS doMultiplyConstant3(1073741824) is 3221225472
+PASS doMultiplyConstant3(2147483648) is 6442450944
+PASS doMultiplyConstant4(1073741824) is 4294967296
+PASS doMultiplyConstant4(2147483648) is 8589934592
+PASS doMultiplyConstant2(-1073741824) is -2147483648
+PASS doMultiplyConstant2(-2147483648) is -4294967296
+PASS doMultiplyConstant3(-1073741824) is -3221225472
+PASS doMultiplyConstant3(-2147483648) is -6442450944
+PASS doMultiplyConstant4(-1073741824) is -4294967296
+PASS doMultiplyConstant4(-2147483648) is -8589934592
+PASS doMultiplyConstant2(1073741824) is 2147483648
+PASS doMultiplyConstant2(2147483648) is 4294967296
+PASS doMultiplyConstant3(1073741824) is 3221225472
+PASS doMultiplyConstant3(2147483648) is 6442450944
+PASS doMultiplyConstant4(1073741824) is 4294967296
+PASS doMultiplyConstant4(2147483648) is 8589934592
+PASS doMultiplyConstant2(-1073741824) is -2147483648
+PASS doMultiplyConstant2(-2147483648) is -4294967296
+PASS doMultiplyConstant3(-1073741824) is -3221225472
+PASS doMultiplyConstant3(-2147483648) is -6442450944
+PASS doMultiplyConstant4(-1073741824) is -4294967296
+PASS doMultiplyConstant4(-2147483648) is -8589934592
+PASS doMultiplyConstant2(1073741824) is 2147483648
+PASS doMultiplyConstant2(2147483648) is 4294967296
+PASS doMultiplyConstant3(1073741824) is 3221225472
+PASS doMultiplyConstant3(2147483648) is 6442450944
+PASS doMultiplyConstant4(1073741824) is 4294967296
+PASS doMultiplyConstant4(2147483648) is 8589934592
+PASS doMultiplyConstant2(-1073741824) is -2147483648
+PASS doMultiplyConstant2(-2147483648) is -4294967296
+PASS doMultiplyConstant3(-1073741824) is -3221225472
+PASS doMultiplyConstant3(-2147483648) is -6442450944
+PASS doMultiplyConstant4(-1073741824) is -4294967296
+PASS doMultiplyConstant4(-2147483648) is -8589934592
+PASS doMultiplyConstant2(1073741824) is 2147483648
+PASS doMultiplyConstant2(2147483648) is 4294967296
+PASS doMultiplyConstant3(1073741824) is 3221225472
+PASS doMultiplyConstant3(2147483648) is 6442450944
+PASS doMultiplyConstant4(1073741824) is 4294967296
+PASS doMultiplyConstant4(2147483648) is 8589934592
+PASS doMultiplyConstant2(-1073741824) is -2147483648
+PASS doMultiplyConstant2(-2147483648) is -4294967296
+PASS doMultiplyConstant3(-1073741824) is -3221225472
+PASS doMultiplyConstant3(-2147483648) is -6442450944
+PASS doMultiplyConstant4(-1073741824) is -4294967296
+PASS doMultiplyConstant4(-2147483648) is -8589934592
+PASS doMultiplyConstant2(1073741824) is 2147483648
+PASS doMultiplyConstant2(2147483648) is 4294967296
+PASS doMultiplyConstant3(1073741824) is 3221225472
+PASS doMultiplyConstant3(2147483648) is 6442450944
+PASS doMultiplyConstant4(1073741824) is 4294967296
+PASS doMultiplyConstant4(2147483648) is 8589934592
+PASS doMultiplyConstant2(-1073741824) is -2147483648
+PASS doMultiplyConstant2(-2147483648) is -4294967296
+PASS doMultiplyConstant3(-1073741824) is -3221225472
+PASS doMultiplyConstant3(-2147483648) is -6442450944
+PASS doMultiplyConstant4(-1073741824) is -4294967296
+PASS doMultiplyConstant4(-2147483648) is -8589934592
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Copied: branches/safari-534.54-branch/LayoutTests/fast/js/dfg-multiply.html (from rev 102509, trunk/LayoutTests/fast/js/dfg-multiply.html) (0 => 104517)


--- branches/safari-534.54-branch/LayoutTests/fast/js/dfg-multiply.html	                        (rev 0)
+++ branches/safari-534.54-branch/LayoutTests/fast/js/dfg-multiply.html	2012-01-10 01:07:07 UTC (rev 104517)
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<body>
+<script src=""
+<script src=""
+</body>
+</html>

Copied: branches/safari-534.54-branch/LayoutTests/fast/js/script-tests/dfg-multiply.js (from rev 102509, trunk/LayoutTests/fast/js/script-tests/dfg-multiply.js) (0 => 104517)


--- branches/safari-534.54-branch/LayoutTests/fast/js/script-tests/dfg-multiply.js	                        (rev 0)
+++ branches/safari-534.54-branch/LayoutTests/fast/js/script-tests/dfg-multiply.js	2012-01-10 01:07:07 UTC (rev 104517)
@@ -0,0 +1,45 @@
+description(
+"This tests that the DFG can multiply numbers correctly."
+);
+
+function doMultiplyConstant2(a) {
+    return a * 2;
+}
+
+function doMultiplyConstant3(a) {
+    return a * 3;
+}
+
+function doMultiplyConstant4(a) {
+    return a * 4;
+}
+
+// Get it to compile.
+for (var i = 0; i < 100; ++i) {
+    shouldBe("doMultiplyConstant2(1)", "2");
+    shouldBe("doMultiplyConstant2(2)", "4");
+    shouldBe("doMultiplyConstant2(4)", "8");
+    shouldBe("doMultiplyConstant3(1)", "3");
+    shouldBe("doMultiplyConstant3(2)", "6");
+    shouldBe("doMultiplyConstant3(4)", "12");
+    shouldBe("doMultiplyConstant4(1)", "4");
+    shouldBe("doMultiplyConstant4(2)", "8");
+    shouldBe("doMultiplyConstant4(4)", "16");
+}
+
+// Now do evil.
+for (var i = 0; i < 10; ++i) {
+    shouldBe("doMultiplyConstant2(1073741824)", "2147483648");
+    shouldBe("doMultiplyConstant2(2147483648)", "4294967296");
+    shouldBe("doMultiplyConstant3(1073741824)", "3221225472");
+    shouldBe("doMultiplyConstant3(2147483648)", "6442450944");
+    shouldBe("doMultiplyConstant4(1073741824)", "4294967296");
+    shouldBe("doMultiplyConstant4(2147483648)", "8589934592");
+    shouldBe("doMultiplyConstant2(-1073741824)", "-2147483648");
+    shouldBe("doMultiplyConstant2(-2147483648)", "-4294967296");
+    shouldBe("doMultiplyConstant3(-1073741824)", "-3221225472");
+    shouldBe("doMultiplyConstant3(-2147483648)", "-6442450944");
+    shouldBe("doMultiplyConstant4(-1073741824)", "-4294967296");
+    shouldBe("doMultiplyConstant4(-2147483648)", "-8589934592");
+}
+

Modified: branches/safari-534.54-branch/Source/_javascript_Core/ChangeLog (104516 => 104517)


--- branches/safari-534.54-branch/Source/_javascript_Core/ChangeLog	2012-01-10 01:05:10 UTC (rev 104516)
+++ branches/safari-534.54-branch/Source/_javascript_Core/ChangeLog	2012-01-10 01:07:07 UTC (rev 104517)
@@ -1,3 +1,20 @@
+2011-1-9  Lucas Forschler  <[email protected]>
+
+    Merge 102509
+
+    2011-12-09  Filip Pizlo  <[email protected]>
+
+            DFG ArithMul power-of-two case does not check for overflow
+            https://bugs.webkit.org/show_bug.cgi?id=74230
+
+            Reviewed by Gavin Barraclough.
+
+            Disabled power-of-2 peephole optimization for multiplication, because it was wrong,
+            and any attempt to fix it would likely introduce code bloat and register pressure.
+
+            * dfg/DFGSpeculativeJIT.cpp:
+            (JSC::DFG::SpeculativeJIT::compileArithMul):
+
 2012-01-09  Lucas Forschler  <[email protected]>
 
         Windows Build fix.
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to