llvm.org GIT mirror llvm / 2ef02a2
New entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34000 91177308-0d34-0410-b5e6-96231b3b80d8 Evan Cheng 13 years ago
1 changed file(s) with 9 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
144144 This is especially bad when dynamic alloca is used. The all fixed size stack
145145 objects are referenced off the frame pointer with negative offsets. See
146146 oggenc for an example.
147
148 //===---------------------------------------------------------------------===//
149
150 We are reserving R3 as a scratch register under thumb mode. So if it is live in
151 to the function, we save / restore R3 to / from R12. Until register scavenging
152 is done, we should save R3 to a high callee saved reg at emitPrologue time
153 (when hasFP is true or stack size is large) and restore R3 from that register
154 instead. This allows us to at least get rid of the save to r12 everytime it is
155 used.