AMDGPUMCTargetDesc.cpp revision e30b4644b613a130318cdf240ad237b0afbc525a
1a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard#include "AMDILMCTargetDesc.h" 2a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard#include "AMDILMCAsmInfo.h" 3e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard#include "InstPrinter/AMDGPUInstPrinter.h" 4a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard#include "llvm/MC/MachineLocation.h" 5a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard#include "llvm/MC/MCCodeGenInfo.h" 6a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard#include "llvm/MC/MCInstrInfo.h" 7a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard#include "llvm/MC/MCRegisterInfo.h" 8a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard#include "llvm/MC/MCSubtargetInfo.h" 9a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard#include "llvm/Support/ErrorHandling.h" 10a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard#include "llvm/Support/TargetRegistry.h" 11a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard 12a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard#define GET_INSTRINFO_MC_DESC 1365917004d99ccb79f709e621f8f6cf66715ffdcaTom Stellard#include "AMDGPUGenInstrInfo.inc" 14a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard 15a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard#define GET_SUBTARGETINFO_MC_DESC 1665917004d99ccb79f709e621f8f6cf66715ffdcaTom Stellard#include "AMDGPUGenSubtargetInfo.inc" 17a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard 18a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard#define GET_REGINFO_MC_DESC 1965917004d99ccb79f709e621f8f6cf66715ffdcaTom Stellard#include "AMDGPUGenRegisterInfo.inc" 20a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard 21a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellardusing namespace llvm; 22a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard 239c42fb6f26bb7db1bc793f5fcc922bbae6700d74Tom Stellardstatic MCInstrInfo *createAMDGPUMCInstrInfo() { 24a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard MCInstrInfo *X = new MCInstrInfo(); 259c42fb6f26bb7db1bc793f5fcc922bbae6700d74Tom Stellard InitAMDGPUMCInstrInfo(X); 26a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard return X; 27a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard} 28a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard 299c42fb6f26bb7db1bc793f5fcc922bbae6700d74Tom Stellardstatic MCRegisterInfo *createAMDGPUMCRegisterInfo(StringRef TT) { 30a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard MCRegisterInfo *X = new MCRegisterInfo(); 319c42fb6f26bb7db1bc793f5fcc922bbae6700d74Tom Stellard InitAMDGPUMCRegisterInfo(X, 0); 32a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard return X; 33a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard} 34a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard 359c42fb6f26bb7db1bc793f5fcc922bbae6700d74Tom Stellardstatic MCSubtargetInfo *createAMDGPUMCSubtargetInfo(StringRef TT, StringRef CPU, 36a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard StringRef FS) { 37a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard MCSubtargetInfo * X = new MCSubtargetInfo(); 389c42fb6f26bb7db1bc793f5fcc922bbae6700d74Tom Stellard InitAMDGPUMCSubtargetInfo(X, TT, CPU, FS); 39a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard return X; 40a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard} 41a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard 429c42fb6f26bb7db1bc793f5fcc922bbae6700d74Tom Stellardstatic MCCodeGenInfo *createAMDGPUMCCodeGenInfo(StringRef TT, Reloc::Model RM, 43a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard CodeModel::Model CM, 44a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard CodeGenOpt::Level OL) { 45a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard MCCodeGenInfo *X = new MCCodeGenInfo(); 46a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard X->InitMCCodeGenInfo(RM, CM, OL); 47a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard return X; 48a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard} 49a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard 50e30b4644b613a130318cdf240ad237b0afbc525aTom Stellardstatic MCInstPrinter *createAMDGPUMCInstPrinter(const Target &T, 51e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard unsigned SyntaxVariant, 52e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard const MCAsmInfo &MAI, 53e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard const MCInstrInfo &MII, 54e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard const MCRegisterInfo &MRI, 55e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard const MCSubtargetInfo &STI) { 56e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard return new AMDGPUInstPrinter(MAI, MII, MRI); 57e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard} 58e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard 5949fb99bd131a4ed89e6f55cf360f67618acafec4Tom Stellardextern "C" void LLVMInitializeAMDGPUTargetMC() { 60a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard 61a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard RegisterMCAsmInfo<AMDILMCAsmInfo> Y(TheAMDGPUTarget); 62a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard 639c42fb6f26bb7db1bc793f5fcc922bbae6700d74Tom Stellard TargetRegistry::RegisterMCCodeGenInfo(TheAMDGPUTarget, createAMDGPUMCCodeGenInfo); 64a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard 659c42fb6f26bb7db1bc793f5fcc922bbae6700d74Tom Stellard TargetRegistry::RegisterMCInstrInfo(TheAMDGPUTarget, createAMDGPUMCInstrInfo); 66a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard 679c42fb6f26bb7db1bc793f5fcc922bbae6700d74Tom Stellard TargetRegistry::RegisterMCRegInfo(TheAMDGPUTarget, createAMDGPUMCRegisterInfo); 68a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard 699c42fb6f26bb7db1bc793f5fcc922bbae6700d74Tom Stellard TargetRegistry::RegisterMCSubtargetInfo(TheAMDGPUTarget, createAMDGPUMCSubtargetInfo); 70a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard 71e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard TargetRegistry::RegisterMCInstPrinter(TheAMDGPUTarget, createAMDGPUMCInstPrinter); 72a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard} 73