OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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/macro-assembler.h" | 5 #include "src/macro-assembler.h" |
6 #include "src/objects.h" | 6 #include "src/objects.h" |
7 #include "src/v8.h" | 7 #include "src/v8.h" |
8 | 8 |
9 #include "src/wasm/decoder.h" | 9 #include "src/wasm/decoder.h" |
10 #include "src/wasm/module-decoder.h" | 10 #include "src/wasm/module-decoder.h" |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 } | 95 } |
96 case kDeclFunctions: { | 96 case kDeclFunctions: { |
97 // Functions require a signature table first. | 97 // Functions require a signature table first. |
98 CheckForPreviousSection(sections, kDeclSignatures, true); | 98 CheckForPreviousSection(sections, kDeclSignatures, true); |
99 int length; | 99 int length; |
100 uint32_t functions_count = u32v(&length, "functions count"); | 100 uint32_t functions_count = u32v(&length, "functions count"); |
101 module->functions->reserve(SafeReserve(functions_count)); | 101 module->functions->reserve(SafeReserve(functions_count)); |
102 // Set up module environment for verification. | 102 // Set up module environment for verification. |
103 ModuleEnv menv; | 103 ModuleEnv menv; |
104 menv.module = module; | 104 menv.module = module; |
105 menv.globals_area = 0; | 105 menv.instance = nullptr; |
106 menv.mem_start = 0; | |
107 menv.mem_end = 0; | |
108 menv.function_code = nullptr; | |
109 menv.asm_js = asm_js_; | 106 menv.asm_js = asm_js_; |
110 // Decode functions. | 107 // Decode functions. |
111 for (uint32_t i = 0; i < functions_count; i++) { | 108 for (uint32_t i = 0; i < functions_count; i++) { |
112 if (failed()) break; | 109 if (failed()) break; |
113 TRACE("DecodeFunction[%d] module+%d\n", i, | 110 TRACE("DecodeFunction[%d] module+%d\n", i, |
114 static_cast<int>(pc_ - start_)); | 111 static_cast<int>(pc_ - start_)); |
115 | 112 |
116 module->functions->push_back( | 113 module->functions->push_back( |
117 {nullptr, 0, 0, 0, 0, 0, 0, false, false}); | 114 {nullptr, 0, 0, 0, 0, 0, 0, false, false}); |
118 WasmFunction* function = &module->functions->back(); | 115 WasmFunction* function = &module->functions->back(); |
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
557 if (function_start > function_end) return FunctionError("start > end"); | 554 if (function_start > function_end) return FunctionError("start > end"); |
558 if (size > kMaxFunctionSize) | 555 if (size > kMaxFunctionSize) |
559 return FunctionError("size > maximum function size"); | 556 return FunctionError("size > maximum function size"); |
560 WasmFunction* function = new WasmFunction(); | 557 WasmFunction* function = new WasmFunction(); |
561 ModuleDecoder decoder(zone, function_start, function_end, false); | 558 ModuleDecoder decoder(zone, function_start, function_end, false); |
562 return decoder.DecodeSingleFunction(module_env, function); | 559 return decoder.DecodeSingleFunction(module_env, function); |
563 } | 560 } |
564 } // namespace wasm | 561 } // namespace wasm |
565 } // namespace internal | 562 } // namespace internal |
566 } // namespace v8 | 563 } // namespace v8 |
OLD | NEW |