| 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 6408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6419 SMI_ACCESSORS(JSMessageObject, start_position, kStartPositionOffset) | 6419 SMI_ACCESSORS(JSMessageObject, start_position, kStartPositionOffset) |
| 6420 SMI_ACCESSORS(JSMessageObject, end_position, kEndPositionOffset) | 6420 SMI_ACCESSORS(JSMessageObject, end_position, kEndPositionOffset) |
| 6421 | 6421 |
| 6422 | 6422 |
| 6423 INT_ACCESSORS(Code, instruction_size, kInstructionSizeOffset) | 6423 INT_ACCESSORS(Code, instruction_size, kInstructionSizeOffset) |
| 6424 INT_ACCESSORS(Code, prologue_offset, kPrologueOffset) | 6424 INT_ACCESSORS(Code, prologue_offset, kPrologueOffset) |
| 6425 INT_ACCESSORS(Code, constant_pool_offset, kConstantPoolOffset) | 6425 INT_ACCESSORS(Code, constant_pool_offset, kConstantPoolOffset) |
| 6426 ACCESSORS(Code, relocation_info, ByteArray, kRelocationInfoOffset) | 6426 ACCESSORS(Code, relocation_info, ByteArray, kRelocationInfoOffset) |
| 6427 ACCESSORS(Code, handler_table, FixedArray, kHandlerTableOffset) | 6427 ACCESSORS(Code, handler_table, FixedArray, kHandlerTableOffset) |
| 6428 ACCESSORS(Code, deoptimization_data, FixedArray, kDeoptimizationDataOffset) | 6428 ACCESSORS(Code, deoptimization_data, FixedArray, kDeoptimizationDataOffset) |
| 6429 ACCESSORS(Code, source_position_table, ByteArray, kSourcePositionTableOffset) |
| 6429 ACCESSORS(Code, raw_type_feedback_info, Object, kTypeFeedbackInfoOffset) | 6430 ACCESSORS(Code, raw_type_feedback_info, Object, kTypeFeedbackInfoOffset) |
| 6430 ACCESSORS(Code, next_code_link, Object, kNextCodeLinkOffset) | 6431 ACCESSORS(Code, next_code_link, Object, kNextCodeLinkOffset) |
| 6431 | 6432 |
| 6432 | 6433 |
| 6433 void Code::WipeOutHeader() { | 6434 void Code::WipeOutHeader() { |
| 6434 WRITE_FIELD(this, kRelocationInfoOffset, NULL); | 6435 WRITE_FIELD(this, kRelocationInfoOffset, NULL); |
| 6435 WRITE_FIELD(this, kHandlerTableOffset, NULL); | 6436 WRITE_FIELD(this, kHandlerTableOffset, NULL); |
| 6436 WRITE_FIELD(this, kDeoptimizationDataOffset, NULL); | 6437 WRITE_FIELD(this, kDeoptimizationDataOffset, NULL); |
| 6438 WRITE_FIELD(this, kSourcePositionTableOffset, NULL); |
| 6437 // Do not wipe out major/minor keys on a code stub or IC | 6439 // Do not wipe out major/minor keys on a code stub or IC |
| 6438 if (!READ_FIELD(this, kTypeFeedbackInfoOffset)->IsSmi()) { | 6440 if (!READ_FIELD(this, kTypeFeedbackInfoOffset)->IsSmi()) { |
| 6439 WRITE_FIELD(this, kTypeFeedbackInfoOffset, NULL); | 6441 WRITE_FIELD(this, kTypeFeedbackInfoOffset, NULL); |
| 6440 } | 6442 } |
| 6441 WRITE_FIELD(this, kNextCodeLinkOffset, NULL); | 6443 WRITE_FIELD(this, kNextCodeLinkOffset, NULL); |
| 6442 WRITE_FIELD(this, kGCMetadataOffset, NULL); | 6444 WRITE_FIELD(this, kGCMetadataOffset, NULL); |
| 6443 } | 6445 } |
| 6444 | 6446 |
| 6445 | 6447 |
| 6446 Object* Code::type_feedback_info() { | 6448 Object* Code::type_feedback_info() { |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6486 | 6488 |
| 6487 int Code::body_size() { | 6489 int Code::body_size() { |
| 6488 return RoundUp(instruction_size(), kObjectAlignment); | 6490 return RoundUp(instruction_size(), kObjectAlignment); |
| 6489 } | 6491 } |
| 6490 | 6492 |
| 6491 int Code::SizeIncludingMetadata() { | 6493 int Code::SizeIncludingMetadata() { |
| 6492 int size = CodeSize(); | 6494 int size = CodeSize(); |
| 6493 size += relocation_info()->Size(); | 6495 size += relocation_info()->Size(); |
| 6494 size += deoptimization_data()->Size(); | 6496 size += deoptimization_data()->Size(); |
| 6495 size += handler_table()->Size(); | 6497 size += handler_table()->Size(); |
| 6498 if (kind() == FUNCTION) size += source_position_table()->Size(); |
| 6496 return size; | 6499 return size; |
| 6497 } | 6500 } |
| 6498 | 6501 |
| 6499 ByteArray* Code::unchecked_relocation_info() { | 6502 ByteArray* Code::unchecked_relocation_info() { |
| 6500 return reinterpret_cast<ByteArray*>(READ_FIELD(this, kRelocationInfoOffset)); | 6503 return reinterpret_cast<ByteArray*>(READ_FIELD(this, kRelocationInfoOffset)); |
| 6501 } | 6504 } |
| 6502 | 6505 |
| 6503 | 6506 |
| 6504 byte* Code::relocation_start() { | 6507 byte* Code::relocation_start() { |
| 6505 return unchecked_relocation_info()->GetDataStartAddress(); | 6508 return unchecked_relocation_info()->GetDataStartAddress(); |
| (...skipping 1445 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7951 #undef WRITE_INT64_FIELD | 7954 #undef WRITE_INT64_FIELD |
| 7952 #undef READ_BYTE_FIELD | 7955 #undef READ_BYTE_FIELD |
| 7953 #undef WRITE_BYTE_FIELD | 7956 #undef WRITE_BYTE_FIELD |
| 7954 #undef NOBARRIER_READ_BYTE_FIELD | 7957 #undef NOBARRIER_READ_BYTE_FIELD |
| 7955 #undef NOBARRIER_WRITE_BYTE_FIELD | 7958 #undef NOBARRIER_WRITE_BYTE_FIELD |
| 7956 | 7959 |
| 7957 } // namespace internal | 7960 } // namespace internal |
| 7958 } // namespace v8 | 7961 } // namespace v8 |
| 7959 | 7962 |
| 7960 #endif // V8_OBJECTS_INL_H_ | 7963 #endif // V8_OBJECTS_INL_H_ |
| OLD | NEW |