aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/i370
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2002-09-21 09:10:36 -0700
committerRichard Henderson <rth@gcc.gnu.org>2002-09-21 09:10:36 -0700
commit3dc85dfb4af5543dc2b997d19e4c33260e58983b (patch)
treecf255ab7cc385de8be819f436b5513ec3c5357c2 /gcc/config/i370
parent838dfd8a4ef2572d4831643b01d70f78ba6e7747 (diff)
downloadgcc-3dc85dfb4af5543dc2b997d19e4c33260e58983b.zip
gcc-3dc85dfb4af5543dc2b997d19e4c33260e58983b.tar.gz
gcc-3dc85dfb4af5543dc2b997d19e4c33260e58983b.tar.bz2
real.c (struct real_format): Move to real.h.
* 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. From-SVN: r57388
Diffstat (limited to 'gcc/config/i370')
-rw-r--r--gcc/config/i370/i370-protos.h2
-rw-r--r--gcc/config/i370/i370.c12
-rw-r--r--gcc/config/i370/i370.h2
3 files changed, 16 insertions, 0 deletions
diff --git a/gcc/config/i370/i370-protos.h b/gcc/config/i370/i370-protos.h
index 8ca7ca6..a3f4acd 100644
--- a/gcc/config/i370/i370-protos.h
+++ b/gcc/config/i370/i370-protos.h
@@ -24,6 +24,8 @@ Boston, MA 02111-1307, USA. */
#ifndef GCC_I370_PROTOS_H
#define GCC_I370_PROTOS_H
+extern void override_options PARAMS ((void));
+
#ifdef RTX_CODE
extern int i370_branch_dest PARAMS ((rtx));
extern int i370_branch_length PARAMS ((rtx));
diff --git a/gcc/config/i370/i370.c b/gcc/config/i370/i370.c
index 92d2795..b4474db 100644
--- a/gcc/config/i370/i370.c
+++ b/gcc/config/i370/i370.c
@@ -315,6 +315,18 @@ static const unsigned char ebcasc[256] =
struct gcc_target targetm = TARGET_INITIALIZER;
+/* Set global variables as needed for the options enabled. */
+
+void
+override_options ()
+{
+ /* We're 370 floating point, not IEEE floating point. */
+ memset (real_format_for_mode, 0, sizeof real_format_for_mode);
+ real_format_for_mode[SFmode - QFmode] = &i370_single_format;
+ real_format_for_mode[DFmode - QFmode] = &i370_double_format;
+}
+
+
/* Map characters from one character set to another.
C is the character to be translated. */
diff --git a/gcc/config/i370/i370.h b/gcc/config/i370/i370.h
index d4c2939..a2aff67 100644
--- a/gcc/config/i370/i370.h
+++ b/gcc/config/i370/i370.h
@@ -76,6 +76,8 @@ extern int mvs_function_name_length;
{ "no-char-instructions", -1, N_("Do not generate char instructions")}, \
{ "", TARGET_DEFAULT, 0} }
+#define OVERRIDE_OPTIONS override_options ()
+
/* To use IBM supplied macro function prologue and epilogue, define the
following to 1. Should only be needed if IBM changes the definition
of their prologue and epilogue. */