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

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

Issue 2226893002: Optimize AOT's switchable calls for the monomorphic case. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: sync Created 4 years, 4 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/stack_frame.cc ('k') | runtime/vm/stub_code.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
(...skipping 22 matching lines...) Expand all
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
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
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_
OLDNEW
« no previous file with comments | « runtime/vm/stack_frame.cc ('k') | runtime/vm/stub_code.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698