Change -mno-r11 to -mno-pointers-to-nested-functions
authorMichael Meissner <meissner@linux.vnet.ibm.com>
Wed, 13 Jul 2011 21:38:29 +0000 (21:38 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Wed, 13 Jul 2011 21:38:29 +0000 (21:38 +0000)
From-SVN: r176252

gcc/ChangeLog
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.md
gcc/config/rs6000/rs6000.opt
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/no-r11-1.c
gcc/testsuite/gcc.target/powerpc/no-r11-2.c
gcc/testsuite/gcc.target/powerpc/no-r11-3.c

index 5182bbc8dde493a574546db90af61c7d39fff977..157ad42b7c0ab8bc1c9a9829561a463125127d4e 100644 (file)
@@ -1,3 +1,19 @@
+2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
+       Rename -mr11.
+       * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
+       (rs6000_call_indirect_aix): Ditto.
+       * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
+       (call_indirect_aix<ptrsize>_internal): Ditto.
+       (call_indirect_aix<ptrsize>_nor11): Ditto.
+       (call_indirect_aix<ptrsize>_internal2): Ditto.
+       (call_value_indirect_aix<ptrsize>): Ditto.
+       (call_value_indirect_aix<ptrsize>_internal): Ditto.
+       (call_value_indirect_aix<ptrsize>_nor11): Ditto.
+       (call_value_indirect_aix<ptrsize>_internal2): Ditto.
+       * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
+
 2011-07-13  Jason Merrill  <jason@redhat.com>
 
        * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
index a25e5af488b651a30a80c563e43d801b7ce6c0a4..79dd1403c91f00026e819cd2298ebaed87a0c4e0 100644 (file)
@@ -24409,7 +24409,7 @@ rs6000_trampoline_init (rtx m_tramp, tree fndecl, rtx cxt)
       {
        rtx fnmem, fn_reg, toc_reg;
 
-       if (!TARGET_R11)
+       if (!TARGET_POINTERS_TO_NESTED_FUNCTIONS)
          error ("-mno-r11 must not be used if you have trampolines");
 
        fnmem = gen_const_mem (Pmode, force_reg (Pmode, fnaddr));
@@ -27741,7 +27741,7 @@ rs6000_call_indirect_aix (rtx value, rtx func_desc, rtx flag)
       stack_toc_offset = GEN_INT (TOC_SAVE_OFFSET_32BIT);
       func_toc_offset = GEN_INT (AIX_FUNC_DESC_TOC_32BIT);
       func_sc_offset = GEN_INT (AIX_FUNC_DESC_SC_32BIT);
-      if (TARGET_R11)
+      if (TARGET_POINTERS_TO_NESTED_FUNCTIONS)
        {
          call_func = gen_call_indirect_aix32bit;
          call_value_func = gen_call_value_indirect_aix32bit;
@@ -27757,7 +27757,7 @@ rs6000_call_indirect_aix (rtx value, rtx func_desc, rtx flag)
       stack_toc_offset = GEN_INT (TOC_SAVE_OFFSET_64BIT);
       func_toc_offset = GEN_INT (AIX_FUNC_DESC_TOC_64BIT);
       func_sc_offset = GEN_INT (AIX_FUNC_DESC_SC_64BIT);
-      if (TARGET_R11)
+      if (TARGET_POINTERS_TO_NESTED_FUNCTIONS)
        {
          call_func = gen_call_indirect_aix64bit;
          call_value_func = gen_call_value_indirect_aix64bit;
@@ -27800,7 +27800,7 @@ rs6000_call_indirect_aix (rtx value, rtx func_desc, rtx flag)
                                            func_toc_offset));
 
   /* If we have a static chain, load it up.  */
-  if (TARGET_R11)
+  if (TARGET_POINTERS_TO_NESTED_FUNCTIONS)
     {
       func_sc_mem = gen_rtx_MEM (Pmode,
                                 gen_rtx_PLUS (Pmode,
index a40444896926d699364b80aa8cf7ebe307a27b6d..b34b70a27f451c915667ccff0e2a593c29c95ff3 100644 (file)
    (use (match_operand:P 3 "memory_operand" "m,m"))
    (use (reg:P STATIC_CHAIN_REGNUM))
    (clobber (reg:P LR_REGNO))]
-  "DEFAULT_ABI == ABI_AIX && TARGET_R11"
+  "DEFAULT_ABI == ABI_AIX && TARGET_POINTERS_TO_NESTED_FUNCTIONS"
   "#"
   "&& reload_completed"
   [(set (reg:P TOC_REGNUM) (match_dup 2))
    (use (match_operand:P 2 "memory_operand" "m,m"))
    (set (reg:P TOC_REGNUM) (match_dup 2))
    (clobber (reg:P LR_REGNO))]
-  "DEFAULT_ABI == ABI_AIX && reload_completed && TARGET_R11"
+  "DEFAULT_ABI == ABI_AIX && reload_completed
+   && TARGET_POINTERS_TO_NESTED_FUNCTIONS"
   "b%T0l\;<ptrload> 2,%2"
   [(set_attr "type" "jmpreg")
    (set_attr "length" "8")])
    (use (match_operand:P 2 "memory_operand" "m,m"))
    (use (match_operand:P 3 "memory_operand" "m,m"))
    (clobber (reg:P LR_REGNO))]
-  "DEFAULT_ABI == ABI_AIX && !TARGET_R11"
+  "DEFAULT_ABI == ABI_AIX && !TARGET_POINTERS_TO_NESTED_FUNCTIONS"
   "#"
   "&& reload_completed"
   [(set (reg:P TOC_REGNUM) (match_dup 2))
    (use (match_operand:P 2 "memory_operand" "m,m"))
    (set (reg:P TOC_REGNUM) (match_dup 2))
    (clobber (reg:P LR_REGNO))]
-  "DEFAULT_ABI == ABI_AIX && reload_completed && !TARGET_R11"
+  "DEFAULT_ABI == ABI_AIX && reload_completed
+   && !TARGET_POINTERS_TO_NESTED_FUNCTIONS"
   "b%T0l\;<ptrload> 2,%2"
   [(set_attr "type" "jmpreg")
    (set_attr "length" "8")])
    (use (match_operand:P 4 "memory_operand" "m,m"))
    (use (reg:P STATIC_CHAIN_REGNUM))
    (clobber (reg:P LR_REGNO))]
