1.1 --- a/jitcraft/Opcodes.cpp Fri Jul 20 00:03:10 2012 -0700
1.2 +++ b/jitcraft/Opcodes.cpp Mon Jul 23 01:19:44 2012 -0700
1.3 @@ -76,7 +76,7 @@
1.4 // any other position indicates a failure to mark that position as a
1.5 // safepoint, which is a bug.
1.6 Opcode op = Opcode(*(start() + pcOffset));
1.7 - assert(op == OP_CALL || op == OP_NEWARRAY_LIFO || op == OP_VARREF_LIFO ||
1.8 + assert(op == OP_CALL || op == OP_NEWARRAY || op == OP_VARREF_LIFO ||
1.9 op == OP_ARGREF_LIFO || op == OP_SLOTREF_LIFO || op == OP_ARRAYREF_LIFO ||
1.10 op == OP_ARRAYCOPY);
1.11
1.12 @@ -238,9 +238,10 @@
1.13 fprintf(fp, "%u (%+d)", unsigned((pc + READ_INT32(pc)) - code->start()), READ_INT32(pc));
1.14 break;
1.15
1.16 - case OP_NEWARRAY_LIFO:
1.17 + case OP_NEWARRAY:
1.18 {
1.19 - ArrayMap *map = ArrayMap::cast(code->map(READ_UINT32(pc)));
1.20 + Heap::Tenure tenure = (Heap::Tenure)pc[1];
1.21 + ArrayMap *map = ArrayMap::cast(code->map(READ_UINT32(pc + 1)));
1.22 fprintf(fp, "%s:", map->type()->innermost()->tag()
1.23 ? map->type()->innermost()->tag()->chars()
1.24 : "_");
1.25 @@ -248,6 +249,10 @@
1.26 Type *type = map->type();
1.27 fprintf(fp, "[%d]", type->elements());
1.28 }
1.29 + if (tenure == Heap::Tenure_Stack)
1.30 + fprintf(fp, " ; lifo");
1.31 + else if (tenure == Heap::Tenure_Old)
1.32 + fprintf(fp, " ; pretenured");
1.33 break;
1.34 }
1.35
1.36 @@ -261,6 +266,12 @@
1.37 case OP_ARGREF_LIFO:
1.38 case OP_OBJECT:
1.39 case OP_GETMODULE_FN:
1.40 + case OP_GETGLOBAL_I:
1.41 + case OP_GETGLOBAL_F:
1.42 + case OP_GETGLOBAL_O:
1.43 + case OP_SETGLOBAL_I:
1.44 + case OP_SETGLOBAL_F:
1.45 + case OP_SETGLOBAL_O:
1.46 fprintf(fp, "%u", READ_UINT32(pc));
1.47 break;
1.48