mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +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:
@@ -32,3 +32,4 @@ add_llvm_target(PowerPCCodeGen
|
||||
|
||||
add_subdirectory(InstPrinter)
|
||||
add_subdirectory(TargetInfo)
|
||||
add_subdirectory(MCTargetDesc)
|
||||
|
1
lib/Target/PowerPC/MCTargetDesc/CMakeLists.txt
Normal file
1
lib/Target/PowerPC/MCTargetDesc/CMakeLists.txt
Normal file
@@ -0,0 +1 @@
|
||||
add_llvm_library(LLVMPowerPCDesc PPCMCTargetDesc.cpp)
|
16
lib/Target/PowerPC/MCTargetDesc/Makefile
Normal file
16
lib/Target/PowerPC/MCTargetDesc/Makefile
Normal file
@@ -0,0 +1,16 @@
|
||||
##===- lib/Target/PowerPC/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 = LLVMPowerPCDesc
|
||||
|
||||
# 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
|
55
lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
Normal file
55
lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
Normal file
@@ -0,0 +1,55 @@
|
||||
//===-- PPCMCTargetDesc.cpp - PowerPC 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 PowerPC specific target descriptions.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "PPCMCTargetDesc.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 "PPCGenInstrInfo.inc"
|
||||
|
||||
#define GET_SUBTARGETINFO_MC_DESC
|
||||
#include "PPCGenSubtargetInfo.inc"
|
||||
|
||||
#define GET_REGINFO_MC_DESC
|
||||
#include "PPCGenRegisterInfo.inc"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
MCInstrInfo *createPPCMCInstrInfo() {
|
||||
MCInstrInfo *X = new MCInstrInfo();
|
||||
InitPPCMCInstrInfo(X);
|
||||
return X;
|
||||
}
|
||||
|
||||
extern "C" void LLVMInitializePowerPCMCInstrInfo() {
|
||||
TargetRegistry::RegisterMCInstrInfo(ThePPC32Target, createPPCMCInstrInfo);
|
||||
TargetRegistry::RegisterMCInstrInfo(ThePPC64Target, createPPCMCInstrInfo);
|
||||
}
|
||||
|
||||
|
||||
MCSubtargetInfo *createPPCMCSubtargetInfo(StringRef TT, StringRef CPU,
|
||||
StringRef FS) {
|
||||
MCSubtargetInfo *X = new MCSubtargetInfo();
|
||||
InitPPCMCSubtargetInfo(X, TT, CPU, FS);
|
||||
return X;
|
||||
}
|
||||
|
||||
extern "C" void LLVMInitializePowerPCMCSubtargetInfo() {
|
||||
TargetRegistry::RegisterMCSubtargetInfo(ThePPC32Target,
|
||||
createPPCMCSubtargetInfo);
|
||||
TargetRegistry::RegisterMCSubtargetInfo(ThePPC64Target,
|
||||
createPPCMCSubtargetInfo);
|
||||
}
|
41
lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h
Normal file
41
lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h
Normal file
@@ -0,0 +1,41 @@
|
||||
//===-- PPCMCTargetDesc.h - PowerPC 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 PowerPC specific target descriptions.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef PPCMCTARGETDESC_H
|
||||
#define PPCMCTARGETDESC_H
|
||||
|
||||
namespace llvm {
|
||||
class MCSubtargetInfo;
|
||||
class Target;
|
||||
class StringRef;
|
||||
|
||||
extern Target ThePPC32Target;
|
||||
extern Target ThePPC64Target;
|
||||
|
||||
} // End llvm namespace
|
||||
|
||||
// Defines symbolic names for PowerPC registers. This defines a mapping from
|
||||
// register name to register number.
|
||||
//
|
||||
#define GET_REGINFO_ENUM
|
||||
#include "PPCGenRegisterInfo.inc"
|
||||
|
||||
// Defines symbolic names for the PowerPC instructions.
|
||||
//
|
||||
#define GET_INSTRINFO_ENUM
|
||||
#include "PPCGenInstrInfo.inc"
|
||||
|
||||
#define GET_SUBTARGETINFO_ENUM
|
||||
#include "PPCGenSubtargetInfo.inc"
|
||||
|
||||
#endif
|
@@ -18,6 +18,6 @@ BUILT_SOURCES = PPCGenRegisterInfo.inc \
|
||||
PPCGenSubtargetInfo.inc PPCGenCallingConv.inc \
|
||||
PPCGenMCCodeEmitter.inc
|
||||
|
||||
DIRS = InstPrinter TargetInfo
|
||||
DIRS = InstPrinter TargetInfo MCTargetDesc
|
||||
|
||||
include $(LEVEL)/Makefile.common
|
||||
|
@@ -15,6 +15,7 @@
|
||||
#ifndef LLVM_TARGET_POWERPC_H
|
||||
#define LLVM_TARGET_POWERPC_H
|
||||
|
||||
#include "MCTargetDesc/PPCMCTargetDesc.h"
|
||||
#include <string>
|
||||
|
||||
// GCC #defines PPC on Linux but we use it as our namespace name
|
||||
@@ -48,9 +49,6 @@ namespace llvm {
|
||||
void LowerPPCMachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI,
|
||||
AsmPrinter &AP, bool isDarwin);
|
||||
|
||||
extern Target ThePPC32Target;
|
||||
extern Target ThePPC64Target;
|
||||
|
||||
namespace PPCII {
|
||||
|
||||
/// Target Operand Flag enum.
|
||||
@@ -84,15 +82,4 @@ namespace llvm {
|
||||
|
||||
} // end namespace llvm;
|
||||
|
||||
// Defines symbolic names for PowerPC registers. This defines a mapping from
|
||||
// register name to register number.
|
||||
//
|
||||
#define GET_REGINFO_ENUM
|
||||
#include "PPCGenRegisterInfo.inc"
|
||||
|
||||
// Defines symbolic names for the PowerPC instructions.
|
||||
//
|
||||
#define GET_INSTRINFO_ENUM
|
||||
#include "PPCGenInstrInfo.inc"
|
||||
|
||||
#endif
|
||||
|
@@ -31,7 +31,6 @@
|
||||
#include "llvm/ADT/STLExtras.h"
|
||||
|
||||
#define GET_INSTRINFO_CTOR
|
||||
#define GET_INSTRINFO_MC_DESC
|
||||
#include "PPCGenInstrInfo.inc"
|
||||
|
||||
namespace llvm {
|
||||
@@ -654,14 +653,3 @@ unsigned PPCInstrInfo::GetInstSizeInBytes(const MachineInstr *MI) const {
|
||||
return 4; // PowerPC instructions are all 4 bytes
|
||||
}
|
||||
}
|
||||
|
||||
MCInstrInfo *createPPCMCInstrInfo() {
|
||||
MCInstrInfo *X = new MCInstrInfo();
|
||||
InitPPCMCInstrInfo(X);
|
||||
return X;
|
||||
}
|
||||
|
||||
extern "C" void LLVMInitializePowerPCMCInstrInfo() {
|
||||
TargetRegistry::RegisterMCInstrInfo(ThePPC32Target, createPPCMCInstrInfo);
|
||||
TargetRegistry::RegisterMCInstrInfo(ThePPC64Target, createPPCMCInstrInfo);
|
||||
}
|
||||
|
@@ -44,7 +44,6 @@
|
||||
#include "llvm/ADT/STLExtras.h"
|
||||
#include <cstdlib>
|
||||
|
||||
#define GET_REGINFO_MC_DESC
|
||||
#define GET_REGINFO_TARGET_DESC
|
||||
#include "PPCGenRegisterInfo.inc"
|
||||
|
||||
|
@@ -18,8 +18,6 @@
|
||||
#include "llvm/Target/TargetRegistry.h"
|
||||
#include <cstdlib>
|
||||
|
||||
#define GET_SUBTARGETINFO_ENUM
|
||||
#define GET_SUBTARGETINFO_MC_DESC
|
||||
#define GET_SUBTARGETINFO_TARGET_DESC
|
||||
#define GET_SUBTARGETINFO_CTOR
|
||||
#include "PPCGenSubtargetInfo.inc"
|
||||
@@ -141,17 +139,3 @@ bool PPCSubtarget::hasLazyResolverStub(const GlobalValue *GV,
|
||||
return GV->hasWeakLinkage() || GV->hasLinkOnceLinkage() ||
|
||||
GV->hasCommonLinkage() || isDecl;
|
||||
}
|
||||
|
||||
MCSubtargetInfo *createPPCMCSubtargetInfo(StringRef TT, StringRef CPU,
|
||||
StringRef FS) {
|
||||
MCSubtargetInfo *X = new MCSubtargetInfo();
|
||||
InitPPCMCSubtargetInfo(X, TT, CPU, FS);
|
||||
return X;
|
||||
}
|
||||
|
||||
extern "C" void LLVMInitializePowerPCMCSubtargetInfo() {
|
||||
TargetRegistry::RegisterMCSubtargetInfo(ThePPC32Target,
|
||||
createPPCMCSubtargetInfo);
|
||||
TargetRegistry::RegisterMCSubtargetInfo(ThePPC64Target,
|
||||
createPPCMCSubtargetInfo);
|
||||
}
|
||||
|
Reference in New Issue
Block a user