aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-03-18 17:53:04 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1994-03-18 17:53:04 -0500
commitc764f757d53ebb592795f8c59a95e252c51598bc (patch)
treeb38cbf9543b1d4b31ff71b9456a2e09beb108712 /gcc
parent8ffd9c51e4d97ff8a7fb9a282a7cb535c51d82f1 (diff)
downloadgcc-c764f757d53ebb592795f8c59a95e252c51598bc.zip
gcc-c764f757d53ebb592795f8c59a95e252c51598bc.tar.gz
gcc-c764f757d53ebb592795f8c59a95e252c51598bc.tar.bz2
(common_mode_defined): New variable.
(output_prolog): Define external common-mode calls. From-SVN: r6817
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/rs6000/rs6000.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index ecbf963..0cadc31 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -55,6 +55,8 @@ int rs6000_trunc_used;
static int trunc_defined;
+/* Set to non-zero once AIX common-mode calls have been defined. */
+static int common_mode_defined;
/* Save information from a "cmpxx" operation until the branch or scc is
emitted. */
@@ -1422,6 +1424,18 @@ output_prolog (file, size)
RS6000_ITRUNC, RS6000_UITRUNC);
trunc_defined = 1;
}
+ /* Write .extern for AIX common mode routines, if needed. */
+ if (! TARGET_POWER && ! TARGET_POWERPC && ! common_mode_defined)
+ {
+ fputs ("\t.extern __mulh\n"
+ "\t.extern __mull\n"
+ "\t.extern __divss\n"
+ "\t.extern __divus\n"
+ "\t.extern __quoss\n"
+ "\t.extern __quous\n",
+ file);
+ common_mode_defined = 1;
+ }
/* If we have to call a function to save fpr's, or if we are doing profiling,
then we will be using LR. */