| 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 |