forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			67 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TableGen
		
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TableGen
		
	
	
	
| //- WebAssembly.td - Describe the WebAssembly Target Machine --*- tablegen -*-//
 | |
| //
 | |
| //                     The LLVM Compiler Infrastructure
 | |
| //
 | |
| // This file is distributed under the University of Illinois Open Source
 | |
| // License. See LICENSE.TXT for details.
 | |
| //
 | |
| //===----------------------------------------------------------------------===//
 | |
| ///
 | |
| /// \file
 | |
| /// \brief This is a target description file for the WebAssembly architecture,
 | |
| /// which is also known as "wasm".
 | |
| ///
 | |
| //===----------------------------------------------------------------------===//
 | |
| 
 | |
| //===----------------------------------------------------------------------===//
 | |
| // Target-independent interfaces which we are implementing
 | |
| //===----------------------------------------------------------------------===//
 | |
| 
 | |
| include "llvm/Target/Target.td"
 | |
| 
 | |
| //===----------------------------------------------------------------------===//
 | |
| // WebAssembly Subtarget features.
 | |
| //===----------------------------------------------------------------------===//
 | |
| 
 | |
| def FeatureSIMD128 : SubtargetFeature<"simd128", "HasSIMD128", "true",
 | |
|                                       "Enable 128-bit SIMD">;
 | |
| 
 | |
| //===----------------------------------------------------------------------===//
 | |
| // Architectures.
 | |
| //===----------------------------------------------------------------------===//
 | |
| 
 | |
| //===----------------------------------------------------------------------===//
 | |
| // Register File Description
 | |
| //===----------------------------------------------------------------------===//
 | |
| 
 | |
| include "WebAssemblyRegisterInfo.td"
 | |
| 
 | |
| //===----------------------------------------------------------------------===//
 | |
| // Instruction Descriptions
 | |
| //===----------------------------------------------------------------------===//
 | |
| 
 | |
| include "WebAssemblyInstrInfo.td"
 | |
| 
 | |
| def WebAssemblyInstrInfo : InstrInfo;
 | |
| 
 | |
| //===----------------------------------------------------------------------===//
 | |
| // WebAssembly Processors supported.
 | |
| //===----------------------------------------------------------------------===//
 | |
| 
 | |
| // Minimal Viable Product.
 | |
| def : ProcessorModel<"mvp", NoSchedModel, []>;
 | |
| 
 | |
| // Generic processor: latest stable version.
 | |
| def : ProcessorModel<"generic", NoSchedModel, []>;
 | |
| 
 | |
| // Latest and greatest experimental version of WebAssembly. Bugs included!
 | |
| def : ProcessorModel<"bleeding-edge", NoSchedModel, [FeatureSIMD128]>;
 | |
| 
 | |
| //===----------------------------------------------------------------------===//
 | |
| // Target Declaration
 | |
| //===----------------------------------------------------------------------===//
 | |
| 
 | |
| def WebAssembly : Target {
 | |
|   let InstructionSet = WebAssemblyInstrInfo;
 | |
| }
 |