1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Mon Jan 25 08:14:42 2016 +0100
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Tue Jan 26 05:54:37 2016 +0100
1.3 @@ -735,7 +735,7 @@
1.4 smapper.replace(this, VarType.INTEGER, "(((@1) + (@2)) | 0)", smapper.getI(1), smapper.popI());
1.5 break;
1.6 case opc_ladd:
1.7 - smapper.replace(this, VarType.LONG, "(@1).add64(@2)", smapper.getL(1), smapper.popL());
1.8 + smapper.replace(this, VarType.LONG, numbers.add64(), smapper.getL(1), smapper.popL());
1.9 break;
1.10 case opc_fadd:
1.11 smapper.replace(this, VarType.FLOAT, "(@1 + @2)", smapper.getF(1), smapper.popF());
1.12 @@ -747,7 +747,7 @@
1.13 smapper.replace(this, VarType.INTEGER, "(((@1) - (@2)) | 0)", smapper.getI(1), smapper.popI());
1.14 break;
1.15 case opc_lsub:
1.16 - smapper.replace(this, VarType.LONG, "(@1).sub64(@2)", smapper.getL(1), smapper.popL());
1.17 + smapper.replace(this, VarType.LONG, numbers.sub64(), smapper.getL(1), smapper.popL());
1.18 break;
1.19 case opc_fsub:
1.20 smapper.replace(this, VarType.FLOAT, "(@1 - @2)", smapper.getF(1), smapper.popF());
1.21 @@ -759,7 +759,7 @@
1.22 smapper.replace(this, VarType.INTEGER, numbers.mul32(), smapper.getI(1), smapper.popI());
1.23 break;
1.24 case opc_lmul:
1.25 - smapper.replace(this, VarType.LONG, "(@1).mul64(@2)", smapper.getL(1), smapper.popL());
1.26 + smapper.replace(this, VarType.LONG, numbers.mul64(), smapper.getL(1), smapper.popL());
1.27 break;
1.28 case opc_fmul:
1.29 smapper.replace(this, VarType.FLOAT, "(@1 * @2)", smapper.getF(1), smapper.popF());
1.30 @@ -772,7 +772,7 @@
1.31 smapper.getI(1), smapper.popI());
1.32 break;
1.33 case opc_ldiv:
1.34 - smapper.replace(this, VarType.LONG, "(@1).div64(@2)",
1.35 + smapper.replace(this, VarType.LONG, numbers.div64(),
1.36 smapper.getL(1), smapper.popL());
1.37 break;
1.38 case opc_fdiv:
1.39 @@ -786,7 +786,7 @@
1.40 smapper.getI(1), smapper.popI());
1.41 break;
1.42 case opc_lrem:
1.43 - smapper.replace(this, VarType.LONG, "(@1).mod64(@2)",
1.44 + smapper.replace(this, VarType.LONG, numbers.mod64(),
1.45 smapper.getL(1), smapper.popL());
1.46 break;
1.47 case opc_frem:
1.48 @@ -799,25 +799,25 @@
1.49 smapper.replace(this, VarType.INTEGER, "(@1 & @2)", smapper.getI(1), smapper.popI());
1.50 break;
1.51 case opc_land:
1.52 - smapper.replace(this, VarType.LONG, "(@1).and64(@2)", smapper.getL(1), smapper.popL());
1.53 + smapper.replace(this, VarType.LONG, numbers.and64(), smapper.getL(1), smapper.popL());
1.54 break;
1.55 case opc_ior:
1.56 smapper.replace(this, VarType.INTEGER, "(@1 | @2)", smapper.getI(1), smapper.popI());
1.57 break;
1.58 case opc_lor:
1.59 - smapper.replace(this, VarType.LONG, "(@1).or64(@2)", smapper.getL(1), smapper.popL());
1.60 + smapper.replace(this, VarType.LONG, numbers.or64(), smapper.getL(1), smapper.popL());
1.61 break;
1.62 case opc_ixor:
1.63 smapper.replace(this, VarType.INTEGER, "(@1 ^ @2)", smapper.getI(1), smapper.popI());
1.64 break;
1.65 case opc_lxor:
1.66 - smapper.replace(this, VarType.LONG, "(@1).xor64(@2)", smapper.getL(1), smapper.popL());
1.67 + smapper.replace(this, VarType.LONG, numbers.xor64(), smapper.getL(1), smapper.popL());
1.68 break;
1.69 case opc_ineg:
1.70 smapper.replace(this, VarType.INTEGER, "(-(@1))", smapper.getI(0));
1.71 break;
1.72 case opc_lneg:
1.73 - smapper.replace(this, VarType.LONG, "(@1).neg64()", smapper.getL(0));
1.74 + smapper.replace(this, VarType.LONG, numbers.neg64(), smapper.getL(0));
1.75 break;
1.76 case opc_fneg:
1.77 smapper.replace(this, VarType.FLOAT, "(-@1)", smapper.getF(0));
1.78 @@ -829,19 +829,19 @@
1.79 smapper.replace(this, VarType.INTEGER, "(@1 << @2)", smapper.getI(1), smapper.popI());
1.80 break;
1.81 case opc_lshl:
1.82 - smapper.replace(this, VarType.LONG, "(@1).shl64(@2)", smapper.getL(1), smapper.popI());
1.83 + smapper.replace(this, VarType.LONG, numbers.shl64(), smapper.getL(1), smapper.popI());
1.84 break;
1.85 case opc_ishr:
1.86 smapper.replace(this, VarType.INTEGER, "(@1 >> @2)", smapper.getI(1), smapper.popI());
1.87 break;
1.88 case opc_lshr:
1.89 - smapper.replace(this, VarType.LONG, "(@1).shr64(@2)", smapper.getL(1), smapper.popI());
1.90 + smapper.replace(this, VarType.LONG, numbers.shr64(), smapper.getL(1), smapper.popI());
1.91 break;
1.92 case opc_iushr:
1.93 smapper.replace(this, VarType.INTEGER, "(@1 >>> @2)", smapper.getI(1), smapper.popI());
1.94 break;
1.95 case opc_lushr:
1.96 - smapper.replace(this, VarType.LONG, "(@1).ushr64(@2)", smapper.getL(1), smapper.popI());
1.97 + smapper.replace(this, VarType.LONG, numbers.ushr64(), smapper.getL(1), smapper.popI());
1.98 break;
1.99 case opc_iinc: {
1.100 ++i;
1.101 @@ -1003,7 +1003,7 @@
1.102 break;
1.103 }
1.104 case opc_lcmp:
1.105 - smapper.replace(this, VarType.INTEGER, "(@2).compare64(@1)", smapper.popL(), smapper.getL(0));
1.106 + smapper.replace(this, VarType.INTEGER, numbers.compare64(), smapper.popL(), smapper.getL(0));
1.107 break;
1.108 case opc_fcmpl:
1.109 case opc_fcmpg: