You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.225
Former-commit-id: 10196d987d5fc5564b9d3b33b1fdf13190f4d0b5
This commit is contained in:
parent
32d52ae4ca
commit
f32dbaf0b2
80
external/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp
vendored
Normal file
80
external/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp
vendored
Normal file
@ -0,0 +1,80 @@
|
||||
//===-- RISCVMCTargetDesc.cpp - RISCV Target Descriptions -----------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
///
|
||||
/// This file provides RISCV-specific target descriptions.
|
||||
///
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "RISCVMCTargetDesc.h"
|
||||
#include "InstPrinter/RISCVInstPrinter.h"
|
||||
#include "RISCVMCAsmInfo.h"
|
||||
#include "llvm/ADT/STLExtras.h"
|
||||
#include "llvm/MC/MCAsmInfo.h"
|
||||
#include "llvm/MC/MCInstrInfo.h"
|
||||
#include "llvm/MC/MCRegisterInfo.h"
|
||||
#include "llvm/MC/MCStreamer.h"
|
||||
#include "llvm/MC/MCSubtargetInfo.h"
|
||||
#include "llvm/Support/ErrorHandling.h"
|
||||
#include "llvm/Support/TargetRegistry.h"
|
||||
|
||||
#define GET_INSTRINFO_MC_DESC
|
||||
#include "RISCVGenInstrInfo.inc"
|
||||
|
||||
#define GET_REGINFO_MC_DESC
|
||||
#include "RISCVGenRegisterInfo.inc"
|
||||
|
||||
#define GET_SUBTARGETINFO_MC_DESC
|
||||
#include "RISCVGenSubtargetInfo.inc"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
static MCInstrInfo *createRISCVMCInstrInfo() {
|
||||
MCInstrInfo *X = new MCInstrInfo();
|
||||
InitRISCVMCInstrInfo(X);
|
||||
return X;
|
||||
}
|
||||
|
||||
static MCRegisterInfo *createRISCVMCRegisterInfo(const Triple &TT) {
|
||||
MCRegisterInfo *X = new MCRegisterInfo();
|
||||
InitRISCVMCRegisterInfo(X, RISCV::X1);
|
||||
return X;
|
||||
}
|
||||
|
||||
static MCAsmInfo *createRISCVMCAsmInfo(const MCRegisterInfo &MRI,
|
||||
const Triple &TT) {
|
||||
return new RISCVMCAsmInfo(TT);
|
||||
}
|
||||
|
||||
static MCSubtargetInfo *createRISCVMCSubtargetInfo(const Triple &TT,
|
||||
StringRef CPU, StringRef FS) {
|
||||
std::string CPUName = CPU;
|
||||
if (CPUName.empty())
|
||||
CPUName = TT.isArch64Bit() ? "generic-rv64" : "generic-rv32";
|
||||
return createRISCVMCSubtargetInfoImpl(TT, CPUName, FS);
|
||||
}
|
||||
|
||||
static MCInstPrinter *createRISCVMCInstPrinter(const Triple &T,
|
||||
unsigned SyntaxVariant,
|
||||
const MCAsmInfo &MAI,
|
||||
const MCInstrInfo &MII,
|
||||
const MCRegisterInfo &MRI) {
|
||||
return new RISCVInstPrinter(MAI, MII, MRI);
|
||||
}
|
||||
|
||||
extern "C" void LLVMInitializeRISCVTargetMC() {
|
||||
for (Target *T : {&getTheRISCV32Target(), &getTheRISCV64Target()}) {
|
||||
TargetRegistry::RegisterMCAsmInfo(*T, createRISCVMCAsmInfo);
|
||||
TargetRegistry::RegisterMCInstrInfo(*T, createRISCVMCInstrInfo);
|
||||
TargetRegistry::RegisterMCRegInfo(*T, createRISCVMCRegisterInfo);
|
||||
TargetRegistry::RegisterMCAsmBackend(*T, createRISCVAsmBackend);
|
||||
TargetRegistry::RegisterMCCodeEmitter(*T, createRISCVMCCodeEmitter);
|
||||
TargetRegistry::RegisterMCInstPrinter(*T, createRISCVMCInstPrinter);
|
||||
TargetRegistry::RegisterMCSubtargetInfo(*T, createRISCVMCSubtargetInfo);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user