1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/jaeger/undoAdd.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,25 @@ 1.4 + 1.5 +/* Test undoing addition in overflow paths when under heavy register pressure. */ 1.6 + 1.7 +function add1(x, y, a, b, res) { var nres = res + 0; var z = (x + a) + (y + b); assertEq(z, nres); } 1.8 +function add2(x, y, a, b, res) { var nres = res + 0; var z = (x + a) + (y + b); assertEq(z, nres); } 1.9 +function add3(x, y, a, b, res) { var nres = res + 0; var z = (x + a) + (y + b); assertEq(z, nres); } 1.10 +add1(0x7ffffff0, 100, 0, 0, 2147483732); 1.11 +add2(-1000, -0x80000000, 0, 0, -2147484648); 1.12 +add3(-0x80000000, -1000, 0, 0, -2147484648); 1.13 + 1.14 +function cadd1(x, a, b, res) { 1.15 + var nres = res + 0; 1.16 + var nb = b + 0; 1.17 + var z = (x + a) + 1000; 1.18 + assertEq(z, nres + nb); 1.19 +} 1.20 +cadd1(0x7ffffff0, 0, 0, 2147484632); 1.21 + 1.22 +function cadd2(x, a, b, res) { 1.23 + var nres = res + 0; 1.24 + var nb = b + 0; 1.25 + var z = (x + a) + (-0x80000000); 1.26 + assertEq(z, nres + nb); 1.27 +} 1.28 +cadd2(-1000, 0, 0, -2147484648);