| Index: src/heap.cc
|
| diff --git a/src/heap.cc b/src/heap.cc
|
| index ef2906085ce57afee9a5243430ec3c77cd3e3168..139a64de6c6264052de8cd2544f301419a1afa28 100644
|
| --- a/src/heap.cc
|
| +++ b/src/heap.cc
|
| @@ -68,7 +68,7 @@ namespace internal {
|
|
|
| Heap::Heap()
|
| : isolate_(NULL),
|
| - code_range_size_(kIs64BitArch ? 512 * MB : 0),
|
| + code_range_size_(0),
|
| // semispace_size_ should be a power of 2 and old_generation_size_ should be
|
| // a multiple of Page::kPageSize.
|
| reserved_semispace_size_(8 * (kPointerSize / 4) * MB),
|
| @@ -165,15 +165,6 @@ Heap::Heap()
|
| // Ensure old_generation_size_ is a multiple of kPageSize.
|
| ASSERT(MB >= Page::kPageSize);
|
|
|
| - intptr_t max_virtual = OS::MaxVirtualMemory();
|
| -
|
| - if (max_virtual > 0) {
|
| - if (code_range_size_ > 0) {
|
| - // Reserve no more than 1/8 of the memory for the code range.
|
| - code_range_size_ = Min(code_range_size_, max_virtual >> 3);
|
| - }
|
| - }
|
| -
|
| memset(roots_, 0, sizeof(roots_[0]) * kRootListLength);
|
| native_contexts_list_ = NULL;
|
| array_buffers_list_ = Smi::FromInt(0);
|
| @@ -6137,7 +6128,8 @@ void Heap::IterateStrongRoots(ObjectVisitor* v, VisitMode mode) {
|
| // size is not big enough to fit all the initial objects.
|
| bool Heap::ConfigureHeap(int max_semispace_size,
|
| intptr_t max_old_gen_size,
|
| - intptr_t max_executable_size) {
|
| + intptr_t max_executable_size,
|
| + intptr_t code_range_size) {
|
| if (HasBeenSetUp()) return false;
|
|
|
| if (FLAG_stress_compaction) {
|
| @@ -6211,6 +6203,8 @@ bool Heap::ConfigureHeap(int max_semispace_size,
|
| FixedArray::SizeFor(JSObject::kInitialMaxFastElementArray) +
|
| AllocationMemento::kSize));
|
|
|
| + code_range_size_ = code_range_size;
|
| +
|
| configured_ = true;
|
| return true;
|
| }
|
| @@ -6219,7 +6213,8 @@ bool Heap::ConfigureHeap(int max_semispace_size,
|
| bool Heap::ConfigureHeapDefault() {
|
| return ConfigureHeap(static_cast<intptr_t>(FLAG_max_new_space_size / 2) * KB,
|
| static_cast<intptr_t>(FLAG_max_old_space_size) * MB,
|
| - static_cast<intptr_t>(FLAG_max_executable_size) * MB);
|
| + static_cast<intptr_t>(FLAG_max_executable_size) * MB,
|
| + static_cast<intptr_t>(0));
|
| }
|
|
|
|
|
| @@ -6372,16 +6367,10 @@ bool Heap::SetUp() {
|
| if (old_data_space_ == NULL) return false;
|
| if (!old_data_space_->SetUp()) return false;
|
|
|
| + if (!isolate_->code_range()->SetUp(code_range_size_)) return false;
|
| +
|
| // Initialize the code space, set its maximum capacity to the old
|
| // generation size. It needs executable memory.
|
| - // On 64-bit platform(s), we put all code objects in a 2 GB range of
|
| - // virtual address space, so that they can call each other with near calls.
|
| - if (code_range_size_ > 0) {
|
| - if (!isolate_->code_range()->SetUp(code_range_size_)) {
|
| - return false;
|
| - }
|
| - }
|
| -
|
| code_space_ =
|
| new OldSpace(this, max_old_generation_size_, CODE_SPACE, EXECUTABLE);
|
| if (code_space_ == NULL) return false;
|
|
|