aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2011-04-19 05:15:59 +0000
committerChris Lattner <sabre@nondot.org>2011-04-19 05:15:59 +0000
commitff009ad1e1152ac6941ea4a85910f125868bd3de (patch)
treea0fcfb82de067033ccff22bdd5f90b6b213dd55e /lib
parentb44101c1401c23fb86fe649309f52e823206147d (diff)
downloadexternal_llvm-ff009ad1e1152ac6941ea4a85910f125868bd3de.tar.gz
external_llvm-ff009ad1e1152ac6941ea4a85910f125868bd3de.tar.bz2
external_llvm-ff009ad1e1152ac6941ea4a85910f125868bd3de.zip
tidy up
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129753 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/X86/X86FastISel.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/Target/X86/X86FastISel.cpp b/lib/Target/X86/X86FastISel.cpp
index 0be9dfa06c..c563a56f98 100644
--- a/lib/Target/X86/X86FastISel.cpp
+++ b/lib/Target/X86/X86FastISel.cpp
@@ -1535,11 +1535,12 @@ bool X86FastISel::X86SelectCall(const Instruction *I) {
}
unsigned ArgReg;
+
+ // Passing bools around ends up doing a trunc to i1 and passing it.
+ // Codegen this as an argument + "and 1".
if (ArgVal->getType()->isIntegerTy(1) && isa<TruncInst>(ArgVal) &&
cast<TruncInst>(ArgVal)->getParent() == I->getParent() &&
ArgVal->hasOneUse()) {
- // Passing bools around ends up doing a trunc to i1 and passing it.
- // Codegen this as an argument + "and 1".
ArgVal = cast<TruncInst>(ArgVal)->getOperand(0);
ArgReg = getRegForValue(ArgVal);
if (ArgReg == 0) return false;
@@ -1551,9 +1552,10 @@ bool X86FastISel::X86SelectCall(const Instruction *I) {
ArgVal->hasOneUse(), 1);
} else {
ArgReg = getRegForValue(ArgVal);
- if (ArgReg == 0) return false;
}
+ if (ArgReg == 0) return false;
+
// FIXME: Only handle *easy* calls for now.
if (CS.paramHasAttr(AttrInd, Attribute::InReg) ||
CS.paramHasAttr(AttrInd, Attribute::StructRet) ||