diff options
author | Chris Lattner <sabre@nondot.org> | 2005-12-27 03:02:18 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-12-27 03:02:18 +0000 |
commit | 8258489ca4c7d868f65c45f56e01dc5c78c508f1 (patch) | |
tree | a4657c6c7ceaf4a078c31e2e382d8c6724704ef4 /llvm/lib | |
parent | c58523442a5bfce6252e81995b8d03c4ed93bf0c (diff) | |
download | bcm5719-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.cpp | 5 |
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: |