| Index: runtime/vm/constants_dbc.h
|
| diff --git a/runtime/vm/constants_dbc.h b/runtime/vm/constants_dbc.h
|
| index f5b2117c941a67ed0a23162601f540b625f51b67..c5dbe04f52f287ff717c2cd9661c9446b60ced42 100644
|
| --- a/runtime/vm/constants_dbc.h
|
| +++ b/runtime/vm/constants_dbc.h
|
| @@ -231,7 +231,7 @@ namespace dart {
|
| //
|
| // - WriteIntoDouble rA, rD
|
| //
|
| -// Box the double in FP[rD] with the result in FP[rA].
|
| +// Box the double in FP[rD] using the box in FP[rA].
|
| //
|
| // - UnboxDouble rA, rD
|
| //
|
| @@ -309,10 +309,24 @@ namespace dart {
|
| //
|
| // Allocate array of length SP[0] with type arguments SP[-1].
|
| //
|
| +// - CreateArrayOpt rA, rB, rC
|
| +//
|
| +// Try to allocate a new array where FP[rB] is the length, and FP[rC] is the
|
| +// type. If allocation is successful, the result is stored in FP[rA], and
|
| +// the next four instructions, which should be the
|
| +// (Push type; Push length; AllocateTOS; PopLocal) slow path are skipped.
|
| +//
|
| // - Allocate D
|
| //
|
| // Allocate object of class PP[D] with no type arguments.
|
| //
|
| +// - AllocateOpt rA, D
|
| +//
|
| +// Try allocating an object with tags in PP[D] with no type arguments.
|
| +// If allocation is successful, the result is stored in FP[rA], and
|
| +// the next two instructions, which should be the (Allocate class; PopLocal)
|
| +// slow path are skipped
|
| +//
|
| // - AllocateT
|
| //
|
| // Allocate object of class SP[0] with type arguments SP[-1].
|
| @@ -684,8 +698,10 @@ namespace dart {
|
| V(IfEqNull, A, reg, ___, ___) \
|
| V(IfNeNull, A, reg, ___, ___) \
|
| V(CreateArrayTOS, 0, ___, ___, ___) \
|
| + V(CreateArrayOpt, A_B_C, reg, reg, ___) \
|
| V(Allocate, D, lit, ___, ___) \
|
| V(AllocateT, 0, ___, ___, ___) \
|
| + V(AllocateOpt, A_D, reg, lit, ___) \
|
| V(StoreIndexedTOS, 0, ___, ___, ___) \
|
| V(StoreIndexed, A_B_C, reg, reg, reg) \
|
| V(StoreIndexedUint8, A_B_C, reg, reg, reg) \
|
|
|