OLD | NEW |
1 // Copyright 2017 the V8 project authors. All rights reserved. | 1 // Copyright 2017 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/builtins/builtins-utils.h" | 5 #include "src/builtins/builtins-utils-gen.h" |
6 #include "src/code-stub-assembler.h" | 6 #include "src/code-stub-assembler.h" |
7 #include "src/objects-inl.h" | 7 #include "src/objects-inl.h" |
8 #include "src/wasm/wasm-opcodes.h" | 8 #include "src/wasm/wasm-opcodes.h" |
9 | 9 |
10 namespace v8 { | 10 namespace v8 { |
11 namespace internal { | 11 namespace internal { |
12 | 12 |
13 typedef compiler::Node Node; | 13 typedef compiler::Node Node; |
14 | 14 |
15 TF_BUILTIN(WasmStackGuard, CodeStubAssembler) { | 15 TF_BUILTIN(WasmStackGuard, CodeStubAssembler) { |
16 Node* context = SmiConstant(Smi::kZero); | 16 Node* context = SmiConstant(Smi::kZero); |
17 TailCallRuntime(Runtime::kWasmStackGuard, context); | 17 TailCallRuntime(Runtime::kWasmStackGuard, context); |
18 } | 18 } |
19 | 19 |
20 #define DECLARE_ENUM(name) \ | 20 #define DECLARE_ENUM(name) \ |
21 TF_BUILTIN(ThrowWasm##name, CodeStubAssembler) { \ | 21 TF_BUILTIN(ThrowWasm##name, CodeStubAssembler) { \ |
22 int message_id = wasm::WasmOpcodes::TrapReasonToMessageId(wasm::k##name); \ | 22 int message_id = wasm::WasmOpcodes::TrapReasonToMessageId(wasm::k##name); \ |
23 TailCallRuntime(Runtime::kThrowWasmErrorFromTrapIf, \ | 23 TailCallRuntime(Runtime::kThrowWasmErrorFromTrapIf, \ |
24 SmiConstant(Smi::kZero), SmiConstant(message_id)); \ | 24 SmiConstant(Smi::kZero), SmiConstant(message_id)); \ |
25 } | 25 } |
26 FOREACH_WASM_TRAPREASON(DECLARE_ENUM) | 26 FOREACH_WASM_TRAPREASON(DECLARE_ENUM) |
27 #undef DECLARE_ENUM | 27 #undef DECLARE_ENUM |
28 | 28 |
29 } // namespace internal | 29 } // namespace internal |
30 } // namespace v8 | 30 } // namespace v8 |
OLD | NEW |