If a call return type is i1, insert a truncate from X86::AL to i1.
authorEvan Cheng <evan.cheng@apple.com>
Wed, 18 Jan 2006 08:08:38 +0000 (08:08 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 18 Jan 2006 08:08:38 +0000 (08:08 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25415 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelLowering.cpp

index 1d71891dc50bb74ce21be38b9bb7920862cf5e12..6a656142f7dbee76650354912ad5549ed460e1a4 100644 (file)
@@ -531,6 +531,8 @@ X86TargetLowering::LowerCCCCallTo(SDOperand Chain, const Type *RetTy,
       case MVT::i8:
         RetVal = DAG.getCopyFromReg(Chain, X86::AL, MVT::i8, InFlag);
         Chain = RetVal.getValue(1);
+        if (RetTyVT == MVT::i1) 
+          RetVal = DAG.getNode(ISD::TRUNCATE, MVT::i1, RetVal);
         break;
       case MVT::i16:
         RetVal = DAG.getCopyFromReg(Chain, X86::AX, MVT::i16, InFlag);
@@ -1057,6 +1059,8 @@ X86TargetLowering::LowerFastCCCallTo(SDOperand Chain, const Type *RetTy,
       case MVT::i8:
         RetVal = DAG.getCopyFromReg(Chain, X86::AL, MVT::i8, InFlag);
         Chain = RetVal.getValue(1);
+        if (RetTyVT == MVT::i1) 
+          RetVal = DAG.getNode(ISD::TRUNCATE, MVT::i1, RetVal);
         break;
       case MVT::i16:
         RetVal = DAG.getCopyFromReg(Chain, X86::AX, MVT::i16, InFlag);