| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Represent previous bools and these ones with flags in a single byte
per operand.
llvm-svn: 2863
|
| |
|
|
| |
llvm-svn: 2862
|
| |
|
|
| |
llvm-svn: 2861
|
| |
|
|
|
|
|
| |
Represent previous bools and these ones with flags in a single byte
per operand.
llvm-svn: 2860
|
| |
|
|
| |
llvm-svn: 2859
|
| |
|
|
|
|
| |
and generate actual machine instruction sequences directly.
llvm-svn: 2858
|
| |
|
|
| |
llvm-svn: 2857
|
| |
|
|
|
|
|
|
|
|
|
| |
and generate actual machine instruction sequences directly.
Also a couple of bug fixes in code for putting constants into registers:
-- Do *not* sign-extend unsigned constant that is shorter than int reg size
-- Fix handling of address constant (a GlobalValue) vs. constant that
must be loaded.
llvm-svn: 2856
|
| |
|
|
|
|
|
|
|
|
| |
-- FP argument to a function with no prototype going on stack
was not being copied to the stack in colorCallArgs().
-- Put caller-saving code *before* argument copying code so that
we don't trash a register before saving it!
-- Two other minor fixes.
llvm-svn: 2855
|
| |
|
|
|
|
| |
(This file has a minor change required for this fix.)
llvm-svn: 2854
|
| |
|
|
| |
llvm-svn: 2853
|
| |
|
|
| |
llvm-svn: 2852
|
| |
|
|
| |
llvm-svn: 2851
|
| |
|
|
|
|
| |
FOREVER to run. That's the bug. :)
llvm-svn: 2850
|
| |
|
|
| |
llvm-svn: 2849
|
| |
|
|
| |
llvm-svn: 2848
|
| |
|
|
| |
llvm-svn: 2847
|
| |
|
|
| |
llvm-svn: 2846
|
| |
|
|
| |
llvm-svn: 2845
|
| |
|
|
| |
llvm-svn: 2844
|
| |
|
|
| |
llvm-svn: 2843
|
| |
|
|
|
|
| |
assembly.
llvm-svn: 2842
|
| |
|
|
| |
llvm-svn: 2841
|
| |
|
|
| |
llvm-svn: 2840
|
| |
|
|
|
|
|
|
| |
changes in class MachineRegInfo (see MachineRegInfo.h for details).
Added {LD,ST}[X]FSR instructions.
llvm-svn: 2839
|
| |
|
|
| |
llvm-svn: 2838
|
| |
|
|
| |
llvm-svn: 2837
|
| |
|
|
|
|
|
|
|
|
| |
basic block.
Mark setCCInstr used as dest. of conditional-move as both a def and a use.
BA instruction no longer has the unused CC argument.
llvm-svn: 2836
|
| |
|
|
|
|
|
| |
Added LDFSR, LDXFSR, STFSR and STXFSR.
Fixed operands info for RDCCR, WRCCR.
llvm-svn: 2835
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
handle conditional move instructions:
-- cpMem<->Reg functions now support CC registers (int and FP) correctly.
Also, cpMem<->Reg functions now return a vector of machine instructions.
-- Scratch registers must be explicitly provided to cpMem<->Reg when
needed, since CC regs need one to be copied to/from memory.
-- CC regs are saved to a scratch register instead of stack.
-- All regs used by a instruction are now recorded in MachineInstr::regsUsed,
since regs used to save values *across* an instruction are not obvious
either from the operands or from the LiveVar sets.
-- An (explicit or implicit) operand may now be both a def and a use.
This is needed for conditional move operations.
So an operand may need spill code both before and after the instruction.
Other changes:
-- Added several get{Class,Type} functions.
-- Added unified-to-local register number conversion.
-- class MachineCodeForBasicBlock is now an annotation on BasicBlock.
-- Suggest/Color methods may modify the MachineInstr (and always did),
so don't make that argument const!
-- Caller-saving code doesn't need its special purpose code for
handling CC registers since cpMem<->Reg handle those correctly now.
llvm-svn: 2834
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
handle conditional move instructions:
-- cpMem<->Reg functions now support CC registers (int and FP) correctly.
-- Scratch registers must be explicitly provided to cpMem<->Reg when
needed, since CC regs need one to be copied to/from memory.
-- CC regs are saved to a scratch register instead of stack.
-- All regs used by a instruction are now recorded in MachineInstr::regsUsed,
since regs used to save values *across* an instruction are not obvious
either from the operands or from the LiveVar sets.
-- An (explicit or implicit) operand may now be both a def and a use.
This is needed for conditional move operations.
So an operand may need spill code both before and after the instruction.
-- class MachineCodeForBasicBlock is now an annotation on BasicBlock.
llvm-svn: 2833
|
| |
|
|
|
|
|
| |
because operands may be modified directly to set register.
Also, class MachineCodeForBasicBlock is now an annotation on BasicBlock.
llvm-svn: 2832
|
| |
|
|
| |
llvm-svn: 2831
|
| |
|
|
| |
llvm-svn: 2830
|
| |
|
|
|
|
| |
This class is now an annotation on BasicBlock.
llvm-svn: 2829
|
| |
|
|
| |
llvm-svn: 2828
|
| |
|
|
|
|
| |
Moved here from MachineInstr.cpp to make it an annotation on BasicBlock.
llvm-svn: 2827
|
| |
|
|
|
|
|
|
|
| |
so additional dep. edges have to be added.
This was needed to correctly handle conditional move instructions!
MachineCodeForBasicBlock is now an annotation on BasicBlock.
Renamed "earliestForNode" to "earliestReadyTimeForNode".
llvm-svn: 2826
|
| |
|
|
| |
llvm-svn: 2825
|
| |
|
|
|
|
|
|
|
|
|
|
| |
A scratch register has to be provided when needed to do the copy.
Also, cpMem<->Reg functions now return a vector of machine instructions.
Added several get{Class,Type} functions.
Suggest/Color methods may modify the MachineInstr (and always did),
so don't make that argument const!
llvm-svn: 2824
|
| |
|
|
|
|
| |
Moved here from MachineInstr.h to make it an annotation on BasicBlock.
llvm-svn: 2823
|
| |
|
|
| |
llvm-svn: 2822
|
| |
|
|
|
|
|
|
| |
An (explicit or implicit) operand may now be both a def and a use.
Also add a set of regs used by each instruction.
dump() no longer takes an optional argument, which doesn't work in gdb.
llvm-svn: 2821
|
| |
|
|
|
|
| |
because operands may be modified directly to set register.
llvm-svn: 2820
|
| |
|
|
| |
llvm-svn: 2819
|
| |
|
|
| |
llvm-svn: 2818
|
| |
|
|
| |
llvm-svn: 2817
|
| |
|
|
| |
llvm-svn: 2816
|
| |
|
|
| |
llvm-svn: 2815
|
| |
|
|
| |
llvm-svn: 2814
|