diff options
author | James E Wilson <wilson@specifixinc.com> | 2005-08-01 15:25:52 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 2005-08-01 15:25:52 -0700 |
commit | 4dbdb061864825507e4d964c8904c82970fcb17d (patch) | |
tree | 1b2f7b954419c82bc60f7e34da9c6744ffb94baf /gcc/config/mips/predicates.md | |
parent | 9e254451d2c54ff1fc1c9f1de87110566808af35 (diff) | |
download | gcc-4dbdb061864825507e4d964c8904c82970fcb17d.tar.gz |
Add long_call attribute to mips port.
* config/mips/mips.c (mips_encode_section_info, mips_attribute_table,
TARGET_ENCODE_SECTION_INFO, TARGET_ATTRIBUTE_TABLE): New.
* config/mips/mips.h (SYMBOL_FLAG_LONG_CALL, SYMBOL_REF_LONG_CALL_P):
New.
* config/mips/predicates.md (const_call_insn_operand): Add check for
SYMBOL_REF_LONG_CALL_P.
* doc/extend.texi (long_call): Document the new attribute.
From-SVN: r102646
Diffstat (limited to 'gcc/config/mips/predicates.md')
-rw-r--r-- | gcc/config/mips/predicates.md | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/config/mips/predicates.md b/gcc/config/mips/predicates.md index e4e3805845f..a96e0172149 100644 --- a/gcc/config/mips/predicates.md +++ b/gcc/config/mips/predicates.md @@ -103,8 +103,10 @@ switch (symbol_type) { case SYMBOL_GENERAL: - /* If -mlong-calls, force all calls to use register addressing. */ - return !TARGET_LONG_CALLS; + /* If -mlong-calls, force all calls to use register addressing. Also, + if this function has the long_call attribute, we must use register + addressing. */ + return !TARGET_LONG_CALLS && !SYMBOL_REF_LONG_CALL_P (op); case SYMBOL_GOT_GLOBAL: /* Without explicit relocs, there is no special syntax for |