vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java
brancharithmetic
changeset 438 7df624c2a0a1
parent 427 12e866a32b40
child 439 e4fb6c7ac42a
     1.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Fri Jan 11 16:36:28 2013 +0100
     1.2 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Sun Jan 13 23:07:54 2013 +0100
     1.3 @@ -491,7 +491,7 @@
     1.4                      emit(out, "@1 = @2;", lmapper.setD(3), smapper.popD());
     1.5                      break;
     1.6                  case opc_iadd:
     1.7 -                    emit(out, "@1 = (@1 + @2) | 0;", smapper.getI(1), smapper.popI());
     1.8 +                    emit(out, "@1 = __add32(@1,@2);", smapper.getI(1), smapper.popI());
     1.9                      break;
    1.10                  case opc_ladd:
    1.11                      emit(out, "@1 += @2;", smapper.getL(1), smapper.popL());
    1.12 @@ -503,7 +503,7 @@
    1.13                      emit(out, "@1 += @2;", smapper.getD(1), smapper.popD());
    1.14                      break;
    1.15                  case opc_isub:
    1.16 -                    emit(out, "@1 = (@1 - @2) | 0;", smapper.getI(1), smapper.popI());
    1.17 +                    emit(out, "@1 = __sub32(@1,@2);", smapper.getI(1), smapper.popI());
    1.18                      break;
    1.19                  case opc_lsub:
    1.20                      emit(out, "@1 -= @2;", smapper.getL(1), smapper.popL());
    1.21 @@ -515,7 +515,7 @@
    1.22                      emit(out, "@1 -= @2;", smapper.getD(1), smapper.popD());
    1.23                      break;
    1.24                  case opc_imul:
    1.25 -                    emit(out, "@1 = (((@1 * (@2 >> 16)) << 16) + @1 * (@2 & 0xFFFF)) | 0;", smapper.getI(1), smapper.popI());
    1.26 +                    emit(out, "@1 = __mul32(@1,@2);", smapper.getI(1), smapper.popI());
    1.27                      break;
    1.28                  case opc_lmul:
    1.29                      emit(out, "@1 *= @2;", smapper.getL(1), smapper.popL());