diff options
author | Jack Carter <jcarter@mips.com> | 2012-10-02 23:09:40 +0000 |
---|---|---|
committer | Jack Carter <jcarter@mips.com> | 2012-10-02 23:09:40 +0000 |
commit | 8e71e617c9b1e42737ffd00984a5025ec90c734c (patch) | |
tree | 09cfd105bdd0824cfbfac125790f81973bc153a4 /lib/Target/Mips/MipsAsmPrinter.cpp | |
parent | 5c5b3cf5b8af06b8e9347f3f45e8c67438ffd446 (diff) |
The mips 64bit instructions DSLL, DSRA, DSRL, DEXT and DINS get transformed by the assembler or through codegen direct object output to other variants based on the value of the immediate values of the operands.
If the code is generated as assembler, this transformation does not occur assuming that it will occur later in the assembler.
This code was originally called from MipsAsmPrinter.cpp and we needed to check for OutStreamer.hasRawTextSupport(). This was not a good place for it and has been moved to MCTargetDesc/MipsMCCodeEmitter.cpp where both direct object and the assembler use it it automagically.
The test cases have been checked in for a number of weeks now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165067 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Mips/MipsAsmPrinter.cpp')
-rw-r--r-- | lib/Target/Mips/MipsAsmPrinter.cpp | 17 |
1 files changed, 0 insertions, 17 deletions
diff --git a/lib/Target/Mips/MipsAsmPrinter.cpp b/lib/Target/Mips/MipsAsmPrinter.cpp index 6ca41624d3..83558c1743 100644 --- a/lib/Target/Mips/MipsAsmPrinter.cpp +++ b/lib/Target/Mips/MipsAsmPrinter.cpp @@ -15,7 +15,6 @@ #define DEBUG_TYPE "mips-asm-printer" #include "Mips.h" #include "MipsAsmPrinter.h" -#include "MipsDirectObjLower.h" #include "MipsInstrInfo.h" #include "MipsMCInstLower.h" #include "InstPrinter/MipsInstPrinter.h" @@ -77,22 +76,6 @@ void MipsAsmPrinter::EmitInstruction(const MachineInstr *MI) { MCInst TmpInst0; MCInstLowering.Lower(I++, TmpInst0); - // Direct object specific instruction lowering - if (!OutStreamer.hasRawTextSupport()){ - switch (TmpInst0.getOpcode()) { - // If shift amount is >= 32 it the inst needs to be lowered further - case Mips::DSLL: - case Mips::DSRL: - case Mips::DSRA: - Mips::LowerLargeShift(TmpInst0); - break; - // Double extract instruction is chosen by pos and size operands - case Mips::DEXT: - case Mips::DINS: - Mips::LowerDextDins(TmpInst0); - } - } - OutStreamer.EmitInstruction(TmpInst0); } while ((I != E) && I->isInsideBundle()); // Delay slot check } |