aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/Sparc/DelaySlotFiller.cpp
diff options
context:
space:
mode:
authorVenkatraman Govindaraju <venkatra@cs.wisc.edu>2013-10-08 02:50:29 +0000
committerVenkatraman Govindaraju <venkatra@cs.wisc.edu>2013-10-08 02:50:29 +0000
commit8223c553cfd93280e80925ea4479e0bd317b884d (patch)
tree8ba651a4d04eefc9660d0a8a241a5b2533fc7a0b /llvm/lib/Target/Sparc/DelaySlotFiller.cpp
parent9e4a006ec2d600abe83942a106e0ed99d9c18033 (diff)
downloadllvm-8223c553cfd93280e80925ea4479e0bd317b884d.zip
llvm-8223c553cfd93280e80925ea4479e0bd317b884d.tar.gz
llvm-8223c553cfd93280e80925ea4479e0bd317b884d.tar.bz2
[Sparc] Do not hardcode nop in the delay slot of TLS_CALL. Use DelaySlotFiller to fill the delay slot instead.
llvm-svn: 192160
Diffstat (limited to 'llvm/lib/Target/Sparc/DelaySlotFiller.cpp')
-rw-r--r--llvm/lib/Target/Sparc/DelaySlotFiller.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/Sparc/DelaySlotFiller.cpp b/llvm/lib/Target/Sparc/DelaySlotFiller.cpp
index 4ae6407..9a0466a 100644
--- a/llvm/lib/Target/Sparc/DelaySlotFiller.cpp
+++ b/llvm/lib/Target/Sparc/DelaySlotFiller.cpp
@@ -169,7 +169,7 @@ Filler::findDelayInstr(MachineBasicBlock &MBB,
if (slot == MBB.begin())
return MBB.end();
- if (slot->getOpcode() == SP::RET)
+ if (slot->getOpcode() == SP::RET || slot->getOpcode() == SP::TLS_CALL)
return MBB.end();
if (slot->getOpcode() == SP::RETL) {
@@ -355,6 +355,7 @@ bool Filler::needsUnimp(MachineBasicBlock::iterator I, unsigned &StructSize)
case SP::CALL: structSizeOpNum = 1; break;
case SP::JMPLrr:
case SP::JMPLri: structSizeOpNum = 2; break;
+ case SP::TLS_CALL: return false;
}
const MachineOperand &MO = I->getOperand(structSizeOpNum);