summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/Thumb2RegisterInfo.cpp
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2011-03-05 18:43:50 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2011-03-05 18:43:50 +0000
commita8d177b2d49352c88b51e6e372c47c23bdb404b5 (patch)
tree28a54a2df69faa4894e0f123b7bc8c30ae19731e /llvm/lib/Target/ARM/Thumb2RegisterInfo.cpp
parent51537f1c7f98187cbf6113753624948889cd13c4 (diff)
downloadbcm5719-llvm-a8d177b2d49352c88b51e6e372c47c23bdb404b5.tar.gz
bcm5719-llvm-a8d177b2d49352c88b51e6e372c47c23bdb404b5.zip
Implement frame unwinding information emission for Thumb1. Not finished yet because there is no way given the constpool index to examine the actual entry: the reason is clones inserted by constant island pass, which are not tracked at all! The only connection is done during asmprinting time via magic label names which is really gross and needs to be eventually fixed.
llvm-svn: 127104
Diffstat (limited to 'llvm/lib/Target/ARM/Thumb2RegisterInfo.cpp')
-rw-r--r--llvm/lib/Target/ARM/Thumb2RegisterInfo.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/llvm/lib/Target/ARM/Thumb2RegisterInfo.cpp b/llvm/lib/Target/ARM/Thumb2RegisterInfo.cpp
index 099b8f72414..ce8edbe30a0 100644
--- a/llvm/lib/Target/ARM/Thumb2RegisterInfo.cpp
+++ b/llvm/lib/Target/ARM/Thumb2RegisterInfo.cpp
@@ -42,13 +42,14 @@ Thumb2RegisterInfo::Thumb2RegisterInfo(const ARMBaseInstrInfo &tii,
/// emitLoadConstPool - Emits a load from constpool to materialize the
/// specified immediate.
-void Thumb2RegisterInfo::emitLoadConstPool(MachineBasicBlock &MBB,
- MachineBasicBlock::iterator &MBBI,
- DebugLoc dl,
- unsigned DestReg, unsigned SubIdx,
- int Val,
- ARMCC::CondCodes Pred,
- unsigned PredReg) const {
+void
+Thumb2RegisterInfo::emitLoadConstPool(MachineBasicBlock &MBB,
+ MachineBasicBlock::iterator &MBBI,
+ DebugLoc dl,
+ unsigned DestReg, unsigned SubIdx,
+ int Val,
+ ARMCC::CondCodes Pred, unsigned PredReg,
+ unsigned MIFlags) const {
MachineFunction &MF = *MBB.getParent();
MachineConstantPool *ConstantPool = MF.getConstantPool();
const Constant *C = ConstantInt::get(
@@ -57,5 +58,6 @@ void Thumb2RegisterInfo::emitLoadConstPool(MachineBasicBlock &MBB,
BuildMI(MBB, MBBI, dl, TII.get(ARM::t2LDRpci))
.addReg(DestReg, getDefRegState(true), SubIdx)
- .addConstantPoolIndex(Idx).addImm((int64_t)ARMCC::AL).addReg(0);
+ .addConstantPoolIndex(Idx).addImm((int64_t)ARMCC::AL).addReg(0)
+ .setMIFlags(MIFlags);
}
OpenPOWER on IntegriCloud