mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-26 05:25:47 +00:00
More refactoring.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135939 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -14,7 +14,6 @@ tablegen(X86GenEDInfo.inc -gen-enhanced-disassembly-info)
|
|||||||
|
|
||||||
set(sources
|
set(sources
|
||||||
SSEDomainFix.cpp
|
SSEDomainFix.cpp
|
||||||
X86AsmBackend.cpp
|
|
||||||
X86AsmPrinter.cpp
|
X86AsmPrinter.cpp
|
||||||
X86COFFMachineModuleInfo.cpp
|
X86COFFMachineModuleInfo.cpp
|
||||||
X86CodeEmitter.cpp
|
X86CodeEmitter.cpp
|
||||||
@@ -26,8 +25,6 @@ set(sources
|
|||||||
X86ISelLowering.cpp
|
X86ISelLowering.cpp
|
||||||
X86InstrInfo.cpp
|
X86InstrInfo.cpp
|
||||||
X86JITInfo.cpp
|
X86JITInfo.cpp
|
||||||
X86MachObjectWriter.cpp
|
|
||||||
X86MCCodeEmitter.cpp
|
|
||||||
X86MCInstLower.cpp
|
X86MCInstLower.cpp
|
||||||
X86RegisterInfo.cpp
|
X86RegisterInfo.cpp
|
||||||
X86SelectionDAGInfo.cpp
|
X86SelectionDAGInfo.cpp
|
||||||
|
@@ -1,6 +1,9 @@
|
|||||||
add_llvm_library(LLVMX86Desc
|
add_llvm_library(LLVMX86Desc
|
||||||
|
X86AsmBackend.cpp
|
||||||
X86MCTargetDesc.cpp
|
X86MCTargetDesc.cpp
|
||||||
X86MCAsmInfo.cpp
|
X86MCAsmInfo.cpp
|
||||||
|
X86MCCodeEmitter.cpp
|
||||||
|
X86MachObjectWriter.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
# Hack: we need to include 'main' target directory to grab private headers
|
# Hack: we need to include 'main' target directory to grab private headers
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#include "llvm/MC/TargetAsmBackend.h"
|
#include "llvm/MC/TargetAsmBackend.h"
|
||||||
#include "X86.h"
|
#include "MCTargetDesc/X86BaseInfo.h"
|
||||||
#include "MCTargetDesc/X86FixupKinds.h"
|
#include "MCTargetDesc/X86FixupKinds.h"
|
||||||
#include "llvm/ADT/Twine.h"
|
#include "llvm/ADT/Twine.h"
|
||||||
#include "llvm/MC/MCAssembler.h"
|
#include "llvm/MC/MCAssembler.h"
|
@@ -16,6 +16,7 @@
|
|||||||
#include "llvm/MC/MachineLocation.h"
|
#include "llvm/MC/MachineLocation.h"
|
||||||
#include "llvm/MC/MCInstrInfo.h"
|
#include "llvm/MC/MCInstrInfo.h"
|
||||||
#include "llvm/MC/MCRegisterInfo.h"
|
#include "llvm/MC/MCRegisterInfo.h"
|
||||||
|
#include "llvm/MC/MCStreamer.h"
|
||||||
#include "llvm/MC/MCSubtargetInfo.h"
|
#include "llvm/MC/MCSubtargetInfo.h"
|
||||||
#include "llvm/Target/TargetRegistry.h"
|
#include "llvm/Target/TargetRegistry.h"
|
||||||
#include "llvm/ADT/Triple.h"
|
#include "llvm/ADT/Triple.h"
|
||||||
@@ -363,6 +364,23 @@ static MCCodeGenInfo *createX86MCCodeGenInfo(StringRef TT, Reloc::Model RM,
|
|||||||
return X;
|
return X;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static MCStreamer *createMCStreamer(const Target &T, const std::string &TT,
|
||||||
|
MCContext &Ctx, TargetAsmBackend &TAB,
|
||||||
|
raw_ostream &_OS,
|
||||||
|
MCCodeEmitter *_Emitter,
|
||||||
|
bool RelaxAll,
|
||||||
|
bool NoExecStack) {
|
||||||
|
Triple TheTriple(TT);
|
||||||
|
|
||||||
|
if (TheTriple.isOSDarwin() || TheTriple.getEnvironment() == Triple::MachO)
|
||||||
|
return createMachOStreamer(Ctx, TAB, _OS, _Emitter, RelaxAll);
|
||||||
|
|
||||||
|
if (TheTriple.isOSWindows())
|
||||||
|
return createWinCOFFStreamer(Ctx, TAB, *_Emitter, _OS, RelaxAll);
|
||||||
|
|
||||||
|
return createELFStreamer(Ctx, TAB, _OS, _Emitter, RelaxAll, NoExecStack);
|
||||||
|
}
|
||||||
|
|
||||||
// Force static initialization.
|
// Force static initialization.
|
||||||
extern "C" void LLVMInitializeX86TargetMC() {
|
extern "C" void LLVMInitializeX86TargetMC() {
|
||||||
// Register the MC asm info.
|
// Register the MC asm info.
|
||||||
@@ -386,4 +404,22 @@ extern "C" void LLVMInitializeX86TargetMC() {
|
|||||||
X86_MC::createX86MCSubtargetInfo);
|
X86_MC::createX86MCSubtargetInfo);
|
||||||
TargetRegistry::RegisterMCSubtargetInfo(TheX86_64Target,
|
TargetRegistry::RegisterMCSubtargetInfo(TheX86_64Target,
|
||||||
X86_MC::createX86MCSubtargetInfo);
|
X86_MC::createX86MCSubtargetInfo);
|
||||||
|
|
||||||
|
// Register the code emitter.
|
||||||
|
TargetRegistry::RegisterCodeEmitter(TheX86_32Target,
|
||||||
|
createX86MCCodeEmitter);
|
||||||
|
TargetRegistry::RegisterCodeEmitter(TheX86_64Target,
|
||||||
|
createX86MCCodeEmitter);
|
||||||
|
|
||||||
|
// Register the asm backend.
|
||||||
|
TargetRegistry::RegisterAsmBackend(TheX86_32Target,
|
||||||
|
createX86_32AsmBackend);
|
||||||
|
TargetRegistry::RegisterAsmBackend(TheX86_64Target,
|
||||||
|
createX86_64AsmBackend);
|
||||||
|
|
||||||
|
// Register the object streamer.
|
||||||
|
TargetRegistry::RegisterObjectStreamer(TheX86_32Target,
|
||||||
|
createMCStreamer);
|
||||||
|
TargetRegistry::RegisterObjectStreamer(TheX86_64Target,
|
||||||
|
createMCStreamer);
|
||||||
}
|
}
|
||||||
|
@@ -20,10 +20,13 @@ namespace llvm {
|
|||||||
class MCCodeEmitter;
|
class MCCodeEmitter;
|
||||||
class MCContext;
|
class MCContext;
|
||||||
class MCInstrInfo;
|
class MCInstrInfo;
|
||||||
|
class MCObjectWriter;
|
||||||
class MCRegisterInfo;
|
class MCRegisterInfo;
|
||||||
class MCSubtargetInfo;
|
class MCSubtargetInfo;
|
||||||
class Target;
|
class Target;
|
||||||
|
class TargetAsmBackend;
|
||||||
class StringRef;
|
class StringRef;
|
||||||
|
class raw_ostream;
|
||||||
|
|
||||||
extern Target TheX86_32Target, TheX86_64Target;
|
extern Target TheX86_32Target, TheX86_64Target;
|
||||||
|
|
||||||
@@ -70,6 +73,14 @@ MCCodeEmitter *createX86MCCodeEmitter(const MCInstrInfo &MCII,
|
|||||||
const MCSubtargetInfo &STI,
|
const MCSubtargetInfo &STI,
|
||||||
MCContext &Ctx);
|
MCContext &Ctx);
|
||||||
|
|
||||||
|
TargetAsmBackend *createX86_32AsmBackend(const Target &, const std::string &);
|
||||||
|
TargetAsmBackend *createX86_64AsmBackend(const Target &, const std::string &);
|
||||||
|
|
||||||
|
/// createX86MachObjectWriter - Construct an X86 Mach-O object writer.
|
||||||
|
MCObjectWriter *createX86MachObjectWriter(raw_ostream &OS,
|
||||||
|
bool Is64Bit,
|
||||||
|
uint32_t CPUType,
|
||||||
|
uint32_t CPUSubtype);
|
||||||
|
|
||||||
} // End llvm namespace
|
} // End llvm namespace
|
||||||
|
|
||||||
|
@@ -7,14 +7,14 @@
|
|||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#include "X86.h"
|
|
||||||
#include "MCTargetDesc/X86FixupKinds.h"
|
#include "MCTargetDesc/X86FixupKinds.h"
|
||||||
#include "llvm/ADT/Twine.h"
|
#include "MCTargetDesc/X86MCTargetDesc.h"
|
||||||
#include "llvm/MC/MCAssembler.h"
|
#include "llvm/MC/MCAssembler.h"
|
||||||
#include "llvm/MC/MCAsmLayout.h"
|
#include "llvm/MC/MCAsmLayout.h"
|
||||||
#include "llvm/MC/MCMachObjectWriter.h"
|
#include "llvm/MC/MCMachObjectWriter.h"
|
||||||
#include "llvm/MC/MCSectionMachO.h"
|
#include "llvm/MC/MCSectionMachO.h"
|
||||||
#include "llvm/MC/MCValue.h"
|
#include "llvm/MC/MCValue.h"
|
||||||
|
#include "llvm/ADT/Twine.h"
|
||||||
#include "llvm/Support/ErrorHandling.h"
|
#include "llvm/Support/ErrorHandling.h"
|
||||||
#include "llvm/Object/MachOFormat.h"
|
#include "llvm/Object/MachOFormat.h"
|
||||||
|
|
@@ -61,9 +61,6 @@ FunctionPass *createSSEDomainFixPass();
|
|||||||
FunctionPass *createX86JITCodeEmitterPass(X86TargetMachine &TM,
|
FunctionPass *createX86JITCodeEmitterPass(X86TargetMachine &TM,
|
||||||
JITCodeEmitter &JCE);
|
JITCodeEmitter &JCE);
|
||||||
|
|
||||||
TargetAsmBackend *createX86_32AsmBackend(const Target &, const std::string &);
|
|
||||||
TargetAsmBackend *createX86_64AsmBackend(const Target &, const std::string &);
|
|
||||||
|
|
||||||
/// createX86EmitCodeToMemory - Returns a pass that converts a register
|
/// createX86EmitCodeToMemory - Returns a pass that converts a register
|
||||||
/// allocated function into raw machine code in a dynamically
|
/// allocated function into raw machine code in a dynamically
|
||||||
/// allocated chunk of memory.
|
/// allocated chunk of memory.
|
||||||
@@ -76,13 +73,6 @@ FunctionPass *createEmitX86CodeToMemory();
|
|||||||
///
|
///
|
||||||
FunctionPass *createX86MaxStackAlignmentHeuristicPass();
|
FunctionPass *createX86MaxStackAlignmentHeuristicPass();
|
||||||
|
|
||||||
|
|
||||||
/// createX86MachObjectWriter - Construct an X86 Mach-O object writer.
|
|
||||||
MCObjectWriter *createX86MachObjectWriter(raw_ostream &OS,
|
|
||||||
bool Is64Bit,
|
|
||||||
uint32_t CPUType,
|
|
||||||
uint32_t CPUSubtype);
|
|
||||||
|
|
||||||
} // End llvm namespace
|
} // End llvm namespace
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -16,52 +16,15 @@
|
|||||||
#include "llvm/PassManager.h"
|
#include "llvm/PassManager.h"
|
||||||
#include "llvm/CodeGen/MachineFunction.h"
|
#include "llvm/CodeGen/MachineFunction.h"
|
||||||
#include "llvm/CodeGen/Passes.h"
|
#include "llvm/CodeGen/Passes.h"
|
||||||
#include "llvm/MC/MCCodeEmitter.h"
|
|
||||||
#include "llvm/MC/MCStreamer.h"
|
|
||||||
#include "llvm/Support/FormattedStream.h"
|
#include "llvm/Support/FormattedStream.h"
|
||||||
#include "llvm/Target/TargetOptions.h"
|
#include "llvm/Target/TargetOptions.h"
|
||||||
#include "llvm/Target/TargetRegistry.h"
|
#include "llvm/Target/TargetRegistry.h"
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
static MCStreamer *createMCStreamer(const Target &T, const std::string &TT,
|
|
||||||
MCContext &Ctx, TargetAsmBackend &TAB,
|
|
||||||
raw_ostream &_OS,
|
|
||||||
MCCodeEmitter *_Emitter,
|
|
||||||
bool RelaxAll,
|
|
||||||
bool NoExecStack) {
|
|
||||||
Triple TheTriple(TT);
|
|
||||||
|
|
||||||
if (TheTriple.isOSDarwin() || TheTriple.getEnvironment() == Triple::MachO)
|
|
||||||
return createMachOStreamer(Ctx, TAB, _OS, _Emitter, RelaxAll);
|
|
||||||
|
|
||||||
if (TheTriple.isOSWindows())
|
|
||||||
return createWinCOFFStreamer(Ctx, TAB, *_Emitter, _OS, RelaxAll);
|
|
||||||
|
|
||||||
return createELFStreamer(Ctx, TAB, _OS, _Emitter, RelaxAll, NoExecStack);
|
|
||||||
}
|
|
||||||
|
|
||||||
extern "C" void LLVMInitializeX86Target() {
|
extern "C" void LLVMInitializeX86Target() {
|
||||||
// Register the target.
|
// Register the target.
|
||||||
RegisterTargetMachine<X86_32TargetMachine> X(TheX86_32Target);
|
RegisterTargetMachine<X86_32TargetMachine> X(TheX86_32Target);
|
||||||
RegisterTargetMachine<X86_64TargetMachine> Y(TheX86_64Target);
|
RegisterTargetMachine<X86_64TargetMachine> Y(TheX86_64Target);
|
||||||
|
|
||||||
// Register the code emitter.
|
|
||||||
TargetRegistry::RegisterCodeEmitter(TheX86_32Target,
|
|
||||||
createX86MCCodeEmitter);
|
|
||||||
TargetRegistry::RegisterCodeEmitter(TheX86_64Target,
|
|
||||||
createX86MCCodeEmitter);
|
|
||||||
|
|
||||||
// Register the asm backend.
|
|
||||||
TargetRegistry::RegisterAsmBackend(TheX86_32Target,
|
|
||||||
createX86_32AsmBackend);
|
|
||||||
TargetRegistry::RegisterAsmBackend(TheX86_64Target,
|
|
||||||
createX86_64AsmBackend);
|
|
||||||
|
|
||||||
// Register the object streamer.
|
|
||||||
TargetRegistry::RegisterObjectStreamer(TheX86_32Target,
|
|
||||||
createMCStreamer);
|
|
||||||
TargetRegistry::RegisterObjectStreamer(TheX86_64Target,
|
|
||||||
createMCStreamer);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user