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

Unified Diff: runtime/vm/stub_code.h

Issue 1229283002: VM: Share some stub code between isolates. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: addressed comments Created 5 years, 5 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 | « runtime/vm/object.cc ('k') | runtime/vm/stub_code.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/stub_code.h
diff --git a/runtime/vm/stub_code.h b/runtime/vm/stub_code.h
index f74cf8a919cbc9b3b5c8fcf1e4dcadf1651ce7e7..03b7bbf9296e8756e363ad1b4aedb5c6d81d1442 100644
--- a/runtime/vm/stub_code.h
+++ b/runtime/vm/stub_code.h
@@ -23,31 +23,25 @@ class RawCode;
V(GetStackPointer) \
V(JumpToExceptionHandler) \
V(UpdateStoreBuffer) \
-
-// Is it permitted for the stubs above to refer to Object::null(), which is
-// allocated in the VM isolate and shared across all isolates.
-// However, in cases where a simple GC-safe placeholder is needed on the stack,
-// using Smi 0 instead of Object::null() is slightly more efficient, since a Smi
-// does not require relocation.
-
-// List of stubs created per isolate, these stubs could potentially contain
-// embedded objects and hence cannot be shared across isolates.
-// The initial stubs are needed for loading bootstrapping scripts and have to
-// be generated before Object::Init is called.
-#define BOOTSTRAP_STUB_CODE_LIST(V) \
V(PrintStopMessage) \
V(CallToRuntime) \
V(LazyCompile) \
-
-#define REST_STUB_CODE_LIST(V) \
V(CallBootstrapCFunction) \
V(CallNativeCFunction) \
V(FixCallersTarget) \
V(CallStaticFunction) \
+ V(OptimizeFunction) \
+ V(InvokeDartCode) \
+ V(DebugStepCheck) \
+ V(MegamorphicLookup) \
V(FixAllocationStubTarget) \
V(FixAllocateArrayStubTarget) \
- V(CallClosureNoSuchMethod) \
- V(AllocateContext) \
+ V(Deoptimize) \
+ V(DeoptimizeLazy) \
+ V(UnoptimizedIdenticalWithNumberCheck) \
+ V(OptimizedIdenticalWithNumberCheck) \
+ V(ICCallBreakpoint) \
+ V(RuntimeCallBreakpoint) \
V(OneArgCheckInlineCache) \
V(TwoArgsCheckInlineCache) \
V(SmiAddInlineCache) \
@@ -60,23 +54,22 @@ class RawCode;
V(ZeroArgsUnoptimizedStaticCall) \
V(OneArgUnoptimizedStaticCall) \
V(TwoArgsUnoptimizedStaticCall) \
- V(OptimizeFunction) \
- V(InvokeDartCode) \
+
+// Is it permitted for the stubs above to refer to Object::null(), which is
+// allocated in the VM isolate and shared across all isolates.
+// However, in cases where a simple GC-safe placeholder is needed on the stack,
+// using Smi 0 instead of Object::null() is slightly more efficient, since a Smi
+// does not require relocation.
+
+// List of stubs created per isolate, these stubs could potentially contain
+// embedded objects and hence cannot be shared across isolates.
+#define STUB_CODE_LIST(V) \
+ V(CallClosureNoSuchMethod) \
+ V(AllocateContext) \
V(Subtype1TestCache) \
V(Subtype2TestCache) \
V(Subtype3TestCache) \
- V(Deoptimize) \
- V(DeoptimizeLazy) \
- V(ICCallBreakpoint) \
- V(RuntimeCallBreakpoint) \
- V(UnoptimizedIdenticalWithNumberCheck) \
- V(OptimizedIdenticalWithNumberCheck) \
- V(DebugStepCheck) \
- V(MegamorphicLookup) \
-#define STUB_CODE_LIST(V) \
- BOOTSTRAP_STUB_CODE_LIST(V) \
- REST_STUB_CODE_LIST(V)
// class StubEntry is used to describe stub methods generated in dart to
// abstract out common code executed from generated dart code.
@@ -121,9 +114,6 @@ class StubCode {
// Generate all stubs which are generated on a per isolate basis as they
// have embedded objects which are isolate specific.
- // Bootstrap stubs are needed before Object::Init to compile the bootstrap
- // scripts.
- static void InitBootstrapStubs(Isolate* isolate);
static void Init(Isolate* isolate);
static void VisitObjectPointers(ObjectPointerVisitor* visitor);
@@ -185,7 +175,6 @@ class StubCode {
Assembler*, Register recv, Register cache, Register target);
private:
- void GenerateBootstrapStubsFor(Isolate* isolate);
void GenerateStubsFor(Isolate* isolate);
friend class MegamorphicCacheTable;
« no previous file with comments | « runtime/vm/object.cc ('k') | runtime/vm/stub_code.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698