mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-07-23 01:30:19 +00:00
Initial implementation of MipsMCCodeEmitter.
Patch by Reed Kotler at Mips Technologies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140878 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
68e05fb368
commit
4520a10fdb
52
lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
Normal file
52
lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
//===-- MipsMCCodeEmitter.cpp - Convert Mips code to machine code ---------===//
|
||||||
|
//
|
||||||
|
// The LLVM Compiler Infrastructure
|
||||||
|
//
|
||||||
|
// This file is distributed under the University of Illinois Open Source
|
||||||
|
// License. See LICENSE.TXT for details.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// This file implements the MipsMCCodeEmitter class.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
#define DEBUG_TYPE "mccodeemitter"
|
||||||
|
#include "llvm/MC/MCCodeEmitter.h"
|
||||||
|
#include "llvm/MC/MCExpr.h"
|
||||||
|
#include "llvm/MC/MCInst.h"
|
||||||
|
#include "llvm/MC/MCInstrInfo.h"
|
||||||
|
#include "llvm/MC/MCRegisterInfo.h"
|
||||||
|
#include "llvm/MC/MCSubtargetInfo.h"
|
||||||
|
#include "llvm/ADT/APFloat.h"
|
||||||
|
#include "llvm/ADT/Statistic.h"
|
||||||
|
#include "llvm/Support/raw_ostream.h"
|
||||||
|
#include "MCTargetDesc/MipsMCTargetDesc.h"
|
||||||
|
|
||||||
|
using namespace llvm;
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
class MipsMCCodeEmitter : public MCCodeEmitter {
|
||||||
|
MipsMCCodeEmitter(const MipsMCCodeEmitter &); // DO NOT IMPLEMENT
|
||||||
|
void operator=(const MipsMCCodeEmitter &); // DO NOT IMPLEMENT
|
||||||
|
const MCInstrInfo &MCII;
|
||||||
|
const MCSubtargetInfo &STI;
|
||||||
|
|
||||||
|
public:
|
||||||
|
MipsMCCodeEmitter(const MCInstrInfo &mcii, const MCSubtargetInfo &sti,
|
||||||
|
MCContext &ctx)
|
||||||
|
: MCII(mcii), STI(sti) {}
|
||||||
|
|
||||||
|
~MipsMCCodeEmitter() {}
|
||||||
|
|
||||||
|
void EncodeInstruction(const MCInst &MI, raw_ostream &OS,
|
||||||
|
SmallVectorImpl<MCFixup> &Fixups) const {
|
||||||
|
}
|
||||||
|
}; // class MipsMCCodeEmitter
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
MCCodeEmitter *llvm::createMipsMCCodeEmitter(const MCInstrInfo &MCII,
|
||||||
|
const MCSubtargetInfo &STI,
|
||||||
|
MCContext &Ctx) {
|
||||||
|
return new MipsMCCodeEmitter(MCII, STI, Ctx);
|
||||||
|
}
|
@ -107,6 +107,15 @@ extern "C" void LLVMInitializeMipsTargetMC() {
|
|||||||
TargetRegistry::RegisterMCRegInfo(TheMips64elTarget,
|
TargetRegistry::RegisterMCRegInfo(TheMips64elTarget,
|
||||||
createMipsMCRegisterInfo);
|
createMipsMCRegisterInfo);
|
||||||
|
|
||||||
|
// Register the MC Code Emitter
|
||||||
|
TargetRegistry::RegisterMCCodeEmitter(TheMipsTarget, createMipsMCCodeEmitter);
|
||||||
|
TargetRegistry::RegisterMCCodeEmitter(TheMipselTarget,
|
||||||
|
createMipsMCCodeEmitter);
|
||||||
|
TargetRegistry::RegisterMCCodeEmitter(TheMips64Target,
|
||||||
|
createMipsMCCodeEmitter);
|
||||||
|
TargetRegistry::RegisterMCCodeEmitter(TheMips64elTarget,
|
||||||
|
createMipsMCCodeEmitter);
|
||||||
|
|
||||||
// Register the MC subtarget info.
|
// Register the MC subtarget info.
|
||||||
TargetRegistry::RegisterMCSubtargetInfo(TheMipsTarget,
|
TargetRegistry::RegisterMCSubtargetInfo(TheMipsTarget,
|
||||||
createMipsMCSubtargetInfo);
|
createMipsMCSubtargetInfo);
|
||||||
|
@ -15,15 +15,21 @@
|
|||||||
#define MIPSMCTARGETDESC_H
|
#define MIPSMCTARGETDESC_H
|
||||||
|
|
||||||
namespace llvm {
|
namespace llvm {
|
||||||
|
class MCInstrInfo;
|
||||||
|
class MCCodeEmitter;
|
||||||
|
class MCContext;
|
||||||
class MCSubtargetInfo;
|
class MCSubtargetInfo;
|
||||||
class Target;
|
|
||||||
class StringRef;
|
class StringRef;
|
||||||
|
class Target;
|
||||||
|
|
||||||
extern Target TheMipsTarget;
|
extern Target TheMipsTarget;
|
||||||
extern Target TheMipselTarget;
|
extern Target TheMipselTarget;
|
||||||
extern Target TheMips64Target;
|
extern Target TheMips64Target;
|
||||||
extern Target TheMips64elTarget;
|
extern Target TheMips64elTarget;
|
||||||
|
|
||||||
|
MCCodeEmitter *createMipsMCCodeEmitter(const MCInstrInfo &MCII,
|
||||||
|
const MCSubtargetInfo &STI,
|
||||||
|
MCContext &Ctx);
|
||||||
} // End llvm namespace
|
} // End llvm namespace
|
||||||
|
|
||||||
// Defines symbolic names for Mips registers. This defines a mapping from
|
// Defines symbolic names for Mips registers. This defines a mapping from
|
||||||
|
Loading…
Reference in New Issue
Block a user