mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
e8be0ee828
Reland of 31859f896. This change implements new DAG notes GLOBAL_GET/GLOBAL_SET, and lowering methods for load and stores of reference types from IR globals. Once the lowering creates the new nodes, tablegen pattern matches those and converts them to Wasm global.get/set. Reviewed By: tlively Differential Revision: https://reviews.llvm.org/D104797
54 lines
1.6 KiB
C++
54 lines
1.6 KiB
C++
//- WebAssemblyISD.def - WebAssembly ISD ---------------------------*- C++ -*-//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
///
|
|
/// \file
|
|
/// This file describes the various WebAssembly ISD node types.
|
|
///
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
// NOTE: NO INCLUDE GUARD DESIRED!
|
|
|
|
HANDLE_NODETYPE(CALL)
|
|
HANDLE_NODETYPE(RET_CALL)
|
|
HANDLE_NODETYPE(RETURN)
|
|
HANDLE_NODETYPE(ARGUMENT)
|
|
HANDLE_NODETYPE(LOCAL_GET)
|
|
HANDLE_NODETYPE(LOCAL_SET)
|
|
// A wrapper node for TargetExternalSymbol, TargetGlobalAddress, and MCSymbol
|
|
HANDLE_NODETYPE(Wrapper)
|
|
// A special wapper used in PIC code for __memory_base/__table_base relative
|
|
// access.
|
|
HANDLE_NODETYPE(WrapperPIC)
|
|
HANDLE_NODETYPE(BR_IF)
|
|
HANDLE_NODETYPE(BR_TABLE)
|
|
HANDLE_NODETYPE(SHUFFLE)
|
|
HANDLE_NODETYPE(SWIZZLE)
|
|
HANDLE_NODETYPE(VEC_SHL)
|
|
HANDLE_NODETYPE(VEC_SHR_S)
|
|
HANDLE_NODETYPE(VEC_SHR_U)
|
|
HANDLE_NODETYPE(EXTEND_LOW_S)
|
|
HANDLE_NODETYPE(EXTEND_LOW_U)
|
|
HANDLE_NODETYPE(EXTEND_HIGH_S)
|
|
HANDLE_NODETYPE(EXTEND_HIGH_U)
|
|
HANDLE_NODETYPE(CONVERT_LOW_S)
|
|
HANDLE_NODETYPE(CONVERT_LOW_U)
|
|
HANDLE_NODETYPE(PROMOTE_LOW)
|
|
HANDLE_NODETYPE(TRUNC_SAT_ZERO_S)
|
|
HANDLE_NODETYPE(TRUNC_SAT_ZERO_U)
|
|
HANDLE_NODETYPE(DEMOTE_ZERO)
|
|
HANDLE_NODETYPE(THROW)
|
|
HANDLE_NODETYPE(CATCH)
|
|
HANDLE_NODETYPE(MEMORY_COPY)
|
|
HANDLE_NODETYPE(MEMORY_FILL)
|
|
|
|
// Memory intrinsics
|
|
HANDLE_MEM_NODETYPE(LOAD_SPLAT)
|
|
HANDLE_MEM_NODETYPE(GLOBAL_GET)
|
|
HANDLE_MEM_NODETYPE(GLOBAL_SET)
|
|
HANDLE_MEM_NODETYPE(TABLE_SET)
|