mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
bd50a4d757
llvm-svn: 30928 |
||
---|---|---|
.. | ||
.cvsignore | ||
ARM.h | ||
ARM.td | ||
ARMAsmPrinter.cpp | ||
ARMFrameInfo.h | ||
ARMInstrInfo.cpp | ||
ARMInstrInfo.h | ||
ARMInstrInfo.td | ||
ARMISelDAGToDAG.cpp | ||
ARMMul.cpp | ||
ARMRegisterInfo.cpp | ||
ARMRegisterInfo.h | ||
ARMRegisterInfo.td | ||
ARMTargetAsmInfo.cpp | ||
ARMTargetAsmInfo.h | ||
ARMTargetMachine.cpp | ||
ARMTargetMachine.h | ||
Makefile | ||
README.txt |
//===---------------------------------------------------------------------===// // Random ideas for the ARM backend. //===---------------------------------------------------------------------===// Consider implementing a select with two conditional moves: cmp x, y moveq dst, a movne dst, b ---------------------------------------------------------- %tmp1 = shl int %b, ubyte %c %tmp4 = add int %a, %tmp1 compiles to add r0, r0, r1, lsl r2 but %tmp1 = shl int %b, ubyte %c %tmp4 = add int %tmp1, %a compiles to mov r1, r1, lsl r2 add r0, r1, r0 ---------------------------------------------------------- add an offset to FLDS/FLDD addressing mode ---------------------------------------------------------- the function void %f() { entry: call void %g( int 1, int 2, int 3, int 4, int 5 ) ret void } declare void %g(int, int, int, int, int) Only needs 8 bytes of stack space. We currently allocate 16. ----------------------------------------------------------