|  | //- DirectX.td - Describe the DirectX Target Machine ----------*- tablegen -*-// | 
|  | // | 
|  | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | 
|  | // See https://llvm.org/LICENSE.txt for license information. | 
|  | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  | /// | 
|  | /// \file | 
|  | /// This is a target description file for the DirectX target | 
|  | /// | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | //===----------------------------------------------------------------------===// | 
|  | // Target-independent interfaces which we are implementing | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | include "llvm/Target/Target.td" | 
|  | include "DXILStubs.td" | 
|  |  | 
|  | //===----------------------------------------------------------------------===// | 
|  | // DirectX Subtarget features. | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | def DirectXInstrInfo : InstrInfo; | 
|  |  | 
|  | //===----------------------------------------------------------------------===// | 
|  | // DirectX Processors supported. | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | def : ProcessorModel<"generic", NoSchedModel, []>; | 
|  |  | 
|  |  | 
|  | //===----------------------------------------------------------------------===// | 
|  | // Target Declaration | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | def DirectXAsmParser : AsmParser { | 
|  | // The physical register names are not in the binary format or asm text | 
|  | let ShouldEmitMatchRegisterName = 0; | 
|  | } | 
|  |  | 
|  | def DirectXAsmWriter : AsmWriter { | 
|  | string AsmWriterClassName  = "InstPrinter"; | 
|  | int PassSubtarget = 0; | 
|  | int Variant = 0; | 
|  | bit isMCAsmWriter = 1; | 
|  | } | 
|  |  | 
|  | def DirectX : Target { | 
|  | let InstructionSet = DirectXInstrInfo; | 
|  | let AssemblyParsers  = [DirectXAsmParser]; | 
|  | let AssemblyWriters = [DirectXAsmWriter]; | 
|  | } |