| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 3627 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3638 return ExtractTypeFromFlags(flags()); | 3638 return ExtractTypeFromFlags(flags()); |
| 3639 } | 3639 } |
| 3640 | 3640 |
| 3641 | 3641 |
| 3642 int Code::arguments_count() { | 3642 int Code::arguments_count() { |
| 3643 ASSERT(is_call_stub() || is_keyed_call_stub() || kind() == STUB); | 3643 ASSERT(is_call_stub() || is_keyed_call_stub() || kind() == STUB); |
| 3644 return ExtractArgumentsCountFromFlags(flags()); | 3644 return ExtractArgumentsCountFromFlags(flags()); |
| 3645 } | 3645 } |
| 3646 | 3646 |
| 3647 | 3647 |
| 3648 inline bool Code::is_crankshafted() { |
| 3649 return IsCrankshaftedField::decode( |
| 3650 READ_UINT32_FIELD(this, kKindSpecificFlags2Offset)); |
| 3651 } |
| 3652 |
| 3653 |
| 3654 inline void Code::set_is_crankshafted(bool value) { |
| 3655 int previous = READ_UINT32_FIELD(this, kKindSpecificFlags2Offset); |
| 3656 int updated = IsCrankshaftedField::update(previous, value); |
| 3657 WRITE_UINT32_FIELD(this, kKindSpecificFlags2Offset, updated); |
| 3658 } |
| 3659 |
| 3660 |
| 3648 int Code::major_key() { | 3661 int Code::major_key() { |
| 3649 ASSERT(kind() == STUB || | 3662 ASSERT(kind() == STUB || |
| 3650 kind() == COMPILED_STUB || | |
| 3651 kind() == UNARY_OP_IC || | 3663 kind() == UNARY_OP_IC || |
| 3652 kind() == BINARY_OP_IC || | 3664 kind() == BINARY_OP_IC || |
| 3653 kind() == COMPARE_IC || | 3665 kind() == COMPARE_IC || |
| 3654 kind() == LOAD_IC || | 3666 kind() == LOAD_IC || |
| 3655 kind() == KEYED_LOAD_IC || | 3667 kind() == KEYED_LOAD_IC || |
| 3656 kind() == TO_BOOLEAN_IC); | 3668 kind() == TO_BOOLEAN_IC); |
| 3657 return StubMajorKeyField::decode( | 3669 return StubMajorKeyField::decode( |
| 3658 READ_UINT32_FIELD(this, kKindSpecificFlags2Offset)); | 3670 READ_UINT32_FIELD(this, kKindSpecificFlags2Offset)); |
| 3659 } | 3671 } |
| 3660 | 3672 |
| 3661 | 3673 |
| 3662 void Code::set_major_key(int major) { | 3674 void Code::set_major_key(int major) { |
| 3663 ASSERT(kind() == STUB || | 3675 ASSERT(kind() == STUB || |
| 3664 kind() == COMPILED_STUB || | |
| 3665 kind() == UNARY_OP_IC || | 3676 kind() == UNARY_OP_IC || |
| 3666 kind() == BINARY_OP_IC || | 3677 kind() == BINARY_OP_IC || |
| 3667 kind() == COMPARE_IC || | 3678 kind() == COMPARE_IC || |
| 3668 kind() == LOAD_IC || | 3679 kind() == LOAD_IC || |
| 3669 kind() == KEYED_LOAD_IC || | 3680 kind() == KEYED_LOAD_IC || |
| 3670 kind() == STORE_IC || | 3681 kind() == STORE_IC || |
| 3671 kind() == KEYED_STORE_IC || | 3682 kind() == KEYED_STORE_IC || |
| 3672 kind() == TO_BOOLEAN_IC); | 3683 kind() == TO_BOOLEAN_IC); |
| 3673 ASSERT(0 <= major && major < 256); | 3684 ASSERT(0 <= major && major < 256); |
| 3674 int previous = READ_UINT32_FIELD(this, kKindSpecificFlags2Offset); | 3685 int previous = READ_UINT32_FIELD(this, kKindSpecificFlags2Offset); |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3767 | 3778 |
| 3768 | 3779 |
| 3769 void Code::set_profiler_ticks(int ticks) { | 3780 void Code::set_profiler_ticks(int ticks) { |
| 3770 ASSERT_EQ(FUNCTION, kind()); | 3781 ASSERT_EQ(FUNCTION, kind()); |
| 3771 ASSERT(ticks < 256); | 3782 ASSERT(ticks < 256); |
| 3772 WRITE_BYTE_FIELD(this, kProfilerTicksOffset, ticks); | 3783 WRITE_BYTE_FIELD(this, kProfilerTicksOffset, ticks); |
| 3773 } | 3784 } |
| 3774 | 3785 |
| 3775 | 3786 |
| 3776 unsigned Code::stack_slots() { | 3787 unsigned Code::stack_slots() { |
| 3777 ASSERT(kind() == OPTIMIZED_FUNCTION || kind() == COMPILED_STUB); | 3788 ASSERT(is_crankshafted()); |
| 3778 return StackSlotsField::decode( | 3789 return StackSlotsField::decode( |
| 3779 READ_UINT32_FIELD(this, kKindSpecificFlags1Offset)); | 3790 READ_UINT32_FIELD(this, kKindSpecificFlags1Offset)); |
| 3780 } | 3791 } |
| 3781 | 3792 |
| 3782 | 3793 |
| 3783 void Code::set_stack_slots(unsigned slots) { | 3794 void Code::set_stack_slots(unsigned slots) { |
| 3784 CHECK(slots <= (1 << kStackSlotsBitCount)); | 3795 CHECK(slots <= (1 << kStackSlotsBitCount)); |
| 3785 ASSERT(kind() == OPTIMIZED_FUNCTION || kind() == COMPILED_STUB); | 3796 ASSERT(is_crankshafted()); |
| 3786 int previous = READ_UINT32_FIELD(this, kKindSpecificFlags1Offset); | 3797 int previous = READ_UINT32_FIELD(this, kKindSpecificFlags1Offset); |
| 3787 int updated = StackSlotsField::update(previous, slots); | 3798 int updated = StackSlotsField::update(previous, slots); |
| 3788 WRITE_UINT32_FIELD(this, kKindSpecificFlags1Offset, updated); | 3799 WRITE_UINT32_FIELD(this, kKindSpecificFlags1Offset, updated); |
| 3789 } | 3800 } |
| 3790 | 3801 |
| 3791 | 3802 |
| 3792 unsigned Code::safepoint_table_offset() { | 3803 unsigned Code::safepoint_table_offset() { |
| 3793 ASSERT(kind() == OPTIMIZED_FUNCTION || kind() == COMPILED_STUB); | 3804 ASSERT(is_crankshafted()); |
| 3794 return SafepointTableOffsetField::decode( | 3805 return SafepointTableOffsetField::decode( |
| 3795 READ_UINT32_FIELD(this, kKindSpecificFlags2Offset)); | 3806 READ_UINT32_FIELD(this, kKindSpecificFlags2Offset)); |
| 3796 } | 3807 } |
| 3797 | 3808 |
| 3798 | 3809 |
| 3799 void Code::set_safepoint_table_offset(unsigned offset) { | 3810 void Code::set_safepoint_table_offset(unsigned offset) { |
| 3800 CHECK(offset <= (1 << kSafepointTableOffsetBitCount)); | 3811 CHECK(offset <= (1 << kSafepointTableOffsetBitCount)); |
| 3801 ASSERT(kind() == OPTIMIZED_FUNCTION || kind() == COMPILED_STUB); | 3812 ASSERT(is_crankshafted()); |
| 3802 ASSERT(IsAligned(offset, static_cast<unsigned>(kIntSize))); | 3813 ASSERT(IsAligned(offset, static_cast<unsigned>(kIntSize))); |
| 3803 int previous = READ_UINT32_FIELD(this, kKindSpecificFlags2Offset); | 3814 int previous = READ_UINT32_FIELD(this, kKindSpecificFlags2Offset); |
| 3804 int updated = SafepointTableOffsetField::update(previous, offset); | 3815 int updated = SafepointTableOffsetField::update(previous, offset); |
| 3805 WRITE_UINT32_FIELD(this, kKindSpecificFlags2Offset, updated); | 3816 WRITE_UINT32_FIELD(this, kKindSpecificFlags2Offset, updated); |
| 3806 } | 3817 } |
| 3807 | 3818 |
| 3808 | 3819 |
| 3809 unsigned Code::back_edge_table_offset() { | 3820 unsigned Code::back_edge_table_offset() { |
| 3810 ASSERT_EQ(FUNCTION, kind()); | 3821 ASSERT_EQ(FUNCTION, kind()); |
| 3811 return BackEdgeTableOffsetField::decode( | 3822 return BackEdgeTableOffsetField::decode( |
| (...skipping 2296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6108 #undef WRITE_UINT32_FIELD | 6119 #undef WRITE_UINT32_FIELD |
| 6109 #undef READ_SHORT_FIELD | 6120 #undef READ_SHORT_FIELD |
| 6110 #undef WRITE_SHORT_FIELD | 6121 #undef WRITE_SHORT_FIELD |
| 6111 #undef READ_BYTE_FIELD | 6122 #undef READ_BYTE_FIELD |
| 6112 #undef WRITE_BYTE_FIELD | 6123 #undef WRITE_BYTE_FIELD |
| 6113 | 6124 |
| 6114 | 6125 |
| 6115 } } // namespace v8::internal | 6126 } } // namespace v8::internal |
| 6116 | 6127 |
| 6117 #endif // V8_OBJECTS_INL_H_ | 6128 #endif // V8_OBJECTS_INL_H_ |
| OLD | NEW |