WebAssembly.td revision 285163
1//- WebAssembly.td - Describe the WebAssembly Target Machine --*- 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// This is a target description file for the WebAssembly architecture, which is 11// also known as "wasm". 12// 13//===----------------------------------------------------------------------===// 14 15//===----------------------------------------------------------------------===// 16// Target-independent interfaces which we are implementing 17//===----------------------------------------------------------------------===// 18 19include "llvm/Target/Target.td" 20 21//===----------------------------------------------------------------------===// 22// WebAssembly Subtarget features. 23//===----------------------------------------------------------------------===// 24 25def FeatureSIMD128 : SubtargetFeature<"simd128", "HasSIMD128", "false", 26 "Enable 128-bit SIMD">; 27 28//===----------------------------------------------------------------------===// 29// Architectures. 30//===----------------------------------------------------------------------===// 31 32//===----------------------------------------------------------------------===// 33// Register File Description 34//===----------------------------------------------------------------------===// 35 36include "WebAssemblyRegisterInfo.td" 37 38//===----------------------------------------------------------------------===// 39// Instruction Descriptions 40//===----------------------------------------------------------------------===// 41 42include "WebAssemblyInstrInfo.td" 43 44def WebAssemblyInstrInfo : InstrInfo; 45 46//===----------------------------------------------------------------------===// 47// WebAssembly Processors supported. 48//===----------------------------------------------------------------------===// 49 50// Minimal Viable Product. 51def : ProcessorModel<"mvp", NoSchedModel, []>; 52 53// Latest and greatest experimental version of WebAssembly. Bugs included! 54def : ProcessorModel<"bleeding-edge", NoSchedModel, [FeatureSIMD128]>; 55 56//===----------------------------------------------------------------------===// 57// Target Declaration 58//===----------------------------------------------------------------------===// 59 60def WebAssembly : Target { 61 let InstructionSet = WebAssemblyInstrInfo; 62} 63