1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/lib/Target/ARM/README.txt

49 lines
980 B
Plaintext
Raw Normal View History

2006-08-22 14:22:46 +02:00
//===---------------------------------------------------------------------===//
// Random ideas for the ARM backend.
//===---------------------------------------------------------------------===//
Consider implementing a select with two conditional moves:
cmp x, y
moveq dst, a
movne dst, b
2006-09-22 13:36:17 +02:00
----------------------------------------------------------
%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
----------------------------------------------------------
2006-10-07 16:03:39 +02:00
add an offset to FLDS/FLDD addressing mode
----------------------------------------------------------
2006-10-09 16:18:33 +02:00
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.
----------------------------------------------------------