diff options
author | Akira Hatanaka <ahatanaka@mips.com> | 2011-09-30 21:23:45 +0000 |
---|---|---|
committer | Akira Hatanaka <ahatanaka@mips.com> | 2011-09-30 21:23:45 +0000 |
commit | 4b6ee7a35213709c057cdd073fb27bda09fa3359 (patch) | |
tree | 47af7df60a58d6c0808890fd9ca748f46aae0e20 /lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp | |
parent | 82ea7314ca52c9df8e1b6600231fafb7ae722313 (diff) | |
download | external_llvm-4b6ee7a35213709c057cdd073fb27bda09fa3359.zip external_llvm-4b6ee7a35213709c057cdd073fb27bda09fa3359.tar.gz external_llvm-4b6ee7a35213709c057cdd073fb27bda09fa3359.tar.bz2 |
Register Asm backend. Add functions to MipsAsmBackend.
Patch by Reed Kotler at Mips Technologies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140886 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp')
-rw-r--r-- | lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp b/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp index f84fdb6..f190ec4 100644 --- a/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp +++ b/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp @@ -33,6 +33,44 @@ public: unsigned getNumFixupKinds() const { return 1; //tbd } + + /// ApplyFixup - Apply the \arg Value for given \arg Fixup into the provided + /// data fragment, at the offset specified by the fixup and following the + /// fixup kind as appropriate. + void ApplyFixup(const MCFixup &Fixup, char *Data, unsigned DataSize, + uint64_t Value) const { + } + + /// @name Target Relaxation Interfaces + /// @{ + + /// MayNeedRelaxation - Check whether the given instruction may need + /// relaxation. + /// + /// \param Inst - The instruction to test. + bool MayNeedRelaxation(const MCInst &Inst) const { + return false; + } + + /// RelaxInstruction - Relax the instruction in the given fragment to the next + /// wider instruction. + /// + /// \param Inst - The instruction to relax, which may be the same as the + /// output. + /// \parm Res [output] - On return, the relaxed instruction. + void RelaxInstruction(const MCInst &Inst, MCInst &Res) const { + } + + /// @} + + /// WriteNopData - Write an (optimal) nop sequence of Count bytes to the given + /// output. If the target cannot generate such a sequence, it should return an + /// error. + /// + /// \return - True on success. + bool WriteNopData(uint64_t Count, MCObjectWriter *OW) const { + return false; + } }; class MipsEB_AsmBackend : public MipsAsmBackend { @@ -69,3 +107,11 @@ public: } }; } + +MCAsmBackend *llvm::createMipsAsmBackend(const Target &T, StringRef TT) { + Triple TheTriple(TT); + + // just return little endian for now + // + return new MipsEL_AsmBackend(T, Triple(TT).getOS()); +} |