rs6000.c (rs6000_binds_local_p): Return bool.

* config/rs6000/rs6000.c (rs6000_binds_local_p): Return bool.
	(function_ok_for_sibcall): Use binds_local_p.  Respect longcall
	attributes.

From-SVN: r56961
This commit is contained in:
Alan Modra 2002-09-09 02:25:42 +00:00 committed by Alan Modra
parent 2515a7ea11
commit 2bcc50d0ea
2 changed files with 18 additions and 6 deletions

View File

@ -1,3 +1,9 @@
2002-09-09 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/rs6000.c (rs6000_binds_local_p): Return bool.
(function_ok_for_sibcall): Use binds_local_p. Respect longcall
attributes.
2002-09-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* fr30.c (fr30_print_operand): Fix bug in output of CONST_DOUBLE.

View File

@ -222,7 +222,7 @@ static const char * rs6000_xcoff_strip_name_encoding PARAMS ((const char *));
#endif
static void rs6000_xcoff_encode_section_info PARAMS ((tree, int))
ATTRIBUTE_UNUSED;
static void rs6000_binds_local_p PARAMS ((tree));
static bool rs6000_binds_local_p PARAMS ((tree));
static int rs6000_adjust_cost PARAMS ((rtx, rtx, rtx, int));
static int rs6000_adjust_priority PARAMS ((rtx, int));
static int rs6000_issue_rate PARAMS ((void));
@ -9503,8 +9503,14 @@ function_ok_for_sibcall (fndecl)
}
}
if (DEFAULT_ABI == ABI_DARWIN
|| (TREE_ASM_WRITTEN (fndecl) && !flag_pic) || !TREE_PUBLIC (fndecl))
return 1;
|| (*targetm.binds_local_p) (fndecl))
{
tree attr_list = TYPE_ATTRIBUTES (TREE_TYPE (fndecl));
if (!lookup_attribute ("longcall", attr_list)
|| lookup_attribute ("shortcall", attr_list))
return 1;
}
}
return 0;
}
@ -13207,13 +13213,13 @@ rs6000_xcoff_encode_section_info (decl, first)
/* Cross-module name binding. For AIX and PPC64 Linux, which always are
PIC, use private copy of flag_pic. */
static void
static bool
rs6000_binds_local_p (decl)
tree decl;
{
if (DEFAULT_ABI == ABI_AIX)
default_binds_local_p_1 (decl, rs6000_flag_pic);
return default_binds_local_p_1 (decl, rs6000_flag_pic);
else
default_binds_local_p_1 (decl, flag_pic);
return default_binds_local_p_1 (decl, flag_pic);
}