summaryrefslogtreecommitdiff
path: root/gcc/config/vax
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2002-09-21 16:10:36 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2002-09-21 16:10:36 +0000
commit1268285a29c29c7772fc29e3ab2e19fc4d264cc2 (patch)
treecf255ab7cc385de8be819f436b5513ec3c5357c2 /gcc/config/vax
parent3160db1dc46f78ddbaa809d1904690ab8d22e51f (diff)
downloadgcc-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.h2
-rw-r--r--gcc/config/vax/vax.c12
-rw-r--r--gcc/config/vax/vax.h3
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 */