Disable caller and callee super interworking.
authorRamana Radhakrishnan <ramana.radhakrishnan@arm.com>
Mon, 22 Jun 2009 12:40:37 +0000 (12:40 +0000)
committerRamana Radhakrishnan <ramana@gcc.gnu.org>
Mon, 22 Jun 2009 12:40:37 +0000 (12:40 +0000)
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

gcc/ChangeLog
gcc/config/arm/arm.c
gcc/doc/invoke.texi

index 4804cfa7609c2e1adf2ccb213e7d07f949baa0a0..ad04c15f01ab7a4078cdf8afd2dc02abc667887d 100644 (file)
@@ -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.
index 7a11d52c296635f58bf9534f0033cec06c0618f4..7922edf2a19d807404f234634c19549e730891f0 100644 (file)
@@ -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.  */
index 5df3513803fb75f4ffda85e29468e800ce54047a..ffd40501fb789cf67c67023b8b02320b2ad318c1 100644 (file)
@@ -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