summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>1998-06-24 17:55:03 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>1998-06-24 17:55:03 +0000
commit0491e2405490d79082529d9b6c8fe3102000550d (patch)
treec8e3ac29e79662eb7f8da24f8f17a3ec4d5cc9bd
parent31915d4a94d7e3e91a683e67d2248084a7a5b867 (diff)
downloadgcc-0491e2405490d79082529d9b6c8fe3102000550d.tar.gz
* alpha.md (call_vms, call_value_vms): Strip leading * from symbol.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20703 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/alpha/alpha.md14
2 files changed, 14 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b96011120de..2e7b800f11d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Wed Jun 24 17:55:15 1998 Klaus Kaempf <kkaempf@progis.de>
+
+ * alpha.md (call_vms, call_value_vms): Strip leading * from symbol.
+
Wed Jun 24 16:27:23 1998 John Carr <jfc@mit.edu>
* expr.c (get_memory_rtx): New function.
diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md
index 65eacf7a6cd..dd8ce53cb8d 100644
--- a/gcc/config/alpha/alpha.md
+++ b/gcc/config/alpha/alpha.md
@@ -3553,10 +3553,13 @@
if (GET_CODE (operands[0]) == SYMBOL_REF)
{
extern char *savealloc ();
- char *symbol = XSTR (operands[0], 0);
- char *linksym = savealloc (strlen (symbol) + 6);
+ char *linksym, *symbol = XSTR (operands[0], 0);
rtx linkage;
+ if (*symbol == '*')
+ symbol++;
+ linksym = savealloc (strlen (symbol) + 6);
+
alpha_need_linkage (symbol, 0);
linksym[0] = '$';
@@ -3658,10 +3661,13 @@
if (GET_CODE (operands[1]) == SYMBOL_REF)
{
extern char *savealloc ();
- char *symbol = XSTR (operands[1], 0);
- char *linksym = savealloc (strlen (symbol) + 6);
+ char *linksym, *symbol = XSTR (operands[1], 0);
rtx linkage;
+ if (*symbol == '*')
+ symbol++;
+ linksym = savealloc (strlen (symbol) + 6);
+
alpha_need_linkage (symbol, 0);
linksym[0] = '$';
strcpy (linksym+1, symbol);