src/Opcodes.cpp
changeset 230 fb3cd08bc7fb
parent 195 c1ba166f3fc4
child 233 bbb498ccb4ac
     1.1 --- a/src/Opcodes.cpp	Sat Dec 22 16:42:20 2012 -0800
     1.2 +++ b/src/Opcodes.cpp	Sat Dec 22 18:22:14 2012 -0800
     1.3 @@ -40,7 +40,7 @@
     1.4  Code *
     1.5  Code::New(Zone *zone, Handle<ByteArray> bytecode, Handle<FixedArray> locals,
     1.6            Handle<FixedArray> objects, Handle<FixedArray> strings, unsigned maxStackDepth,
     1.7 -          Handle<ByteArray> safepoints, Handle<ByteArray> sourcemap)
     1.8 +          unsigned maxLoopDepth, Handle<ByteArray> safepoints, Handle<ByteArray> sourcemap)
     1.9  {
    1.10      Local<Code> code(zone, Code::cast(zone->allocate(MapKind_Code, sizeof(Code), Heap::Tenure_Old)));
    1.11      if (!code)
    1.12 @@ -55,6 +55,7 @@
    1.13      code->sourcemap_ = sourcemap;
    1.14      code->lineNumber_ = 0;
    1.15      code->strings_ = strings;
    1.16 +    code->maxLoopDepth_ = maxLoopDepth;
    1.17      return code;
    1.18  }
    1.19  
    1.20 @@ -160,6 +161,7 @@
    1.21            case OP_MUL_F:
    1.22            case OP_DIV_F:
    1.23            case OP_CVT_I2F:
    1.24 +          case OP_CVT_I2B:
    1.25            case OP_POP:
    1.26            case OP_GETELEM:
    1.27            case OP_SETELEM:
    1.28 @@ -207,6 +209,12 @@
    1.29            case OP_FALSE:
    1.30            case OP_SIZEOF:
    1.31            case OP_PUBLIC:
    1.32 +          case OP_LEAVELOOP:
    1.33 +            break;
    1.34 +
    1.35 +          case OP_ENTERLOOP:
    1.36 +            if (pc[1])
    1.37 +              fprintf(fp, "; lifo region");
    1.38              break;
    1.39  
    1.40            case OP_STOP:
    1.41 @@ -224,6 +232,8 @@
    1.42            case OP_JT:
    1.43            case OP_JF:
    1.44            case OP_JUMP:
    1.45 +          case OP_CONTINUE:
    1.46 +          case OP_BREAK:
    1.47              fprintf(fp, "%u (%+d)", unsigned((pc + READ_INT32(pc)) - code->start()), READ_INT32(pc));
    1.48              break;
    1.49