js/src/jit-test/tests/ion/inlining/inline-callarg-ubench-no-double2.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/src/jit-test/tests/ion/inlining/inline-callarg-ubench-no-double2.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,27 @@
     1.4 +function lameFunc(x, y) {
     1.5 +  var lsw = (x & 0xFFFF) + (y & 0xFFFF);
     1.6 +  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
     1.7 +  return (msw << 16) | (lsw & 0xFFFF);
     1.8 +}
     1.9 +
    1.10 +function runSomeTimes(func, iters) {
    1.11 +    var result;
    1.12 +    for (var i = 0; i < iters; ++i) {
    1.13 +        result = func(42, 42);
    1.14 +        result = func(42, 42);
    1.15 +    }
    1.16 +    return result;
    1.17 +}
    1.18 +
    1.19 +// First, run the inner function to get TI information.
    1.20 +for (var i = 0; i < 100; ++i)
    1.21 +    lameFunc(42, 42);
    1.22 +
    1.23 +// Then, run the outer function with the inner function as a CALLARG to get it
    1.24 +// to Ion compile with inlining.
    1.25 +for (var i = 0; i < 11000; ++i)
    1.26 +    runSomeTimes(lameFunc, 1);
    1.27 +
    1.28 +// Lastly, now that we're all inlined and compiled, perform the test!
    1.29 +var iterations = 100;
    1.30 +assertEq(84, runSomeTimes(lameFunc, iterations));

mercurial