diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2005-08-11 14:20:23 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@gcc.gnu.org> | 2005-08-11 14:20:23 +0000 |
commit | da8ce8be372a2ca4220120b81fe6a1d79a54ea75 (patch) | |
tree | 3efe76e22e3573ec08ca865129e030da3b17dc35 | |
parent | ad9863cd8d68ce11f5ac1cee98a779ac927c2fa2 (diff) | |
download | gcc-da8ce8be372a2ca4220120b81fe6a1d79a54ea75.zip gcc-da8ce8be372a2ca4220120b81fe6a1d79a54ea75.tar.gz gcc-da8ce8be372a2ca4220120b81fe6a1d79a54ea75.tar.bz2 |
re PR target/23250 (4.0.1 switch -mcallee-super-interworking generating wrong code for ARM7TDMI)
PR target/23250
* arm.c (arm_override_options): If the user has selected callee-super-
interworking, then enable normal interworking.
From-SVN: r102993
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1e1f0dc..f2f72f5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-08-11 Richard Earnshaw <richard.earnshaw@arm.com> + + PR target/23250 + * arm.c (arm_override_options): If the user has selected callee-super- + interworking, then enable normal interworking. + 2005-08-11 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Undef before diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 289fb00..d391a52 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -1010,6 +1010,11 @@ arm_override_options (void) target_flags &= ~MASK_APCS_FRAME; } + /* Callee super interworking implies thumb interworking. Adding + this to the flags here simplifies the logic elsewhere. */ + if (TARGET_THUMB && TARGET_CALLEE_INTERWORKING) + target_flags |= MASK_INTERWORK; + /* TARGET_BACKTRACE calls leaf_function_p, which causes a crash if done from here where no function is being compiled currently. */ if ((TARGET_TPCS_FRAME || TARGET_TPCS_LEAF_FRAME) && TARGET_ARM) |