-  "DEFAULT_ABI == ABI_AIX && TARGET_R11"
+  "DEFAULT_ABI == ABI_AIX && TARGET_POINTERS_TO_NESTED_FUNCTIONS"
   "#"
   "&& reload_completed"
   [(set (reg:P TOC_REGNUM) (match_dup 3))
    (use (match_operand:P 3 "memory_operand" "m,m"))
    (set (reg:P TOC_REGNUM) (match_dup 3))
    (clobber (reg:P LR_REGNO))]
-  "DEFAULT_ABI == ABI_AIX && reload_completed && TARGET_R11"
+  "DEFAULT_ABI == ABI_AIX && reload_completed
+   && TARGET_POINTERS_TO_NESTED_FUNCTIONS"
   "b%T1l\;<ptrload> 2,%3"
   [(set_attr "type" "jmpreg")
    (set_attr "length" "8")])
    (use (match_operand:P 3 "memory_operand" "m,m"))
    (use (match_operand:P 4 "memory_operand" "m,m"))
    (clobber (reg:P LR_REGNO))]
-  "DEFAULT_ABI == ABI_AIX && !TARGET_R11"
+  "DEFAULT_ABI == ABI_AIX && !TARGET_POINTERS_TO_NESTED_FUNCTIONS"
   "#"
   "&& reload_completed"
   [(set (reg:P TOC_REGNUM) (match_dup 3))
    (use (match_operand:P 3 "memory_operand" "m,m"))
    (set (reg:P TOC_REGNUM) (match_dup 3))
    (clobber (reg:P LR_REGNO))]
-  "DEFAULT_ABI == ABI_AIX && reload_completed && !TARGET_R11"
+  "DEFAULT_ABI == ABI_AIX && reload_completed
+   && !TARGET_POINTERS_TO_NESTED_FUNCTIONS"
   "b%T1l\;<ptrload> 2,%3"
   [(set_attr "type" "jmpreg")
    (set_attr "length" "8")])
index 329104c441c1da90a05a5b5d564b6b24c56a1f28..292308f60d06e9e9c2608a809c4a434a602e2a7b 100644 (file)
@@ -521,9 +521,9 @@ mxilinx-fpu
 Target Var(rs6000_xilinx_fpu) Save
 Specify Xilinx FPU.
 
-mr11
-Target Report Var(TARGET_R11) Init(1) Save
-Use/do not use r11 to hold the static link in calls.
+mpointers-to-nested-functions
+Target Report Var(TARGET_POINTERS_TO_NESTED_FUNCTIONS) Init(1) Save
+Use/do not use r11 to hold the static link in calls to functions via pointers.
 
 msave-toc-indirect
 Target Undocumented Var(TARGET_SAVE_TOC_INDIRECT) Save Init(1)
index eebf940c8a2481ec9c0a838b0a1a16971ce34782..a38c046e430ea910a2c83afa1ef3e7f91ac17604 100644 (file)
@@ -1,3 +1,10 @@
+2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       * gcc.target/powerpc/no-r11-1.c: Change -mno-r11 to
+       -mno-pointers-to-nested-functions.
+       * gcc.target/powerpc/no-r11-2.c: Ditto.
+       * gcc.target/powerpc/no-r11-3.c: Ditto.
+
 2011-07-13  Jason Merrill  <jason@redhat.com>
 
        * lib/g++.exp (${tool}_option_help, ${tool}_option_proc): Remove.
index 7e880e7d861a364fbfc58ccb2cde8f78fbb24852..57c01a3e259dee819bb6ba13f32222fbd4046acd 100644 (file)
@@ -1,6 +1,6 @@
 /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
 /* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */
-/* { dg-options "-O2 -mno-r11" } */
+/* { dg-options "-O2 -mno-pointers-to-nested-functions" } */
 
 int
 call_ptr (int (func) (void))
index 981bc0c954c07bbb447d17f4d8ba6c15ed777205..3e4a6ca0ff463441da06482e19880da4d4490028 100644 (file)
@@ -1,6 +1,6 @@
 /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
 /* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */
-/* { dg-options "-O2 -mr11" } */
+/* { dg-options "-O2 -mpointers-to-nested-functions" } */
 
 int
 call_ptr (int (func) (void))
index bc57385ca4efb2f26ff5795d55de35ebfceab430..c4b2448ea5d78725777535e90cca3154bc21b1cb 100644 (file)
@@ -1,6 +1,6 @@
 /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
 /* { dg-skip-if "" { *-*-darwin* } { "*" } { "" } } */
-/* { dg-options "-O2 -mno-r11" } */
+/* { dg-options "-O2 -mno-pointers-to-nested-functions" } */
 
 extern void ext_call (int (func) (void));