rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java
branchFasterSieve
changeset 1950 71e5cd5b29bc
parent 1840 9d011ab3c192
child 1951 3781fd782472
     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)",