aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Earnshaw <rearnsha@arm.com>2003-10-31 21:42:23 +0000
committerRichard Earnshaw <rearnsha@gcc.gnu.org>2003-10-31 21:42:23 +0000
commitfb14bc892cad994c8aa65ea8844f727d22c0c79d (patch)
tree6130e9281878fd0a448ead8d772bc36ced99a4e5
parenta30794da5120a57b548210f7d72056ee12d8eb57 (diff)
downloadgcc-fb14bc892cad994c8aa65ea8844f727d22c0c79d.zip
gcc-fb14bc892cad994c8aa65ea8844f727d22c0c79d.tar.gz
gcc-fb14bc892cad994c8aa65ea8844f727d22c0c79d.tar.bz2
arm.h (CONDITIONAL_REGISTER_USAGE): Disable use of LR in Thumb code.
* arm.h (CONDITIONAL_REGISTER_USAGE): Disable use of LR in Thumb code. From-SVN: r73157
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arm/arm.h6
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e253ebe..4013338 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2003-10-31 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm.h (CONDITIONAL_REGISTER_USAGE): Disable use of LR in Thumb
+ code.
+
2003-10-31 Andreas Jaeger <aj@suse.de>,
Zack Weinberg <zack@codesourcery.com>
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index 0cb1562..e73df85 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -959,6 +959,12 @@ extern const char * structure_size_string;
fixed_regs[regno] = call_used_regs[regno] = 1; \
} \
\
+ /* The link register can be clobbered by any branch insn, \
+ but we have no way to track that at present, so mark \
+ it as unavailable. */ \
+ if (TARGET_THUMB) \
+ fixed_regs[LR_REGNUM] = call_used_regs[LR_REGNUM] = 1; \
+ \
if (TARGET_CIRRUS) \
{ \
for (regno = FIRST_ARM_FP_REGNUM; \