aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Target/X86/InstSelectSimple.cpp5
-rw-r--r--lib/Target/X86/X86ISelSimple.cpp5
2 files changed, 4 insertions, 6 deletions
diff --git a/lib/Target/X86/InstSelectSimple.cpp b/lib/Target/X86/InstSelectSimple.cpp
index 10fdf0f911..04827f03fc 100644
--- a/lib/Target/X86/InstSelectSimple.cpp
+++ b/lib/Target/X86/InstSelectSimple.cpp
@@ -389,10 +389,9 @@ ISel::visitCallInst (CallInst & CI)
{
// Push the arguments on the stack in reverse order, as specified by
// the ABI.
- for (unsigned i = CI.getNumOperands (); i >= 1; --i)
+ for (unsigned i = CI.getNumOperands()-1; i >= 1; --i)
{
Value *v = CI.getOperand (i);
- unsigned argReg = getReg (v);
switch (getClass (v->getType ()))
{
case cByte:
@@ -404,7 +403,7 @@ ISel::visitCallInst (CallInst & CI)
break;
case cInt:
case cFloat:
- BuildMI (BB, X86::PUSHr32, 1).addReg (argReg);
+ BuildMI (BB, X86::PUSHr32, 1).addReg(getReg(v));
break;
default:
// FIXME: long/ulong/double args not handled.
diff --git a/lib/Target/X86/X86ISelSimple.cpp b/lib/Target/X86/X86ISelSimple.cpp
index 10fdf0f911..04827f03fc 100644
--- a/lib/Target/X86/X86ISelSimple.cpp
+++ b/lib/Target/X86/X86ISelSimple.cpp
@@ -389,10 +389,9 @@ ISel::visitCallInst (CallInst & CI)
{
// Push the arguments on the stack in reverse order, as specified by
// the ABI.
- for (unsigned i = CI.getNumOperands (); i >= 1; --i)
+ for (unsigned i = CI.getNumOperands()-1; i >= 1; --i)
{
Value *v = CI.getOperand (i);
- unsigned argReg = getReg (v);
switch (getClass (v->getType ()))
{
case cByte:
@@ -404,7 +403,7 @@ ISel::visitCallInst (CallInst & CI)
break;
case cInt:
case cFloat:
- BuildMI (BB, X86::PUSHr32, 1).addReg (argReg);
+ BuildMI (BB, X86::PUSHr32, 1).addReg(getReg(v));
break;
default:
// FIXME: long/ulong/double args not handled.