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 // Review notes: | 5 // Review notes: |
6 // | 6 // |
7 // - The use of macros in these inline functions may seem superfluous | 7 // - The use of macros in these inline functions may seem superfluous |
8 // but it is absolutely needed to make sure gcc generates optimal | 8 // but it is absolutely needed to make sure gcc generates optimal |
9 // code. gcc is not happy when attempting to inline too deep. | 9 // code. gcc is not happy when attempting to inline too deep. |
10 // | 10 // |
(...skipping 4833 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4844 void Code::set_flags(Code::Flags flags) { | 4844 void Code::set_flags(Code::Flags flags) { |
4845 STATIC_ASSERT(Code::NUMBER_OF_KINDS <= KindField::kMax + 1); | 4845 STATIC_ASSERT(Code::NUMBER_OF_KINDS <= KindField::kMax + 1); |
4846 WRITE_INT_FIELD(this, kFlagsOffset, flags); | 4846 WRITE_INT_FIELD(this, kFlagsOffset, flags); |
4847 } | 4847 } |
4848 | 4848 |
4849 | 4849 |
4850 Code::Kind Code::kind() { | 4850 Code::Kind Code::kind() { |
4851 return ExtractKindFromFlags(flags()); | 4851 return ExtractKindFromFlags(flags()); |
4852 } | 4852 } |
4853 | 4853 |
4854 | |
4855 bool Code::IsCodeStubOrIC() { | 4854 bool Code::IsCodeStubOrIC() { |
4856 return kind() == STUB || kind() == HANDLER || kind() == LOAD_IC || | 4855 switch (kind()) { |
4857 kind() == KEYED_LOAD_IC || kind() == CALL_IC || kind() == STORE_IC || | 4856 case STUB: |
4858 kind() == KEYED_STORE_IC || kind() == BINARY_OP_IC || | 4857 case HANDLER: |
4859 kind() == COMPARE_IC || kind() == TO_BOOLEAN_IC; | 4858 #define CASE_KIND(kind) case kind: |
| 4859 IC_KIND_LIST(CASE_KIND) |
| 4860 #undef CASE_KIND |
| 4861 return true; |
| 4862 default: |
| 4863 return false; |
| 4864 } |
4860 } | 4865 } |
4861 | 4866 |
4862 | |
4863 ExtraICState Code::extra_ic_state() { | 4867 ExtraICState Code::extra_ic_state() { |
4864 DCHECK(is_inline_cache_stub() || is_debug_stub()); | 4868 DCHECK(is_inline_cache_stub() || is_debug_stub()); |
4865 return ExtractExtraICStateFromFlags(flags()); | 4869 return ExtractExtraICStateFromFlags(flags()); |
4866 } | 4870 } |
4867 | 4871 |
4868 | 4872 |
4869 // For initialization. | 4873 // For initialization. |
4870 void Code::set_raw_kind_specific_flags1(int value) { | 4874 void Code::set_raw_kind_specific_flags1(int value) { |
4871 WRITE_INT_FIELD(this, kKindSpecificFlags1Offset, value); | 4875 WRITE_INT_FIELD(this, kKindSpecificFlags1Offset, value); |
4872 } | 4876 } |
(...skipping 3040 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7913 #undef WRITE_INT64_FIELD | 7917 #undef WRITE_INT64_FIELD |
7914 #undef READ_BYTE_FIELD | 7918 #undef READ_BYTE_FIELD |
7915 #undef WRITE_BYTE_FIELD | 7919 #undef WRITE_BYTE_FIELD |
7916 #undef NOBARRIER_READ_BYTE_FIELD | 7920 #undef NOBARRIER_READ_BYTE_FIELD |
7917 #undef NOBARRIER_WRITE_BYTE_FIELD | 7921 #undef NOBARRIER_WRITE_BYTE_FIELD |
7918 | 7922 |
7919 } // namespace internal | 7923 } // namespace internal |
7920 } // namespace v8 | 7924 } // namespace v8 |
7921 | 7925 |
7922 #endif // V8_OBJECTS_INL_H_ | 7926 #endif // V8_OBJECTS_INL_H_ |
OLD | NEW |