| 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/compiler/wasm-compiler.h" | 5 #include "src/compiler/wasm-compiler.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "src/isolate-inl.h" | 9 #include "src/isolate-inl.h" |
| 10 | 10 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 #include "src/compiler/pipeline.h" | 27 #include "src/compiler/pipeline.h" |
| 28 #include "src/compiler/simd-scalar-lowering.h" | 28 #include "src/compiler/simd-scalar-lowering.h" |
| 29 #include "src/compiler/zone-stats.h" | 29 #include "src/compiler/zone-stats.h" |
| 30 | 30 |
| 31 #include "src/code-factory.h" | 31 #include "src/code-factory.h" |
| 32 #include "src/code-stubs.h" | 32 #include "src/code-stubs.h" |
| 33 #include "src/factory.h" | 33 #include "src/factory.h" |
| 34 #include "src/log-inl.h" | 34 #include "src/log-inl.h" |
| 35 | 35 |
| 36 #include "src/wasm/ast-decoder.h" | 36 #include "src/wasm/ast-decoder.h" |
| 37 #include "src/wasm/wasm-limits.h" |
| 37 #include "src/wasm/wasm-module.h" | 38 #include "src/wasm/wasm-module.h" |
| 38 #include "src/wasm/wasm-opcodes.h" | 39 #include "src/wasm/wasm-opcodes.h" |
| 39 #include "src/wasm/wasm-text.h" | 40 #include "src/wasm/wasm-text.h" |
| 40 | 41 |
| 41 // TODO(titzer): pull WASM_64 up to a common header. | 42 // TODO(titzer): pull WASM_64 up to a common header. |
| 42 #if !V8_TARGET_ARCH_32_BIT || V8_TARGET_ARCH_X64 | 43 #if !V8_TARGET_ARCH_32_BIT || V8_TARGET_ARCH_X64 |
| 43 #define WASM_64 1 | 44 #define WASM_64 1 |
| 44 #else | 45 #else |
| 45 #define WASM_64 0 | 46 #define WASM_64 0 |
| 46 #endif | 47 #endif |
| (...skipping 1669 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1716 Node* load = | 1717 Node* load = |
| 1717 graph()->NewNode(load_op, stack_slot_result, jsgraph()->Int32Constant(0), | 1718 graph()->NewNode(load_op, stack_slot_result, jsgraph()->Int32Constant(0), |
| 1718 *effect_, *control_); | 1719 *effect_, *control_); |
| 1719 *effect_ = load; | 1720 *effect_ = load; |
| 1720 return load; | 1721 return load; |
| 1721 } | 1722 } |
| 1722 | 1723 |
| 1723 Node* WasmGraphBuilder::GrowMemory(Node* input) { | 1724 Node* WasmGraphBuilder::GrowMemory(Node* input) { |
| 1724 Diamond check_input_range( | 1725 Diamond check_input_range( |
| 1725 graph(), jsgraph()->common(), | 1726 graph(), jsgraph()->common(), |
| 1726 graph()->NewNode( | 1727 graph()->NewNode(jsgraph()->machine()->Uint32LessThanOrEqual(), input, |
| 1727 jsgraph()->machine()->Uint32LessThanOrEqual(), input, | 1728 jsgraph()->Uint32Constant(wasm::kV8MaxWasmMemoryPages)), |
| 1728 jsgraph()->Uint32Constant(wasm::WasmModule::kV8MaxPages)), | |
| 1729 BranchHint::kTrue); | 1729 BranchHint::kTrue); |
| 1730 | 1730 |
| 1731 check_input_range.Chain(*control_); | 1731 check_input_range.Chain(*control_); |
| 1732 | 1732 |
| 1733 Runtime::FunctionId function_id = Runtime::kWasmGrowMemory; | 1733 Runtime::FunctionId function_id = Runtime::kWasmGrowMemory; |
| 1734 const Runtime::Function* function = Runtime::FunctionForId(function_id); | 1734 const Runtime::Function* function = Runtime::FunctionForId(function_id); |
| 1735 CallDescriptor* desc = Linkage::GetRuntimeCallDescriptor( | 1735 CallDescriptor* desc = Linkage::GetRuntimeCallDescriptor( |
| 1736 jsgraph()->zone(), function_id, function->nargs, Operator::kNoThrow, | 1736 jsgraph()->zone(), function_id, function->nargs, Operator::kNoThrow, |
| 1737 CallDescriptor::kNoFlags); | 1737 CallDescriptor::kNoFlags); |
| 1738 wasm::ModuleEnv* module = module_; | 1738 wasm::ModuleEnv* module = module_; |
| (...skipping 1801 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3540 Smi::FromInt(instruction.instr_offset)); | 3540 Smi::FromInt(instruction.instr_offset)); |
| 3541 fn_protected->set(Code::kTrapDataSize * i + Code::kTrapLandingOffset, | 3541 fn_protected->set(Code::kTrapDataSize * i + Code::kTrapLandingOffset, |
| 3542 Smi::FromInt(instruction.landing_offset)); | 3542 Smi::FromInt(instruction.landing_offset)); |
| 3543 } | 3543 } |
| 3544 return fn_protected; | 3544 return fn_protected; |
| 3545 } | 3545 } |
| 3546 | 3546 |
| 3547 } // namespace compiler | 3547 } // namespace compiler |
| 3548 } // namespace internal | 3548 } // namespace internal |
| 3549 } // namespace v8 | 3549 } // namespace v8 |
| OLD | NEW |