summaryrefslogtreecommitdiff
path: root/lib/Target/Mips/MipsInstrInfo.cpp
diff options
context:
space:
mode:
authorReed Kotler <rkotler@mips.com>2013-10-27 21:57:36 +0000
committerReed Kotler <rkotler@mips.com>2013-10-27 21:57:36 +0000
commitcb2280e4c7c5a07104306cc73265ff64fa8dd973 (patch)
tree81a65f0f6a0673f07605787aa79d5e91814f8be4 /lib/Target/Mips/MipsInstrInfo.cpp
parentbbe8f3b0e19f9bcca6e739fd92cbae6d570cab93 (diff)
downloadllvm-cb2280e4c7c5a07104306cc73265ff64fa8dd973.tar.gz
llvm-cb2280e4c7c5a07104306cc73265ff64fa8dd973.tar.bz2
llvm-cb2280e4c7c5a07104306cc73265ff64fa8dd973.tar.xz
Make first substantial checkin of my port of ARM constant islands code to Mips.
Before I just ported the shell of the pass. I've tried to keep everything nearly identical to the ARM version. I think it will be very easy to eventually merge these two and create a new more general pass that other targets can use. I have some improvements I would like to make to allow pools to be shared across functions and some other things. When I'm all done we can think about making a more general pass. More to be ported but the basic mechanism works now almost as good as gcc mips16. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193509 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Mips/MipsInstrInfo.cpp')
-rw-r--r--lib/Target/Mips/MipsInstrInfo.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Target/Mips/MipsInstrInfo.cpp b/lib/Target/Mips/MipsInstrInfo.cpp
index ceb8eeae9f..7b04a9a375 100644
--- a/lib/Target/Mips/MipsInstrInfo.cpp
+++ b/lib/Target/Mips/MipsInstrInfo.cpp
@@ -271,6 +271,10 @@ unsigned MipsInstrInfo::GetInstSizeInBytes(const MachineInstr *MI) const {
const char *AsmStr = MI->getOperand(0).getSymbolName();
return getInlineAsmLength(AsmStr, *MF->getTarget().getMCAsmInfo());
}
+ case Mips::CONSTPOOL_ENTRY:
+ // If this machine instr is a constant pool entry, its size is recorded as
+ // operand #2.
+ return MI->getOperand(2).getImm();
}
}