diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e253ebe67d4..4013338221c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-10-31 Richard Earnshaw + + * arm.h (CONDITIONAL_REGISTER_USAGE): Disable use of LR in Thumb + code. + 2003-10-31 Andreas Jaeger , Zack Weinberg diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index 0cb1562e636..e73df85e347 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; \