summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-01-12 18:19:52 +0000
committerChris Lattner <sabre@nondot.org>2005-01-12 18:19:52 +0000
commit9864b08f94188e2921df93062e431aa0e8bb833f (patch)
tree0841db2c294c0923e818f1a40018cd75730e055b /llvm/lib/CodeGen
parent1321754941a249e9c746373039104560a1a50299 (diff)
downloadbcm5719-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/CodeGen')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp4
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:
OpenPOWER on IntegriCloud