blob: 74998e8c9db5c24ced85d1daa094c5139b2b6c54 [file] [log] [blame]
// Copyright 2020 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef V8_BUILTINS_BUILTINS_WASM_GEN_H_
#define V8_BUILTINS_BUILTINS_WASM_GEN_H_
#include "src/codegen/code-stub-assembler.h"
namespace v8 {
namespace internal {
class WasmBuiltinsAssembler : public CodeStubAssembler {
public:
explicit WasmBuiltinsAssembler(compiler::CodeAssemblerState* state)
: CodeStubAssembler(state) {}
TNode<WasmTrustedInstanceData> LoadInstanceDataFromFrame();
TNode<WasmTrustedInstanceData> LoadTrustedDataFromInstance(
TNode<WasmInstanceObject>);
TNode<NativeContext> LoadContextFromWasmOrJsFrame();
TNode<NativeContext> LoadContextFromInstanceData(
TNode<WasmTrustedInstanceData>);
TNode<WasmTrustedInstanceData> LoadSharedPartFromInstanceData(
TNode<WasmTrustedInstanceData>);
TNode<FixedArray> LoadTablesFromInstanceData(TNode<WasmTrustedInstanceData>);
TNode<FixedArray> LoadFuncRefsFromInstanceData(
TNode<WasmTrustedInstanceData>);
TNode<FixedArray> LoadManagedObjectMapsFromInstanceData(
TNode<WasmTrustedInstanceData>);
TNode<Float64T> StringToFloat64(TNode<String>);
TNode<Uint32T> ToUint(wasm::StandardType kind) {
return Uint32Constant(static_cast<uint32_t>(kind));
}
TNode<Uint32T> ToUint(wasm::RefTypeKind kind) {
return Uint32Constant(static_cast<uint32_t>(kind));
}
};
} // namespace internal
} // namespace v8
#endif // V8_BUILTINS_BUILTINS_WASM_GEN_H_