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

Unified Diff: runtime/vm/constants_dbc.h

Issue 2987323003: [VM DBC compiler and simulator] Support reified generic functions. (Closed)
Patch Set: address review comments and sync Created 3 years, 4 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/dart_entry.h » ('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 0c2d530361d33d2482cb7cbd8169250c503e9092..d3ab48689dc4d11efc72b9f85c51fb5d4c7fcf83 100644
--- a/runtime/vm/constants_dbc.h
+++ b/runtime/vm/constants_dbc.h
@@ -146,17 +146,20 @@ namespace dart {
// - StaticCall ArgC, D
//
// Invoke function in SP[0] with arguments SP[-(1+ArgC)], ..., SP[-1] and
-// argument descriptor PP[D].
+// argument descriptor PP[D], which indicates whether the first argument
+// is a type argument vector.
//
// - IndirectStaticCall ArgC, D
//
// Invoke the function given by the ICData in SP[0] with arguments
-// SP[-(1+ArgC)], ..., SP[-1] and argument descriptor PP[D].
+// SP[-(1+ArgC)], ..., SP[-1] and argument descriptor PP[D], which
+// indicates whether the first argument is a type argument vector.
//
// - InstanceCall<N> ArgC, D; InstanceCall<N>Opt ArgC, D
//
// Lookup and invoke method with N checked arguments using ICData in PP[D]
// with arguments SP[-(1+ArgC)], ..., SP[-1].
+// The ICData indicates whether the first argument is a type argument vector.
//
// - NativeBootstrapCall, NativeNoScopeCall, NativeAutoScopeCall
//
@@ -492,7 +495,7 @@ namespace dart {
// Function prologue for optimized functions with no optional or named
// arguments.
// A - expected number of positional arguments;
-// B - number of local slots to reserve for registers;
+// D - number of local slots to reserve for registers;
//
// Note: reserved slots are not initialized because optimized code
// has stack maps attached to call sites.
@@ -621,6 +624,15 @@ namespace dart {
// Compare SP against isolate stack limit and call StackOverflow handler if
// necessary.
//
+// - CheckStackAlwaysExit
+//
+// Unconditionally call StackOverflow handler.
+//
+// - CheckFunctionTypeArgs A, D
+//
+// Check for a passed-in type argument vector of length A and
+// store it at FP[D].
+//
// - DebugStep, DebugBreak A
//
// Debugger support. DebugBreak is bytecode that can be patched into the
@@ -852,6 +864,7 @@ namespace dart {
V(CheckCidsByRange, A_B_C, reg, num, num) \
V(CheckStack, 0, ___, ___, ___) \
V(CheckStackAlwaysExit, 0, ___, ___, ___) \
+ V(CheckFunctionTypeArgs, A_D, num, num, ___) \
V(DebugStep, 0, ___, ___, ___) \
V(DebugBreak, A, num, ___, ___) \
V(Deopt, A_D, num, num, ___) \
« no previous file with comments | « no previous file | runtime/vm/dart_entry.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698