OLD | NEW |
1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 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 #include "src/code-stub-assembler.h" | 4 #include "src/code-stub-assembler.h" |
5 #include "src/code-factory.h" | 5 #include "src/code-factory.h" |
6 #include "src/frames-inl.h" | 6 #include "src/frames-inl.h" |
7 #include "src/frames.h" | 7 #include "src/frames.h" |
8 | 8 |
9 namespace v8 { | 9 namespace v8 { |
10 namespace internal { | 10 namespace internal { |
(...skipping 878 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
889 return address.value(); | 889 return address.value(); |
890 } | 890 } |
891 | 891 |
892 Node* CodeStubAssembler::Allocate(Node* size_in_bytes, AllocationFlags flags) { | 892 Node* CodeStubAssembler::Allocate(Node* size_in_bytes, AllocationFlags flags) { |
893 Comment("Allocate"); | 893 Comment("Allocate"); |
894 bool const new_space = !(flags & kPretenured); | 894 bool const new_space = !(flags & kPretenured); |
895 Node* top_address = ExternalConstant( | 895 Node* top_address = ExternalConstant( |
896 new_space | 896 new_space |
897 ? ExternalReference::new_space_allocation_top_address(isolate()) | 897 ? ExternalReference::new_space_allocation_top_address(isolate()) |
898 : ExternalReference::old_space_allocation_top_address(isolate())); | 898 : ExternalReference::old_space_allocation_top_address(isolate())); |
899 Node* limit_address = ExternalConstant( | 899 DCHECK_EQ(kPointerSize, |
900 new_space | 900 ExternalReference::new_space_allocation_limit_address(isolate()) |
901 ? ExternalReference::new_space_allocation_limit_address(isolate()) | 901 .address() - |
902 : ExternalReference::old_space_allocation_limit_address(isolate())); | 902 ExternalReference::new_space_allocation_top_address(isolate()) |
| 903 .address()); |
| 904 DCHECK_EQ(kPointerSize, |
| 905 ExternalReference::old_space_allocation_limit_address(isolate()) |
| 906 .address() - |
| 907 ExternalReference::old_space_allocation_top_address(isolate()) |
| 908 .address()); |
| 909 Node* limit_address = IntPtrAdd(top_address, IntPtrConstant(kPointerSize)); |
903 | 910 |
904 #ifdef V8_HOST_ARCH_32_BIT | 911 #ifdef V8_HOST_ARCH_32_BIT |
905 if (flags & kDoubleAlignment) { | 912 if (flags & kDoubleAlignment) { |
906 return AllocateRawAligned(size_in_bytes, flags, top_address, limit_address); | 913 return AllocateRawAligned(size_in_bytes, flags, top_address, limit_address); |
907 } | 914 } |
908 #endif | 915 #endif |
909 | 916 |
910 return AllocateRawUnaligned(size_in_bytes, flags, top_address, limit_address); | 917 return AllocateRawUnaligned(size_in_bytes, flags, top_address, limit_address); |
911 } | 918 } |
912 | 919 |
(...skipping 7455 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8368 Heap::kUndefinedValueRootIndex); | 8375 Heap::kUndefinedValueRootIndex); |
8369 StoreObjectFieldRoot(result, PromiseReactionJobInfo::kDebugNameOffset, | 8376 StoreObjectFieldRoot(result, PromiseReactionJobInfo::kDebugNameOffset, |
8370 Heap::kUndefinedValueRootIndex); | 8377 Heap::kUndefinedValueRootIndex); |
8371 StoreObjectFieldNoWriteBarrier(result, PromiseReactionJobInfo::kContextOffset, | 8378 StoreObjectFieldNoWriteBarrier(result, PromiseReactionJobInfo::kContextOffset, |
8372 context); | 8379 context); |
8373 return result; | 8380 return result; |
8374 } | 8381 } |
8375 | 8382 |
8376 } // namespace internal | 8383 } // namespace internal |
8377 } // namespace v8 | 8384 } // namespace v8 |
OLD | NEW |