Change -mno-r11 to -mno-pointers-to-nested-functions
From-SVN: r176252
This commit is contained in:
parent
f542c405c0
commit
1db75f6c39
@ -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.
|
||||
|
@ -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,
|
||||
|
@ -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\;<ptrload> 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\;<ptrload> 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\;<ptrload> 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\;<ptrload> 2,%3"
|
||||
[(set_attr "type" "jmpreg")
|
||||
(set_attr "length" "8")])
|
||||
|
@ -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)
|
||||
|
@ -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.
|
||||
|
@ -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))
|
||||
|
@ -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))
|
||||
|
@ -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));
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user