alpha.md (prologue_stack_probe_loop): Don't do our own label handling, call gen_label...
authorRichard Henderson <rth@gcc.gnu.org>
Thu, 21 Jan 1999 20:32:21 +0000 (12:32 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 21 Jan 1999 20:32:21 +0000 (12:32 -0800)
        * alpha.md (prologue_stack_probe_loop): Don't do our own label
        handling, call gen_label_rtx instead.

From-SVN: r24808

gcc/config/alpha/alpha.md

index 59b04f9871c5e280458bcfa7330041e718570a5f..c376d480c7b2a907db807b9c615fee43c796ac32 100644 (file)
   ""
   "*
 {
-  static int label_no;
-  int count_regno = REGNO (operands[0]);
-  int ptr_regno = REGNO (operands[1]);
-  char label[64];
-
-  /* Ho hum, output the hard way to get the label at the beginning of
-     the line.  Wish there were a magic char you could get
-     asm_output_printf to do that.  Then we could use %= as well and
-     get rid of the label_no bits here too.  */
-
-  ASM_GENERATE_INTERNAL_LABEL (label, \"LSC\", label_no);
-  ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LSC\", label_no++);
-
-  fprintf (asm_out_file, \"\\tstq $31,-8192($%d)\\n\", ptr_regno);
-  fprintf (asm_out_file, \"\\tsubq $%d,1,$%d\\n\", count_regno, count_regno);
-  fprintf (asm_out_file, \"\\tlda $%d,-8192($%d)\\n\", ptr_regno, ptr_regno);
-  fprintf (asm_out_file, \"\\tbne $%d,\", count_regno);
-  assemble_name (asm_out_file, label);
-  putc ('\\n', asm_out_file);
-
-  return \"\";
+  operands[2] = gen_label_rtx ();
+  ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"L\",
+                            CODE_LABEL_NUMBER (operands[2]));
+
+  return \"stq $31,-8192(%1)\;subq %0,1,%0\;lda %1,-8192(%1)\;bne %0,%l2\";
 }"
   [(set_attr "length" "16")
    (set_attr "type" "multi")])