WebAssemblyInstrInfo.td revision 286684
1// WebAssemblyInstrInfo.td-Describe the WebAssembly Instructions-*- tablegen -*-
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9///
10/// \file
11/// \brief WebAssembly Instruction definitions.
12///
13//===----------------------------------------------------------------------===//
14
15//===----------------------------------------------------------------------===//
16// WebAssembly Instruction Predicate Definitions.
17//===----------------------------------------------------------------------===//
18
19def HasAddr32 : Predicate<"!Subtarget->hasAddr64()">;
20def HasAddr64 : Predicate<"Subtarget->hasAddr64()">;
21def HasSIMD128 : Predicate<"Subtarget->hasSIMD128()">,
22                           AssemblerPredicate<"FeatureSIMD128", "simd128">;
23
24//===----------------------------------------------------------------------===//
25// WebAssembly-specific DAG Node Types.
26//===----------------------------------------------------------------------===//
27
28//===----------------------------------------------------------------------===//
29// WebAssembly-specific DAG Nodes.
30//===----------------------------------------------------------------------===//
31
32//===----------------------------------------------------------------------===//
33// WebAssembly-specific Operands.
34//===----------------------------------------------------------------------===//
35
36/*
37 * TODO(jfb): Add the following.
38 *
39 * get_local: read the current value of a local variable
40 * set_local: set the current value of a local variable
41*/
42
43//===----------------------------------------------------------------------===//
44// WebAssembly Instruction Format Definitions.
45//===----------------------------------------------------------------------===//
46
47include "WebAssemblyInstrFormats.td"
48
49//===----------------------------------------------------------------------===//
50// Additional sets of instructions.
51//===----------------------------------------------------------------------===//
52
53include "WebAssemblyInstrMemory.td"
54include "WebAssemblyInstrCall.td"
55include "WebAssemblyInstrInteger.td"
56include "WebAssemblyInstrFloat.td"
57include "WebAssemblyInstrConv.td"
58include "WebAssemblyInstrAtomics.td"
59include "WebAssemblyInstrSIMD.td"
60