mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-23 00:20:25 +00:00
Next round of MC refactoring. This patch factor MC table instantiations, MC
registeration and creation code into XXXMCDesc libraries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135184 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -23,3 +23,4 @@ add_llvm_target(SparcCodeGen
|
||||
)
|
||||
|
||||
add_subdirectory(TargetInfo)
|
||||
add_subdirectory(MCTargetDesc)
|
||||
|
||||
1
lib/Target/Sparc/MCTargetDesc/CMakeLists.txt
Normal file
1
lib/Target/Sparc/MCTargetDesc/CMakeLists.txt
Normal file
@@ -0,0 +1 @@
|
||||
add_llvm_library(LLVMSparcDesc SparcMCTargetDesc.cpp)
|
||||
16
lib/Target/Sparc/MCTargetDesc/Makefile
Normal file
16
lib/Target/Sparc/MCTargetDesc/Makefile
Normal file
@@ -0,0 +1,16 @@
|
||||
##===- lib/Target/Sparc/TargetDesc/Makefile ----------------*- Makefile -*-===##
|
||||
#
|
||||
# The LLVM Compiler Infrastructure
|
||||
#
|
||||
# This file is distributed under the University of Illinois Open Source
|
||||
# License. See LICENSE.TXT for details.
|
||||
#
|
||||
##===----------------------------------------------------------------------===##
|
||||
|
||||
LEVEL = ../../../..
|
||||
LIBRARYNAME = LLVMSparcDesc
|
||||
|
||||
# Hack: we need to include 'main' target directory to grab private headers
|
||||
CPP.Flags += -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
|
||||
|
||||
include $(LEVEL)/Makefile.common
|
||||
51
lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp
Normal file
51
lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp
Normal file
@@ -0,0 +1,51 @@
|
||||
//===-- SparcMCTargetDesc.cpp - Sparc Target Descriptions --------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file provides Sparc specific target descriptions.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "SparcMCTargetDesc.h"
|
||||
#include "llvm/MC/MCInstrInfo.h"
|
||||
#include "llvm/MC/MCRegisterInfo.h"
|
||||
#include "llvm/MC/MCSubtargetInfo.h"
|
||||
#include "llvm/Target/TargetRegistry.h"
|
||||
|
||||
#define GET_INSTRINFO_MC_DESC
|
||||
#include "SparcGenInstrInfo.inc"
|
||||
|
||||
#define GET_SUBTARGETINFO_MC_DESC
|
||||
#include "SparcGenSubtargetInfo.inc"
|
||||
|
||||
#define GET_REGINFO_MC_DESC
|
||||
#include "SparcGenRegisterInfo.inc"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
MCInstrInfo *createSparcMCInstrInfo() {
|
||||
MCInstrInfo *X = new MCInstrInfo();
|
||||
InitSparcMCInstrInfo(X);
|
||||
return X;
|
||||
}
|
||||
|
||||
extern "C" void LLVMInitializeSparcMCInstrInfo() {
|
||||
TargetRegistry::RegisterMCInstrInfo(TheSparcTarget, createSparcMCInstrInfo);
|
||||
}
|
||||
|
||||
MCSubtargetInfo *createSparcMCSubtargetInfo(StringRef TT, StringRef CPU,
|
||||
StringRef FS) {
|
||||
MCSubtargetInfo *X = new MCSubtargetInfo();
|
||||
InitSparcMCSubtargetInfo(X, TT, CPU, FS);
|
||||
return X;
|
||||
}
|
||||
|
||||
extern "C" void LLVMInitializeSparcMCSubtargetInfo() {
|
||||
TargetRegistry::RegisterMCSubtargetInfo(TheSparcTarget,
|
||||
createSparcMCSubtargetInfo);
|
||||
}
|
||||
41
lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.h
Normal file
41
lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.h
Normal file
@@ -0,0 +1,41 @@
|
||||
//===-- SparcMCTargetDesc.h - Sparc Target Descriptions ---------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file provides Sparc specific target descriptions.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef SPARCMCTARGETDESC_H
|
||||
#define SPARCMCTARGETDESC_H
|
||||
|
||||
namespace llvm {
|
||||
class MCSubtargetInfo;
|
||||
class Target;
|
||||
class StringRef;
|
||||
|
||||
extern Target TheSparcTarget;
|
||||
extern Target TheSparcV9Target;
|
||||
|
||||
} // End llvm namespace
|
||||
|
||||
// Defines symbolic names for Sparc registers. This defines a mapping from
|
||||
// register name to register number.
|
||||
//
|
||||
#define GET_REGINFO_ENUM
|
||||
#include "SparcGenRegisterInfo.inc"
|
||||
|
||||
// Defines symbolic names for the Sparc instructions.
|
||||
//
|
||||
#define GET_INSTRINFO_ENUM
|
||||
#include "SparcGenInstrInfo.inc"
|
||||
|
||||
#define GET_SUBTARGETINFO_ENUM
|
||||
#include "SparcGenSubtargetInfo.inc"
|
||||
|
||||
#endif
|
||||
@@ -16,7 +16,7 @@ BUILT_SOURCES = SparcGenRegisterInfo.inc SparcGenInstrInfo.inc \
|
||||
SparcGenAsmWriter.inc SparcGenDAGISel.inc \
|
||||
SparcGenSubtargetInfo.inc SparcGenCallingConv.inc
|
||||
|
||||
DIRS = TargetInfo
|
||||
DIRS = TargetInfo MCTargetDesc
|
||||
|
||||
include $(LEVEL)/Makefile.common
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#ifndef TARGET_SPARC_H
|
||||
#define TARGET_SPARC_H
|
||||
|
||||
#include "MCTargetDesc/SparcMCTargetDesc.h"
|
||||
#include "llvm/Support/ErrorHandling.h"
|
||||
#include "llvm/Target/TargetMachine.h"
|
||||
#include <cassert>
|
||||
@@ -28,23 +29,8 @@ namespace llvm {
|
||||
FunctionPass *createSparcDelaySlotFillerPass(TargetMachine &TM);
|
||||
FunctionPass *createSparcFPMoverPass(TargetMachine &TM);
|
||||
|
||||
extern Target TheSparcTarget;
|
||||
extern Target TheSparcV9Target;
|
||||
|
||||
} // end namespace llvm;
|
||||
|
||||
// Defines symbolic names for Sparc registers. This defines a mapping from
|
||||
// register name to register number.
|
||||
//
|
||||
#define GET_REGINFO_ENUM
|
||||
#include "SparcGenRegisterInfo.inc"
|
||||
|
||||
// Defines symbolic names for the Sparc instructions.
|
||||
//
|
||||
#define GET_INSTRINFO_ENUM
|
||||
#include "SparcGenInstrInfo.inc"
|
||||
|
||||
|
||||
namespace llvm {
|
||||
// Enums corresponding to Sparc condition codes, both icc's and fcc's. These
|
||||
// values must be kept in sync with the ones in the .td file.
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
#include "llvm/ADT/SmallVector.h"
|
||||
|
||||
#define GET_INSTRINFO_CTOR
|
||||
#define GET_INSTRINFO_MC_DESC
|
||||
#include "SparcGenInstrInfo.inc"
|
||||
|
||||
using namespace llvm;
|
||||
@@ -345,13 +344,3 @@ unsigned SparcInstrInfo::getGlobalBaseReg(MachineFunction *MF) const
|
||||
SparcFI->setGlobalBaseReg(GlobalBaseReg);
|
||||
return GlobalBaseReg;
|
||||
}
|
||||
|
||||
MCInstrInfo *createSparcMCInstrInfo() {
|
||||
MCInstrInfo *X = new MCInstrInfo();
|
||||
InitSparcMCInstrInfo(X);
|
||||
return X;
|
||||
}
|
||||
|
||||
extern "C" void LLVMInitializeSparcMCInstrInfo() {
|
||||
TargetRegistry::RegisterMCInstrInfo(TheSparcTarget, createSparcMCInstrInfo);
|
||||
}
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
#include "llvm/ADT/BitVector.h"
|
||||
#include "llvm/ADT/STLExtras.h"
|
||||
|
||||
#define GET_REGINFO_MC_DESC
|
||||
#define GET_REGINFO_TARGET_DESC
|
||||
#include "SparcGenRegisterInfo.inc"
|
||||
|
||||
|
||||
@@ -15,8 +15,6 @@
|
||||
#include "Sparc.h"
|
||||
#include "llvm/Target/TargetRegistry.h"
|
||||
|
||||
#define GET_SUBTARGETINFO_ENUM
|
||||
#define GET_SUBTARGETINFO_MC_DESC
|
||||
#define GET_SUBTARGETINFO_TARGET_DESC
|
||||
#define GET_SUBTARGETINFO_CTOR
|
||||
#include "SparcGenSubtargetInfo.inc"
|
||||
@@ -44,15 +42,3 @@ SparcSubtarget::SparcSubtarget(const std::string &TT, const std::string &CPU,
|
||||
// Parse features string.
|
||||
ParseSubtargetFeatures(CPUName, FS);
|
||||
}
|
||||
|
||||
MCSubtargetInfo *createSparcMCSubtargetInfo(StringRef TT, StringRef CPU,
|
||||
StringRef FS) {
|
||||
MCSubtargetInfo *X = new MCSubtargetInfo();
|
||||
InitSparcMCSubtargetInfo(X, TT, CPU, FS);
|
||||
return X;
|
||||
}
|
||||
|
||||
extern "C" void LLVMInitializeSparcMCSubtargetInfo() {
|
||||
TargetRegistry::RegisterMCSubtargetInfo(TheSparcTarget,
|
||||
createSparcMCSubtargetInfo);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user