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 #include "v8.h" | 5 #include "v8.h" |
6 | 6 |
7 #include "double.h" | 7 #include "double.h" |
8 #include "factory.h" | 8 #include "factory.h" |
9 #include "hydrogen-infer-representation.h" | 9 #include "hydrogen-infer-representation.h" |
10 #include "property-details-inl.h" | 10 #include "property-details-inl.h" |
(...skipping 3931 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3942 | 3942 |
3943 void HAllocate::CreateFreeSpaceFiller(int32_t free_space_size) { | 3943 void HAllocate::CreateFreeSpaceFiller(int32_t free_space_size) { |
3944 ASSERT(filler_free_space_size_ == NULL); | 3944 ASSERT(filler_free_space_size_ == NULL); |
3945 Zone* zone = block()->zone(); | 3945 Zone* zone = block()->zone(); |
3946 HInstruction* free_space_instr = | 3946 HInstruction* free_space_instr = |
3947 HInnerAllocatedObject::New(zone, context(), dominating_allocate_, | 3947 HInnerAllocatedObject::New(zone, context(), dominating_allocate_, |
3948 dominating_allocate_->size(), type()); | 3948 dominating_allocate_->size(), type()); |
3949 free_space_instr->InsertBefore(this); | 3949 free_space_instr->InsertBefore(this); |
3950 HConstant* filler_map = HConstant::CreateAndInsertAfter( | 3950 HConstant* filler_map = HConstant::CreateAndInsertAfter( |
3951 zone, Unique<Map>::CreateImmovable( | 3951 zone, Unique<Map>::CreateImmovable( |
3952 isolate()->factory()->free_space_map()), free_space_instr); | 3952 isolate()->factory()->free_space_map()), true, free_space_instr); |
3953 HInstruction* store_map = HStoreNamedField::New(zone, context(), | 3953 HInstruction* store_map = HStoreNamedField::New(zone, context(), |
3954 free_space_instr, HObjectAccess::ForMap(), filler_map); | 3954 free_space_instr, HObjectAccess::ForMap(), filler_map); |
3955 store_map->SetFlag(HValue::kHasNoObservableSideEffects); | 3955 store_map->SetFlag(HValue::kHasNoObservableSideEffects); |
3956 store_map->InsertAfter(filler_map); | 3956 store_map->InsertAfter(filler_map); |
3957 | 3957 |
3958 // We must explicitly force Smi representation here because on x64 we | 3958 // We must explicitly force Smi representation here because on x64 we |
3959 // would otherwise automatically choose int32, but the actual store | 3959 // would otherwise automatically choose int32, but the actual store |
3960 // requires a Smi-tagged value. | 3960 // requires a Smi-tagged value. |
3961 HConstant* filler_size = HConstant::CreateAndInsertAfter( | 3961 HConstant* filler_size = HConstant::CreateAndInsertAfter( |
3962 zone, context(), free_space_size, Representation::Smi(), store_map); | 3962 zone, context(), free_space_size, Representation::Smi(), store_map); |
(...skipping 813 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4776 break; | 4776 break; |
4777 case kExternalMemory: | 4777 case kExternalMemory: |
4778 stream->Add("[external-memory]"); | 4778 stream->Add("[external-memory]"); |
4779 break; | 4779 break; |
4780 } | 4780 } |
4781 | 4781 |
4782 stream->Add("@%d", offset()); | 4782 stream->Add("@%d", offset()); |
4783 } | 4783 } |
4784 | 4784 |
4785 } } // namespace v8::internal | 4785 } } // namespace v8::internal |
OLD | NEW |