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.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 TF_BUILTIN(WasmStackGuard, CodeStubAssembler) { 16 Node* context = SmiConstant(Smi::kZero); 17 TailCallRuntime(Runtime::kWasmStackGuard, context); 18 } 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 FOREACH_WASM_TRAPREASON(DECLARE_ENUM) 27 #undef DECLARE_ENUM 28 29 } // namespace internal 30 } // namespace v8 31