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 3438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3449 return ExtractArgumentsCountFromFlags(flags()); | 3449 return ExtractArgumentsCountFromFlags(flags()); |
3450 } | 3450 } |
3451 | 3451 |
3452 | 3452 |
3453 int Code::major_key() { | 3453 int Code::major_key() { |
3454 ASSERT(kind() == STUB || | 3454 ASSERT(kind() == STUB || |
3455 kind() == COMPILED_STUB || | 3455 kind() == COMPILED_STUB || |
3456 kind() == UNARY_OP_IC || | 3456 kind() == UNARY_OP_IC || |
3457 kind() == BINARY_OP_IC || | 3457 kind() == BINARY_OP_IC || |
3458 kind() == COMPARE_IC || | 3458 kind() == COMPARE_IC || |
| 3459 kind() == LOAD_IC || |
| 3460 kind() == KEYED_LOAD_IC || |
3459 kind() == TO_BOOLEAN_IC); | 3461 kind() == TO_BOOLEAN_IC); |
3460 return StubMajorKeyField::decode( | 3462 return StubMajorKeyField::decode( |
3461 READ_UINT32_FIELD(this, kKindSpecificFlags2Offset)); | 3463 READ_UINT32_FIELD(this, kKindSpecificFlags2Offset)); |
3462 } | 3464 } |
3463 | 3465 |
3464 | 3466 |
3465 void Code::set_major_key(int major) { | 3467 void Code::set_major_key(int major) { |
3466 ASSERT(kind() == STUB || | 3468 ASSERT(kind() == STUB || |
3467 kind() == COMPILED_STUB || | 3469 kind() == COMPILED_STUB || |
3468 kind() == UNARY_OP_IC || | 3470 kind() == UNARY_OP_IC || |
3469 kind() == BINARY_OP_IC || | 3471 kind() == BINARY_OP_IC || |
3470 kind() == COMPARE_IC || | 3472 kind() == COMPARE_IC || |
| 3473 kind() == LOAD_IC || |
| 3474 kind() == KEYED_LOAD_IC || |
3471 kind() == TO_BOOLEAN_IC); | 3475 kind() == TO_BOOLEAN_IC); |
3472 ASSERT(0 <= major && major < 256); | 3476 ASSERT(0 <= major && major < 256); |
3473 int previous = READ_UINT32_FIELD(this, kKindSpecificFlags2Offset); | 3477 int previous = READ_UINT32_FIELD(this, kKindSpecificFlags2Offset); |
3474 int updated = StubMajorKeyField::update(previous, major); | 3478 int updated = StubMajorKeyField::update(previous, major); |
3475 WRITE_UINT32_FIELD(this, kKindSpecificFlags2Offset, updated); | 3479 WRITE_UINT32_FIELD(this, kKindSpecificFlags2Offset, updated); |
3476 } | 3480 } |
3477 | 3481 |
3478 | 3482 |
3479 bool Code::is_pregenerated() { | 3483 bool Code::is_pregenerated() { |
3480 return kind() == STUB && IsPregeneratedField::decode(flags()); | 3484 return kind() == STUB && IsPregeneratedField::decode(flags()); |
(...skipping 1359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4840 | 4844 |
4841 void Code::set_type_feedback_info(Object* value, WriteBarrierMode mode) { | 4845 void Code::set_type_feedback_info(Object* value, WriteBarrierMode mode) { |
4842 ASSERT(kind() == FUNCTION); | 4846 ASSERT(kind() == FUNCTION); |
4843 WRITE_FIELD(this, kTypeFeedbackInfoOffset, value); | 4847 WRITE_FIELD(this, kTypeFeedbackInfoOffset, value); |
4844 CONDITIONAL_WRITE_BARRIER(GetHeap(), this, kTypeFeedbackInfoOffset, | 4848 CONDITIONAL_WRITE_BARRIER(GetHeap(), this, kTypeFeedbackInfoOffset, |
4845 value, mode); | 4849 value, mode); |
4846 } | 4850 } |
4847 | 4851 |
4848 | 4852 |
4849 int Code::stub_info() { | 4853 int Code::stub_info() { |
4850 ASSERT(kind() == COMPARE_IC || kind() == BINARY_OP_IC); | 4854 ASSERT(kind() == COMPARE_IC || kind() == BINARY_OP_IC || kind() == LOAD_IC); |
4851 Object* value = READ_FIELD(this, kTypeFeedbackInfoOffset); | 4855 Object* value = READ_FIELD(this, kTypeFeedbackInfoOffset); |
4852 return Smi::cast(value)->value(); | 4856 return Smi::cast(value)->value(); |
4853 } | 4857 } |
4854 | 4858 |
4855 | 4859 |
4856 void Code::set_stub_info(int value) { | 4860 void Code::set_stub_info(int value) { |
4857 ASSERT(kind() == COMPARE_IC || kind() == BINARY_OP_IC); | 4861 ASSERT(kind() == COMPARE_IC || |
| 4862 kind() == BINARY_OP_IC || |
| 4863 kind() == LOAD_IC || |
| 4864 kind() == KEYED_LOAD_IC); |
4858 WRITE_FIELD(this, kTypeFeedbackInfoOffset, Smi::FromInt(value)); | 4865 WRITE_FIELD(this, kTypeFeedbackInfoOffset, Smi::FromInt(value)); |
4859 } | 4866 } |
4860 | 4867 |
4861 | 4868 |
4862 void Code::set_deoptimizing_functions(Object* value) { | 4869 void Code::set_deoptimizing_functions(Object* value) { |
4863 ASSERT(kind() == OPTIMIZED_FUNCTION); | 4870 ASSERT(kind() == OPTIMIZED_FUNCTION); |
4864 WRITE_FIELD(this, kTypeFeedbackInfoOffset, value); | 4871 WRITE_FIELD(this, kTypeFeedbackInfoOffset, value); |
4865 } | 4872 } |
4866 | 4873 |
4867 | 4874 |
(...skipping 942 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5810 #undef WRITE_UINT32_FIELD | 5817 #undef WRITE_UINT32_FIELD |
5811 #undef READ_SHORT_FIELD | 5818 #undef READ_SHORT_FIELD |
5812 #undef WRITE_SHORT_FIELD | 5819 #undef WRITE_SHORT_FIELD |
5813 #undef READ_BYTE_FIELD | 5820 #undef READ_BYTE_FIELD |
5814 #undef WRITE_BYTE_FIELD | 5821 #undef WRITE_BYTE_FIELD |
5815 | 5822 |
5816 | 5823 |
5817 } } // namespace v8::internal | 5824 } } // namespace v8::internal |
5818 | 5825 |
5819 #endif // V8_OBJECTS_INL_H_ | 5826 #endif // V8_OBJECTS_INL_H_ |
OLD | NEW |