From: Evan Cheng Date: Wed, 7 Feb 2007 09:22:15 +0000 (+0000) Subject: New entry. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2ef02a220e3f949ebd18948ebb5bea34dc18b652;p=oota-llvm.git New entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34000 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/ARM/README-Thumb.txt b/lib/Target/ARM/README-Thumb.txt index af02417d125..3818d831461 100644 --- a/lib/Target/ARM/README-Thumb.txt +++ b/lib/Target/ARM/README-Thumb.txt @@ -145,3 +145,12 @@ ldr r2, [r2, #7 * 4] 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.