blob: b30997533ddfa7635e9a4519ba8989729a42debf [file] [log] [blame]
Alex Bradbury6b2cca72016-11-01 23:47:30 +00001//===-- RISCVMCTargetDesc.h - RISCV Target Descriptions ---------*- C++ -*-===//
2//
Chandler Carruth2946cd72019-01-19 08:50:56 +00003// 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
Alex Bradbury6b2cca72016-11-01 23:47:30 +00006//
7//===----------------------------------------------------------------------===//
8//
9// This file provides RISCV specific target descriptions.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_LIB_TARGET_RISCV_MCTARGETDESC_RISCVMCTARGETDESC_H
14#define LLVM_LIB_TARGET_RISCV_MCTARGETDESC_RISCVMCTARGETDESC_H
15
Chandler Carruth6bda14b2017-06-06 11:49:48 +000016#include "llvm/Config/config.h"
Alex Bradbury6b2cca72016-11-01 23:47:30 +000017#include "llvm/MC/MCTargetOptions.h"
18#include "llvm/Support/DataTypes.h"
Alex Bradbury5c1eef42017-10-11 12:09:06 +000019#include <memory>
Alex Bradbury6b2cca72016-11-01 23:47:30 +000020
21namespace llvm {
22class MCAsmBackend;
23class MCCodeEmitter;
24class MCContext;
25class MCInstrInfo;
Peter Collingbournedcd7d6c2018-05-21 19:20:29 +000026class MCObjectTargetWriter;
Alex Bradbury6b2cca72016-11-01 23:47:30 +000027class MCRegisterInfo;
28class MCSubtargetInfo;
29class StringRef;
30class Target;
31class Triple;
32class raw_ostream;
33class raw_pwrite_stream;
34
Alex Bradbury6b2cca72016-11-01 23:47:30 +000035MCCodeEmitter *createRISCVMCCodeEmitter(const MCInstrInfo &MCII,
36 const MCRegisterInfo &MRI,
37 MCContext &Ctx);
38
Alex Bradburyb22f7512018-01-03 08:53:05 +000039MCAsmBackend *createRISCVAsmBackend(const Target &T, const MCSubtargetInfo &STI,
40 const MCRegisterInfo &MRI,
Alex Bradbury6b2cca72016-11-01 23:47:30 +000041 const MCTargetOptions &Options);
42
Peter Collingbournedcd7d6c2018-05-21 19:20:29 +000043std::unique_ptr<MCObjectTargetWriter> createRISCVELFObjectWriter(uint8_t OSABI,
44 bool Is64Bit);
Alex Bradbury6b2cca72016-11-01 23:47:30 +000045}
46
47// Defines symbolic names for RISC-V registers.
48#define GET_REGINFO_ENUM
49#include "RISCVGenRegisterInfo.inc"
50
51// Defines symbolic names for RISC-V instructions.
52#define GET_INSTRINFO_ENUM
53#include "RISCVGenInstrInfo.inc"
54
Alex Bradbury8ab4a962017-09-17 14:36:28 +000055#define GET_SUBTARGETINFO_ENUM
56#include "RISCVGenSubtargetInfo.inc"
57
Alex Bradbury6b2cca72016-11-01 23:47:30 +000058#endif