1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/asm.js/testX86ByteStore.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,77 @@ 1.4 +load(libdir + "asm.js"); 1.5 + 1.6 +var body = 1.7 +' "use asm";\ 1.8 + var i8=new global.Int8Array(buffer);\ 1.9 + function g(i,j,k) {\ 1.10 + i=i|0;\ 1.11 + j=j|0;\ 1.12 + k=k|0;\ 1.13 + var a=0,b=0,c=0,d=0,e=0,f=0;\ 1.14 + a=(i+j)|0;\ 1.15 + b=(k+j)|0;\ 1.16 + c=(i+k)|0;\ 1.17 + b=(a+b)|0;\ 1.18 + d=(b+c+i+j)|0;\ 1.19 + e=(a+j+c)|0;\ 1.20 + f=(a+i+k)|0;\ 1.21 + i8[i] = f;\ 1.22 + return (a+b+c+d+e+f)|0;\ 1.23 + }\ 1.24 + return g;'; 1.25 + 1.26 +var buf=new ArrayBuffer(4096); 1.27 +var g = asmLink(asmCompile('global','foreign','buffer',body), this, null, buf); 1.28 +assertEq(g(1,2,3), 46); 1.29 +assertEq(new Int8Array(buf)[1], 7); 1.30 + 1.31 +var body = 1.32 +' "use asm";\ 1.33 + var i8=new global.Int8Array(buffer);\ 1.34 + function g(i,j,k) {\ 1.35 + i=i|0;\ 1.36 + j=j|0;\ 1.37 + k=k|0;\ 1.38 + var a=0,b=0,c=0,d=0,e=0,f=0;\ 1.39 + a=(i+j)|0;\ 1.40 + b=(k+j)|0;\ 1.41 + c=(i+k)|0;\ 1.42 + b=(a+b)|0;\ 1.43 + d=(b+c+i+j)|0;\ 1.44 + e=(a+j+c)|0;\ 1.45 + f=(a+i+k)|0;\ 1.46 + i8[i] = e;\ 1.47 + return (a+b+c+d+e+f)|0;\ 1.48 + }\ 1.49 + return g;'; 1.50 + 1.51 +var buf=new ArrayBuffer(4096); 1.52 +var g = asmLink(asmCompile('global','foreign','buffer',body), this, null, buf); 1.53 +assertEq(g(1,2,3), 46); 1.54 +assertEq(new Int8Array(buf)[1], 9); 1.55 + 1.56 +var body = 1.57 +' "use asm";\ 1.58 + var i8=new global.Int8Array(buffer);\ 1.59 + function g(i,j,k) {\ 1.60 + i=i|0;\ 1.61 + j=j|0;\ 1.62 + k=k|0;\ 1.63 + var a=0,b=0,c=0,d=0,e=0,f=0,g=0;\ 1.64 + a=(i+j)|0;\ 1.65 + b=(k+j)|0;\ 1.66 + c=(i+k)|0;\ 1.67 + b=(a+b)|0;\ 1.68 + d=(b+c+i+j)|0;\ 1.69 + e=(a+j+c)|0;\ 1.70 + f=(a+i+k)|0;\ 1.71 + g=(f+j+b)|0;\ 1.72 + i8[i] = g;\ 1.73 + return (a+b+c+d+e+f+g)|0;\ 1.74 + }\ 1.75 + return g;'; 1.76 + 1.77 +var buf=new ArrayBuffer(4096); 1.78 +var g = asmLink(asmCompile('global','foreign','buffer',body), this, null, buf); 1.79 +assertEq(g(1,2,3), 63); 1.80 +assertEq(new Int8Array(buf)[1], 17);