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 606 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
617 | 617 |
618 static void Clear(Isolate* isolate, Address address, Code* target, | 618 static void Clear(Isolate* isolate, Address address, Code* target, |
619 Address constant_pool); | 619 Address constant_pool); |
620 | 620 |
621 Token::Value op_; | 621 Token::Value op_; |
622 | 622 |
623 friend class IC; | 623 friend class IC; |
624 }; | 624 }; |
625 | 625 |
626 | 626 |
627 class CompareNilIC : public IC { | |
628 public: | |
629 explicit CompareNilIC(Isolate* isolate) : IC(EXTRA_CALL_FRAME, isolate) {} | |
630 | |
631 Handle<Object> CompareNil(Handle<Object> object); | |
632 | |
633 static Handle<Code> GetUninitialized(); | |
634 | |
635 static void Clear(Address address, Code* target, Address constant_pool); | |
636 }; | |
637 | |
638 | |
639 class ToBooleanIC : public IC { | 627 class ToBooleanIC : public IC { |
640 public: | 628 public: |
641 explicit ToBooleanIC(Isolate* isolate) : IC(EXTRA_CALL_FRAME, isolate) {} | 629 explicit ToBooleanIC(Isolate* isolate) : IC(EXTRA_CALL_FRAME, isolate) {} |
642 | 630 |
643 Handle<Object> ToBoolean(Handle<Object> object); | 631 Handle<Object> ToBoolean(Handle<Object> object); |
644 }; | 632 }; |
645 | 633 |
646 | 634 |
647 // Helper for BinaryOpIC and CompareIC. | 635 // Helper for BinaryOpIC and CompareIC. |
648 enum InlinedSmiCheck { ENABLE_INLINED_SMI_CHECK, DISABLE_INLINED_SMI_CHECK }; | 636 enum InlinedSmiCheck { ENABLE_INLINED_SMI_CHECK, DISABLE_INLINED_SMI_CHECK }; |
649 void PatchInlinedSmiCode(Isolate* isolate, Address address, | 637 void PatchInlinedSmiCode(Isolate* isolate, Address address, |
650 InlinedSmiCheck check); | 638 InlinedSmiCheck check); |
651 | 639 |
652 } // namespace internal | 640 } // namespace internal |
653 } // namespace v8 | 641 } // namespace v8 |
654 | 642 |
655 #endif // V8_IC_H_ | 643 #endif // V8_IC_H_ |
OLD | NEW |