Implement new macro: ASM_FPRINTF_EXTENSIONS
authorNick Clifton <nickc@cygnus.com>
Mon, 26 Jul 1999 09:25:29 +0000 (09:25 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Mon, 26 Jul 1999 09:25:29 +0000 (09:25 +0000)
From-SVN: r28263

gcc/ChangeLog
gcc/final.c
gcc/tm.texi

index f9fd9f1dd98f7f5bb6429299d7feb30710e1306e..2f9847c909b1fc9c8f48a56c269e305b1441e3bb 100644 (file)
@@ -1,3 +1,10 @@
+Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
+
+       * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
+       defined.
+
+       * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
+
 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
 
        * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
index 0ed88a2cf6e9d6f042609293a3931231cf3f5be7..79a973e89a1606fdbff67da519214d563c3cc398 100644 (file)
@@ -3826,6 +3826,20 @@ asm_fprintf VPROTO((FILE *file, const char *p, ...))
            fputs (user_label_prefix, file);
            break;
 
+#ifdef ASM_FPRINTF_EXTENSIONS
+           /* Upper case letters are reserved for general use by asm_fprintf
+              and so are not available to target specific code.  In order to
+              prevent the ASM_FPRINTF_EXTENSIONS macro from using them then,
+              they are defined here.  As they get turned into real extensions
+              to asm_fprintf they should be removed from this list.  */
+         case 'A': case 'B': case 'C': case 'D': case 'E':
+         case 'F': case 'G': case 'H': case 'J': case 'K':
+         case 'M': case 'N': case 'P': case 'Q': case 'S':
+         case 'T': case 'V': case 'W': case 'Y': case 'Z':
+           break;
+           
+         ASM_FPRINTF_EXTENSIONS (file, argptr, p)
+#endif
          default:
            abort ();
          }
index 736ba4a2732120afbf5ac30e15375a05be294bd4..2641a9ded89cb1d9a1eb1b6bb3e1270518d398e1 100644 (file)
@@ -6230,6 +6230,19 @@ If defined, C string expressions to be used for the @samp{%R}, @samp{%L},
 support multiple assembler formats.  In that case, the various @file{tm.h}
 files can define these macros differently.
 
+@item ASM_FPRINTF_EXTENSIONS(@var{file}, @var{argptr}, @var{format})
+@findex ASM_FPRINTF_EXTENSIONS
+If defiend this macro should expand to a series of @code{case}
+statements which will be parsed inside the @code{switch} statement of
+the @code{asm_fprintf} function.  This allows targets to define extra
+printf formats which may useful when generating their assembler
+statements.  Noet that upper case letters are reserved for future
+generic extensions to asm_fprintf, and so are not available to target
+specific code.  The output file is given by the parameter @var{file}.
+The varargs input pointer is @var{argptr} and the rest of the format
+string, starting the character after the one that is being switched
+upon, is pointed to by @var{format}.
+
 @findex ASSEMBLER_DIALECT
 @item ASSEMBLER_DIALECT
 If your target supports multiple dialects of assembler language (such as