Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Unified Diff: runtime/vm/constants_dbc.h

Issue 2335363002: DBC: Another allocation fast path (Closed)
Patch Set: Remove extra whitespace Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | runtime/vm/intermediate_language_dbc.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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, ___, ___) \
« no previous file with comments | « no previous file | runtime/vm/intermediate_language_dbc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698