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_IC_H_ | 5 #ifndef V8_IC_H_ |
6 #define V8_IC_H_ | 6 #define V8_IC_H_ |
7 | 7 |
8 #include "src/ic/ic-state.h" | 8 #include "src/ic/ic-state.h" |
9 #include "src/macro-assembler.h" | 9 #include "src/macro-assembler.h" |
10 | 10 |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 // Get the shared function info of the caller. | 142 // Get the shared function info of the caller. |
143 SharedFunctionInfo* GetSharedFunctionInfo() const; | 143 SharedFunctionInfo* GetSharedFunctionInfo() const; |
144 // Get the code object of the caller. | 144 // Get the code object of the caller. |
145 Code* GetCode() const; | 145 Code* GetCode() const; |
146 // Get the original (non-breakpointed) code object of the caller. | 146 // Get the original (non-breakpointed) code object of the caller. |
147 Code* GetOriginalCode() const; | 147 Code* GetOriginalCode() const; |
148 | 148 |
149 // Set the call-site target. | 149 // Set the call-site target. |
150 inline void set_target(Code* code); | 150 inline void set_target(Code* code); |
151 bool is_target_set() { return target_set_; } | 151 bool is_target_set() { return target_set_; } |
| 152 bool is_vector_set() { return vector_set_; } |
152 | 153 |
153 bool UseVector() const { | 154 bool UseVector() const { |
154 bool use = ICUseVector(kind()); | 155 bool use = ICUseVector(kind()); |
155 // If we are supposed to use the nexus, verify the nexus is non-null. | 156 // If we are supposed to use the nexus, verify the nexus is non-null. |
156 DCHECK(!use || nexus_ != NULL); | 157 DCHECK(!use || nexus_ != NULL); |
157 return use; | 158 return use; |
158 } | 159 } |
159 | 160 |
160 // Configure for most states. | 161 // Configure for most states. |
161 void ConfigureVectorState(IC::State new_state); | 162 void ConfigureVectorState(IC::State new_state); |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 | 296 |
296 Isolate* isolate_; | 297 Isolate* isolate_; |
297 | 298 |
298 // The constant pool of the code which originally called the IC (which might | 299 // The constant pool of the code which originally called the IC (which might |
299 // be for the breakpointed copy of the original code). | 300 // be for the breakpointed copy of the original code). |
300 Handle<ConstantPoolArray> raw_constant_pool_; | 301 Handle<ConstantPoolArray> raw_constant_pool_; |
301 | 302 |
302 // The original code target that missed. | 303 // The original code target that missed. |
303 Handle<Code> target_; | 304 Handle<Code> target_; |
304 bool target_set_; | 305 bool target_set_; |
| 306 bool vector_set_; |
305 State old_state_; // For saving if we marked as prototype failure. | 307 State old_state_; // For saving if we marked as prototype failure. |
306 State state_; | 308 State state_; |
307 Code::Kind kind_; | 309 Code::Kind kind_; |
308 Handle<HeapType> receiver_type_; | 310 Handle<HeapType> receiver_type_; |
309 MaybeHandle<Code> maybe_handler_; | 311 MaybeHandle<Code> maybe_handler_; |
310 | 312 |
311 ExtraICState extra_ic_state_; | 313 ExtraICState extra_ic_state_; |
312 MapHandleList target_maps_; | 314 MapHandleList target_maps_; |
313 bool target_maps_set_; | 315 bool target_maps_set_; |
314 | 316 |
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
766 | 768 |
767 // Support functions for interceptor handlers. | 769 // Support functions for interceptor handlers. |
768 DECLARE_RUNTIME_FUNCTION(LoadPropertyWithInterceptorOnly); | 770 DECLARE_RUNTIME_FUNCTION(LoadPropertyWithInterceptorOnly); |
769 DECLARE_RUNTIME_FUNCTION(LoadPropertyWithInterceptor); | 771 DECLARE_RUNTIME_FUNCTION(LoadPropertyWithInterceptor); |
770 DECLARE_RUNTIME_FUNCTION(LoadElementWithInterceptor); | 772 DECLARE_RUNTIME_FUNCTION(LoadElementWithInterceptor); |
771 DECLARE_RUNTIME_FUNCTION(StorePropertyWithInterceptor); | 773 DECLARE_RUNTIME_FUNCTION(StorePropertyWithInterceptor); |
772 } | 774 } |
773 } // namespace v8::internal | 775 } // namespace v8::internal |
774 | 776 |
775 #endif // V8_IC_H_ | 777 #endif // V8_IC_H_ |
OLD | NEW |