| OLD | NEW |
| 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 Loading... |
| 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_ |
| OLD | NEW |