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 |