Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 128 : isolate_(isolate), | 128 : isolate_(isolate), |
| 129 code_range_(NULL), | 129 code_range_(NULL), |
| 130 free_list_(0), | 130 free_list_(0), |
| 131 allocation_list_(0), | 131 allocation_list_(0), |
| 132 current_allocation_block_index_(0) { | 132 current_allocation_block_index_(0) { |
| 133 } | 133 } |
| 134 | 134 |
| 135 | 135 |
| 136 bool CodeRange::SetUp(const size_t requested) { | 136 bool CodeRange::SetUp(const size_t requested) { |
| 137 ASSERT(code_range_ == NULL); | 137 ASSERT(code_range_ == NULL); |
| 138 size_t actual_requested = requested; | |
|
Michael Starzinger
2014/04/09 12:03:04
nit: Instead of having two variables "actual_reque
jochen (gone - plz use gerrit)
2014/04/09 12:44:56
Done.
| |
| 138 | 139 |
| 139 code_range_ = new VirtualMemory(requested); | 140 if (actual_requested == 0) { |
| 141 if (kIs64BitArch) { | |
| 142 actual_requested = 512 * MB; | |
| 143 } else { | |
| 144 return true; | |
| 145 } | |
| 146 } | |
| 147 | |
| 148 code_range_ = new VirtualMemory(actual_requested); | |
| 140 CHECK(code_range_ != NULL); | 149 CHECK(code_range_ != NULL); |
| 141 if (!code_range_->IsReserved()) { | 150 if (!code_range_->IsReserved()) { |
| 142 delete code_range_; | 151 delete code_range_; |
| 143 code_range_ = NULL; | 152 code_range_ = NULL; |
| 144 return false; | 153 return false; |
| 145 } | 154 } |
| 146 | 155 |
| 147 // We are sure that we have mapped a block of requested addresses. | 156 // We are sure that we have mapped a block of requested addresses. |
| 148 ASSERT(code_range_->size() == requested); | 157 ASSERT(code_range_->size() == actual_requested); |
| 149 LOG(isolate_, NewEvent("CodeRange", code_range_->address(), requested)); | 158 LOG(isolate_, |
| 159 NewEvent("CodeRange", code_range_->address(), actual_requested)); | |
| 150 Address base = reinterpret_cast<Address>(code_range_->address()); | 160 Address base = reinterpret_cast<Address>(code_range_->address()); |
| 151 Address aligned_base = | 161 Address aligned_base = |
| 152 RoundUp(reinterpret_cast<Address>(code_range_->address()), | 162 RoundUp(reinterpret_cast<Address>(code_range_->address()), |
| 153 MemoryChunk::kAlignment); | 163 MemoryChunk::kAlignment); |
| 154 size_t size = code_range_->size() - (aligned_base - base); | 164 size_t size = code_range_->size() - (aligned_base - base); |
| 155 allocation_list_.Add(FreeBlock(aligned_base, size)); | 165 allocation_list_.Add(FreeBlock(aligned_base, size)); |
| 156 current_allocation_block_index_ = 0; | 166 current_allocation_block_index_ = 0; |
| 157 return true; | 167 return true; |
| 158 } | 168 } |
| 159 | 169 |
| (...skipping 3042 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3202 object->ShortPrint(); | 3212 object->ShortPrint(); |
| 3203 PrintF("\n"); | 3213 PrintF("\n"); |
| 3204 } | 3214 } |
| 3205 printf(" --------------------------------------\n"); | 3215 printf(" --------------------------------------\n"); |
| 3206 printf(" Marked: %x, LiveCount: %x\n", mark_size, LiveBytes()); | 3216 printf(" Marked: %x, LiveCount: %x\n", mark_size, LiveBytes()); |
| 3207 } | 3217 } |
| 3208 | 3218 |
| 3209 #endif // DEBUG | 3219 #endif // DEBUG |
| 3210 | 3220 |
| 3211 } } // namespace v8::internal | 3221 } } // namespace v8::internal |
| OLD | NEW |