Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(570)

Side by Side Diff: src/wasm/wasm-interpreter.cc

Issue 2626313003: [wasm] Change the constant kV8MaxWasmMemoryPages to a command line flag. (Closed)
Patch Set: Rebase Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/wasm/module-decoder.cc ('k') | src/wasm/wasm-js.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 4
5 #include "src/wasm/wasm-interpreter.h" 5 #include "src/wasm/wasm-interpreter.h"
6 6
7 #include "src/utils.h" 7 #include "src/utils.h"
8 #include "src/wasm/decoder.h" 8 #include "src/wasm/decoder.h"
9 #include "src/wasm/function-body-decoder.h" 9 #include "src/wasm/function-body-decoder.h"
10 #include "src/wasm/wasm-external-refs.h" 10 #include "src/wasm/wasm-external-refs.h"
(...skipping 598 matching lines...) Expand 10 before | Expand all | Expand 10 after
609 } 609 }
610 610
611 static inline int64_t ExecuteI64ReinterpretF64(WasmVal a) { 611 static inline int64_t ExecuteI64ReinterpretF64(WasmVal a) {
612 return a.to_unchecked<int64_t>(); 612 return a.to_unchecked<int64_t>();
613 } 613 }
614 614
615 static inline int32_t ExecuteGrowMemory(uint32_t delta_pages, 615 static inline int32_t ExecuteGrowMemory(uint32_t delta_pages,
616 WasmInstance* instance) { 616 WasmInstance* instance) {
617 // TODO(ahaas): Move memory allocation to wasm-module.cc for better 617 // TODO(ahaas): Move memory allocation to wasm-module.cc for better
618 // encapsulation. 618 // encapsulation.
619 if (delta_pages > wasm::kV8MaxWasmMemoryPages || 619 if (delta_pages > FLAG_wasm_max_mem_pages ||
620 delta_pages > instance->module->max_mem_pages) { 620 delta_pages > instance->module->max_mem_pages) {
621 return -1; 621 return -1;
622 } 622 }
623 uint32_t old_size = instance->mem_size; 623 uint32_t old_size = instance->mem_size;
624 uint32_t new_size; 624 uint32_t new_size;
625 byte* new_mem_start; 625 byte* new_mem_start;
626 if (instance->mem_size == 0) { 626 if (instance->mem_size == 0) {
627 // TODO(gdeepti): Fix bounds check to take into account size of memtype. 627 // TODO(gdeepti): Fix bounds check to take into account size of memtype.
628 new_size = delta_pages * wasm::WasmModule::kPageSize; 628 new_size = delta_pages * wasm::WasmModule::kPageSize;
629 new_mem_start = static_cast<byte*>(calloc(new_size, sizeof(byte))); 629 new_mem_start = static_cast<byte*>(calloc(new_size, sizeof(byte)));
630 if (!new_mem_start) { 630 if (!new_mem_start) {
631 return -1; 631 return -1;
632 } 632 }
633 } else { 633 } else {
634 DCHECK_NOT_NULL(instance->mem_start); 634 DCHECK_NOT_NULL(instance->mem_start);
635 new_size = old_size + delta_pages * wasm::WasmModule::kPageSize; 635 new_size = old_size + delta_pages * wasm::WasmModule::kPageSize;
636 if (new_size / wasm::WasmModule::kPageSize > wasm::kV8MaxWasmMemoryPages || 636 if (new_size / wasm::WasmModule::kPageSize > FLAG_wasm_max_mem_pages ||
637 new_size / wasm::WasmModule::kPageSize > 637 new_size / wasm::WasmModule::kPageSize >
638 instance->module->max_mem_pages) { 638 instance->module->max_mem_pages) {
639 return -1; 639 return -1;
640 } 640 }
641 new_mem_start = static_cast<byte*>(realloc(instance->mem_start, new_size)); 641 new_mem_start = static_cast<byte*>(realloc(instance->mem_start, new_size));
642 if (!new_mem_start) { 642 if (!new_mem_start) {
643 return -1; 643 return -1;
644 } 644 }
645 // Zero initializing uninitialized memory from realloc 645 // Zero initializing uninitialized memory from realloc
646 memset(new_mem_start + old_size, 0, new_size - old_size); 646 memset(new_mem_start + old_size, 0, new_size - old_size);
(...skipping 1262 matching lines...) Expand 10 before | Expand all | Expand 10 after
1909 return none; 1909 return none;
1910 } 1910 }
1911 1911
1912 void InterpretedFrame::SetLocalVal(int index, WasmVal val) { UNIMPLEMENTED(); } 1912 void InterpretedFrame::SetLocalVal(int index, WasmVal val) { UNIMPLEMENTED(); }
1913 1913
1914 void InterpretedFrame::SetExprVal(int pc, WasmVal val) { UNIMPLEMENTED(); } 1914 void InterpretedFrame::SetExprVal(int pc, WasmVal val) { UNIMPLEMENTED(); }
1915 1915
1916 } // namespace wasm 1916 } // namespace wasm
1917 } // namespace internal 1917 } // namespace internal
1918 } // namespace v8 1918 } // namespace v8
OLDNEW
« no previous file with comments | « src/wasm/module-decoder.cc ('k') | src/wasm/wasm-js.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698