xref: /freebsd/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyISD.def (revision 349cc55c9796c4596a5b9904cd3281af295f878f)
10b57cec5SDimitry Andric//- WebAssemblyISD.def - WebAssembly ISD ---------------------------*- C++ -*-//
20b57cec5SDimitry Andric//
30b57cec5SDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric// See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric//
70b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
80b57cec5SDimitry Andric///
90b57cec5SDimitry Andric/// \file
100b57cec5SDimitry Andric/// This file describes the various WebAssembly ISD node types.
110b57cec5SDimitry Andric///
120b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
130b57cec5SDimitry Andric
140b57cec5SDimitry Andric// NOTE: NO INCLUDE GUARD DESIRED!
150b57cec5SDimitry Andric
165ffd83dbSDimitry AndricHANDLE_NODETYPE(CALL)
170b57cec5SDimitry AndricHANDLE_NODETYPE(RET_CALL)
180b57cec5SDimitry AndricHANDLE_NODETYPE(RETURN)
190b57cec5SDimitry AndricHANDLE_NODETYPE(ARGUMENT)
20fe6060f1SDimitry AndricHANDLE_NODETYPE(LOCAL_GET)
21fe6060f1SDimitry AndricHANDLE_NODETYPE(LOCAL_SET)
220b57cec5SDimitry Andric// A wrapper node for TargetExternalSymbol, TargetGlobalAddress, and MCSymbol
230b57cec5SDimitry AndricHANDLE_NODETYPE(Wrapper)
24*349cc55cSDimitry Andric// A special node for TargetGlobalAddress used in PIC code for
25*349cc55cSDimitry Andric// __memory_base/__table_base relative access.
26*349cc55cSDimitry AndricHANDLE_NODETYPE(WrapperREL)
270b57cec5SDimitry AndricHANDLE_NODETYPE(BR_IF)
280b57cec5SDimitry AndricHANDLE_NODETYPE(BR_TABLE)
290b57cec5SDimitry AndricHANDLE_NODETYPE(SHUFFLE)
308bcb0991SDimitry AndricHANDLE_NODETYPE(SWIZZLE)
310b57cec5SDimitry AndricHANDLE_NODETYPE(VEC_SHL)
320b57cec5SDimitry AndricHANDLE_NODETYPE(VEC_SHR_S)
330b57cec5SDimitry AndricHANDLE_NODETYPE(VEC_SHR_U)
34fe6060f1SDimitry AndricHANDLE_NODETYPE(EXTEND_LOW_S)
35fe6060f1SDimitry AndricHANDLE_NODETYPE(EXTEND_LOW_U)
36fe6060f1SDimitry AndricHANDLE_NODETYPE(EXTEND_HIGH_S)
37fe6060f1SDimitry AndricHANDLE_NODETYPE(EXTEND_HIGH_U)
38fe6060f1SDimitry AndricHANDLE_NODETYPE(CONVERT_LOW_S)
39fe6060f1SDimitry AndricHANDLE_NODETYPE(CONVERT_LOW_U)
40fe6060f1SDimitry AndricHANDLE_NODETYPE(PROMOTE_LOW)
41fe6060f1SDimitry AndricHANDLE_NODETYPE(TRUNC_SAT_ZERO_S)
42fe6060f1SDimitry AndricHANDLE_NODETYPE(TRUNC_SAT_ZERO_U)
43fe6060f1SDimitry AndricHANDLE_NODETYPE(DEMOTE_ZERO)
440b57cec5SDimitry AndricHANDLE_NODETYPE(MEMORY_COPY)
450b57cec5SDimitry AndricHANDLE_NODETYPE(MEMORY_FILL)
460b57cec5SDimitry Andric
47480093f4SDimitry Andric// Memory intrinsics
48480093f4SDimitry AndricHANDLE_MEM_NODETYPE(LOAD_SPLAT)
49fe6060f1SDimitry AndricHANDLE_MEM_NODETYPE(GLOBAL_GET)
50fe6060f1SDimitry AndricHANDLE_MEM_NODETYPE(GLOBAL_SET)
51*349cc55cSDimitry AndricHANDLE_MEM_NODETYPE(TABLE_GET)
52fe6060f1SDimitry AndricHANDLE_MEM_NODETYPE(TABLE_SET)
53