From da8ce8be372a2ca4220120b81fe6a1d79a54ea75 Mon Sep 17 00:00:00 2001 From: Richard Earnshaw Date: Thu, 11 Aug 2005 14:20:23 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/config/arm/arm.c | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1e1f0dc9e09..f2f72f51cf5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-08-11 Richard Earnshaw + + 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 * 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 289fb00159a..d391a5242ae 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) -- 2.30.2