mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-02 00:36:36 +00:00
Darwin PPC64 indirect call target goes in X12, not R12. This fixes these
two regression tests: test/CodeGen/PowerPC/2007-10-21-LocalRegAllocAssert.ll test/CodeGen/PowerPC/2007-10-21-LocalRegAllocAssert2.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48120 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5e09da236e
commit
dc9971a2e3
@ -1973,9 +1973,10 @@ SDOperand PPCTargetLowering::LowerCALL(SDOperand Op, SelectionDAG &DAG,
|
||||
Chain = DAG.getNode(PPCISD::MTCTR, NodeTys, MTCTROps, 2+(InFlag.Val!=0));
|
||||
InFlag = Chain.getValue(1);
|
||||
|
||||
// Copy the callee address into R12 on darwin.
|
||||
// Copy the callee address into R12/X12 on darwin.
|
||||
if (isMachoABI) {
|
||||
Chain = DAG.getCopyToReg(Chain, PPC::R12, Callee, InFlag);
|
||||
unsigned Reg = Callee.getValueType() == MVT::i32 ? PPC::R12 : PPC::X12;
|
||||
Chain = DAG.getCopyToReg(Chain, Reg, Callee, InFlag);
|
||||
InFlag = Chain.getValue(1);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user