llvm-6502/lib/CodeGen
Chris Lattner a3dc3f692c Pull and through and/or/xor. This compiles some bitfield code to:
mov EAX, DWORD PTR [ESP + 4]
        mov ECX, DWORD PTR [EAX]
        mov EDX, ECX
        add EDX, EDX
        or EDX, ECX
        and EDX, -2147483648
        and ECX, 2147483647
        or EDX, ECX
        mov DWORD PTR [EAX], EDX
        ret

instead of:

        sub ESP, 4
        mov DWORD PTR [ESP], ESI
        mov EAX, DWORD PTR [ESP + 8]
        mov ECX, DWORD PTR [EAX]
        mov EDX, ECX
        add EDX, EDX
        mov ESI, ECX
        and ESI, -2147483648
        and EDX, -2147483648
        or EDX, ESI
        and ECX, 2147483647
        or EDX, ECX
        mov DWORD PTR [EAX], EDX
        mov ESI, DWORD PTR [ESP]
        add ESP, 4
        ret


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28122 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-05 06:10:43 +00:00
..
SelectionDAG Pull and through and/or/xor. This compiles some bitfield code to: 2006-05-05 06:10:43 +00:00
AsmPrinter.cpp Refactor TargetMachine, pushing handling of TargetData into the target-specific subclasses. This has one caller-visible change: getTargetData() now returns a pointer instead of a reference. 2006-05-03 01:29:57 +00:00
BranchFolding.cpp
DwarfWriter.cpp Refactor TargetMachine, pushing handling of TargetData into the target-specific subclasses. This has one caller-visible change: getTargetData() now returns a pointer instead of a reference. 2006-05-03 01:29:57 +00:00
ELFWriter.cpp Suck block address tracking out of targets into the JIT Emitter. This 2006-05-03 17:10:41 +00:00
IntrinsicLowering.cpp Handle new forms of llvm.dbg intrinsics. 2006-03-23 18:06:46 +00:00
LiveInterval.cpp Fix LiveInterval::getOverlapingRanges to take things in the right order 2005-10-21 06:41:30 +00:00
LiveIntervalAnalysis.cpp Move some methods out of MachineInstr into MachineOperand 2006-05-04 17:52:23 +00:00
LiveVariables.cpp Remove a bunch more dead V9 specific stuff 2006-05-04 01:26:39 +00:00
MachineBasicBlock.cpp Remove and simplify some more machineinstr/machineoperand stuff. 2006-05-04 18:16:01 +00:00
MachineDebugInfo.cpp Expand some code with temporary variables to rid ourselves of the warning 2006-04-13 18:29:58 +00:00
MachineFunction.cpp Refactor TargetMachine, pushing handling of TargetData into the target-specific subclasses. This has one caller-visible change: getTargetData() now returns a pointer instead of a reference. 2006-05-03 01:29:57 +00:00
MachineInstr.cpp Final pass of minor cleanups for MachineInstr 2006-05-04 19:36:09 +00:00
Makefile
Passes.cpp Alkis agrees that that iterative scan allocator isn't going to be worked on 2005-10-24 04:14:30 +00:00
PHIElimination.cpp Add support for targets (like Alpha) that have terminator instructions which 2006-01-04 07:12:21 +00:00
PhysRegTracker.h
PrologEpilogInserter.cpp Foundation for call frame information. 2006-04-07 16:34:46 +00:00
RegAllocLinearScan.cpp Add some comments. 2006-03-25 23:00:56 +00:00
RegAllocLocal.cpp Move some methods out of MachineInstr into MachineOperand 2006-05-04 17:52:23 +00:00
RegAllocSimple.cpp Move some methods out of MachineInstr into MachineOperand 2006-05-04 17:52:23 +00:00
TwoAddressInstructionPass.cpp Move some methods out of MachineInstr into MachineOperand 2006-05-04 17:52:23 +00:00
UnreachableBlockElim.cpp
VirtRegMap.cpp Move some methods out of MachineInstr into MachineOperand 2006-05-04 17:52:23 +00:00
VirtRegMap.h Fix a latent bug that my spiller patch last week exposed: we were leaving 2006-05-01 22:03:24 +00:00