36 lines
1.3 KiB
Diff
36 lines
1.3 KiB
Diff
|
2007-06-25 Jakub Jelinek <jakub@redhat.com>
|
||
|
|
||
|
* config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
|
||
|
decl is non-external for AIX ABI.
|
||
|
|
||
|
2007-06-25 David Edelsohn <edelsohn@gnu.org>
|
||
|
|
||
|
* config/rs6000/predicates.md (current_file_function_operand):
|
||
|
Ensure the symbol is non-external for AIX ABI.
|
||
|
|
||
|
--- gcc/config/rs6000/rs6000.c.jj 2007-06-25 22:22:41.000000000 +0200
|
||
|
+++ gcc/config/rs6000/rs6000.c 2007-06-25 23:11:20.000000000 +0200
|
||
|
@@ -13938,7 +13938,8 @@ rs6000_function_ok_for_sibcall (tree dec
|
||
|
}
|
||
|
}
|
||
|
if (DEFAULT_ABI == ABI_DARWIN
|
||
|
- || (*targetm.binds_local_p) (decl))
|
||
|
+ || ((*targetm.binds_local_p) (decl)
|
||
|
+ && (DEFAULT_ABI != ABI_AIX || !DECL_EXTERNAL (decl))))
|
||
|
{
|
||
|
tree attr_list = TYPE_ATTRIBUTES (TREE_TYPE (decl));
|
||
|
|
||
|
--- gcc/config/rs6000/predicates.md.jj 2007-06-25 22:22:41.000000000 +0200
|
||
|
+++ gcc/config/rs6000/predicates.md 2007-06-25 22:57:19.000000000 +0200
|
||
|
@@ -696,7 +696,9 @@
|
||
|
(define_predicate "current_file_function_operand"
|
||
|
(and (match_code "symbol_ref")
|
||
|
(match_test "(DEFAULT_ABI != ABI_AIX || SYMBOL_REF_FUNCTION_P (op))
|
||
|
- && (SYMBOL_REF_LOCAL_P (op)
|
||
|
+ && ((SYMBOL_REF_LOCAL_P (op)
|
||
|
+ && (DEFAULT_ABI != ABI_AIX
|
||
|
+ || !SYMBOL_REF_EXTERNAL_P (op)))
|
||
|
|| (op == XEXP (DECL_RTL (current_function_decl),
|
||
|
0)))")))
|
||
|
|