rs6000.c (split_stack_arg_pointer_used_p): Scan correct block for use of r12.

* config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
	correct block for use of r12.
	(rs6000_expand_split_stack_prologue): Error on r29 asm global reg.

From-SVN: r223878
This commit is contained in:
Alan Modra 2015-05-30 09:45:30 +09:30 committed by Alan Modra
parent adad2a7d90
commit 43f7e3fec5
2 changed files with 14 additions and 1 deletions

View file

@ -1,3 +1,9 @@
2015-05-30 Alan Modra <amodra@gmail.com>
* config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
correct block for use of r12.
(rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
2015-05-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
PR target/66215

View file

@ -23450,7 +23450,7 @@ split_stack_arg_pointer_used_p (void)
/* Unfortunately we also need to do some code scanning, since
r12 may have been substituted for the pseudo. */
rtx_insn *insn;
basic_block bb = ENTRY_BLOCK_PTR_FOR_FN (cfun);
basic_block bb = ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb;
FOR_BB_INSNS (bb, insn)
if (NONDEBUG_INSN_P (insn))
{
@ -25942,6 +25942,13 @@ rs6000_expand_split_stack_prologue (void)
if (!info->push_p)
return;
if (global_regs[29])
{
error ("-fsplit-stack uses register r29");
inform (DECL_SOURCE_LOCATION (global_regs_decl[29]),
"conflicts with %qD", global_regs_decl[29]);
}
allocate = info->total_size;
if (allocate > (unsigned HOST_WIDE_INT) 1 << 31)
{