1*9880d681SAndroid Build Coastguard Worker//- WebAssembly.td - Describe the WebAssembly Target Machine --*- tablegen -*-// 2*9880d681SAndroid Build Coastguard Worker// 3*9880d681SAndroid Build Coastguard Worker// The LLVM Compiler Infrastructure 4*9880d681SAndroid Build Coastguard Worker// 5*9880d681SAndroid Build Coastguard Worker// This file is distributed under the University of Illinois Open Source 6*9880d681SAndroid Build Coastguard Worker// License. See LICENSE.TXT for details. 7*9880d681SAndroid Build Coastguard Worker// 8*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 9*9880d681SAndroid Build Coastguard Worker/// 10*9880d681SAndroid Build Coastguard Worker/// \file 11*9880d681SAndroid Build Coastguard Worker/// \brief This is a target description file for the WebAssembly architecture, 12*9880d681SAndroid Build Coastguard Worker/// which is also known as "wasm". 13*9880d681SAndroid Build Coastguard Worker/// 14*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 17*9880d681SAndroid Build Coastguard Worker// Target-independent interfaces which we are implementing 18*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workerinclude "llvm/Target/Target.td" 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 23*9880d681SAndroid Build Coastguard Worker// WebAssembly Subtarget features. 24*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Workerdef FeatureSIMD128 : SubtargetFeature<"simd128", "HasSIMD128", "false", 27*9880d681SAndroid Build Coastguard Worker "Enable 128-bit SIMD">; 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 30*9880d681SAndroid Build Coastguard Worker// Architectures. 31*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 34*9880d681SAndroid Build Coastguard Worker// Register File Description 35*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Workerinclude "WebAssemblyRegisterInfo.td" 38*9880d681SAndroid Build Coastguard Worker 39*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 40*9880d681SAndroid Build Coastguard Worker// Instruction Descriptions 41*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Workerinclude "WebAssemblyInstrInfo.td" 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Workerdef WebAssemblyInstrInfo : InstrInfo; 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 48*9880d681SAndroid Build Coastguard Worker// WebAssembly Processors supported. 49*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 50*9880d681SAndroid Build Coastguard Worker 51*9880d681SAndroid Build Coastguard Worker// Minimal Viable Product. 52*9880d681SAndroid Build Coastguard Workerdef : ProcessorModel<"mvp", NoSchedModel, []>; 53*9880d681SAndroid Build Coastguard Worker 54*9880d681SAndroid Build Coastguard Worker// Generic processor: latest stable version. 55*9880d681SAndroid Build Coastguard Workerdef : ProcessorModel<"generic", NoSchedModel, []>; 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Worker// Latest and greatest experimental version of WebAssembly. Bugs included! 58*9880d681SAndroid Build Coastguard Workerdef : ProcessorModel<"bleeding-edge", NoSchedModel, [FeatureSIMD128]>; 59*9880d681SAndroid Build Coastguard Worker 60*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 61*9880d681SAndroid Build Coastguard Worker// Target Declaration 62*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 63*9880d681SAndroid Build Coastguard Worker 64*9880d681SAndroid Build Coastguard Workerdef WebAssembly : Target { 65*9880d681SAndroid Build Coastguard Worker let InstructionSet = WebAssemblyInstrInfo; 66*9880d681SAndroid Build Coastguard Worker} 67