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

Side by Side Diff: runtime/vm/stub_code.h

Issue 1189573004: Use object pool for runtime calls. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 6 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 unified diff | Download patch
« no previous file with comments | « runtime/vm/runtime_entry_x64.cc ('k') | runtime/vm/stub_code_arm.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef VM_STUB_CODE_H_ 5 #ifndef VM_STUB_CODE_H_
6 #define VM_STUB_CODE_H_ 6 #define VM_STUB_CODE_H_
7 7
8 #include "vm/allocation.h" 8 #include "vm/allocation.h"
9 #include "vm/assembler.h" 9 #include "vm/assembler.h"
10 10
11 namespace dart { 11 namespace dart {
12 12
13 // Forward declarations. 13 // Forward declarations.
14 class Code; 14 class Code;
15 class Isolate; 15 class Isolate;
16 class ObjectPointerVisitor; 16 class ObjectPointerVisitor;
17 class RawCode; 17 class RawCode;
18 18
19 19
20 // List of stubs created in the VM isolate, these stubs are shared by different 20 // List of stubs created in the VM isolate, these stubs are shared by different
21 // isolates running in this dart process. 21 // isolates running in this dart process.
22 #define VM_STUB_CODE_LIST(V) \ 22 #define VM_STUB_CODE_LIST(V) \
23 V(PrintStopMessage) \
24 V(GetStackPointer) \ 23 V(GetStackPointer) \
25 V(JumpToExceptionHandler) \ 24 V(JumpToExceptionHandler) \
26 25
27 // Is it permitted for the stubs above to refer to Object::null(), which is 26 // Is it permitted for the stubs above to refer to Object::null(), which is
28 // allocated in the VM isolate and shared across all isolates. 27 // allocated in the VM isolate and shared across all isolates.
29 // However, in cases where a simple GC-safe placeholder is needed on the stack, 28 // However, in cases where a simple GC-safe placeholder is needed on the stack,
30 // using Smi 0 instead of Object::null() is slightly more efficient, since a Smi 29 // using Smi 0 instead of Object::null() is slightly more efficient, since a Smi
31 // does not require relocation. 30 // does not require relocation.
32 31
33 // List of stubs created per isolate, these stubs could potentially contain 32 // List of stubs created per isolate, these stubs could potentially contain
34 // embedded objects and hence cannot be shared across isolates. 33 // embedded objects and hence cannot be shared across isolates.
35 // The initial stubs are needed for loading bootstrapping scripts and have to 34 // The initial stubs are needed for loading bootstrapping scripts and have to
36 // be generated before Object::Init is called. 35 // be generated before Object::Init is called.
37 #define BOOTSTRAP_STUB_CODE_LIST(V) \ 36 #define BOOTSTRAP_STUB_CODE_LIST(V) \
37 V(PrintStopMessage) \
38 V(CallToRuntime) \ 38 V(CallToRuntime) \
39 V(LazyCompile) \ 39 V(LazyCompile) \
40 40
41 #define REST_STUB_CODE_LIST(V) \ 41 #define REST_STUB_CODE_LIST(V) \
42 V(CallBootstrapCFunction) \ 42 V(CallBootstrapCFunction) \
43 V(CallNativeCFunction) \ 43 V(CallNativeCFunction) \
44 V(FixCallersTarget) \ 44 V(FixCallersTarget) \
45 V(CallStaticFunction) \ 45 V(CallStaticFunction) \
46 V(FixAllocationStubTarget) \ 46 V(FixAllocationStubTarget) \
47 V(FixAllocateArrayStubTarget) \ 47 V(FixAllocateArrayStubTarget) \
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 Assembler* assembler, 240 Assembler* assembler,
241 const Register left, 241 const Register left,
242 const Register right, 242 const Register right,
243 const Register temp1 = kNoRegister, 243 const Register temp1 = kNoRegister,
244 const Register temp2 = kNoRegister); 244 const Register temp2 = kNoRegister);
245 }; 245 };
246 246
247 } // namespace dart 247 } // namespace dart
248 248
249 #endif // VM_STUB_CODE_H_ 249 #endif // VM_STUB_CODE_H_
OLDNEW
« no previous file with comments | « runtime/vm/runtime_entry_x64.cc ('k') | runtime/vm/stub_code_arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698