summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1997-11-14 14:43:14 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1997-11-14 14:43:14 +0000
commit73fe3a568277dcea3ae5e83dc63b0f53e1b7e0af (patch)
tree7ff8b3d62ff051ca5182786ec6bb1556b2fefc6a
parent500ed12e59071d5ebee772865cb4a75b85fefed6 (diff)
downloadgcc-73fe3a568277dcea3ae5e83dc63b0f53e1b7e0af.tar.gz
* alpha.c (output_prolog [*]): Prefix entry labels with '$' to
keep them from being propogated to the object file. (alpha_write_linkage): Likewise. * alpha.md (call_vms): Likewise. (call_value_vms): Likewise. (unnamed osf call insns): Likewise. * alpha.h (ASM_OUTPUT_INTERNAL_LABEL): Don't omit L from local label. (ASM_GENERATE_INTERNAL_LABEL): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16490 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/config/alpha/alpha.c17
-rw-r--r--gcc/config/alpha/alpha.h10
-rw-r--r--gcc/config/alpha/alpha.md14
4 files changed, 30 insertions, 21 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fd2e24c81d8..61e6835318e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,15 @@
Fri Nov 14 07:24:20 1997 Richard Henderson <rth@cygnus.com>
+ * alpha.c (output_prolog [*]): Prefix entry labels with '$' to
+ keep them from being propogated to the object file.
+ (alpha_write_linkage): Likewise.
+ * alpha.md (call_vms): Likewise.
+ (call_value_vms): Likewise.
+ (unnamed osf call insns): Likewise.
+
+ * alpha.h (ASM_OUTPUT_INTERNAL_LABEL): Don't omit L from local label.
+ (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+
* alpha.c (call_operand): Any reg is valid for WinNT.
* alpha.md (call_nt, call_value_nt): Don't force address into $27.
(anon nt calls): Add 'R' alternative.
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 5bb64d44bb8..ae119f3cc98 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -2071,7 +2071,7 @@ output_prolog (file, size)
/* Offset during register save. */
int reg_offset;
/* Label for the procedure entry. */
- char *entry_label = (char *) alloca (strlen (alpha_function_name) + 5);
+ char *entry_label = (char *) alloca (strlen (alpha_function_name) + 6);
int i;
sa_size = alpha_sa_size ();
@@ -2084,7 +2084,7 @@ output_prolog (file, size)
fprintf (file, "\t.ent ");
assemble_name (file, alpha_function_name);
fprintf (file, "\n");
- sprintf (entry_label, "%s..en", alpha_function_name);
+ sprintf (entry_label, "$%s..en", alpha_function_name);
ASM_OUTPUT_LABEL (file, entry_label);
inside_function = TRUE;
@@ -2138,6 +2138,7 @@ output_prolog (file, size)
fprintf (file, "\tlda $22,4096($30)\n");
+ fputc ('$', file);
assemble_name (file, alpha_function_name);
fprintf (file, "..sc:\n");
@@ -2145,7 +2146,7 @@ output_prolog (file, size)
fprintf (file, "\tsubq $23,1,$23\n");
fprintf (file, "\tlda $22,-8192($22)\n");
- fprintf (file, "\tbne $23,");
+ fprintf (file, "\tbne $23,$");
assemble_name (file, alpha_function_name);
fprintf (file, "..sc\n");
@@ -2220,7 +2221,7 @@ output_prolog (file, size)
link_section ();
fprintf (file, "\t.align 3\n");
ASM_OUTPUT_LABEL (file, alpha_function_name);
- fprintf (file, "\t.pdesc ");
+ fprintf (file, "\t.pdesc $");
assemble_name (file, alpha_function_name);
fprintf (file, "..en,%s\n", is_stack_procedure ? "stack" : "reg");
alpha_need_linkage (alpha_function_name, 1);
@@ -2446,6 +2447,7 @@ output_prolog (file, size)
fprintf (file, "\tldgp $29,0($27)\n");
/* Put a label after the GP load so we can enter the function at it. */
+ fputc ('$', file);
assemble_name (file, alpha_function_name);
fprintf (file, "..ng:\n");
}
@@ -2493,6 +2495,7 @@ output_prolog (file, size)
fprintf (file, "\tlda $4,4096($30)\n");
+ fputc ('$', file);
assemble_name (file, alpha_function_name);
fprintf (file, "..sc:\n");
@@ -2500,7 +2503,7 @@ output_prolog (file, size)
fprintf (file, "\tsubq $5,1,$5\n");
fprintf (file, "\tlda $4,-8192($4)\n");
- fprintf (file, "\tbne $5,");
+ fprintf (file, "\tbne $5,$");
assemble_name (file, alpha_function_name);
fprintf (file, "..sc\n");
@@ -3310,11 +3313,11 @@ alpha_write_linkage (stream)
|| ! TREE_SYMBOL_REFERENCED (get_identifier (lptr->name)))
continue;
- fprintf (stream, "%s..lk:\n", lptr->name);
+ fprintf (stream, "$%s..lk:\n", lptr->name);
if (lptr->kind == KIND_LOCAL)
{
/* Local and used, build linkage pair. */
- fprintf (stream, "\t.quad %s..en\n", lptr->name);
+ fprintf (stream, "\t.quad $%s..en\n", lptr->name);
fprintf (stream, "\t.quad %s\n", lptr->name);
}
else
diff --git a/gcc/config/alpha/alpha.h b/gcc/config/alpha/alpha.h
index 2618b2221be..34c96d8d352 100644
--- a/gcc/config/alpha/alpha.h
+++ b/gcc/config/alpha/alpha.h
@@ -1850,10 +1850,7 @@ literal_section () \
PREFIX is the class of label and NUM is the number within the class. */
#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \
- if ((PREFIX)[0] == 'L') \
- fprintf (FILE, "$%s%d:\n", & (PREFIX)[1], NUM + 32); \
- else \
- fprintf (FILE, "%s%d:\n", PREFIX, NUM);
+ fprintf (FILE, "$%s%d:\n", PREFIX, NUM)
/* This is how to output a label for a jump table. Arguments are the same as
for ASM_OUTPUT_INTERNAL_LABEL, except the insn for the jump table is
@@ -1868,10 +1865,7 @@ literal_section () \
This is suitable for output with `assemble_name'. */
#define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \
- if ((PREFIX)[0] == 'L') \
- sprintf (LABEL, "*$%s%d", & (PREFIX)[1], NUM + 32); \
- else \
- sprintf (LABEL, "*%s%d", PREFIX, NUM)
+ sprintf (LABEL, "*$%s%d", PREFIX, NUM)
/* Check a floating-point value for validity for a particular machine mode. */
diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md
index 0694a6f4a4e..bd4f43d0909 100644
--- a/gcc/config/alpha/alpha.md
+++ b/gcc/config/alpha/alpha.md
@@ -3257,12 +3257,13 @@
{
extern char *savealloc ();
char *symbol = XSTR (operands[0], 0);
- char *linksym = savealloc (strlen (symbol) + 5);
+ char *linksym = savealloc (strlen (symbol) + 6);
rtx linkage;
alpha_need_linkage (symbol, 0);
- strcpy (linksym, symbol);
+ linksym[0] = '$';
+ strcpy (linksym+1, symbol);
strcat (linksym, \"..lk\");
linkage = gen_rtx (SYMBOL_REF, Pmode, linksym);
@@ -3361,11 +3362,12 @@
{
extern char *savealloc ();
char *symbol = XSTR (operands[1], 0);
- char *linksym = savealloc (strlen (symbol) + 5);
+ char *linksym = savealloc (strlen (symbol) + 6);
rtx linkage;
alpha_need_linkage (symbol, 0);
- strcpy (linksym, symbol);
+ linksym[0] = '$';
+ strcpy (linksym+1, symbol);
strcat (linksym, \"..lk\");
linkage = gen_rtx (SYMBOL_REF, Pmode, linksym);
@@ -3391,7 +3393,7 @@
"! TARGET_WINDOWS_NT && ! TARGET_OPEN_VMS"
"@
jsr $26,($27),0\;ldgp $29,0($26)
- bsr $26,%0..ng
+ bsr $26,$%0..ng
jsr $26,%0\;ldgp $29,0($26)"
[(set_attr "type" "jsr")])
@@ -3428,7 +3430,7 @@
"! TARGET_WINDOWS_NT && ! TARGET_OPEN_VMS"
"@
jsr $26,($27),0\;ldgp $29,0($26)
- bsr $26,%1..ng
+ bsr $26,$%1..ng
jsr $26,%1\;ldgp $29,0($26)"
[(set_attr "type" "jsr")])