1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/jaeger/recompile/arith.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,49 @@ 1.4 + 1.5 +/* Handle recompilation of arithmetic operations, and on-stack int -> double conversion. */ 1.6 + 1.7 +function add(x, y) 1.8 +{ 1.9 + var z = x + y; 1.10 + assertEq(z, 2147483732); 1.11 + assertEq(z - 10, 2147483722); 1.12 +} 1.13 +add(0x7ffffff0, 100); 1.14 + 1.15 +function mul(x, y) 1.16 +{ 1.17 + var z = x * y; 1.18 + assertEq(z, 4294967264); 1.19 +} 1.20 +mul(0x7ffffff0, 2); 1.21 + 1.22 +function div1(x, y) 1.23 +{ 1.24 + var z = x / y; 1.25 + assertEq(z + 10, 20); 1.26 +} 1.27 +div1(100, 10); 1.28 + 1.29 +function div2(x, y) 1.30 +{ 1.31 + var z = x / y; 1.32 + assertEq(z + 10, 20.5); 1.33 +} 1.34 +div2(105, 10); 1.35 + 1.36 +function uncopy(x, y) 1.37 +{ 1.38 + var q = x; 1.39 + x += y; 1.40 + q++; 1.41 + assertEq(q, 2147483633); 1.42 + assertEq(x, 2147483732); 1.43 +} 1.44 +uncopy(0x7ffffff0, 100); 1.45 + 1.46 +function addmore(x, y) 1.47 +{ 1.48 + var q = (x + 10) + (x + y); 1.49 + assertEq(q, 4294967374); 1.50 + x = q; 1.51 +} 1.52 +addmore(0x7ffffff0, 100);