From: Brian Gaeke Date: Sun, 14 Nov 2004 06:32:08 +0000 (+0000) Subject: Fix problem with insertion point for ADJCALLSTACKDOWN. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=da9b3668c2fcc154d6bd2718ee5a5f70b8d0c8fa;p=oota-llvm.git Fix problem with insertion point for ADJCALLSTACKDOWN. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17733 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/Sparc/SparcV8ISelSimple.cpp b/lib/Target/Sparc/SparcV8ISelSimple.cpp index 6999affa742..1a67ebb36c7 100644 --- a/lib/Target/Sparc/SparcV8ISelSimple.cpp +++ b/lib/Target/Sparc/SparcV8ISelSimple.cpp @@ -789,10 +789,9 @@ void V8ISel::visitCallInst(CallInst &I) { const unsigned *OAREnd = &OutgoingArgRegs[6]; const unsigned *OAR = &OutgoingArgRegs[0]; unsigned ArgOffset = 68; + if (extraStack) BuildMI (BB, V8::ADJCALLSTACKDOWN, 1).addImm (extraStack); for (unsigned i = 1; i < I.getNumOperands (); ++i) { unsigned ArgReg = getReg (I.getOperand (i)); - if (i == 7 && extraStack) - BuildMI (BB, V8::ADJCALLSTACKDOWN, 1).addImm (extraStack); if (getClassB (I.getOperand (i)->getType ()) < cLong) { // Schlep it over into the incoming arg register if (ArgOffset < 92) { diff --git a/lib/Target/SparcV8/SparcV8ISelSimple.cpp b/lib/Target/SparcV8/SparcV8ISelSimple.cpp index 6999affa742..1a67ebb36c7 100644 --- a/lib/Target/SparcV8/SparcV8ISelSimple.cpp +++ b/lib/Target/SparcV8/SparcV8ISelSimple.cpp @@ -789,10 +789,9 @@ void V8ISel::visitCallInst(CallInst &I) { const unsigned *OAREnd = &OutgoingArgRegs[6]; const unsigned *OAR = &OutgoingArgRegs[0]; unsigned ArgOffset = 68; + if (extraStack) BuildMI (BB, V8::ADJCALLSTACKDOWN, 1).addImm (extraStack); for (unsigned i = 1; i < I.getNumOperands (); ++i) { unsigned ArgReg = getReg (I.getOperand (i)); - if (i == 7 && extraStack) - BuildMI (BB, V8::ADJCALLSTACKDOWN, 1).addImm (extraStack); if (getClassB (I.getOperand (i)->getType ()) < cLong) { // Schlep it over into the incoming arg register if (ArgOffset < 92) {