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 22 matching lines...) Expand all Loading... |
33 V(CallBootstrapCFunction) \ | 33 V(CallBootstrapCFunction) \ |
34 V(CallNativeCFunction) \ | 34 V(CallNativeCFunction) \ |
35 V(FixCallersTarget) \ | 35 V(FixCallersTarget) \ |
36 V(CallStaticFunction) \ | 36 V(CallStaticFunction) \ |
37 V(OptimizeFunction) \ | 37 V(OptimizeFunction) \ |
38 V(InvokeDartCode) \ | 38 V(InvokeDartCode) \ |
39 V(DebugStepCheck) \ | 39 V(DebugStepCheck) \ |
40 V(ICLookupThroughFunction) \ | 40 V(ICLookupThroughFunction) \ |
41 V(ICLookupThroughCode) \ | 41 V(ICLookupThroughCode) \ |
42 V(MegamorphicLookup) \ | 42 V(MegamorphicLookup) \ |
| 43 V(MonomorphicMiss) \ |
43 V(FixAllocationStubTarget) \ | 44 V(FixAllocationStubTarget) \ |
44 V(Deoptimize) \ | 45 V(Deoptimize) \ |
45 V(DeoptimizeLazy) \ | 46 V(DeoptimizeLazy) \ |
46 V(UnoptimizedIdenticalWithNumberCheck) \ | 47 V(UnoptimizedIdenticalWithNumberCheck) \ |
47 V(OptimizedIdenticalWithNumberCheck) \ | 48 V(OptimizedIdenticalWithNumberCheck) \ |
48 V(ICCallBreakpoint) \ | 49 V(ICCallBreakpoint) \ |
49 V(RuntimeCallBreakpoint) \ | 50 V(RuntimeCallBreakpoint) \ |
50 V(AllocateArray) \ | 51 V(AllocateArray) \ |
51 V(AllocateContext) \ | 52 V(AllocateContext) \ |
52 V(OneArgCheckInlineCache) \ | 53 V(OneArgCheckInlineCache) \ |
(...skipping 30 matching lines...) Expand all Loading... |
83 | 84 |
84 // class StubEntry is used to describe stub methods generated in dart to | 85 // class StubEntry is used to describe stub methods generated in dart to |
85 // abstract out common code executed from generated dart code. | 86 // abstract out common code executed from generated dart code. |
86 class StubEntry { | 87 class StubEntry { |
87 public: | 88 public: |
88 explicit StubEntry(const Code& code); | 89 explicit StubEntry(const Code& code); |
89 ~StubEntry() {} | 90 ~StubEntry() {} |
90 | 91 |
91 const ExternalLabel& label() const { return label_; } | 92 const ExternalLabel& label() const { return label_; } |
92 uword EntryPoint() const { return entry_point_; } | 93 uword EntryPoint() const { return entry_point_; } |
| 94 uword CheckedEntryPoint() const { return checked_entry_point_; } |
93 RawCode* code() const { return code_; } | 95 RawCode* code() const { return code_; } |
94 intptr_t Size() const { return size_; } | 96 intptr_t Size() const { return size_; } |
95 | 97 |
96 // Visit all object pointers. | 98 // Visit all object pointers. |
97 void VisitObjectPointers(ObjectPointerVisitor* visitor); | 99 void VisitObjectPointers(ObjectPointerVisitor* visitor); |
98 | 100 |
99 private: | 101 private: |
100 RawCode* code_; | 102 RawCode* code_; |
101 uword entry_point_; | 103 uword entry_point_; |
| 104 uword checked_entry_point_; |
102 intptr_t size_; | 105 intptr_t size_; |
103 ExternalLabel label_; | 106 ExternalLabel label_; |
104 | 107 |
105 DISALLOW_COPY_AND_ASSIGN(StubEntry); | 108 DISALLOW_COPY_AND_ASSIGN(StubEntry); |
106 }; | 109 }; |
107 | 110 |
108 | 111 |
109 // class StubCode is used to maintain the lifecycle of stubs. | 112 // class StubCode is used to maintain the lifecycle of stubs. |
110 class StubCode : public AllStatic { | 113 class StubCode : public AllStatic { |
111 public: | 114 public: |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 | 192 |
190 | 193 |
191 enum DeoptStubKind { | 194 enum DeoptStubKind { |
192 kLazyDeopt, | 195 kLazyDeopt, |
193 kEagerDeopt | 196 kEagerDeopt |
194 }; | 197 }; |
195 | 198 |
196 } // namespace dart | 199 } // namespace dart |
197 | 200 |
198 #endif // VM_STUB_CODE_H_ | 201 #endif // VM_STUB_CODE_H_ |
OLD | NEW |