llvm-6502/lib
Ulrich Weigand 7bbb9c7b4a Fix big-endian codegen bug in DAGTypeLegalizer::ExpandRes_BITCAST
On PowerPC, a bitcast of <16 x i8> to i128 may run through a code
path in ExpandRes_BITCAST that attempts to do an intermediate
bitcast to a <4 x i32> vector, and then construct the Hi and Lo parts
of the resulting i128 by pairing up two of those i32 vector elements
each.  The code already recognizes that on a big-endian system, the
first two vector elements form the Hi part, and the final two vector
elements form the Lo part (vice-versa from the little-endian situation).

However, we also need to take endianness into account when forming each
of those separate pairs:  on a big-endian system, vector element 0 is
the *high* part of the pair making up the Hi part of the result, and
vector element 1 is the low part of the pair.  The code currently always
uses vector element 0 as the low part and vector element 1 as the high
part, as is appropriate for little-endian platforms only.

This patch fixes this by swapping the vector elements as they are
paired up as appropriate.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165802 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-12 15:42:58 +00:00
..
Analysis fix warning 2012-10-12 02:04:32 +00:00
Archive Mark checkSignature const, and in turn stop casting away const from 2012-09-05 22:09:23 +00:00
AsmParser Don't crash if a .ll file contains a forward-reference that looks like a global 2012-10-11 00:38:25 +00:00
Bitcode Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
CodeGen Fix big-endian codegen bug in DAGTypeLegalizer::ExpandRes_BITCAST 2012-10-12 15:42:58 +00:00
DebugInfo Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-18 02:01:41 +00:00
ExecutionEngine Indenting. 2012-10-12 02:04:47 +00:00
Linker Move the "findUsedStructTypes" functionality outside of the Module class. 2012-08-03 00:30:35 +00:00
MC Whitespace. 2012-10-09 20:15:02 +00:00
Object Cosmetic changes 2012-10-10 01:45:52 +00:00
Support Add powerpc-ibm-aix to Triple. Patch by Kai. 2012-10-12 11:08:57 +00:00
TableGen tblgen: Compile TableGen without RTTI. 2012-10-10 20:27:18 +00:00
Target Div, Rem int/unsigned int 2012-10-12 02:01:09 +00:00
Transforms PGO: create metadata for switch only if it has more than one targets. 2012-10-11 22:28:34 +00:00
VMCore Add the LLVM context to this c'tor. It will be needed in the future. 2012-10-11 01:10:00 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile