diff options
author | Jakub Jelinek <jakub@gcc.gnu.org> | 2007-06-28 13:28:13 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2007-06-28 13:28:13 +0200 |
commit | 8aa19d9599d3d64501a13478a034a7bc14f6b502 (patch) | |
tree | 53eb8bf79e1d1ceee72e95420a187af84aa3f666 | |
parent | f803eba859ecf68e909f17cfa2138f99da811804 (diff) | |
download | gcc-8aa19d9599d3d64501a13478a034a7bc14f6b502.zip gcc-8aa19d9599d3d64501a13478a034a7bc14f6b502.tar.gz gcc-8aa19d9599d3d64501a13478a034a7bc14f6b502.tar.bz2 |
[multiple changes]
2007-06-28 Jakub Jelinek <jakub@redhat.com>
* config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
decl is non-external for AIX ABI.
2007-06-28 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/predicates.md (current_file_function_operand):
Ensure the symbol is non-external for AIX ABI.
From-SVN: r126076
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/config/rs6000/predicates.md | 4 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 3 |
3 files changed, 15 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cb9878e..81a57a8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2007-06-28 Jakub Jelinek <jakub@redhat.com> + + * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure + decl is non-external for AIX ABI. + +2007-06-28 David Edelsohn <edelsohn@gnu.org> + + * config/rs6000/predicates.md (current_file_function_operand): + Ensure the symbol is non-external for AIX ABI. + 2007-06-28 Nick Clifton <nickc@redhat.com> * common.opt (fipa-matrix-reorg): Add Optimization attribute. diff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md index 5f4b233..3b54aed 100644 --- a/gcc/config/rs6000/predicates.md +++ b/gcc/config/rs6000/predicates.md @@ -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)))"))) diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 035d655..f9bca50 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -13938,7 +13938,8 @@ rs6000_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED) } } 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)); |