1//===-- CSKY.td - Describe the CSKY 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
9include "llvm/Target/Target.td"
10
11//===----------------------------------------------------------------------===//
12// Registers, calling conventions, instruction descriptions.
13//===----------------------------------------------------------------------===//
14
15include "CSKYRegisterInfo.td"
16include "CSKYInstrInfo.td"
17
18//===----------------------------------------------------------------------===//
19// CSKY processors supported.
20//===----------------------------------------------------------------------===//
21
22def : ProcessorModel<"generic", NoSchedModel, []>;
23
24//===----------------------------------------------------------------------===//
25// Define the CSKY target.
26//===----------------------------------------------------------------------===//
27
28def CSKYInstrInfo : InstrInfo;
29
30
31def CSKYAsmParser : AsmParser {
32  let ShouldEmitMatchRegisterAltName = 1;
33  let AllowDuplicateRegisterNames = 1;
34}
35
36def CSKYAsmWriter : AsmWriter {
37  int PassSubtarget = 1;
38}
39
40def CSKY : Target {
41  let InstructionSet = CSKYInstrInfo;
42  let AssemblyParsers = [CSKYAsmParser];
43  let AssemblyWriters = [CSKYAsmWriter];
44  let AllowRegisterRenaming = 1;
45}
46