| 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 #include "src/messages.h" | 10 #include "src/messages.h" |
| (...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 339 : LoadIC(depth, isolate, nexus) { | 339 : LoadIC(depth, isolate, nexus) { |
| 340 DCHECK(nexus != NULL); | 340 DCHECK(nexus != NULL); |
| 341 } | 341 } |
| 342 | 342 |
| 343 MUST_USE_RESULT MaybeHandle<Object> Load(Handle<Object> object, | 343 MUST_USE_RESULT MaybeHandle<Object> Load(Handle<Object> object, |
| 344 Handle<Object> key); | 344 Handle<Object> key); |
| 345 | 345 |
| 346 // Code generator routines. | 346 // Code generator routines. |
| 347 static void GenerateMiss(MacroAssembler* masm); | 347 static void GenerateMiss(MacroAssembler* masm); |
| 348 static void GenerateRuntimeGetProperty(MacroAssembler* masm); | 348 static void GenerateRuntimeGetProperty(MacroAssembler* masm); |
| 349 static void GenerateMegamorphic(MacroAssembler* masm); | |
| 350 | |
| 351 static Handle<Code> ChooseMegamorphicStub(Isolate* isolate, | |
| 352 ExtraICState extra_state); | |
| 353 | 349 |
| 354 static void Clear(Isolate* isolate, Code* host, KeyedLoadICNexus* nexus); | 350 static void Clear(Isolate* isolate, Code* host, KeyedLoadICNexus* nexus); |
| 355 | 351 |
| 356 protected: | 352 protected: |
| 357 // receiver is HeapObject because it could be a String or a JSObject | 353 // receiver is HeapObject because it could be a String or a JSObject |
| 358 void UpdateLoadElement(Handle<HeapObject> receiver); | 354 void UpdateLoadElement(Handle<HeapObject> receiver); |
| 359 | 355 |
| 360 private: | 356 private: |
| 361 friend class IC; | 357 friend class IC; |
| 362 }; | 358 }; |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 507 | 503 |
| 508 // Helper for BinaryOpIC and CompareIC. | 504 // Helper for BinaryOpIC and CompareIC. |
| 509 enum InlinedSmiCheck { ENABLE_INLINED_SMI_CHECK, DISABLE_INLINED_SMI_CHECK }; | 505 enum InlinedSmiCheck { ENABLE_INLINED_SMI_CHECK, DISABLE_INLINED_SMI_CHECK }; |
| 510 void PatchInlinedSmiCode(Isolate* isolate, Address address, | 506 void PatchInlinedSmiCode(Isolate* isolate, Address address, |
| 511 InlinedSmiCheck check); | 507 InlinedSmiCheck check); |
| 512 | 508 |
| 513 } // namespace internal | 509 } // namespace internal |
| 514 } // namespace v8 | 510 } // namespace v8 |
| 515 | 511 |
| 516 #endif // V8_IC_H_ | 512 #endif // V8_IC_H_ |
| OLD | NEW |