mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-16 00:17:32 +00:00
teach all loads and stores about the stack
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20058 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2c9e38c285
commit
0538034a82
@ -125,7 +125,7 @@ AlphaTargetLowering::LowerArguments(Function &F, SelectionDAG &DAG)
|
||||
|
||||
// assert(0 && "TODO");
|
||||
MachineFunction &MF = DAG.getMachineFunction();
|
||||
MachineFrameInfo *MFI = MF.getFrameInfo();
|
||||
MachineFrameInfo*MFI = MF.getFrameInfo();
|
||||
|
||||
GP = MF.getSSARegMap()->createVirtualRegister(getRegClassFor(MVT::i64));
|
||||
MachineBasicBlock& BB = MF.front();
|
||||
@ -442,6 +442,11 @@ unsigned ISel::SelectExprFP(SDOperand N, unsigned Result)
|
||||
Opc = GetSymVersion(Opc);
|
||||
BuildMI(BB, Opc, 1, Result).addConstantPoolIndex(CP->getIndex());
|
||||
}
|
||||
else if(Address.getOpcode() == ISD::FrameIndex)
|
||||
{
|
||||
Tmp1 = cast<FrameIndexSDNode>(Address)->getIndex();
|
||||
BuildMI(BB, Opc, 2, Result).addFrameIndex(Tmp1).addReg(Alpha::F31);
|
||||
}
|
||||
else
|
||||
{
|
||||
long offset;
|
||||
@ -505,6 +510,11 @@ unsigned ISel::SelectExprFP(SDOperand N, unsigned Result)
|
||||
BuildMI(BB, Alpha::LDS_SYM, 1, Tmp2).addConstantPoolIndex(CP->getIndex());
|
||||
BuildMI(BB, Alpha::CVTST, 1, Result).addReg(Tmp2);
|
||||
}
|
||||
else if(Address.getOpcode() == ISD::FrameIndex)
|
||||
{
|
||||
Tmp1 = cast<FrameIndexSDNode>(Address)->getIndex();
|
||||
BuildMI(BB, Opc, 2, Result).addFrameIndex(Tmp1).addReg(Alpha::F31);
|
||||
}
|
||||
else
|
||||
{
|
||||
long offset;
|
||||
@ -636,6 +646,11 @@ unsigned ISel::SelectExpr(SDOperand N) {
|
||||
Opc = GetSymVersion(Opc);
|
||||
BuildMI(BB, Opc, 1, Result).addConstantPoolIndex(CP->getIndex());
|
||||
}
|
||||
else if(Address.getOpcode() == ISD::FrameIndex)
|
||||
{
|
||||
Tmp1 = cast<FrameIndexSDNode>(Address)->getIndex();
|
||||
BuildMI(BB, Opc, 2, Result).addFrameIndex(Tmp1).addReg(Alpha::F31);
|
||||
}
|
||||
else
|
||||
{
|
||||
long offset;
|
||||
@ -677,6 +692,11 @@ unsigned ISel::SelectExpr(SDOperand N) {
|
||||
Opc = GetSymVersion(Opc);
|
||||
BuildMI(BB, Opc, 1, Result).addConstantPoolIndex(CP->getIndex());
|
||||
}
|
||||
else if(Address.getOpcode() == ISD::FrameIndex)
|
||||
{
|
||||
Tmp1 = cast<FrameIndexSDNode>(Address)->getIndex();
|
||||
BuildMI(BB, Opc, 2, Result).addFrameIndex(Tmp1).addReg(Alpha::F31);
|
||||
}
|
||||
else
|
||||
{
|
||||
long offset;
|
||||
@ -719,6 +739,11 @@ unsigned ISel::SelectExpr(SDOperand N) {
|
||||
Opc = GetSymVersion(Opc);
|
||||
BuildMI(BB, Opc, 1, Result).addConstantPoolIndex(CP->getIndex());
|
||||
}
|
||||
else if(Address.getOpcode() == ISD::FrameIndex)
|
||||
{
|
||||
Tmp1 = cast<FrameIndexSDNode>(Address)->getIndex();
|
||||
BuildMI(BB, Opc, 2, Result).addFrameIndex(Tmp1).addReg(Alpha::F31);
|
||||
}
|
||||
else
|
||||
{
|
||||
long offset;
|
||||
@ -1247,6 +1272,11 @@ unsigned ISel::SelectExpr(SDOperand N) {
|
||||
AlphaLowering.restoreGP(BB);
|
||||
BuildMI(BB, Alpha::LDQ_SYM, 1, Result).addConstantPoolIndex(CP->getIndex());
|
||||
}
|
||||
else if(Address.getOpcode() == ISD::FrameIndex)
|
||||
{
|
||||
Tmp1 = cast<FrameIndexSDNode>(Address)->getIndex();
|
||||
BuildMI(BB, Alpha::LDQ, 2, Result).addFrameIndex(Tmp1).addReg(Alpha::F31);
|
||||
}
|
||||
else
|
||||
{
|
||||
long offset;
|
||||
@ -1374,6 +1404,11 @@ void ISel::Select(SDOperand N) {
|
||||
Opc = GetSymVersion(Opc);
|
||||
BuildMI(BB, Opc, 2).addReg(Tmp1).addGlobalAddress(cast<GlobalAddressSDNode>(Address)->getGlobal());
|
||||
}
|
||||
else if(Address.getOpcode() == ISD::FrameIndex)
|
||||
{
|
||||
Tmp1 = cast<FrameIndexSDNode>(Address)->getIndex();
|
||||
BuildMI(BB, Opc, 3).addReg(Tmp1).addFrameIndex(Tmp1).addReg(Alpha::F31);
|
||||
}
|
||||
else
|
||||
{
|
||||
long offset;
|
||||
@ -1419,6 +1454,11 @@ void ISel::Select(SDOperand N) {
|
||||
Opc = GetSymVersion(Opc);
|
||||
BuildMI(BB, Opc, 2).addReg(Tmp1).addGlobalAddress(cast<GlobalAddressSDNode>(Address)->getGlobal());
|
||||
}
|
||||
else if(Address.getOpcode() == ISD::FrameIndex)
|
||||
{
|
||||
Tmp1 = cast<FrameIndexSDNode>(Address)->getIndex();
|
||||
BuildMI(BB, Opc, 3).addReg(Tmp1).addFrameIndex(Tmp1).addReg(Alpha::F31);
|
||||
}
|
||||
else
|
||||
{
|
||||
long offset;
|
||||
|
Loading…
Reference in New Issue
Block a user