Dan Gohman | 10e730a | 2015-06-29 23:51:55 +0000 | [diff] [blame] | 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 | //===----------------------------------------------------------------------===// |
JF Bastien | 5ca0bac | 2015-07-10 18:23:10 +0000 | [diff] [blame^] | 9 | /// |
| 10 | /// \file |
| 11 | /// \brief WebAssembly Instruction definitions. |
| 12 | /// |
Dan Gohman | 10e730a | 2015-06-29 23:51:55 +0000 | [diff] [blame] | 13 | //===----------------------------------------------------------------------===// |
| 14 | |
| 15 | //===----------------------------------------------------------------------===// |
| 16 | // WebAssembly Instruction Predicate Definitions. |
| 17 | //===----------------------------------------------------------------------===// |
| 18 | |
JF Bastien | 03855df | 2015-07-01 23:41:25 +0000 | [diff] [blame] | 19 | def HasAddr32 : Predicate<"!Subtarget->hasAddr64()">; |
| 20 | def HasAddr64 : Predicate<"Subtarget->hasAddr64()">; |
| 21 | def HasSIMD128 : Predicate<"Subtarget->hasSIMD128()">, |
| 22 | AssemblerPredicate<"FeatureSIMD128", "simd128">; |
| 23 | |
Dan Gohman | 10e730a | 2015-06-29 23:51:55 +0000 | [diff] [blame] | 24 | //===----------------------------------------------------------------------===// |
| 25 | // WebAssembly-specific DAG Node Types. |
| 26 | //===----------------------------------------------------------------------===// |
| 27 | |
| 28 | //===----------------------------------------------------------------------===// |
| 29 | // WebAssembly-specific DAG Nodes. |
| 30 | //===----------------------------------------------------------------------===// |
| 31 | |
| 32 | //===----------------------------------------------------------------------===// |
| 33 | // WebAssembly-specific Operands. |
| 34 | //===----------------------------------------------------------------------===// |
| 35 | |
JF Bastien | 5ca0bac | 2015-07-10 18:23:10 +0000 | [diff] [blame^] | 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 | |
Dan Gohman | 10e730a | 2015-06-29 23:51:55 +0000 | [diff] [blame] | 43 | //===----------------------------------------------------------------------===// |
| 44 | // WebAssembly Instruction Format Definitions. |
| 45 | //===----------------------------------------------------------------------===// |
| 46 | |
| 47 | include "WebAssemblyInstrFormats.td" |
| 48 | |
| 49 | //===----------------------------------------------------------------------===// |
| 50 | // Additional sets of instructions. |
| 51 | //===----------------------------------------------------------------------===// |
| 52 | |
JF Bastien | 5ca0bac | 2015-07-10 18:23:10 +0000 | [diff] [blame^] | 53 | include "WebAssemblyInstrMemory.td" |
| 54 | include "WebAssemblyInstrCall.td" |
| 55 | include "WebAssemblyInstrInteger.td" |
| 56 | include "WebAssemblyInstrFloat.td" |
| 57 | include "WebAssemblyInstrConv.td" |
Dan Gohman | 10e730a | 2015-06-29 23:51:55 +0000 | [diff] [blame] | 58 | include "WebAssemblyInstrAtomics.td" |
| 59 | include "WebAssemblyInstrSIMD.td" |