diff options
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/config/arm/arm.h | 6 |
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; \ |
