123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- //===-- RISCV.td - Describe the RISCV 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
- //
- //===----------------------------------------------------------------------===//
- include "llvm/Target/Target.td"
- //===----------------------------------------------------------------------===//
- // RISC-V subtarget features and instruction predicates.
- //===----------------------------------------------------------------------===//
- include "RISCVFeatures.td"
- //===----------------------------------------------------------------------===//
- // Named operands for CSR instructions.
- //===----------------------------------------------------------------------===//
- include "RISCVSystemOperands.td"
- //===----------------------------------------------------------------------===//
- // Registers, calling conventions, instruction descriptions.
- //===----------------------------------------------------------------------===//
- include "RISCVSchedule.td"
- include "RISCVRegisterInfo.td"
- include "RISCVCallingConv.td"
- include "RISCVInstrInfo.td"
- include "GISel/RISCVRegisterBanks.td"
- //===----------------------------------------------------------------------===//
- // RISC-V Scheduling Models
- //===----------------------------------------------------------------------===//
- include "RISCVSchedRocket.td"
- include "RISCVSchedSiFive7.td"
- include "RISCVSchedSyntacoreSCR1.td"
- //===----------------------------------------------------------------------===//
- // RISC-V processors supported.
- //===----------------------------------------------------------------------===//
- include "RISCVProcessors.td"
- //===----------------------------------------------------------------------===//
- // Define the RISC-V target.
- //===----------------------------------------------------------------------===//
- def RISCVInstrInfo : InstrInfo {
- let guessInstructionProperties = 0;
- }
- def RISCVAsmParser : AsmParser {
- let ShouldEmitMatchRegisterAltName = 1;
- let AllowDuplicateRegisterNames = 1;
- }
- def RISCVAsmWriter : AsmWriter {
- int PassSubtarget = 1;
- }
- def RISCV : Target {
- let InstructionSet = RISCVInstrInfo;
- let AssemblyParsers = [RISCVAsmParser];
- let AssemblyWriters = [RISCVAsmWriter];
- let AllowRegisterRenaming = 1;
- }
|