| // |jit-test| test-also-noasmjs |
| load(libdir + "asm.js"); |
| |
| var body = |
| ' "use asm";\ |
| var i8=new global.Int8Array(buffer);\ |
| function g(i,j,k) {\ |
| i=i|0;\ |
| j=j|0;\ |
| k=k|0;\ |
| var a=0,b=0,c=0,d=0,e=0,f=0;\ |
| a=(i+j)|0;\ |
| b=(k+j)|0;\ |
| c=(i+k)|0;\ |
| b=(a+b)|0;\ |
| d=(b+c+i+j)|0;\ |
| e=(a+j+c)|0;\ |
| f=(a+i+k)|0;\ |
| i8[i] = f;\ |
| return (a+b+c+d+e+f)|0;\ |
| }\ |
| return g;'; |
| |
| var buf=new ArrayBuffer(BUF_MIN); |
| var g = asmLink(asmCompile('global','foreign','buffer',body), this, null, buf); |
| assertEq(g(1,2,3), 46); |
| assertEq(new Int8Array(buf)[1], 7); |
| |
| var body = |
| ' "use asm";\ |
| var i8=new global.Int8Array(buffer);\ |
| function g(i,j,k) {\ |
| i=i|0;\ |
| j=j|0;\ |
| k=k|0;\ |
| var a=0,b=0,c=0,d=0,e=0,f=0;\ |
| a=(i+j)|0;\ |
| b=(k+j)|0;\ |
| c=(i+k)|0;\ |
| b=(a+b)|0;\ |
| d=(b+c+i+j)|0;\ |
| e=(a+j+c)|0;\ |
| f=(a+i+k)|0;\ |
| i8[i] = e;\ |
| return (a+b+c+d+e+f)|0;\ |
| }\ |
| return g;'; |
| |
| var buf=new ArrayBuffer(BUF_MIN); |
| var g = asmLink(asmCompile('global','foreign','buffer',body), this, null, buf); |
| assertEq(g(1,2,3), 46); |
| assertEq(new Int8Array(buf)[1], 9); |
| |
| var body = |
| ' "use asm";\ |
| var i8=new global.Int8Array(buffer);\ |
| function g(i,j,k) {\ |
| i=i|0;\ |
| j=j|0;\ |
| k=k|0;\ |
| var a=0,b=0,c=0,d=0,e=0,f=0,g=0;\ |
| a=(i+j)|0;\ |
| b=(k+j)|0;\ |
| c=(i+k)|0;\ |
| b=(a+b)|0;\ |
| d=(b+c+i+j)|0;\ |
| e=(a+j+c)|0;\ |
| f=(a+i+k)|0;\ |
| g=(f+j+b)|0;\ |
| i8[i] = g;\ |
| return (a+b+c+d+e+f+g)|0;\ |
| }\ |
| return g;'; |
| |
| var buf=new ArrayBuffer(BUF_MIN); |
| var g = asmLink(asmCompile('global','foreign','buffer',body), this, null, buf); |
| assertEq(g(1,2,3), 63); |
| assertEq(new Int8Array(buf)[1], 17); |