Index: runtime/vm/constants_dbc.h |
diff --git a/runtime/vm/constants_dbc.h b/runtime/vm/constants_dbc.h |
index c5dbe04f52f287ff717c2cd9661c9446b60ced42..4d9c29ab2962e88bd2f3f5d8dedaa09ab8ab0738 100644 |
--- a/runtime/vm/constants_dbc.h |
+++ b/runtime/vm/constants_dbc.h |
@@ -331,6 +331,13 @@ namespace dart { |
// |
// Allocate object of class SP[0] with type arguments SP[-1]. |
// |
+// - AllocateTOpt rA, D |
+// |
+// Similar to AllocateOpt with the difference that the offset of the |
+// type arguments in the resulting object is taken from the D field of the |
+// following Nop instruction, and on success 4 instructions are skipped and |
+// the object at the top of the stack is popped. |
+// |
// - StoreIndexedTOS |
// |
// Store SP[0] into array SP[-2] at index SP[-1]. No typechecking is done. |
@@ -464,6 +471,12 @@ namespace dart { |
// |
// Allocate Context object assuming for D context variables. |
// |
+// - AllocateUninitializedContext rA, D |
+// |
+// Allocates an uninitialized context for D variables, and places the result |
+// in FP[rA]. On success, skips the next 2 instructions, which should be the |
+// slow path (AllocateContext D; PopLocal rA). |
+// |
// - CloneContext |
// |
// Clone context stored in TOS. |
@@ -702,6 +715,7 @@ namespace dart { |
V(Allocate, D, lit, ___, ___) \ |
V(AllocateT, 0, ___, ___, ___) \ |
V(AllocateOpt, A_D, reg, lit, ___) \ |
+ V(AllocateTOpt, A_D, reg, lit, ___) \ |
V(StoreIndexedTOS, 0, ___, ___, ___) \ |
V(StoreIndexed, A_B_C, reg, reg, reg) \ |
V(StoreIndexedUint8, A_B_C, reg, reg, reg) \ |
@@ -735,6 +749,7 @@ namespace dart { |
V(Frame, D, num, ___, ___) \ |
V(SetFrame, A, num, ___, num) \ |
V(AllocateContext, D, num, ___, ___) \ |
+ V(AllocateUninitializedContext, A_D, reg, num, ___) \ |
V(CloneContext, 0, ___, ___, ___) \ |
V(MoveSpecial, A_D, reg, num, ___) \ |
V(InstantiateType, D, lit, ___, ___) \ |