undoAdd.js (849B)
1 /* Test undoing addition in overflow paths when under heavy register pressure. */ 2 3 function add1(x, y, a, b, res) { var nres = res + 0; var z = (x + a) + (y + b); assertEq(z, nres); } 4 function add2(x, y, a, b, res) { var nres = res + 0; var z = (x + a) + (y + b); assertEq(z, nres); } 5 function add3(x, y, a, b, res) { var nres = res + 0; var z = (x + a) + (y + b); assertEq(z, nres); } 6 add1(0x7ffffff0, 100, 0, 0, 2147483732); 7 add2(-1000, -0x80000000, 0, 0, -2147484648); 8 add3(-0x80000000, -1000, 0, 0, -2147484648); 9 10 function cadd1(x, a, b, res) { 11 var nres = res + 0; 12 var nb = b + 0; 13 var z = (x + a) + 1000; 14 assertEq(z, nres + nb); 15 } 16 cadd1(0x7ffffff0, 0, 0, 2147484632); 17 18 function cadd2(x, a, b, res) { 19 var nres = res + 0; 20 var nb = b + 0; 21 var z = (x + a) + (-0x80000000); 22 assertEq(z, nres + nb); 23 } 24 cadd2(-1000, 0, 0, -2147484648);