summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-12-27 03:02:18 +0000
committerChris Lattner <sabre@nondot.org>2005-12-27 03:02:18 +0000
commit8258489ca4c7d868f65c45f56e01dc5c78c508f1 (patch)
treea4657c6c7ceaf4a078c31e2e382d8c6724704ef4 /llvm/lib
parentc58523442a5bfce6252e81995b8d03c4ed93bf0c (diff)
downloadbcm5719-llvm-8258489ca4c7d868f65c45f56e01dc5c78c508f1.tar.gz
bcm5719-llvm-8258489ca4c7d868f65c45f56e01dc5c78c508f1.zip
Fix a problem duraid pointed out to me compiling kc++ with -enable-x86-fastcc
llvm-svn: 25024
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index b419f31d47a..a5b261c8374 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -591,6 +591,9 @@ X86TargetLowering::LowerFastCCArguments(Function &F, SelectionDAG &DAG) {
X86::R8RegisterClass);
ArgValue = DAG.getCopyFromReg(DAG.getRoot(), VReg, MVT::i8);
DAG.setRoot(ArgValue.getValue(1));
+ if (ObjectVT == MVT::i1)
+ // FIXME: Should insert a assertzext here.
+ ArgValue = DAG.getNode(ISD::TRUNCATE, MVT::i1, ArgValue);
}
++NumIntRegs;
break;
@@ -780,6 +783,8 @@ X86TargetLowering::LowerFastCCCallTo(SDOperand Chain, const Type *RetTy,
switch (getValueType(Args[i].second)) {
default: assert(0 && "Unexpected ValueType for argument!");
case MVT::i1:
+ Args[i].first = DAG.getNode(ISD::ANY_EXTEND, MVT::i8, Args[i].first);
+ // Fall through.
case MVT::i8:
case MVT::i16:
case MVT::i32:
OpenPOWER on IntegriCloud