1//- DirectX.td - Describe the DirectX Target Machine ----------*- tablegen -*-//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8///
9/// \file
10/// This is a target description file for the DirectX target
11///
12//===----------------------------------------------------------------------===//
13
14//===----------------------------------------------------------------------===//
15// Target-independent interfaces which we are implementing
16//===----------------------------------------------------------------------===//
17
18include "llvm/Target/Target.td"
19include "DXILStubs.td"
20
21//===----------------------------------------------------------------------===//
22// DirectX Subtarget features.
23//===----------------------------------------------------------------------===//
24
25def DirectXInstrInfo : InstrInfo;
26
27//===----------------------------------------------------------------------===//
28// DirectX Processors supported.
29//===----------------------------------------------------------------------===//
30
31def : ProcessorModel<"generic", NoSchedModel, []>;
32
33
34//===----------------------------------------------------------------------===//
35// Target Declaration
36//===----------------------------------------------------------------------===//
37
38def DirectXAsmParser : AsmParser {
39  // The physical register names are not in the binary format or asm text
40  let ShouldEmitMatchRegisterName = 0;
41}
42
43def DirectXAsmWriter : AsmWriter {
44  string AsmWriterClassName  = "InstPrinter";
45  int PassSubtarget = 0;
46  int Variant = 0;
47  bit isMCAsmWriter = 1;
48}
49
50def DirectX : Target {
51  let InstructionSet = DirectXInstrInfo;
52  let AssemblyParsers  = [DirectXAsmParser];
53  let AssemblyWriters = [DirectXAsmWriter];
54}
55