diff options
| author | Chris Lattner <sabre@nondot.org> | 2005-01-12 18:19:52 +0000 | 
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2005-01-12 18:19:52 +0000 | 
| commit | 9864b08f94188e2921df93062e431aa0e8bb833f (patch) | |
| tree | 0841db2c294c0923e818f1a40018cd75730e055b /llvm/lib | |
| parent | 1321754941a249e9c746373039104560a1a50299 (diff) | |
| download | bcm5719-llvm-9864b08f94188e2921df93062e431aa0e8bb833f.tar.gz bcm5719-llvm-9864b08f94188e2921df93062e431aa0e8bb833f.zip | |
Fix sign extend to long.  When coming from sbyte, we used to generate:
        movsbl 4(%esp), %eax
        movl %eax, %edx
        sarl $7, %edx
Now we generate:
        movsbl 4(%esp), %eax
        movl %eax, %edx
        sarl $31, %edx
Which is right.
llvm-svn: 19515
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 4 | 
1 files changed, 2 insertions, 2 deletions
| diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index f3b344bb8c1..64c686efc67 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -805,8 +805,8 @@ void SelectionDAGLegalize::ExpandOp(SDOperand Op, SDOperand &Lo, SDOperand &Hi){      // The high part is obtained by SRA'ing all but one of the bits of the lo      // part. -    unsigned SrcSize = MVT::getSizeInBits(Node->getOperand(0).getValueType()); -    Hi = DAG.getNode(ISD::SRA, NVT, Lo, DAG.getConstant(SrcSize-1, MVT::i8)); +    unsigned LoSize = MVT::getSizeInBits(Lo.getValueType()); +    Hi = DAG.getNode(ISD::SRA, NVT, Lo, DAG.getConstant(LoSize-1, MVT::i8));      break;    }    case ISD::ZERO_EXTEND: | 

