| 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 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 // allocated in the VM isolate and shared across all isolates. | 40 // allocated in the VM isolate and shared across all isolates. |
| 41 // However, in cases where a simple GC-safe placeholder is needed on the stack, | 41 // However, in cases where a simple GC-safe placeholder is needed on the stack, |
| 42 // using Smi 0 instead of Object::null() is slightly more efficient, since a Smi | 42 // using Smi 0 instead of Object::null() is slightly more efficient, since a Smi |
| 43 // does not require relocation. | 43 // does not require relocation. |
| 44 | 44 |
| 45 // List of stubs created per isolate, these stubs could potentially contain | 45 // List of stubs created per isolate, these stubs could potentially contain |
| 46 // embedded objects and hence cannot be shared across isolates. | 46 // embedded objects and hence cannot be shared across isolates. |
| 47 #define STUB_CODE_LIST(V) \ | 47 #define STUB_CODE_LIST(V) \ |
| 48 V(InvokeDartCode) \ | 48 V(InvokeDartCode) \ |
| 49 V(AllocateContext) \ | 49 V(AllocateContext) \ |
| 50 V(UpdateStoreBuffer) \ |
| 50 V(OneArgCheckInlineCache) \ | 51 V(OneArgCheckInlineCache) \ |
| 51 V(TwoArgsCheckInlineCache) \ | 52 V(TwoArgsCheckInlineCache) \ |
| 52 V(BreakpointDynamic) \ | 53 V(BreakpointDynamic) \ |
| 53 | 54 |
| 54 | 55 |
| 55 // class StubEntry is used to describe stub methods generated in dart to | 56 // class StubEntry is used to describe stub methods generated in dart to |
| 56 // abstract out common code executed from generated dart code. | 57 // abstract out common code executed from generated dart code. |
| 57 class StubEntry { | 58 class StubEntry { |
| 58 public: | 59 public: |
| 59 StubEntry(const char* name, const Code& code); | 60 StubEntry(const char* name, const Code& code); |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 const Class& cls); | 176 const Class& cls); |
| 176 static void GenerateAllocationStubForClosure(Assembler* assembler, | 177 static void GenerateAllocationStubForClosure(Assembler* assembler, |
| 177 const Function& func); | 178 const Function& func); |
| 178 static void GenerateNArgsCheckInlineCacheStub(Assembler* assembler, | 179 static void GenerateNArgsCheckInlineCacheStub(Assembler* assembler, |
| 179 intptr_t num_args); | 180 intptr_t num_args); |
| 180 }; | 181 }; |
| 181 | 182 |
| 182 } // namespace dart | 183 } // namespace dart |
| 183 | 184 |
| 184 #endif // VM_STUB_CODE_H_ | 185 #endif // VM_STUB_CODE_H_ |
| OLD | NEW |