Changes in directory llvm/lib/Target/ARM:
README-Thumb.txt updated: 1.7 -> 1.8 --- Log message: New entry. --- Diffs of the changes: (+9 -0) README-Thumb.txt | 9 +++++++++ 1 files changed, 9 insertions(+) Index: llvm/lib/Target/ARM/README-Thumb.txt diff -u llvm/lib/Target/ARM/README-Thumb.txt:1.7 llvm/lib/Target/ARM/README-Thumb.txt:1.8 --- llvm/lib/Target/ARM/README-Thumb.txt:1.7 Wed Feb 7 02:37:57 2007 +++ llvm/lib/Target/ARM/README-Thumb.txt Wed Feb 7 03:22:15 2007 @@ -145,3 +145,12 @@ This is especially bad when dynamic alloca is used. The all fixed size stack objects are referenced off the frame pointer with negative offsets. See oggenc for an example. + +//===---------------------------------------------------------------------===// + +We are reserving R3 as a scratch register under thumb mode. So if it is live in +to the function, we save / restore R3 to / from R12. Until register scavenging +is done, we should save R3 to a high callee saved reg at emitPrologue time +(when hasFP is true or stack size is large) and restore R3 from that register +instead. This allows us to at least get rid of the save to r12 everytime it is +used. _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits