Line data Source code
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
3 : // found in the LICENSE file.
4 :
5 : #include "src/builtins/builtins-utils-gen.h"
6 : #include "src/code-stub-assembler.h"
7 : #include "src/objects-inl.h"
8 : #include "src/wasm/wasm-opcodes.h"
9 :
10 : namespace v8 {
11 : namespace internal {
12 :
13 : typedef compiler::Node Node;
14 :
15 129 : TF_BUILTIN(WasmStackGuard, CodeStubAssembler) {
16 43 : Node* context = SmiConstant(Smi::kZero);
17 43 : TailCallRuntime(Runtime::kWasmStackGuard, context);
18 43 : }
19 :
20 : #define DECLARE_ENUM(name) \
21 : TF_BUILTIN(ThrowWasm##name, CodeStubAssembler) { \
22 : int message_id = wasm::WasmOpcodes::TrapReasonToMessageId(wasm::k##name); \
23 : TailCallRuntime(Runtime::kThrowWasmErrorFromTrapIf, \
24 : SmiConstant(Smi::kZero), SmiConstant(message_id)); \
25 : }
26 1032 : FOREACH_WASM_TRAPREASON(DECLARE_ENUM)
27 : #undef DECLARE_ENUM
28 :
29 : } // namespace internal
30 : } // namespace v8
|