From 1db75f6c39f5ef4cda5f3b76975dddff035c90fd Mon Sep 17 00:00:00 2001 From: Michael Meissner Date: Wed, 13 Jul 2011 21:38:29 +0000 Subject: [PATCH] Change -mno-r11 to -mno-pointers-to-nested-functions From-SVN: r176252 --- gcc/ChangeLog | 16 ++++++++++++++++ gcc/config/rs6000/rs6000.c | 8 ++++---- gcc/config/rs6000/rs6000.md | 20 ++++++++++++-------- gcc/config/rs6000/rs6000.opt | 6 +++--- gcc/testsuite/ChangeLog | 7 +++++++ gcc/testsuite/gcc.target/powerpc/no-r11-1.c | 2 +- gcc/testsuite/gcc.target/powerpc/no-r11-2.c | 2 +- gcc/testsuite/gcc.target/powerpc/no-r11-3.c | 2 +- 8 files changed, 45 insertions(+), 18 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5182bbc8dde..157ad42b7c0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,19 @@ +2011-07-13 Michael Meissner + + * 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): Ditto. + (call_indirect_aix_internal): Ditto. + (call_indirect_aix_nor11): Ditto. + (call_indirect_aix_internal2): Ditto. + (call_value_indirect_aix): Ditto. + (call_value_indirect_aix_internal): Ditto. + (call_value_indirect_aix_nor11): Ditto. + (call_value_indirect_aix_internal2): Ditto. + * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto. + 2011-07-13 Jason Merrill * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index a25e5af488b..79dd1403c91 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -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, diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index a4044489692..b34b70a27f4 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -12386,7 +12386,7 @@ (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)) @@ -12409,7 +12409,8 @@ (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\; 2,%2" [(set_attr "type" "jmpreg") (set_attr "length" "8")]) @@ -12426,7 +12427,7 @@ (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)) @@ -12447,7 +12448,8 @@ (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\; 2,%2" [(set_attr "type" "jmpreg") (set_attr "length" "8")]) @@ -12466,7 +12468,7 @@ (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)) @@ -12491,7 +12493,8 @@ (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\; 2,%3" [(set_attr "type" "jmpreg") (set_attr "length" "8")]) @@ -12510,7 +12513,7 @@ (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)) @@ -12533,7 +12536,8 @@ (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\; 2,%3" [(set_attr "type" "jmpreg") (set_attr "length" "8")]) diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt index 329104c441c..292308f60d0 100644 --- a/gcc/config/rs6000/rs6000.opt +++ b/gcc/config/rs6000/rs6000.opt @@ -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) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index eebf940c8a2..a38c046e430 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2011-07-13 Michael Meissner + + * 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 * lib/g++.exp (${tool}_option_help, ${tool}_option_proc): Remove. diff --git a/gcc/testsuite/gcc.target/powerpc/no-r11-1.c b/gcc/testsuite/gcc.target/powerpc/no-r11-1.c index 7e880e7d861..57c01a3e259 100644 --- a/gcc/testsuite/gcc.target/powerpc/no-r11-1.c +++ b/gcc/testsuite/gcc.target/powerpc/no-r11-1.c @@ -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)) diff --git a/gcc/testsuite/gcc.target/powerpc/no-r11-2.c b/gcc/testsuite/gcc.target/powerpc/no-r11-2.c index 981bc0c954c..3e4a6ca0ff4 100644 --- a/gcc/testsuite/gcc.target/powerpc/no-r11-2.c +++ b/gcc/testsuite/gcc.target/powerpc/no-r11-2.c @@ -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)) diff --git a/gcc/testsuite/gcc.target/powerpc/no-r11-3.c b/gcc/testsuite/gcc.target/powerpc/no-r11-3.c index bc57385ca4e..c4b2448ea5d 100644 --- a/gcc/testsuite/gcc.target/powerpc/no-r11-3.c +++ b/gcc/testsuite/gcc.target/powerpc/no-r11-3.c @@ -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)); -- 2.30.2