llvm-6502/lib/CodeGen/SelectionDAG
Richard Sandiford acb31a245c Handle masked rotate amounts
At the moment we expect rotates to have the form:

   (or (shl X, Y), (shr X, Z))

where Y == bitsize(X) - Z or Z == bitsize(X) - Y.  This form means that
the (or ...) is undefined for Y == 0 or Z == 0.  This undefinedness can
be avoided by using Y == (C * bitsize(X) - Z) & (bitsize(X) - 1) or
Z == (C * bitsize(X) - Y) & (bitsize(X) - 1) for any integer C
(including 0, the most natural choice).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198861 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-09 10:56:42 +00:00
..
CMakeLists.txt
DAGCombiner.cpp Handle masked rotate amounts 2014-01-09 10:56:42 +00:00
FastISel.cpp
FunctionLoweringInfo.cpp [stackprotector] Use analysis from the StackProtector pass for stack layout in PEI a nd LocalStackSlot passes. 2013-12-19 03:17:11 +00:00
InstrEmitter.cpp
InstrEmitter.h
LegalizeDAG.cpp
LegalizeFloatTypes.cpp
LegalizeIntegerTypes.cpp
LegalizeTypes.cpp
LegalizeTypes.h
LegalizeTypesGeneric.cpp
LegalizeVectorOps.cpp
LegalizeVectorTypes.cpp
LLVMBuild.txt
Makefile
ResourcePriorityQueue.cpp
ScheduleDAGFast.cpp
ScheduleDAGRRList.cpp
ScheduleDAGSDNodes.cpp
ScheduleDAGSDNodes.h
ScheduleDAGVLIW.cpp
SDNodeDbgValue.h
SelectionDAG.cpp Put the functionality for printing a value to a raw_ostream as an 2014-01-09 02:29:41 +00:00
SelectionDAGBuilder.cpp [stackprotector] Use analysis from the StackProtector pass for stack layout in PEI a nd LocalStackSlot passes. 2013-12-19 03:17:11 +00:00
SelectionDAGBuilder.h
SelectionDAGDumper.cpp Put the functionality for printing a value to a raw_ostream as an 2014-01-09 02:29:41 +00:00
SelectionDAGISel.cpp
SelectionDAGPrinter.cpp Put the functionality for printing a value to a raw_ostream as an 2014-01-09 02:29:41 +00:00
TargetLowering.cpp Refactor function that checks that __builtin_returnaddress's argument is constant. 2014-01-06 00:43:20 +00:00
TargetSelectionDAGInfo.cpp