OSDN Git Service

* config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 3 Feb 2004 22:38:34 +0000 (22:38 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 3 Feb 2004 22:38:34 +0000 (22:38 +0000)
put the original string in a comment.
* config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
* config/mips/mips.c (mips_output_ascii): Likewise.
* config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77195 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/mips/iris5.h
gcc/config/mips/mips-protos.h
gcc/config/mips/mips.c
gcc/config/mips/mips.h

index 3bfb996..c1b0859 100644 (file)
@@ -1,3 +1,11 @@
+2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
+       put the original string in a comment.
+       * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
+       * config/mips/mips.c (mips_output_ascii): Likewise.
+       * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
+
 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
 
        * system.h (GIV_SORT_CRITERION): Poison.
index 41de652..c1edeed 100644 (file)
@@ -193,13 +193,16 @@ Boston, MA 02111-1307, USA.  */
 #define MIPS_DEFAULT_GVALUE 0
 
 /* Some assemblers have a bug that causes backslash escaped chars in .ascii
-   to be misassembled, so we just completely avoid it.  */
+   to be misassembled, so avoid it by using .byte instead.  Write the original
+   string in a comment, partly to improve readability and partly for the sake
+   of scan-assembler-type tests.  */
 #undef ASM_OUTPUT_ASCII
 #define ASM_OUTPUT_ASCII(FILE,PTR,LEN)                         \
 do {                                                           \
   const unsigned char *s_ = (const unsigned char *)(PTR);      \
   unsigned len_ = (LEN);                                       \
   unsigned i_;                                                 \
+  mips_output_ascii (FILE, (const char *) s_, len_, "\t# ");   \
   for (i_ = 0; i_ < len_; s_++, i_++)                          \
     {                                                          \
       if ((i_ % 8) == 0)                                       \
index 5c0081f..8a55e1a 100644 (file)
@@ -101,7 +101,7 @@ extern void irix_output_external_libcall (rtx);
 #endif
 extern void mips_output_filename (FILE *, const char *);
 extern void mips_output_lineno (FILE *, int);
-extern void mips_output_ascii (FILE *, const char *, size_t);
+extern void mips_output_ascii (FILE *, const char *, size_t, const char *);
 extern void mips_output_aligned_bss (FILE *, tree, const char *,
                                     unsigned HOST_WIDE_INT, int);
 extern void mips_declare_object (FILE *, const char *, const char *,
index 44ed4f8..9b07a0d 100644 (file)
@@ -5816,17 +5816,20 @@ mips_output_lineno (FILE *stream, int line)
     }
 }
 \f
-/* Output an ASCII string, in a space-saving way.  */
+/* Output an ASCII string, in a space-saving way.  PREFIX is the string
+   that should be written before the opening quote, such as "\t.ascii\t"
+   for real string data or "\t# " for a comment.  */
 
 void
-mips_output_ascii (FILE *stream, const char *string_param, size_t len)
+mips_output_ascii (FILE *stream, const char *string_param, size_t len,
+                  const char *prefix)
 {
   size_t i;
   int cur_pos = 17;
   register const unsigned char *string =
     (const unsigned char *)string_param;
 
-  fprintf (stream, "\t.ascii\t\"");
+  fprintf (stream, "%s\"", prefix);
   for (i = 0; i < len; i++)
     {
       register int c = string[i];
@@ -5886,7 +5889,7 @@ mips_output_ascii (FILE *stream, const char *string_param, size_t len)
       if (cur_pos > 72 && i+1 < len)
        {
          cur_pos = 17;
-         fprintf (stream, "\"\n\t.ascii\t\"");
+         fprintf (stream, "\"\n%s\"", prefix);
        }
     }
   fprintf (stream, "\"\n");
index 9541c4e..6b137e4 100644 (file)
@@ -3301,7 +3301,7 @@ do {                                                                      \
 /* This is how to output a string.  */
 #undef ASM_OUTPUT_ASCII
 #define ASM_OUTPUT_ASCII(STREAM, STRING, LEN)                          \
-  mips_output_ascii (STREAM, STRING, LEN)
+  mips_output_ascii (STREAM, STRING, LEN, "\t.ascii\t")
 
 /* Output #ident as a in the read-only data section.  */
 #undef  ASM_OUTPUT_IDENT