aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1992-10-16 00:24:08 -0600
committerJeff Law <law@gcc.gnu.org>1992-10-16 00:24:08 -0600
commit6efdeb47f64a1ea167190b458079ebeb3df425d5 (patch)
tree2c7ed52cd7769b2fffeff1b491d5c04b3e031101 /gcc
parent5cf2759eb4fb4b682a56182ee4a0e1a14e792333 (diff)
downloadgcc-6efdeb47f64a1ea167190b458079ebeb3df425d5.zip
gcc-6efdeb47f64a1ea167190b458079ebeb3df425d5.tar.gz
gcc-6efdeb47f64a1ea167190b458079ebeb3df425d5.tar.bz2
* pa.h (TARGET_SWITCHES): New switch "-mlong-calls".
From-SVN: r2487
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/pa/pa.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index 63541f8..ddb64ba 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -111,6 +111,14 @@ extern int target_flags;
#define TARGET_SHARED_LIBS (target_flags & 8)
+/* Force all function calls to indirect addressing via a register. This
+ avoids lossage when the function is very far away from the current PC.
+
+ ??? What about simple jumps, they can suffer from the same problem.
+ Would require significant surgery in pa.md. */
+
+#define TARGET_LONG_CALLS (target_flags & 16)
+
/* Macro to define tables used to set the flags.
This is a list in braces of pairs in braces,
each pair being { "NAME", VALUE }
@@ -126,6 +134,7 @@ extern int target_flags;
{"kernel", 4}, \
{"shared-libs", 8}, \
{"no-shared-libs", -8},\
+ {"long-calls", 16}, \
{ "", TARGET_DEFAULT}}
#define TARGET_DEFAULT 0