1 //===-- RISCVMCTargetDesc.h - RISCV Target Descriptions ---------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file provides RISCV specific target descriptions.
12 //===----------------------------------------------------------------------===//
14 #ifndef LLVM_LIB_TARGET_RISCV_MCTARGETDESC_RISCVMCTARGETDESC_H
15 #define LLVM_LIB_TARGET_RISCV_MCTARGETDESC_RISCVMCTARGETDESC_H
17 #include "llvm/MC/MCTargetOptions.h"
18 #include "llvm/Support/DataTypes.h"
19 #include "llvm/Config/config.h"
28 class MCSubtargetInfo;
33 class raw_pwrite_stream;
35 Target &getTheRISCV32Target();
36 Target &getTheRISCV64Target();
38 MCCodeEmitter *createRISCVMCCodeEmitter(const MCInstrInfo &MCII,
39 const MCRegisterInfo &MRI,
42 MCAsmBackend *createRISCVAsmBackend(const Target &T, const MCRegisterInfo &MRI,
43 const Triple &TT, StringRef CPU,
44 const MCTargetOptions &Options);
46 MCObjectWriter *createRISCVELFObjectWriter(raw_pwrite_stream &OS, uint8_t OSABI,
50 // Defines symbolic names for RISC-V registers.
51 #define GET_REGINFO_ENUM
52 #include "RISCVGenRegisterInfo.inc"
54 // Defines symbolic names for RISC-V instructions.
55 #define GET_INSTRINFO_ENUM
56 #include "RISCVGenInstrInfo.inc"