aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuchira Sasanka <sasanka@students.uiuc.edu>2001-11-12 20:31:47 +0000
committerRuchira Sasanka <sasanka@students.uiuc.edu>2001-11-12 20:31:47 +0000
commit91014f6b0cec1c517d6da14787d9f2985ab40277 (patch)
treea11cb66efd56ef2fbe28be8f10e7e390fe62c8f8
parent27afeb2be859be5cd5439a731983dd55977b1d08 (diff)
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
-rw-r--r--lib/Target/SparcV9/SparcV9RegInfo.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/Target/SparcV9/SparcV9RegInfo.cpp b/lib/Target/SparcV9/SparcV9RegInfo.cpp
index 4040b02579..b576d05e6f 100644
--- a/lib/Target/SparcV9/SparcV9RegInfo.cpp
+++ b/lib/Target/SparcV9/SparcV9RegInfo.cpp
@@ -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 ;
}
}