diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-09-21 16:10:36 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-09-21 16:10:36 +0000 |
commit | 1268285a29c29c7772fc29e3ab2e19fc4d264cc2 (patch) | |
tree | cf255ab7cc385de8be819f436b5513ec3c5357c2 /gcc/config/vax | |
parent | 3160db1dc46f78ddbaa809d1904690ab8d22e51f (diff) | |
download | gcc-1268285a29c29c7772fc29e3ab2e19fc4d264cc2.tar.gz |
* real.c (struct real_format): Move to real.h.
(real_format_for_mode): Rename from fmt_for_mode; update all users;
initialize with ieee defaults.
(real_to_target_fmt, real_from_target_fmt): New.
(ieee_single_format, ieee_double_format, ieee_extended_motorola_format,
ieee_extended_intel_96_format, ieee_extended_intel_128_format,
ieee_quad_format, i370_single_format, i370_double_format,
c4x_single_format, c4x_extended_format): Rename from s/_format//.
(ieee_quad_format): Fix emin.
(format_for_size, init_real_once): Remove.
* real.h (struct real_format): Move from real.c.
(real_format_for_mode): Declare.
(real_to_target_fmt, real_from_target_fmt): Declare.
(ieee_single_format, ieee_double_format, ieee_extended_motorola_format,
ieee_extended_intel_96_format, ieee_extended_intel_128_format,
ieee_quad_format, vax_f_format, vax_d_format, vax_g_format,
i370_single_format, i370_double_format, c4x_single_format,
c4x_extended_format): Declare.
* toplev.c (do_compile): Don't call init_real_once.
* defaults.h (INTEL_EXTENDED_IEEE_FORMAT): Remove.
* doc/tm.texi (INTEL_EXTENDED_IEEE_FORMAT): Remove.
* config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Define.
* config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): 64, if vax mode.
* config/alpha/alpha.c (override_options): Set real_format_for_mode
for VAX, if enabled.
* config/c4x/c4x.c (c4x_override_options): Set real_format_for_mode
for C4X.
* config/i370/i370.h (OVERRIDE_OPTIONS): New.
* config/i370/i370.c (override_options): New.
* config/i370/i370-protos.h: Update.
* config/i386/i386.c (override_options): Set real_format_for_mode
for Intel 80-bit extended.
* config/i386/i386.h (INTEL_EXTENDED_IEEE_FORMAT): Remove.
* config/i960/i960.h (LONG_DOUBLE_TYPE_SIZE): Mind -mlong-double-64.
(OVERRIDE_OPTIONS): Move code...
* config/i960/i960.c (i960_initialize): ... here. Set
real_format_for_mode for Intel 80-bit extended.
* config/ia64/ia64.c (ia64_override_options): Set real_format_for_mode
for Intel 80-bit extended, if enabled.
* config/m68k/m68k.c (override_options): Set real_format_for_mode
for Motorola 96-bit extended.
* config/vax/vax.h (OVERRIDE_OPTIONS): New.
* config/vax/vax.c (override_options): New.
* config/vax/vax-protos.h: Update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57388 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/vax')
-rw-r--r-- | gcc/config/vax/vax-protos.h | 2 | ||||
-rw-r--r-- | gcc/config/vax/vax.c | 12 | ||||
-rw-r--r-- | gcc/config/vax/vax.h | 3 |
3 files changed, 17 insertions, 0 deletions
diff --git a/gcc/config/vax/vax-protos.h b/gcc/config/vax/vax-protos.h index f3a239d76c6..059994f1196 100644 --- a/gcc/config/vax/vax-protos.h +++ b/gcc/config/vax/vax-protos.h @@ -18,6 +18,8 @@ along with GNU CC; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +extern void override_options PARAMS ((void)); + #ifdef RTX_CODE extern const char *rev_cond_name PARAMS ((rtx)); extern void split_quadword_operands PARAMS ((rtx *, rtx *, int)); diff --git a/gcc/config/vax/vax.c b/gcc/config/vax/vax.c index c00189f3a7e..1a83eba2ff8 100644 --- a/gcc/config/vax/vax.c +++ b/gcc/config/vax/vax.c @@ -66,6 +66,18 @@ static void vms_globalize_label PARAMS ((FILE *, const char *)); struct gcc_target targetm = TARGET_INITIALIZER; +/* Set global variables as needed for the options enabled. */ + +void +override_options () +{ + /* We're VAX floating point, not IEEE floating point. */ + memset (real_format_for_mode, 0, sizeof real_format_for_mode); + real_format_for_mode[SFmode - QFmode] = &vax_f_format; + real_format_for_mode[DFmode - QFmode] + = (TARGET_G_FLOAT ? &vax_g_format : &vax_d_format); +} + /* Generate the assembly code for function entry. FILE is a stdio stream to output the code to. SIZE is an int: how many units of temporary storage to allocate. diff --git a/gcc/config/vax/vax.h b/gcc/config/vax/vax.h index e51f064c2b2..6651a0260c5 100644 --- a/gcc/config/vax/vax.h +++ b/gcc/config/vax/vax.h @@ -106,6 +106,9 @@ extern int target_flags; #ifndef TARGET_DEFAULT #define TARGET_DEFAULT (MASK_UNIX_ASM) #endif + +#define OVERRIDE_OPTIONS override_options () + /* Target machine storage layout */ |