1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Wed Sep 02 23:20:01 2015 +0200
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun Jan 24 14:31:36 2016 +0100
1.3 @@ -775,8 +775,15 @@
1.4 smapper.replace(this, VarType.DOUBLE, "(@1 / @2)", smapper.getD(1), smapper.popD());
1.5 break;
1.6 case opc_irem:
1.7 - smapper.replace(this, VarType.INTEGER, "(@1).mod32(@2)",
1.8 +//
1.9 +// direct check yields few percents
1.10 +// in case of firefox 5.8s/4.6.s
1.11 + smapper.replace(this, VarType.INTEGER, "((@1) % (@2))",
1.12 smapper.getI(1), smapper.popI());
1.13 +// with myNum being local variable in the generated script
1.14 +// it compiles and computes 5000 primes in 6s
1.15 +// smapper.replace(this, VarType.INTEGER, "myNum.mod32(@1, @2)",
1.16 +// smapper.getI(1), smapper.popI());
1.17 break;
1.18 case opc_lrem:
1.19 smapper.replace(this, VarType.LONG, "(@1).mod64(@2)",