mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-07 11:33:44 +00:00
Canged ColorCallArg so that when a call arg is directly pushed on to stack
for argument passing, that instruction is directly added to the InstructionsBefore set of the called machine instruction - i.e., it is not reordered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1277 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
27afeb2be8
commit
91014f6b0c
@ -668,7 +668,11 @@ void UltraSparcRegInfo::colorCallArgs(const MachineInstr *const CallMI,
|
||||
AdMI = cpReg2MemMI(UniLRReg, getStackPointer(), argOffset, RegType );
|
||||
}
|
||||
|
||||
AddedInstrnsBefore.push_back( AdMI ); // Now add the instruction
|
||||
// Now add the instruction. We can directly add to
|
||||
// CallAI->InstrnsBefore since we are just saving a reg on stack
|
||||
//
|
||||
CallAI->InstrnsBefore.push_back( AdMI );
|
||||
//cerr << "\nCaution: Passing a reg on stack";
|
||||
}
|
||||
|
||||
else { // LR is not colored (i.e., spilled)
|
||||
@ -683,6 +687,7 @@ void UltraSparcRegInfo::colorCallArgs(const MachineInstr *const CallMI,
|
||||
AdMI = cpMem2RegMI(getFramePointer(), LR->getSpillOffFromFP(),
|
||||
UniArgReg, RegType );
|
||||
|
||||
cerr << "\nCaution: Loading a spilled val to a reg as a call arg";
|
||||
AddedInstrnsBefore.push_back( AdMI ); // Now add the instruction
|
||||
}
|
||||
|
||||
@ -728,7 +733,7 @@ void UltraSparcRegInfo::colorCallArgs(const MachineInstr *const CallMI,
|
||||
CallAI->InstrnsBefore.push_back( Ad3 );
|
||||
CallAI->InstrnsBefore.push_back( Ad4 );
|
||||
|
||||
cerr << "\n Caution: Call arg moved from stack to stack";
|
||||
cerr << "\nCaution: Call arg moved from stack2stack for: " << *CallMI ;
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user