// BuiltinsWebAssembly.def - WebAssembly builtin function database -*- C++ -*-//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
///
/// \file
/// This file defines the WebAssembly-specific builtin function database.
/// Users of this file must define the BUILTIN macro to make use of this
/// information.
///
//===----------------------------------------------------------------------===//

// The format of this database matches clang/Basic/Builtins.def.

// Query the current memory size, and increase the current memory size.
// Note that memory.size is not "c" (readnone) because it must be sequenced
// with respect to memory.grow calls.
BUILTIN(__builtin_wasm_memory_size, "zIi", "n")
BUILTIN(__builtin_wasm_memory_grow, "zIiz", "n")

// These are the old names.
BUILTIN(__builtin_wasm_mem_size, "zIi", "n")
BUILTIN(__builtin_wasm_mem_grow, "zIiz", "n")

// These are the old old names. They also lack the immediate field.
BUILTIN(__builtin_wasm_current_memory, "z", "n")
BUILTIN(__builtin_wasm_grow_memory, "zz", "n")

// Exception handling builtins.
BUILTIN(__builtin_wasm_throw, "vUiv*", "r")
BUILTIN(__builtin_wasm_rethrow, "v", "r")

// Atomic wait and notify.
BUILTIN(__builtin_wasm_atomic_wait_i32, "ii*iLLi", "n")
BUILTIN(__builtin_wasm_atomic_wait_i64, "iLLi*LLiLLi", "n")
BUILTIN(__builtin_wasm_atomic_notify, "Uii*i", "n")

// SIMD builtins
BUILTIN(__builtin_wasm_extract_lane_s_i8x16, "iV16cIi", "nc")
BUILTIN(__builtin_wasm_extract_lane_u_i8x16, "iV16cIi", "nc")
BUILTIN(__builtin_wasm_extract_lane_s_i16x8, "iV8sIi", "nc")
BUILTIN(__builtin_wasm_extract_lane_u_i16x8, "iV8sIi", "nc")
BUILTIN(__builtin_wasm_extract_lane_i32x4, "iV4iIi", "nc")
BUILTIN(__builtin_wasm_extract_lane_i64x2, "LLiV2LLiIi", "nc")
BUILTIN(__builtin_wasm_extract_lane_f32x4, "fV4fIi", "nc")
BUILTIN(__builtin_wasm_extract_lane_f64x2, "dV2dIi", "nc")

BUILTIN(__builtin_wasm_replace_lane_i8x16, "V16cV16cIii", "nc")
BUILTIN(__builtin_wasm_replace_lane_i16x8, "V8sV8sIii", "nc")
BUILTIN(__builtin_wasm_replace_lane_i32x4, "V4iV4iIii", "nc")
BUILTIN(__builtin_wasm_replace_lane_i64x2, "V2LLiV2LLiIiLLi", "nc")
BUILTIN(__builtin_wasm_replace_lane_f32x4, "V4fV4fIif", "nc")
BUILTIN(__builtin_wasm_replace_lane_f64x2, "V2dV2dIid", "nc")

BUILTIN(__builtin_wasm_add_saturate_s_i8x16, "V16cV16cV16c", "nc")
BUILTIN(__builtin_wasm_add_saturate_u_i8x16, "V16cV16cV16c", "nc")
BUILTIN(__builtin_wasm_add_saturate_s_i16x8, "V8sV8sV8s", "nc")
BUILTIN(__builtin_wasm_add_saturate_u_i16x8, "V8sV8sV8s", "nc")

BUILTIN(__builtin_wasm_sub_saturate_s_i8x16, "V16cV16cV16c", "nc")
BUILTIN(__builtin_wasm_sub_saturate_u_i8x16, "V16cV16cV16c", "nc")
BUILTIN(__builtin_wasm_sub_saturate_s_i16x8, "V8sV8sV8s", "nc")
BUILTIN(__builtin_wasm_sub_saturate_u_i16x8, "V8sV8sV8s", "nc")

BUILTIN(__builtin_wasm_any_true_i8x16, "iV16c", "nc")
BUILTIN(__builtin_wasm_any_true_i16x8, "iV8s", "nc")
BUILTIN(__builtin_wasm_any_true_i32x4, "iV4i", "nc")
BUILTIN(__builtin_wasm_any_true_i64x2, "iV2LLi", "nc")
BUILTIN(__builtin_wasm_all_true_i8x16, "iV16c", "nc")
BUILTIN(__builtin_wasm_all_true_i16x8, "iV8s", "nc")
BUILTIN(__builtin_wasm_all_true_i32x4, "iV4i", "nc")
BUILTIN(__builtin_wasm_all_true_i64x2, "iV2LLi", "nc")

BUILTIN(__builtin_wasm_abs_f32x4, "V4fV4f", "nc")
BUILTIN(__builtin_wasm_abs_f64x2, "V2dV2d", "nc")

BUILTIN(__builtin_wasm_sqrt_f32x4, "V4fV4f", "nc")
BUILTIN(__builtin_wasm_sqrt_f64x2, "V2dV2d", "nc")

#undef BUILTIN
