mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-27 22:12:47 +01:00
Mirror of https://github.com/RPCS3/llvm-mirror
b94ede185c
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 |
||
---|---|---|
docs | ||
include | ||
lib | ||
runtime | ||
support/lib/Support | ||
test | ||
tools | ||
utils | ||
cvsupdate | ||
getsomesrcs.sh | ||
getsrcs.sh | ||
Makefile | ||
Makefile.common | ||
Makefile.rules |