aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-02-07 09:22:15 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-02-07 09:22:15 +0000
commit2ef02a220e3f949ebd18948ebb5bea34dc18b652 (patch)
treed273e465eacea9bcafac4808337e125b90e3ee91
parent8bed6c968fd7164222bc0cf4b86686c88381c3b8 (diff)
downloadexternal_llvm-2ef02a220e3f949ebd18948ebb5bea34dc18b652.tar.gz
external_llvm-2ef02a220e3f949ebd18948ebb5bea34dc18b652.tar.bz2
external_llvm-2ef02a220e3f949ebd18948ebb5bea34dc18b652.zip
New entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34000 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/ARM/README-Thumb.txt9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/Target/ARM/README-Thumb.txt b/lib/Target/ARM/README-Thumb.txt
index af02417d12..3818d83146 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.