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