diff --git a/js/src/jit-test/tests/asm.js/testFFI.js b/js/src/jit-test/tests/asm.js/testFFI.js index 3869e96db79..725ac068cfc 100644 --- a/js/src/jit-test/tests/asm.js/testFFI.js +++ b/js/src/jit-test/tests/asm.js/testFFI.js @@ -98,7 +98,9 @@ assertThrowsValue(function() { f(8,2.4) }, 2.4+36); assertEq(asmLink(asmCompile('glob', 'imp', USE_ASM + 'var identity=imp.identity; function g(x) { x=+x; return +identity(x) } return g'), null, imp)(13.37), 13.37); // Test asm.js => ion paths -setJitCompilerOption("ion.usecount.trigger", 20); +setJitCompilerOption("ion.usecount.trigger", 10); +setJitCompilerOption("baseline.usecount.trigger", 0); +setJitCompilerOption("offthread-compilation.enable", 0); // In registers on x64 and ARM, on the stack for x86 function ffiIntFew(a,b,c,d) { return d+1 } @@ -109,32 +111,32 @@ for (var i = 0; i < 40; i++) // Stack and registers for x64 and ARM, stack for x86 function ffiIntMany(a,b,c,d,e,f,g,h,i,j) { return j+1 } var f = asmLink(asmCompile('glob', 'imp', USE_ASM + 'var ffi=imp.ffi; function f(i) { i=i|0; return ffi(i|0,(i+1)|0,(i+2)|0,(i+3)|0,(i+4)|0,(i+5)|0,(i+6)|0,(i+7)|0,(i+8)|0,(i+9)|0)|0 } return f'), null, {ffi:ffiIntMany}); -for (var i = 0; i < 40; i++) +for (var i = 0; i < 15; i++) assertEq(f(i), i+10); // In registers on x64 and ARM, on the stack for x86 function ffiDoubleFew(a,b,c,d) { return d+1 } var f = asmLink(asmCompile('glob', 'imp', USE_ASM + 'var ffi=imp.ffi; function f(i) { i=+i; return +ffi(i,i+1.0,i+2.0,i+3.0) } return f'), null, {ffi:ffiDoubleFew}); -for (var i = 0; i < 40; i++) +for (var i = 0; i < 15; i++) assertEq(f(i), i+4); // Stack and registers for x64 and ARM, stack for x86 function ffiDoubleMany(a,b,c,d,e,f,g,h,i,j) { return j+1 } var f = asmLink(asmCompile('glob', 'imp', USE_ASM + 'var ffi=imp.ffi; function f(i) { i=+i; return +ffi(i,i+1.0,i+2.0,i+3.0,i+4.0,i+5.0,i+6.0,i+7.0,i+8.0,i+9.0) } return f'), null, {ffi:ffiDoubleMany}); -for (var i = 0; i < 40; i++) +for (var i = 0; i < 15; i++) assertEq(f(i), i+10); // Test the throw path -function ffiThrow(n) { if (n == 38) throw 'yolo'; } +function ffiThrow(n) { if (n == 14) throw 'yolo'; } var f = asmLink(asmCompile('glob', 'imp', USE_ASM + 'var ffi=imp.ffi; function f(i) { i=i|0; ffi(i >> 0); } return f'), null, {ffi:ffiThrow}); var i = 0; try { - for (; i < 40; i++) + for (; i < 15; i++) f(i); throw 'assume unreachable'; } catch (e) { assertEq(e, 'yolo'); - assertEq(i, 38); + assertEq(i, 14); } // OOL conversion paths diff --git a/js/src/jit-test/tests/asm.js/testStackWalking.js b/js/src/jit-test/tests/asm.js/testStackWalking.js index 29ade6757f2..719994b78d0 100644 --- a/js/src/jit-test/tests/asm.js/testStackWalking.js +++ b/js/src/jit-test/tests/asm.js/testStackWalking.js @@ -17,10 +17,14 @@ function dumpStack() stack = new Error().stack } +setJitCompilerOption("ion.usecount.trigger", 10); +setJitCompilerOption("baseline.usecount.trigger", 0); +setJitCompilerOption("offthread-compilation.enable", 0); + var callFFI = asmCompile('global', 'ffis', USE_ASM + "var ffi=ffis.ffi; function f() { return ffi()|0 } return f"); var f = asmLink(callFFI, null, {ffi:dumpStack}); -for (var i = 0; i < 5000; i++) { +for (var i = 0; i < 15; i++) { stack = null; f(); matchStack(stack, ['dumpStack', 'f']); @@ -42,7 +46,7 @@ matchStack(stack, ["dumpStack", "f", "middle", "f"]); function returnStackDumper() { return { valueOf:function() { stack = new Error().stack } } } var f = asmLink(callFFI, null, {ffi:returnStackDumper}); -for (var i = 0; i < 5000; i++) { +for (var i = 0; i < 15; i++) { stack = null; f(); matchStack(stack, ['valueOf', 'f']);