diff options
author | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2013-10-08 02:50:29 +0000 |
---|---|---|
committer | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2013-10-08 02:50:29 +0000 |
commit | 8223c553cfd93280e80925ea4479e0bd317b884d (patch) | |
tree | 8ba651a4d04eefc9660d0a8a241a5b2533fc7a0b /llvm/lib/Target/Sparc/DelaySlotFiller.cpp | |
parent | 9e4a006ec2d600abe83942a106e0ed99d9c18033 (diff) | |
download | llvm-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.cpp | 3 |
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); |