OSDN Git Service

2004-04-09 Chris Demetriou <cgd@broadcom.com>
[pf3gnuchains/gcc-fork.git] / gcc / machmode.def
index 72b1ec8..0b6c677 100644 (file)
@@ -47,11 +47,17 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
    A MODE argument must be the printable name of a machine mode,
    without quotation marks or trailing "mode".  For instance, SI.
 
-   A BITSIZE, BYTESIZE, or COUNT argument must be a positive integer
+   A PRECISION, BYTESIZE, or COUNT argument must be a positive integer
    constant.
 
    A FORMAT argument must be one of the real_mode_format structures
-   declared in real.h, or else a literal 0.
+   declared in real.h, or else a literal 0.  Do not put a leading &
+   on the argument.
+
+   An EXPR argument must be a syntactically valid C expression.
+   If an EXPR contains commas, you may need to write an extra pair of
+   parentheses around it, so it appears to be a single argument to the
+   statement.
 
    This file defines only those modes which are of use on almost all
    machines.  Other modes can be defined in the target-specific
@@ -72,18 +78,18 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
         declares MODE to be of class INT and BYTESIZE bytes wide.
        All of the bits of its representation are significant.
 
-     FRACTIONAL_INT_MODE (MODE, BITSIZE, BYTESIZE);
+     FRACTIONAL_INT_MODE (MODE, PRECISION, BYTESIZE);
         declares MODE to be of class INT, BYTESIZE bytes wide in
-       storage, but with only BITSIZE significant bits.
+       storage, but with only PRECISION significant bits.
 
      FLOAT_MODE (MODE, BYTESIZE, FORMAT);
         declares MODE to be of class FLOAT and BYTESIZE bytes wide,
        using floating point format FORMAT.
        All of the bits of its representation are significant.
 
-     FRACTIONAL_FLOAT_MODE (MODE, BITSIZE, BYTESIZE, FORMAT);
+     FRACTIONAL_FLOAT_MODE (MODE, PRECISION, BYTESIZE, FORMAT);
         declares MODE to be of class FLOAT, BYTESIZE bytes wide in
-       storage, but with only BITSIZE significant bits, using
+       storage, but with only PRECISION significant bits, using
        floating point format FORMAT.
 
      RESET_FLOAT_FORMAT (MODE, FORMAT);
@@ -95,7 +101,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
         declares a mode of class PARTIAL_INT with the same size as
        MODE (which must be an INT mode).  The name of the new mode
        is made by prefixing a P to the name MODE.  This statement
-       may grow a BITSIZE argument in the future.
+       may grow a PRECISION argument in the future.
 
      VECTOR_MODE (CLASS, MODE, COUNT);
         Declare a vector mode whose component mode is MODE (of class
@@ -120,6 +126,17 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
        error if there is no 'F'.  For INT modes, the names are
        derived by prefixing a C to the name.
 
+     ADJUST_BYTESIZE (MODE, EXPR);
+     ADJUST_ALIGNMENT (MODE, EXPR);
+     ADJUST_FLOAT_FORMAT (MODE, EXPR);
+        Arrange for the byte size, alignment, or floating point format
+       of MODE to be adjustable at run time.  EXPR will be executed
+       once after processing all command line options, and should
+       evaluate to the desired byte size, alignment, or format.
+
+       Unlike a FORMAT argument, if you are adjusting a float format
+       you must put an & in front of the name of each format structure.
+
    Note: If a mode is ever made which is more than 255 bytes wide,
    machmode.h and genmodes.c will have to be changed to allocate
    more space for the mode_size and mode_alignment arrays.  */