OLD | NEW |
---|---|
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_STUB_CACHE_H_ | 5 #ifndef V8_STUB_CACHE_H_ |
6 #define V8_STUB_CACHE_H_ | 6 #define V8_STUB_CACHE_H_ |
7 | 7 |
8 #include "src/macro-assembler.h" | 8 #include "src/macro-assembler.h" |
9 | 9 |
10 namespace v8 { | 10 namespace v8 { |
11 namespace internal { | 11 namespace internal { |
12 | 12 |
13 namespace compiler { | |
14 class CodeStubAssembler; | |
Michael Starzinger
2016/02/01 16:04:12
nit: This looks like a left-over from another piec
danno
2016/02/02 07:52:55
Done.
| |
15 } | |
13 | 16 |
14 // The stub cache is used for megamorphic property accesses. | 17 // The stub cache is used for megamorphic property accesses. |
15 // It maps (map, name, type) to property access handlers. The cache does not | 18 // It maps (map, name, type) to property access handlers. The cache does not |
16 // need explicit invalidation when a prototype chain is modified, since the | 19 // need explicit invalidation when a prototype chain is modified, since the |
17 // handlers verify the chain. | 20 // handlers verify the chain. |
18 | 21 |
19 | 22 |
20 class SCTableReference { | 23 class SCTableReference { |
21 public: | 24 public: |
22 Address address() const { return address_; } | 25 Address address() const { return address_; } |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
153 static const int kPrimaryTableBits = 11; | 156 static const int kPrimaryTableBits = 11; |
154 static const int kPrimaryTableSize = (1 << kPrimaryTableBits); | 157 static const int kPrimaryTableSize = (1 << kPrimaryTableBits); |
155 static const int kSecondaryTableBits = 9; | 158 static const int kSecondaryTableBits = 9; |
156 static const int kSecondaryTableSize = (1 << kSecondaryTableBits); | 159 static const int kSecondaryTableSize = (1 << kSecondaryTableBits); |
157 | 160 |
158 private: | 161 private: |
159 Entry primary_[kPrimaryTableSize]; | 162 Entry primary_[kPrimaryTableSize]; |
160 Entry secondary_[kSecondaryTableSize]; | 163 Entry secondary_[kSecondaryTableSize]; |
161 Isolate* isolate_; | 164 Isolate* isolate_; |
162 | 165 |
166 friend class compiler::CodeStubAssembler; | |
Michael Starzinger
2016/02/01 16:04:12
nit: This looks like a left-over from another piec
danno
2016/02/02 07:52:55
Done.
| |
163 friend class Isolate; | 167 friend class Isolate; |
164 friend class SCTableReference; | 168 friend class SCTableReference; |
165 | 169 |
166 DISALLOW_COPY_AND_ASSIGN(StubCache); | 170 DISALLOW_COPY_AND_ASSIGN(StubCache); |
167 }; | 171 }; |
168 } // namespace internal | 172 } // namespace internal |
169 } // namespace v8 | 173 } // namespace v8 |
170 | 174 |
171 #endif // V8_STUB_CACHE_H_ | 175 #endif // V8_STUB_CACHE_H_ |
OLD | NEW |