+2002-09-21 Richard Henderson <rth@redhat.com>
+
+ * c-common.c (cpp_define_data_format): Remove __GCC_LITTLE_ENDIAN__,
+ __GCC_BIG_ENDIAN__, __TARGET_BITS_ORDER__, __TARGET_BYTES_ORDER__,
+ __TARGET_INT_WORDS_ORDER__, __TARGET_FLOAT_WORDS_ORDER__,
+ __TARGET_USES_VAX_F_FLOAT__, __TARGET_USES_VAX_D_FLOAT__,
+ __TARGET_USES_VAX_G_FLOAT__, __TARGET_USES_VAX_H_FLOAT__.
+ * doc/cpp.texi: Don't document them.
+
2002-09-21 Richard Henderson <rth@redhat.com>
* c-common.c (builtin_define_float_constants): Use real_format
{
const char *format;
- /* Define endianness enumeration values. */
- cpp_define (pfile, "__GCC_LITTLE_ENDIAN__=0");
- cpp_define (pfile, "__GCC_BIG_ENDIAN__=1");
-
/* Define supported floating-point format enumeration values. */
cpp_define (pfile, "__UNKNOWN_FORMAT__=0");
cpp_define (pfile, "__IEEE_FORMAT__=1");
cpp_define (pfile, "__C4X_FORMAT__=3");
cpp_define (pfile, "__VAX_FORMAT__=4");
- /* Define target endianness:
- - bit order
- - byte order
- - word order in an integer that spans a multi-word
- - word order in a floating-poing that spans a multi-word */
- if (BITS_BIG_ENDIAN)
- cpp_define (pfile, "__TARGET_BITS_ORDER__=__GCC_BIG_ENDIAN__");
- else
- cpp_define (pfile, "__TARGET_BITS_ORDER__=__GCC_BIG_ENDIAN__");
- if (BYTES_BIG_ENDIAN)
- cpp_define (pfile, "__TARGET_BYTES_ORDER__=__GCC_BIG_ENDIAN__");
- else
- cpp_define (pfile, "__TARGET_BYTES_ORDER__=__GCC_LITTLE_ENDIAN__");
- /* Define words order in a multi-word integer. */
- if (WORDS_BIG_ENDIAN)
- cpp_define (pfile, "__TARGET_INT_WORDS_ORDER__=__GCC_BIG_ENDIAN__");
- else
- cpp_define (pfile, "__TARGET_INT_WORDS_ORDER__=__GCC_LITTLE_ENDIAN__");
- /* Define words order in a multi-word floating point. */
- if (FLOAT_WORDS_BIG_ENDIAN)
- cpp_define (pfile, "__TARGET_FLOAT_WORDS_ORDER__=__GCC_BIG_ENDIAN__");
- else
- cpp_define (pfile, "__TARGET_FLOAT_WORDS_ORDER__=__GCC_LITTLE_ENDIAN__");
-
switch (TARGET_FLOAT_FORMAT)
{
case UNKNOWN_FLOAT_FORMAT:
format = "__UNKNOWN_FORMAT__";
break;
-
case IEEE_FLOAT_FORMAT:
format = "__IEEE_FORMAT__";
break;
-
case VAX_FLOAT_FORMAT:
format = "__VAX_FORMAT__";
- cpp_define (pfile, "__TARGET_USES_VAX_F_FLOAT__=1");
-#ifdef TARGET_G_FLOAT
- if (TARGET_G_FLOAT)
- {
- cpp_define (pfile, "__TARGET_USES_VAX_D_FLOAT__=0");
- cpp_define (pfile, "__TARGET_USES_VAX_G_FLOAT__=1");
- }
- else
- {
- cpp_define (pfile, "__TARGET_USES_VAX_D_FLOAT__=1");
- cpp_define (pfile, "__TARGET_USES_VAX_G_FLOAT__=0");
- }
-#endif
- cpp_define (pfile, "__TARGET_USES_VAX_H_FLOAT__=1");
break;
-
case IBM_FLOAT_FORMAT:
format = "__IBM_FORMAT__";
break;
-
case C4X_FLOAT_FORMAT:
format = "__C4X_FORMAT__";
break;
-
default:
abort();
}
- if (TARGET_FLOAT_FORMAT != VAX_FLOAT_FORMAT)
- {
- cpp_define (pfile, "__TARGET_USES_VAX_F_FLOAT__=0");
- cpp_define (pfile, "__TARGET_USES_VAX_D_FLOAT__=0");
- cpp_define (pfile, "__TARGET_USES_VAX_G_FLOAT__=0");
- cpp_define (pfile, "__TARGET_USES_VAX_H_FLOAT__=0");
- }
+
builtin_define_with_value ("__GCC_FLOAT_FORMAT__", format, 0);
}
runtime is used, this macro is not defined, so that you can use this
macro to determine which runtime (NeXT or GNU) is being used.
-@item __TARGET_BITS_ORDER__
-This macro describes the target's bits order in a byte. Its value is
-@code{__GCC_LITTLE_ENDIAN__} or @code{__GCC_BIG_ENDIAN__}.
-
-@item __TARGET_BYTES_ORDER__
-This macro is defined with value @code{__GCC_LITTLE_ENDIAN__} or
-@code{__GCC_BIG_ENDIAN__} if the target's bytes order within a word
-is little-endian or big-endian, respectively.
-
-@item __TARGET_INT_WORDS_ORDER__
-This macro is defined with value @code{__GCC_LITTLE_ENDIAN__} or
-@code{__GCC_BIG_ENDIAN__} if the target's words order within a
-multi-word integer datum is little-endian or big-endian, respectively.
-
-@item __TARGET_FLOAT_WORDS_ORDER__
-This macro is defined with value @code{__GCC_LITTLE_ENDIAN__} or
-@code{__GCC_BIG_ENDIAN__} if the target's words order within a
-multi-word floating-point datum is little-endian or big-endian, respectively.
-
@item __TARGET_FLOAT_FORMAT__
This macro is defined to describe the floating-point format used by the
target. It has value in the set comprised of:
@code{__UNKNOWN_FORMAT__}, @code{__IEEE_FORMAT__},
@code{__IBM_FORMAT__}, @code{__C4X_FORMAT__} and @code{__VAX_FORMAT__}.
-
-@item __TARGET_USES_VAX_F_FLOAT__
-This macro is defined with value 1 if the target uses the VAX F-format
-for the single precision floating-point data type; else if has value 0.
-
-@item __TARGET_USES_VAX_D_FLOAT__
-@item __TARGET_USES_VAX_G_FLOAT__
-These macros are always defined, with values 0 or 1. If
-@code{__TARGET_FLOAT_FORMAT__} is @code{__VAX_FORMAT__} then they have
-mutually exclusive values; else both have value 0. Non-zero
-@code{__TARGET_USES_VAX_D_FLOAT__} means the target uses the VAX
-D-format for the double precision floating-point data type; non-zero
-@code{__TARGET_USES_VAX_G_FLOAT__} means the VAX G-format is used.
-
-@item __TARGET_USES_VAX_H_FLOAT__
-When non-zero, the target uses the VAX H-format for the extended
-precision floating-point data type.
@end table
@node System-specific Predefined Macros