diff options
author | Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | 2009-06-22 12:40:37 +0000 |
---|---|---|
committer | Ramana Radhakrishnan <ramana@gcc.gnu.org> | 2009-06-22 12:40:37 +0000 |
commit | 3ce14752802766f1ec13cdf98672b78888229554 (patch) | |
tree | d79ab89e16f3218d338e2b12e6aa60d56ce7957e /gcc | |
parent | d88a51b1ca66baac89d59b5e379ef1b4f3f78eb4 (diff) | |
download | gcc-3ce14752802766f1ec13cdf98672b78888229554.zip gcc-3ce14752802766f1ec13cdf98672b78888229554.tar.gz gcc-3ce14752802766f1ec13cdf98672b78888229554.tar.bz2 |
Disable caller and callee super interworking.
2009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* config/arm/arm.c (arm_override_options): Disable -mcaller-super-interworking
and -mcallee-super-interworking.
* doc/invoke.texi (ARM Options): Document this.
From-SVN: r148790
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 8 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 7 |
3 files changed, 19 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4804cfa..ad04c15 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> + + * config/arm/arm.c (arm_override_options): Disable -mcaller-super-interworking + and -mcallee-super-interworking. + * doc/invoke.texi (ARM Options): Document this. + 2009-06-22 Nathan Sidwell <nathan@codesourcery.com> * config/arm/arm.c (arm_print_operand): Deal with HIGH. diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 7a11d52c..7922edf 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -1613,6 +1613,14 @@ arm_override_options (void) && (arm_fp_model == ARM_FP_MODEL_FPA)) error ("FPA is unsupported in the AAPCS"); + if (TARGET_AAPCS_BASED) + if (TARGET_CALLER_INTERWORKING) + error ("AAPCS doesn't support -mcaller-super-interworking"); + else + if (TARGET_CALLEE_INTERWORKING) + error ("AAPCS doesn't support -mcallee-super-interworking"); + + /* FPA and iWMMXt are incompatible because the insn encodings overlap. VFP and iWMMXt can theoretically coexist, but it's unlikely such silicon will ever exist. GCC makes no attempt to support this combination. */ diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 5df3513..ffd4050 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -9439,14 +9439,17 @@ not call any other functions.) The default is @option{-mno-apcs-leaf-frame}. Gives all externally visible functions in the file being compiled an ARM instruction set header which switches to Thumb mode before executing the rest of the function. This allows these functions to be called from -non-interworking code. +non-interworking code. This option is not valid in AAPCS configurations +because interworking is enabled by default. @item -mcaller-super-interworking @opindex mcaller-super-interworking Allows calls via function pointers (including virtual functions) to execute correctly regardless of whether the target code has been compiled for interworking or not. There is a small overhead in the cost -of executing a function pointer if this option is enabled. +of executing a function pointer if this option is enabled. This option +is not valid in AAPCS configurations because interworking is enabled +by default. @item -mtp=@var{name} @opindex mtp |