aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBernd Schmidt <bernd.schmidt@analog.com>2005-06-09 11:12:44 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2005-06-09 11:12:44 +0000
commitfd078f5215762192c5e69e0f37093cf911ecbc22 (patch)
treefe8ccb11ce1b2fe737334fb959df8b84f7295bfc /gcc
parent74118f1510492b19b9574089d9bd8080fc8c84c0 (diff)
downloadgcc-fd078f5215762192c5e69e0f37093cf911ecbc22.zip
gcc-fd078f5215762192c5e69e0f37093cf911ecbc22.tar.gz
gcc-fd078f5215762192c5e69e0f37093cf911ecbc22.tar.bz2
bfin.opt (mlong-calls): New.
* config/bfin/bfin.opt (mlong-calls): New. * config/bfin/predicates.md (call_insn_operand): Disallow SYMBOL_REF if TARGET_LONG_CALLS. From-SVN: r100796
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/bfin/bfin.opt4
-rw-r--r--gcc/config/bfin/predicates.md2
3 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 672bb8f..ea4d25d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-06-09 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.opt (mlong-calls): New.
+ * config/bfin/predicates.md (call_insn_operand): Disallow SYMBOL_REF
+ if TARGET_LONG_CALLS.
+
2005-06-09 Richard Henderson <rth@redhat.com>
PR tree-opt/20610
diff --git a/gcc/config/bfin/bfin.opt b/gcc/config/bfin/bfin.opt
index 4aace2f..e845890 100644
--- a/gcc/config/bfin/bfin.opt
+++ b/gcc/config/bfin/bfin.opt
@@ -38,3 +38,7 @@ Enabled ID based shared library
mshared-library-id=
Target RejectNegative Joined UInteger Var(bfin_library_id)
ID of shared library to build
+
+mlong-calls
+Target Report Mask(LONG_CALLS)
+Avoid generating pc-relative calls; use indirection
diff --git a/gcc/config/bfin/predicates.md b/gcc/config/bfin/predicates.md
index 5344884..a1f66da 100644
--- a/gcc/config/bfin/predicates.md
+++ b/gcc/config/bfin/predicates.md
@@ -119,7 +119,7 @@
;; reg + const, which the patterns can't handle.
;; We only allow SYMBOL_REF if !flag_pic.
(define_predicate "call_insn_operand"
- (ior (and (match_test "!flag_pic") (match_code "symbol_ref"))
+ (ior (and (match_test "!flag_pic && !TARGET_LONG_CALLS") (match_code "symbol_ref"))
(match_operand 0 "register_no_elim_operand")))
;; Test for an operator valid in a conditional branch