Support 64 or 80 bit long double for i960

Vladimir N. Makarov vmakarov@cygnus.com
Sun Feb 28 18:15:00 GMT 1999


Jim Wilson wrote:

> Wed Feb 10 12:38:40 1999  Jim Wilson  <wilson@cygnus.com>
>
>         * i960/i960.h (OVERRIDE_OPTIONS): Warn if -mlong-double-64 is used.
>         (LONG_DOUBLE_TYPE_SIZE): Undef then unconditionally define to 96.
>
> Index: i960.h
> ===================================================================
> RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i960/i960.h,v
> retrieving revision 1.22
> diff -p -r1.22 i960.h
> *** i960.h      1999/01/19 12:02:58     1.22
> --- i960.h      1999/02/10 20:33:02
> *************** extern int target_flags;
> *** 321,326 ****
> --- 321,329 ----
>         flag_signed_char = 1;                                   \
>         target_flags |= TARGET_FLAG_CLEAN_LINKAGE;              \
>       }                                                         \
> +   /* ??? See the LONG_DOUBLE_TYPE_SIZE definition below.  */  \
> +   if (TARGET_LONG_DOUBLE_64)                                  \
> +     warning ("The -mlong-double-64 option does not work yet.", 0);\
>     i960_initialize ();                                         \
>   }
>
> *************** extern int target_flags;
> *** 368,373 ****
> --- 371,380 ----
>   /* Width in bits of a long double.  Define to 96, and let
>      ROUND_TYPE_ALIGN adjust the alignment for speed. */
>   #define       LONG_DOUBLE_TYPE_SIZE (TARGET_LONG_DOUBLE_64 ? 64 : 96)
> +
> + /* ??? This must be a constant, because real.c and real.h test it with #if.  */
> + #undef LONG_DOUBLE_TYPE_SIZE
> + #define LONG_DOUBLE_TYPE_SIZE 96
>
>   /* Define this to set long double type size to use in libgcc2.c, which can
>      not depend on target_flags.  */

FYI: Jim, I've commited the patch.

Vlad





More information about the Gcc-patches mailing list