vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java
brancharithmetic
changeset 594 035fcbd7a33c
parent 593 b42911b78a16
child 615 e3f671b50e93
     1.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Sun Jan 27 10:19:02 2013 +0100
     1.2 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Mon Jan 28 00:15:38 2013 +0100
     1.3 @@ -313,7 +313,7 @@
     1.4                      emit(out, "var @1 = @2;", smapper.pushI(), lmapper.getI(0));
     1.5                      break;
     1.6                  case opc_lload_0:
     1.7 -                    emit(out, "var @1 = MakeLong(@2);", smapper.pushL(), lmapper.getL(0));
     1.8 +                    emit(out, "var @1 = @2;", smapper.pushL(), lmapper.getL(0));
     1.9                      break;
    1.10                  case opc_fload_0:
    1.11                      emit(out, "var @1 = @2;", smapper.pushF(), lmapper.getF(0));
    1.12 @@ -328,7 +328,7 @@
    1.13                      emit(out, "var @1 = @2;", smapper.pushI(), lmapper.getI(1));
    1.14                      break;
    1.15                  case opc_lload_1:
    1.16 -                    emit(out, "var @1 = MakeLong(@2);", smapper.pushL(), lmapper.getL(1));
    1.17 +                    emit(out, "var @1 = @2;", smapper.pushL(), lmapper.getL(1));
    1.18                      break;
    1.19                  case opc_fload_1:
    1.20                      emit(out, "var @1 = @2;", smapper.pushF(), lmapper.getF(1));
    1.21 @@ -343,7 +343,7 @@
    1.22                      emit(out, "var @1 = @2;", smapper.pushI(), lmapper.getI(2));
    1.23                      break;
    1.24                  case opc_lload_2:
    1.25 -                    emit(out, "var @1 = MakeLong(@2);", smapper.pushL(), lmapper.getL(2));
    1.26 +                    emit(out, "var @1 = @2;", smapper.pushL(), lmapper.getL(2));
    1.27                      break;
    1.28                  case opc_fload_2:
    1.29                      emit(out, "var @1 = @2;", smapper.pushF(), lmapper.getF(2));
    1.30 @@ -358,7 +358,7 @@
    1.31                      emit(out, "var @1 = @2;", smapper.pushI(), lmapper.getI(3));
    1.32                      break;
    1.33                  case opc_lload_3:
    1.34 -                    emit(out, "var @1 = MakeLong(@2);", smapper.pushL(), lmapper.getL(3));
    1.35 +                    emit(out, "var @1 = @2;", smapper.pushL(), lmapper.getL(3));
    1.36                      break;
    1.37                  case opc_fload_3:
    1.38                      emit(out, "var @1 = @2;", smapper.pushF(), lmapper.getF(3));
    1.39 @@ -662,7 +662,7 @@
    1.40                      emit(out, "return @1;", smapper.popA());
    1.41                      break;
    1.42                  case opc_i2l:
    1.43 -                    emit(out, "var @2 = new Long(@1, 0);", smapper.popI(), smapper.pushL());
    1.44 +                    emit(out, "var @2 = @1", smapper.popI(), smapper.pushL());
    1.45                      break;
    1.46                  case opc_i2f:
    1.47                      emit(out, "var @2 = @1;", smapper.popI(), smapper.pushF());
    1.48 @@ -691,7 +691,7 @@
    1.49                           smapper.popF(), smapper.pushI());
    1.50                      break;
    1.51                  case opc_f2l:
    1.52 -                    emit(out, "var @2 = LongFromNumber(Math.floor(@1));",
    1.53 +                    emit(out, "var @2 = Math.floor(@1).toLong();",
    1.54                           smapper.popF(), smapper.pushL());
    1.55                      break;
    1.56                  case opc_d2i:
    1.57 @@ -699,7 +699,7 @@
    1.58                           smapper.popD(), smapper.pushI());
    1.59                      break;
    1.60                  case opc_d2l:
    1.61 -                    emit(out, "var @2 = LongFromNumber(Math.floor(@1));",
    1.62 +                    emit(out, "var @2 = Math.floor(@1).toLong();",
    1.63                           smapper.popD(), smapper.pushL());
    1.64                      break;
    1.65                  case opc_i2b:
    1.66 @@ -724,7 +724,7 @@
    1.67                      emit(out, "var @1 = 0;", smapper.pushD());
    1.68                      break;
    1.69                  case opc_lconst_0:
    1.70 -                    emit(out, "var @1 = new Long(0,0);", smapper.pushL());
    1.71 +                    emit(out, "var @1 = 0;", smapper.pushL());
    1.72                      break;
    1.73                  case opc_fconst_0:
    1.74                      emit(out, "var @1 = 0;", smapper.pushF());
    1.75 @@ -733,7 +733,7 @@
    1.76                      emit(out, "var @1 = 1;", smapper.pushI());
    1.77                      break;
    1.78                  case opc_lconst_1:
    1.79 -                    emit(out, "var @1 = new Long(1,0);", smapper.pushL());
    1.80 +                    emit(out, "var @1 = 1;", smapper.pushL());
    1.81                      break;
    1.82                  case opc_fconst_1:
    1.83                      emit(out, "var @1 = 1;", smapper.pushF());
    1.84 @@ -773,7 +773,7 @@
    1.85                          final Long lv = new Long(v);
    1.86                          final int low = (int)(lv.longValue() & 0xFFFFFFFF);
    1.87                          final int hi = (int)(lv.longValue() >> 32);
    1.88 -                        emit(out, "var @1 = new Long(0x@2, 0x@3);", smapper.pushL(), 
    1.89 +                        emit(out, "var @1 = 0x@3.next32(0x@2);", smapper.pushL(), 
    1.90                                  Integer.toHexString(low), Integer.toHexString(hi));
    1.91                      } else {
    1.92                          emit(out, "var @1 = @2;", smapper.pushT(type), v);