--- gcc/config/tahoe/tahoe.h 2018/04/24 18:10:25 1.1 +++ gcc/config/tahoe/tahoe.h 2018/04/24 18:22:20 1.1.1.3 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. Tahoe version. - Copyright (C) 1989 Free Software Foundation, Inc. + Copyright (C) 1989, 1993, 1994 Free Software Foundation, Inc. This file is part of GNU CC. @@ -25,9 +25,7 @@ the Free Software Foundation, 675 Mass A * * HCX/UX version by Piet van Oostrum (piet@cs.ruu.nl) * - * Performance hacking by Michael Tiemann (tiemann@lurch.stanford.edu) - * - * Mail bugs reports or fixes to: gcc@cs.buffalo.edu + * Performance hacking by Michael Tiemann (tiemann@cygnus.com) */ /* define this for the HCX/UX version */ @@ -44,7 +42,7 @@ the Free Software Foundation, 675 Mass A #define TARGET_VERSION printf (" (hcx)"); #else /* we want "tahoe" and "unix" defined for all future compilations */ -#define CPP_PREDEFINES "-Dtahoe -Dunix" +#define CPP_PREDEFINES "-Dtahoe -Dunix -Asystem(unix) -Acpu(tahoe) -Amachine(tahoe)" /* have cc1 print that this is the tahoe version */ #define TARGET_VERSION printf (" (tahoe)"); #endif @@ -137,21 +135,19 @@ extern int target_flags; /* this section is borrowed from the vax version since the */ /* formats are the same in both of the architectures */ -#define CHECK_FLOAT_VALUE(mode, d) \ - if ((mode) == SFmode) \ - { \ - if ((d) > 1.7014117331926443e+38) \ - { error ("magnitude of constant too large for `float'"); \ - (d) = 1.7014117331926443e+38; } \ - else if ((d) < -1.7014117331926443e+38) \ - { error ("magnitude of constant too large for `float'"); \ - (d) = -1.7014117331926443e+38; } \ - else if (((d) > 0) && ((d) < 2.9387358770557188e-39)) \ - { warning ("`float' constant truncated to zero"); \ - (d) = 0.0; } \ - else if (((d) < 0) && ((d) > -2.9387358770557188e-39)) \ - { warning ("`float' constant truncated to zero"); \ - (d) = 0.0; } \ +#define CHECK_FLOAT_VALUE(MODE, D, OVEFLOW) \ + if (OVERFLOW) \ + (D) = 1.7014117331926443e+38; \ + else if ((MODE) == SFmode) \ + { \ + if ((D) > 1.7014117331926443e+38) \ + (OVERFLOW) = 1, (D) = 1.7014117331926443e+38; \ + else if ((D) < -1.7014117331926443e+38) \ + (OVERFLOW) = 1, (D) = -1.7014117331926443e+38; \ + else if (((D) > 0) && ((D) < 2.9387358770557188e-39)) \ + (OVERFLOW) = 1, (D) = 0.0; \ + else if (((D) < 0) && ((D) > -2.9387358770557188e-39)) \ + (OVERFLOW) = 1, (D) = 0.0; \ } @@ -621,7 +617,7 @@ enum reg_class {NO_REGS,GENERAL_REGS,FPP /* any bits higher than the low 4 are ignored in the shift count */ /* so don't bother zero extending or sign extending them */ -#define SHIFT_COUNT_TRUNCATED +#define SHIFT_COUNT_TRUNCATED 1 /* we don't need to officially convert from one fixed type to another */ /* in order to use it as that type. We can just assume it's the same */ @@ -860,7 +856,7 @@ enum reg_class {NO_REGS,GENERAL_REGS,FPP /* This is how to output an assembler line for an ASCII string. */ #define ASM_OUTPUT_ASCII(FILE, p, size) \ -{ register int i; \ +do { register int i; \ fprintf ((FILE), "\t.ascii \""); \ for (i = 0; i < (size); i++) \ { \ @@ -874,7 +870,7 @@ enum reg_class {NO_REGS,GENERAL_REGS,FPP fprintf ((FILE), "\\%03o", c); \ } \ } \ - fprintf ((FILE), "\"\n"); } + fprintf ((FILE), "\"\n"); } while (0) #endif /* This is how to output an assembler line for a numeric constant byte. */