Fix wrong usages of CTR/MCTR where CTR8/MCTR8 was meant.
authorRoman Divacky <rdivacky@freebsd.org>
Fri, 3 Jun 2011 15:47:49 +0000 (15:47 +0000)
committerRoman Divacky <rdivacky@freebsd.org>
Fri, 3 Jun 2011 15:47:49 +0000 (15:47 +0000)
commit0c9b559bfd0b476c2dde787285a1195f3142c423
tree672e8dcfb940f11212dd2bddaee81c03afb7adea
parent422b62b4079b49553a5e8bc793d4413494e221d7
Fix wrong usages of CTR/MCTR where CTR8/MCTR8 was meant.

- Check for MTCTR8 in addition to MTCTR when looking up a hazard.

- When lowering an indirect call use CTR8 when targeting 64bit.

- Introduce BCTR8 that uses CTR8 and use it on 64bit when expanding ISD::BRIND.

The last change fixes PR8487. With those changes, we are able to compile a
running "ls" and "sh" on FreeBSD/PowerPC64.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132552 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/PowerPC/PPCHazardRecognizers.cpp
lib/Target/PowerPC/PPCISelDAGToDAG.cpp
lib/Target/PowerPC/PPCISelLowering.cpp
lib/Target/PowerPC/PPCInstr64Bit.td
test/CodeGen/PowerPC/indirectbr.ll