]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
alpha.c (output_prolog [*]): Prefix entry labels with '$' to keep them from being...
authorRichard Henderson <rth@cygnus.com>
Fri, 14 Nov 1997 14:42:27 +0000 (06:42 -0800)
committerJeff Law <law@gcc.gnu.org>
Fri, 14 Nov 1997 14:42:27 +0000 (07:42 -0700)
        * 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.

From-SVN: r16489

gcc/ChangeLog
gcc/config/alpha/alpha.c
gcc/config/alpha/alpha.h
gcc/config/alpha/alpha.md

index 58efb4915a1ee17183a1bc3b6ee48f76e8e063ca..3e7c23bc637d4e61fa446f91b9a9ae7ce9aa28cd 100644 (file)
 
 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.
index c5e6f304f260a60fcbfb45a016ebe180aaeaf623..5c109c43261f21a164146b3a60a0c3b6366370c1 100644 (file)
@@ -2021,7 +2021,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 ();
@@ -2034,7 +2034,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;
 
@@ -2088,6 +2088,7 @@ output_prolog (file, size)
 
       fprintf (file, "\tlda $22,4096($30)\n");
 
+      fputc ('$', file);
       assemble_name (file, alpha_function_name);
       fprintf (file, "..sc:\n");
 
@@ -2095,7 +2096,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");
 
@@ -2170,7 +2171,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);
@@ -2384,6 +2385,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");
     }
@@ -2431,6 +2433,7 @@ output_prolog (file, size)
 
       fprintf (file, "\tlda $4,4096($30)\n");
 
+      fputc ('$', file);
       assemble_name (file, alpha_function_name);
       fprintf (file, "..sc:\n");
 
@@ -2438,7 +2441,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");
 
@@ -3253,11 +3256,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
index 77020bc0e30f37369ef3bbfe4701dbf8aa652e29..54e9b7cbfe94f4708b856eb3831596b8fda1f1b7 100644 (file)
@@ -1829,10 +1829,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
@@ -1847,10 +1844,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.  */
 
index 3f08cbd61a1c4462c6c42d1ff4428ba9f9cca309..769a42300b800273c472344ed5a33bb5d2afed8a 100644 (file)
     {
       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);
 
     {
       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);
 
   "! 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")])
       
   "! 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")])