projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
Fix big-endian codegen bug in DAGTypeLegalizer::ExpandRes_BITCAST
[oota-llvm.git]
/
lib
/
CodeGen
/
SelectionDAG
/
LegalizeTypesGeneric.cpp
diff --git
a/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
b/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
index bb54fd24e211244bedc380fcd26fcb436ab505e0..6bcb3b25e98eb7de7767dc172117ea204aa01cf7 100644
(file)
--- a/
lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
+++ b/
lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
@@
-124,6
+124,10
@@
void DAGTypeLegalizer::ExpandRes_BITCAST(SDNode *N, SDValue &Lo, SDValue &Hi) {
// there are only two nodes left, i.e. Lo and Hi.
SDValue LHS = Vals[Slot];
SDValue RHS = Vals[Slot + 1];
+
+ if (TLI.isBigEndian())
+ std::swap(LHS, RHS);
+
Vals.push_back(DAG.getNode(ISD::BUILD_PAIR, dl,
EVT::getIntegerVT(
*DAG.getContext(),