| 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 2334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2345 PropertyType DescriptorArray::GetType(int descriptor_number) { | 2345 PropertyType DescriptorArray::GetType(int descriptor_number) { |
| 2346 return GetDetails(descriptor_number).type(); | 2346 return GetDetails(descriptor_number).type(); |
| 2347 } | 2347 } |
| 2348 | 2348 |
| 2349 | 2349 |
| 2350 int DescriptorArray::GetFieldIndex(int descriptor_number) { | 2350 int DescriptorArray::GetFieldIndex(int descriptor_number) { |
| 2351 return GetDetails(descriptor_number).field_index(); | 2351 return GetDetails(descriptor_number).field_index(); |
| 2352 } | 2352 } |
| 2353 | 2353 |
| 2354 | 2354 |
| 2355 JSFunction* DescriptorArray::GetConstantFunction(int descriptor_number) { | 2355 Object* DescriptorArray::GetConstant(int descriptor_number) { |
| 2356 return JSFunction::cast(GetValue(descriptor_number)); | 2356 return GetValue(descriptor_number); |
| 2357 } | 2357 } |
| 2358 | 2358 |
| 2359 | 2359 |
| 2360 Object* DescriptorArray::GetCallbacksObject(int descriptor_number) { | 2360 Object* DescriptorArray::GetCallbacksObject(int descriptor_number) { |
| 2361 ASSERT(GetType(descriptor_number) == CALLBACKS); | 2361 ASSERT(GetType(descriptor_number) == CALLBACKS); |
| 2362 return GetValue(descriptor_number); | 2362 return GetValue(descriptor_number); |
| 2363 } | 2363 } |
| 2364 | 2364 |
| 2365 | 2365 |
| 2366 AccessorDescriptor* DescriptorArray::GetCallbacks(int descriptor_number) { | 2366 AccessorDescriptor* DescriptorArray::GetCallbacks(int descriptor_number) { |
| (...skipping 1274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3641 if (FLAG_track_fields && details.representation().IsSmi()) { | 3641 if (FLAG_track_fields && details.representation().IsSmi()) { |
| 3642 return true; | 3642 return true; |
| 3643 } | 3643 } |
| 3644 if (FLAG_track_double_fields && details.representation().IsDouble()) { | 3644 if (FLAG_track_double_fields && details.representation().IsDouble()) { |
| 3645 return true; | 3645 return true; |
| 3646 } | 3646 } |
| 3647 if (FLAG_track_heap_object_fields && | 3647 if (FLAG_track_heap_object_fields && |
| 3648 details.representation().IsHeapObject()) { | 3648 details.representation().IsHeapObject()) { |
| 3649 return true; | 3649 return true; |
| 3650 } | 3650 } |
| 3651 if (FLAG_track_fields && details.type() == CONSTANT_FUNCTION) { | 3651 if (FLAG_track_fields && details.type() == CONSTANT) { |
| 3652 return true; | 3652 return true; |
| 3653 } | 3653 } |
| 3654 } | 3654 } |
| 3655 return false; | 3655 return false; |
| 3656 } | 3656 } |
| 3657 | 3657 |
| 3658 | 3658 |
| 3659 void Map::NotifyLeafMapLayoutChange() { | 3659 void Map::NotifyLeafMapLayoutChange() { |
| 3660 dependent_code()->DeoptimizeDependentCodeGroup( | 3660 dependent_code()->DeoptimizeDependentCodeGroup( |
| 3661 GetIsolate(), | 3661 GetIsolate(), |
| 3662 DependentCode::kPrototypeCheckGroup); | 3662 DependentCode::kPrototypeCheckGroup); |
| 3663 } | 3663 } |
| 3664 | 3664 |
| 3665 | 3665 |
| 3666 bool Map::CanOmitPrototypeChecks() { | 3666 bool Map::CanOmitPrototypeChecks() { |
| 3667 return !HasTransitionArray() && !is_dictionary_map() && | 3667 return !HasTransitionArray() && !is_dictionary_map() && |
| 3668 FLAG_omit_prototype_checks_for_leaf_maps; | 3668 FLAG_omit_prototype_checks_for_leaf_maps; |
| 3669 } | 3669 } |
| 3670 | 3670 |
| 3671 | 3671 |
| 3672 bool Map::CanOmitMapChecks() { |
| 3673 return !HasTransitionArray() && !is_dictionary_map() && |
| 3674 FLAG_omit_map_checks_for_leaf_maps; |
| 3675 } |
| 3676 |
| 3677 |
| 3672 int DependentCode::number_of_entries(DependencyGroup group) { | 3678 int DependentCode::number_of_entries(DependencyGroup group) { |
| 3673 if (length() == 0) return 0; | 3679 if (length() == 0) return 0; |
| 3674 return Smi::cast(get(group))->value(); | 3680 return Smi::cast(get(group))->value(); |
| 3675 } | 3681 } |
| 3676 | 3682 |
| 3677 | 3683 |
| 3678 void DependentCode::set_number_of_entries(DependencyGroup group, int value) { | 3684 void DependentCode::set_number_of_entries(DependencyGroup group, int value) { |
| 3679 set(group, Smi::FromInt(value)); | 3685 set(group, Smi::FromInt(value)); |
| 3680 } | 3686 } |
| 3681 | 3687 |
| (...skipping 1544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5226 kind() == BINARY_OP_IC || | 5232 kind() == BINARY_OP_IC || |
| 5227 kind() == STUB || | 5233 kind() == STUB || |
| 5228 kind() == LOAD_IC || | 5234 kind() == LOAD_IC || |
| 5229 kind() == KEYED_LOAD_IC || | 5235 kind() == KEYED_LOAD_IC || |
| 5230 kind() == STORE_IC || | 5236 kind() == STORE_IC || |
| 5231 kind() == KEYED_STORE_IC); | 5237 kind() == KEYED_STORE_IC); |
| 5232 WRITE_FIELD(this, kTypeFeedbackInfoOffset, Smi::FromInt(value)); | 5238 WRITE_FIELD(this, kTypeFeedbackInfoOffset, Smi::FromInt(value)); |
| 5233 } | 5239 } |
| 5234 | 5240 |
| 5235 | 5241 |
| 5236 void Code::set_deoptimizing_functions(Object* value) { | 5242 Object* Code::code_to_deoptimize_link() { |
| 5243 // Optimized code should not have type feedback. |
| 5244 ASSERT(kind() == OPTIMIZED_FUNCTION); |
| 5245 return READ_FIELD(this, kTypeFeedbackInfoOffset); |
| 5246 } |
| 5247 |
| 5248 |
| 5249 void Code::set_code_to_deoptimize_link(Object* value) { |
| 5237 ASSERT(kind() == OPTIMIZED_FUNCTION); | 5250 ASSERT(kind() == OPTIMIZED_FUNCTION); |
| 5238 WRITE_FIELD(this, kTypeFeedbackInfoOffset, value); | 5251 WRITE_FIELD(this, kTypeFeedbackInfoOffset, value); |
| 5239 } | 5252 } |
| 5240 | 5253 |
| 5241 | 5254 |
| 5242 Object* Code::deoptimizing_functions() { | 5255 Object** Code::code_to_deoptimize_link_slot() { |
| 5243 ASSERT(kind() == OPTIMIZED_FUNCTION); | 5256 ASSERT(kind() == OPTIMIZED_FUNCTION); |
| 5244 return Object::cast(READ_FIELD(this, kTypeFeedbackInfoOffset)); | 5257 return HeapObject::RawField(this, kTypeFeedbackInfoOffset); |
| 5245 } | 5258 } |
| 5246 | 5259 |
| 5247 | 5260 |
| 5248 ACCESSORS(Code, gc_metadata, Object, kGCMetadataOffset) | 5261 ACCESSORS(Code, gc_metadata, Object, kGCMetadataOffset) |
| 5249 INT_ACCESSORS(Code, ic_age, kICAgeOffset) | 5262 INT_ACCESSORS(Code, ic_age, kICAgeOffset) |
| 5250 | 5263 |
| 5251 | 5264 |
| 5252 byte* Code::instruction_start() { | 5265 byte* Code::instruction_start() { |
| 5253 return FIELD_ADDR(this, kHeaderSize); | 5266 return FIELD_ADDR(this, kHeaderSize); |
| 5254 } | 5267 } |
| (...skipping 939 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6194 #undef WRITE_UINT32_FIELD | 6207 #undef WRITE_UINT32_FIELD |
| 6195 #undef READ_SHORT_FIELD | 6208 #undef READ_SHORT_FIELD |
| 6196 #undef WRITE_SHORT_FIELD | 6209 #undef WRITE_SHORT_FIELD |
| 6197 #undef READ_BYTE_FIELD | 6210 #undef READ_BYTE_FIELD |
| 6198 #undef WRITE_BYTE_FIELD | 6211 #undef WRITE_BYTE_FIELD |
| 6199 | 6212 |
| 6200 | 6213 |
| 6201 } } // namespace v8::internal | 6214 } } // namespace v8::internal |
| 6202 | 6215 |
| 6203 #endif // V8_OBJECTS_INL_H_ | 6216 #endif // V8_OBJECTS_INL_H_ |
| OLD | NEW |