diff options
author | Zack Weinberg <zack@gcc.gnu.org> | 2002-03-03 21:10:09 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2002-03-03 21:10:09 +0000 |
commit | ba31d94ee642e435d03ba73be3db027b362edd1b (patch) | |
tree | 95ce10820dcdc63db9f1448b54fe058ae5559247 /gcc/config | |
parent | e98f0f5c1310aef9c628db762adc220b7521c027 (diff) | |
download | gcc-ba31d94ee642e435d03ba73be3db027b362edd1b.zip gcc-ba31d94ee642e435d03ba73be3db027b362edd1b.tar.gz gcc-ba31d94ee642e435d03ba73be3db027b362edd1b.tar.bz2 |
emit-rtl.c, [...]: Remove all #ifndef REAL_ARITHMETIC blocks...
* emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
tree.c, config/m68k/m68k.c, f/com.c, f/target.h, java/expr.c,
java/jcf-parse.c, java/lex.c:
Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
REAL_ARITHMETIC blocks unconditional. Delete some further
#ifdef blocks predicated on REAL_ARITHMETIC.
* flags.h, toplev.c: Delete remaining references to
flag_pretend_float.
* doc/invoke.texi: Remove documentation of -fpretend-float.
* doc/tm.texi: Describe the various REAL_* macros as provided by
real.h, not by the target configuration files.
* config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
config/xtensa/xtensa.h:
Do not define, undefine, or mention in comments any of
REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
From-SVN: r50263
Diffstat (limited to 'gcc/config')
46 files changed, 8 insertions, 410 deletions
diff --git a/gcc/config/alpha/alpha.h b/gcc/config/alpha/alpha.h index d783997..683740d 100644 --- a/gcc/config/alpha/alpha.h +++ b/gcc/config/alpha/alpha.h @@ -409,9 +409,6 @@ extern const char *alpha_mlat_string; /* For -mmemory-latency= */ /* target machine storage layout */ -/* Define to enable software floating point emulation. */ -#define REAL_ARITHMETIC - /* Define the size of `int'. The default is the same as the word size. */ #define INT_TYPE_SIZE 32 diff --git a/gcc/config/alpha/unicosmk.h b/gcc/config/alpha/unicosmk.h index 65ab319..80492e4 100644 --- a/gcc/config/alpha/unicosmk.h +++ b/gcc/config/alpha/unicosmk.h @@ -35,13 +35,6 @@ Boston, MA 02111-1307, USA. */ #undef CPP_PREDEFINES #define CPP_PREDEFINES "-D__unix=1 -D_UNICOS=205 -D_CRAY=1 -D_CRAYT3E=1 -D_CRAYMPP=1 -D_CRAYIEEE=1 -D_ADDR64=1 -D_LD64=1 -D__UNICOSMK__ -D__INT_MAX__=9223372036854775807 -D__SHRT_MAX__=2147483647" -/* Disable software floating point emulation because it requires a 16-bit - type which we do not have. */ - -#ifndef __GNUC__ -#undef REAL_ARITHMETIC -#endif - #define SHORT_TYPE_SIZE 32 #undef INT_TYPE_SIZE @@ -568,14 +561,6 @@ ssib_section () \ #undef ASM_OUTPUT_MAX_SKIP_ALIGN #define ASM_OUTPUT_MAX_SKIP_ALIGN(STREAM,POWER,MAXSKIP) -/* We have to define these because we do not use the floating-point - emulation. Unfortunately, atof does not accept hex literals. */ - -#ifndef REAL_ARITHMETIC -#define REAL_VALUE_ATOF(x,s) atof(x) -#define REAL_VALUE_HTOF(x,s) atof(x) -#endif - #undef NM_FLAGS #undef OBJECT_FORMAT_COFF diff --git a/gcc/config/arc/arc.h b/gcc/config/arc/arc.h index d6c24af..f536126 100644 --- a/gcc/config/arc/arc.h +++ b/gcc/config/arc/arc.h @@ -168,10 +168,6 @@ do { \ /* Target machine storage layout. */ -/* Define to use software floating point emulator for REAL_ARITHMETIC and - decimal <-> binary conversion. */ -#define REAL_ARITHMETIC - /* Define this if most significant bit is lowest numbered in instructions that operate on numbered bit-fields. */ #define BITS_BIG_ENDIAN 1 diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index 524bfbf..9a27c53 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -647,8 +647,6 @@ extern int arm_is_6_or_7; /* This is required to ensure that push insns always push a word. */ #define PROMOTE_FUNCTION_ARGS -/* Define for XFmode extended real floating point support. - This will automatically cause REAL_ARITHMETIC to be defined. */ /* For the ARM: I think I have added all the code to make this work. Unfortunately, early releases of the floating point emulation code on RISCiX used a @@ -663,12 +661,6 @@ extern int arm_is_6_or_7; /* Disable XFmode patterns in md file */ #define ENABLE_XF_PATTERNS 0 -/* Define if you don't want extended real, but do want to use the - software floating point emulator for REAL_ARITHMETIC and - decimal <-> binary conversion. */ -/* See comment above */ -#define REAL_ARITHMETIC - /* Define this if most significant bit is lowest numbered in instructions that operate on numbered bit-fields. */ #define BITS_BIG_ENDIAN 0 diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h index d1d06e8..e11961a 100644 --- a/gcc/config/avr/avr.h +++ b/gcc/config/avr/avr.h @@ -2915,10 +2915,6 @@ extern struct rtx_def *ldi_reg_rtx; #define TARGET_FLOAT_FORMAT IEEE_FLOAT_FORMAT -/* Define to use software floating point emulator for REAL_ARITHMETIC and - decimal <-> binary conversion. */ -#define REAL_ARITHMETIC - #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG /* Get the standard ELF stabs definitions. */ diff --git a/gcc/config/c4x/c4x.h b/gcc/config/c4x/c4x.h index f0695ea..d9cd3da 100644 --- a/gcc/config/c4x/c4x.h +++ b/gcc/config/c4x/c4x.h @@ -360,11 +360,6 @@ extern const char *c4x_rpts_cycles_string, *c4x_cpu_version_string; #define BITS_PER_HIGH 16 #define BITS_PER_LO_SUM 16 -/* Use the internal floating point stuff in the compiler and not the - host floating point stuff. */ - -#define REAL_ARITHMETIC - /* Define register numbers. */ /* Extended-precision registers. */ diff --git a/gcc/config/convex/convex.h b/gcc/config/convex/convex.h index 62dc416..7ed4e45 100644 --- a/gcc/config/convex/convex.h +++ b/gcc/config/convex/convex.h @@ -409,18 +409,6 @@ extern int target_flags; #define LINK_LIBGCC_SPECIAL_1 -/* Since IEEE support was added to gcc, most things seem to like it - better if we disable exceptions and check afterward for infinity. */ - -#if __convex__ -#if _IEEE_FLOAT_ -#define REAL_VALUE_ISNAN(x) 0 -#define REAL_VALUE_ISINF(x) ((*(short *) &(x) & 0x7ff0) == 0x7ff0) -#else -#define REAL_VALUE_ISNAN(x) 0 -#define REAL_VALUE_ISINF(x) ((*(short *) &(x) & 0xfff0) == 0x8000) -#endif -#endif /* Target machine storage layout */ @@ -1089,9 +1077,6 @@ enum reg_class { Follow the host format. */ #define TARGET_FLOAT_FORMAT HOST_FLOAT_FORMAT -/* But must prevent real.c from constructing VAX dfloats */ -#define REAL_VALUE_ATOF(X,S) atof (X) - /* Check a `double' value for validity for a particular machine mode. */ #define CHECK_FLOAT_VALUE(MODE, D, OVERFLOW) \ (OVERFLOW = check_float_value (MODE, &D, OVERFLOW)) diff --git a/gcc/config/cris/cris.h b/gcc/config/cris/cris.h index c547a23..ac3d521 100644 --- a/gcc/config/cris/cris.h +++ b/gcc/config/cris/cris.h @@ -1746,10 +1746,6 @@ call_ ## FUNC (void) \ /* Node: SDB and DWARF */ /* (no definitions) */ -/* Node: Cross-compilation */ -#define REAL_ARITHMETIC - - /* Node: Misc */ /* FIXME: Check this one more time. */ diff --git a/gcc/config/d30v/d30v.h b/gcc/config/d30v/d30v.h index 0e66560..1ef08ac 100644 --- a/gcc/config/d30v/d30v.h +++ b/gcc/config/d30v/d30v.h @@ -3000,27 +3000,6 @@ extern const char *d30v_branch_cost_string; /* These macros are provided by `real.h' for writing the definitions of `ASM_OUTPUT_DOUBLE' and the like: */ -/* These translate X, of type `REAL_VALUE_TYPE', to the target's floating point - representation, and store its bit pattern in the array of `long int' whose - address is L. The number of elements in the output array is determined by - the size of the desired target floating point data type: 32 bits of it go in - each `long int' array element. Each array element holds 32 bits of the - result, even if `long int' is wider than 32 bits on the host machine. - - The array element values are designed so that you can print them out using - `fprintf' in the order they should appear in the target machine's memory. */ -/* #define REAL_VALUE_TO_TARGET_SINGLE(X, L) */ -/* #define REAL_VALUE_TO_TARGET_DOUBLE(X, L) */ -/* #define REAL_VALUE_TO_TARGET_LONG_DOUBLE(X, L) */ - -/* This macro converts X, of type `REAL_VALUE_TYPE', to a decimal number and - stores it as a string into STRING. You must pass, as STRING, the address of - a long enough block of space to hold the result. - - The argument FORMAT is a `printf'-specification that serves as a suggestion - for how to format the output string. */ -/* #define REAL_VALUE_TO_DECIMAL(X, FORMAT, STRING) */ - /* Output of Uninitialized Variables. */ @@ -4139,144 +4118,6 @@ fprintf (STREAM, "\t.word .L%d\n", VALUE) /* #define SDB_ALLOW_FORWARD_REFERENCES */ -/* Cross Compilation and Floating Point. */ - -/* While all modern machines use 2's complement representation for integers, - there are a variety of representations for floating point numbers. This - means that in a cross-compiler the representation of floating point numbers - in the compiled program may be different from that used in the machine doing - the compilation. - - Because different representation systems may offer different amounts of - range and precision, the cross compiler cannot safely use the host machine's - floating point arithmetic. Therefore, floating point constants must be - represented in the target machine's format. This means that the cross - compiler cannot use `atof' to parse a floating point constant; it must have - its own special routine to use instead. Also, constant folding must emulate - the target machine's arithmetic (or must not be done at all). - - The macros in the following table should be defined only if you are cross - compiling between different floating point formats. - - Otherwise, don't define them. Then default definitions will be set up which - use `double' as the data type, `==' to test for equality, etc. - - You don't need to worry about how many times you use an operand of any of - these macros. The compiler never uses operands which have side effects. */ - -/* A macro for the C data type to be used to hold a floating point value in the - target machine's format. Typically this would be a `struct' containing an - array of `int'. */ -/* #define REAL_VALUE_TYPE */ - -/* A macro for a C expression which compares for equality the two values, X and - Y, both of type `REAL_VALUE_TYPE'. */ -/* #define REAL_VALUES_EQUAL(X, Y) */ - -/* A macro for a C expression which tests whether X is less than Y, both values - being of type `REAL_VALUE_TYPE' and interpreted as floating point numbers in - the target machine's representation. */ -/* #define REAL_VALUES_LESS(X, Y) */ - -/* A macro for a C expression which performs the standard library function - `ldexp', but using the target machine's floating point representation. Both - X and the value of the expression have type `REAL_VALUE_TYPE'. The second - argument, SCALE, is an integer. */ -/* #define REAL_VALUE_LDEXP(X, SCALE) */ - -/* A macro whose definition is a C expression to convert the target-machine - floating point value X to a signed integer. X has type `REAL_VALUE_TYPE'. */ -/* #define REAL_VALUE_FIX(X) */ - -/* A macro whose definition is a C expression to convert the target-machine - floating point value X to an unsigned integer. X has type - `REAL_VALUE_TYPE'. */ -/* #define REAL_VALUE_UNSIGNED_FIX(X) */ - -/* A macro whose definition is a C expression to round the target-machine - floating point value X towards zero to an integer value (but still as a - floating point number). X has type `REAL_VALUE_TYPE', and so does the - value. */ -/* #define REAL_VALUE_RNDZINT(X) */ - -/* A macro whose definition is a C expression to round the target-machine - floating point value X towards zero to an unsigned integer value (but still - represented as a floating point number). X has type `REAL_VALUE_TYPE', and - so does the value. */ -/* #define REAL_VALUE_UNSIGNED_RNDZINT(X) */ - -/* A macro for a C expression which converts STRING, an expression of type - `char *', into a floating point number in the target machine's - representation for mode MODE. The value has type `REAL_VALUE_TYPE'. */ -/* #define REAL_VALUE_ATOF(STRING, MODE) */ - -/* Define this macro if infinity is a possible floating point value, and - therefore division by 0 is legitimate. */ -/* #define REAL_INFINITY */ - -/* A macro for a C expression which determines whether X, a floating point - value, is infinity. The value has type `int'. By default, this is defined - to call `isinf'. */ -/* #define REAL_VALUE_ISINF(X) */ - -/* A macro for a C expression which determines whether X, a floating point - value, is a "nan" (not-a-number). The value has type `int'. By default, - this is defined to call `isnan'. */ -/* #define REAL_VALUE_ISNAN(X) */ - -/* Define the following additional macros if you want to make floating point - constant folding work while cross compiling. If you don't define them, - cross compilation is still possible, but constant folding will not happen - for floating point values. */ - -/* A macro for a C statement which calculates an arithmetic operation of the - two floating point values X and Y, both of type `REAL_VALUE_TYPE' in the - target machine's representation, to produce a result of the same type and - representation which is stored in OUTPUT (which will be a variable). - - The operation to be performed is specified by CODE, a tree code which will - always be one of the following: `PLUS_EXPR', `MINUS_EXPR', `MULT_EXPR', - `RDIV_EXPR', `MAX_EXPR', `MIN_EXPR'. - - The expansion of this macro is responsible for checking for overflow. If - overflow happens, the macro expansion should execute the statement `return - 0;', which indicates the inability to perform the arithmetic operation - requested. */ -/* #define REAL_ARITHMETIC(OUTPUT, CODE, X, Y) */ - -/* The real.h file actually defines REAL_ARITHMETIC appropriately if it was - defined at all before entering into the code, by using #undef first. */ -#define REAL_ARITHMETIC - -/* A macro for a C expression which returns the negative of the floating point - value X. Both X and the value of the expression have type `REAL_VALUE_TYPE' - and are in the target machine's floating point representation. - - There is no way for this macro to report overflow, since overflow can't - happen in the negation operation. */ -/* #define REAL_VALUE_NEGATE(X) */ - -/* A macro for a C expression which converts the floating point value X to mode - MODE. - - Both X and the value of the expression are in the target machine's floating - point representation and have type `REAL_VALUE_TYPE'. However, the value - should have an appropriate bit pattern to be output properly as a floating - constant whose precision accords with mode MODE. - - There is no way for this macro to report overflow. */ -/* #define REAL_VALUE_TRUNCATE(MODE, X) */ - -/* A macro for a C expression which converts a floating point value X into a - double-precision integer which is then stored into LOW and HIGH, two - variables of type INT. */ -/* #define REAL_VALUE_TO_INT(LOW, HIGH, X) */ - -/* A macro for a C expression which converts a double-precision integer found - in LOW and HIGH, two variables of type INT, into a floating point value - which is then stored into X. */ -/* #define REAL_VALUE_FROM_INT(X, LOW, HIGH) */ - /* Miscellaneous Parameters. */ diff --git a/gcc/config/dsp16xx/dsp16xx.h b/gcc/config/dsp16xx/dsp16xx.h index 0feb5e89..a981283 100644 --- a/gcc/config/dsp16xx/dsp16xx.h +++ b/gcc/config/dsp16xx/dsp16xx.h @@ -294,11 +294,6 @@ extern int target_flags; /* STORAGE LAYOUT */ -/* Define if you don't want extended real, but do want to use the - software floating point emulator for REAL_ARITHMETIC and - decimal <-> binary conversion. */ -#define REAL_ARITHMETIC - /* Define this if most significant bit is lowest numbered in instructions that operate on numbered bit-fields. */ diff --git a/gcc/config/h8300/h8300.h b/gcc/config/h8300/h8300.h index 3a6fe8f..f5b54db 100644 --- a/gcc/config/h8300/h8300.h +++ b/gcc/config/h8300/h8300.h @@ -180,10 +180,6 @@ extern int target_flags; /* Target machine storage layout */ -/* Define to use software floating point emulator for REAL_ARITHMETIC and - decimal <-> binary conversion. */ -#define REAL_ARITHMETIC - /* Define this if most significant bit is lowest numbered in instructions that operate on numbered bit-fields. This is not true on the H8/300. */ diff --git a/gcc/config/i370/linux.h b/gcc/config/i370/linux.h index 72c6618..52a3438 100644 --- a/gcc/config/i370/linux.h +++ b/gcc/config/i370/linux.h @@ -28,14 +28,6 @@ Boston, MA 02111-1307, USA. */ #define TARGET_ELF_ABI #define LINUX_DEFAULT_ELF - -/* hack alert define to get dbx/gdb/dwarf to compile */ -/* problem is that host float format is not target float format. */ -/* define REAL_ARITHMETIC for software emulation of float to - * int conversion. This seems to have somethings to do with - * cross-compiling ... */ -#define REAL_ARITHMETIC - /* Include system common definitions */ /* TODO: convert include to ${tm_file} list in config.gcc. */ #include "i370/i370.h" diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index f5b8e2f..023a9dc 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -669,8 +669,6 @@ extern int ix86_arch; /* target machine storage layout */ /* Define for XFmode or TFmode extended real floating point support. - This will automatically cause REAL_ARITHMETIC to be defined. - The XFmode is specified by i386 ABI, while TFmode may be faster due to alignment and simplifications in the address calculations. */ @@ -702,11 +700,6 @@ extern int ix86_arch; #define MAX_LONG_TYPE_SIZE 32 #endif -/* Define if you don't want extended real, but do want to use the - software floating point emulator for REAL_ARITHMETIC and - decimal <-> binary conversion. */ -/* #define REAL_ARITHMETIC */ - /* Define this if most significant byte of a word is the lowest numbered. */ /* That is true on the 80386. */ diff --git a/gcc/config/i386/osf1elf.h b/gcc/config/i386/osf1elf.h index 1f0c635..a772442 100644 --- a/gcc/config/i386/osf1elf.h +++ b/gcc/config/i386/osf1elf.h @@ -205,9 +205,3 @@ do \ } \ } \ while (0) - -#if defined (CROSS_COMPILE) && defined (HOST_BITS_PER_INT) && defined (HOST_BITS_PER_LONG) && defined (HOST_BITS_PER_LONGLONG) -#if (HOST_BITS_PER_INT==32) && (HOST_BITS_PER_LONG==64) && (HOST_BITS_PER_LONGLONG==64) -#define REAL_ARITHMETIC -#endif -#endif diff --git a/gcc/config/i960/i960.h b/gcc/config/i960/i960.h index c1446a2..a9f7e25 100644 --- a/gcc/config/i960/i960.h +++ b/gcc/config/i960/i960.h @@ -380,10 +380,6 @@ extern int target_flags; /* Target machine storage layout. */ -/* Define for cross-compilation from a host with a different float format - or endianness, as well as to support 80 bit long doubles on the i960. */ -#define REAL_ARITHMETIC - /* Define this if most significant bit is lowest numbered in instructions that operate on numbered bit-fields. */ #define BITS_BIG_ENDIAN 0 diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h index afa7bfd..b8f2449 100644 --- a/gcc/config/ia64/ia64.h +++ b/gcc/config/ia64/ia64.h @@ -2277,12 +2277,6 @@ do { \ fputc (')', FILE); \ } while (0) -/* Cross Compilation and Floating Point. */ - -/* Define to enable software floating point emulation. */ -#define REAL_ARITHMETIC - - /* Register Renaming Parameters. */ /* A C expression that is nonzero if hard register number REGNO2 can be diff --git a/gcc/config/m32r/m32r.h b/gcc/config/m32r/m32r.h index 22a2f99..02a9168 100644 --- a/gcc/config/m32r/m32r.h +++ b/gcc/config/m32r/m32r.h @@ -421,10 +421,6 @@ extern enum m32r_sdata m32r_sdata; /* Target machine storage layout. */ -/* Define to use software floating point emulator for REAL_ARITHMETIC and - decimal <-> binary conversion. */ -#define REAL_ARITHMETIC - /* Define this if most significant bit is lowest numbered in instructions that operate on numbered bit-fields. */ #define BITS_BIG_ENDIAN 1 diff --git a/gcc/config/m68hc11/m68hc11.h b/gcc/config/m68hc11/m68hc11.h index 067c2a3..cdb28e7 100644 --- a/gcc/config/m68hc11/m68hc11.h +++ b/gcc/config/m68hc11/m68hc11.h @@ -244,11 +244,6 @@ extern const struct processor_costs *m68hc11_cost; /* Width of a word, in units (bytes). */ #define UNITS_PER_WORD 2 -/* Define if you don't want extended real, but do want to use the - software floating point emulator for REAL_ARITHMETIC and - decimal <-> binary conversion. */ -#define REAL_ARITHMETIC - /* Width in bits of a pointer. See also the macro `Pmode' defined below. */ #define POINTER_SIZE 16 diff --git a/gcc/config/m68k/dpx2.h b/gcc/config/m68k/dpx2.h index 2bc06b4..06dfd50 100644 --- a/gcc/config/m68k/dpx2.h +++ b/gcc/config/m68k/dpx2.h @@ -113,11 +113,6 @@ Boston, MA 02111-1307, USA. */ #undef LONG_DOUBLE_TYPE_SIZE #define LONG_DOUBLE_TYPE_SIZE 64 -/* Define if you don't want extended real, but do want to use the - software floating point emulator for REAL_ARITHMETIC and - decimal <-> binary conversion. */ -#define REAL_ARITHMETIC - #undef ASM_OUTPUT_SOURCE_FILENAME #define ASM_OUTPUT_SOURCE_FILENAME(FILE, NA) \ do { fprintf ((FILE), "\t.file\t'%s'\n", (NA)); } while (0) diff --git a/gcc/config/m68k/linux-aout.h b/gcc/config/m68k/linux-aout.h index dd07a4e..f7bb337 100644 --- a/gcc/config/m68k/linux-aout.h +++ b/gcc/config/m68k/linux-aout.h @@ -73,6 +73,3 @@ Boston, MA 02111-1307, USA. */ /* Don't default to pcc-struct-return, because gcc is the only compiler. */ #undef PCC_STATIC_STRUCT_RETURN #define DEFAULT_PCC_STRUCT_RETURN 0 - -/* Allow folding division by zero. */ -#define REAL_INFINITY diff --git a/gcc/config/m68k/linux.h b/gcc/config/m68k/linux.h index 9926329..b1ec977 100644 --- a/gcc/config/m68k/linux.h +++ b/gcc/config/m68k/linux.h @@ -247,9 +247,6 @@ Boston, MA 02111-1307, USA. */ #define DBX_CONTIN_LENGTH 0 -/* Allow folding division by zero. */ -#define REAL_INFINITY - /* 1 if N is a possible register number for a function value. For m68k/SVR4 allow d0, a0, or fp0 as return registers, for integral, pointer, or floating types, respectively. Reject fp0 if not using diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index 42c4f7c..6289d3f 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -3112,13 +3112,6 @@ standard_68881_constant_p (x) if (TARGET_68040 || TARGET_68060) return 0; -#ifndef REAL_ARITHMETIC -#if HOST_FLOAT_FORMAT != TARGET_FLOAT_FORMAT - if (! flag_pretend_float) - return 0; -#endif -#endif - if (! inited_68881_table) init_68881_table (); @@ -3153,13 +3146,6 @@ floating_exact_log2 (x) REAL_VALUE_TYPE r, r1; int i; -#ifndef REAL_ARITHMETIC -#if HOST_FLOAT_FORMAT != TARGET_FLOAT_FORMAT - if (! flag_pretend_float) - return 0; -#endif -#endif - REAL_VALUE_FROM_CONST_DOUBLE (r, x); if (REAL_VALUES_LESS (r, dconst0)) @@ -3305,13 +3291,6 @@ standard_sun_fpa_constant_p (x) REAL_VALUE_TYPE r; int i; -#ifndef REAL_ARITHMETIC -#if HOST_FLOAT_FORMAT != TARGET_FLOAT_FORMAT - if (! flag_pretend_float) - return 0; -#endif -#endif - if (! inited_FPA_table) init_FPA_table (); diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h index a335288..1f21ba9 100644 --- a/gcc/config/m68k/m68k.h +++ b/gcc/config/m68k/m68k.h @@ -294,15 +294,9 @@ extern int target_flags; /* target machine storage layout */ -/* Define for XFmode extended real floating point support. - This will automatically cause REAL_ARITHMETIC to be defined. */ +/* Define for XFmode extended real floating point support. */ #define LONG_DOUBLE_TYPE_SIZE 96 -/* Define if you don't want extended real, but do want to use the - software floating point emulator for REAL_ARITHMETIC and - decimal <-> binary conversion. */ -/* #define REAL_ARITHMETIC */ - /* Define this if most significant bit is lowest numbered in instructions that operate on numbered bit-fields. This is true for 68020 insns such as bfins and bfexts. diff --git a/gcc/config/m68k/netbsd-elf.h b/gcc/config/m68k/netbsd-elf.h index 97c1b96..f0d1e91 100644 --- a/gcc/config/m68k/netbsd-elf.h +++ b/gcc/config/m68k/netbsd-elf.h @@ -34,10 +34,6 @@ Boston, MA 02111-1307, USA. */ #if TARGET_DEFAULT == 0 #undef LONG_DOUBLE_TYPE_SIZE #define LONG_DOUBLE_TYPE_SIZE 64 - -/* Use software floating point emulator for REAL_ARITHMETIC and - decimal <-> binary conversion. */ -#define REAL_ARITHMETIC #endif #ifdef __mc68010__ diff --git a/gcc/config/m68k/sun3.h b/gcc/config/m68k/sun3.h index 0bee823..2db724f 100644 --- a/gcc/config/m68k/sun3.h +++ b/gcc/config/m68k/sun3.h @@ -163,9 +163,6 @@ Boston, MA 02111-1307, USA. */ #define DBX_DEBUGGING_INFO -/* Allow folding division by zero. */ -#define REAL_INFINITY - /* Generate calls to memcpy, memcmp and memset. */ #define TARGET_MEM_FUNCTIONS diff --git a/gcc/config/m68k/vxm68k.h b/gcc/config/m68k/vxm68k.h index 433595b..161d063 100644 --- a/gcc/config/m68k/vxm68k.h +++ b/gcc/config/m68k/vxm68k.h @@ -94,9 +94,6 @@ Unrecognized value in TARGET_CPU_DEFAULT. #define STRUCTURE_SIZE_BOUNDARY 16 -/* Allow folding division by zero. */ -#define REAL_INFINITY - /* GCC is the primary compiler for VxWorks, so we don't need this. */ #undef PCC_STATIC_STRUCT_RETURN diff --git a/gcc/config/mcore/mcore.h b/gcc/config/mcore/mcore.h index 3da212e..0133675 100644 --- a/gcc/config/mcore/mcore.h +++ b/gcc/config/mcore/mcore.h @@ -214,10 +214,6 @@ extern const char * mcore_stack_increment_string; /* Target machine storage Layout. */ -/* Define to use software floating point emulator for REAL_ARITHMETIC and - decimal <-> binary conversion. */ -#define REAL_ARITHMETIC - #define PROMOTE_MODE(MODE,UNSIGNEDP,TYPE) \ if (GET_MODE_CLASS (MODE) == MODE_INT \ && GET_MODE_SIZE (MODE) < UNITS_PER_WORD) \ diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index f1e170d..72d4498 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -1546,10 +1546,6 @@ do { \ /* Target machine storage layout */ -/* Define in order to support both big and little endian float formats - in the same gcc binary. */ -#define REAL_ARITHMETIC - /* Define this if most significant bit is lowest numbered in instructions that operate on numbered bit-fields. */ diff --git a/gcc/config/mmix/mmix.h b/gcc/config/mmix/mmix.h index 7d2c7f2..e422740 100644 --- a/gcc/config/mmix/mmix.h +++ b/gcc/config/mmix/mmix.h @@ -1154,17 +1154,6 @@ const_section () \ #define DWARF2_DEBUGGING_INFO #define DWARF2_ASM_LINE_DEBUG_INFO 1 -/* Node: Cross-compilation */ - -/* FIXME: I don't know whether it is best to tweak emit-rtl.c to handle - the case where sizeof (float) == word_size / 2 on the target, or to fix - real.h to define REAL_ARITHMETIC in that case. Anyway, it should be - documented that a target can define this to force emulation. Note that - we don't check #ifdef CROSS_COMPILE here; not even if mmix gets - self-hosted must we do that. Case gcc.c-torture/compile/930611-1.c. */ -#define REAL_ARITHMETIC - - /* Node: Misc */ #define PREDICATE_CODES \ diff --git a/gcc/config/mn10200/mn10200.h b/gcc/config/mn10200/mn10200.h index 5652041..a0191fc 100644 --- a/gcc/config/mn10200/mn10200.h +++ b/gcc/config/mn10200/mn10200.h @@ -915,10 +915,6 @@ struct cum_arg { int nbytes; }; ((GET_CODE (X) == PLUS ? OFFSET : 0) \ + (frame_pointer_needed ? 0 : -total_frame_size ())) -/* Define to use software floating point emulator for REAL_ARITHMETIC and - decimal <-> binary conversion. */ -#define REAL_ARITHMETIC - /* Specify the machine mode that this machine uses for the index in the tablejump instruction. */ #define CASE_VECTOR_MODE Pmode diff --git a/gcc/config/mn10300/mn10300.h b/gcc/config/mn10300/mn10300.h index 71b7384..a0fe0cd 100644 --- a/gcc/config/mn10300/mn10300.h +++ b/gcc/config/mn10300/mn10300.h @@ -1013,10 +1013,6 @@ struct cum_arg {int nbytes; }; + (frame_pointer_needed \ ? 0 : -initial_offset (ARG_POINTER_REGNUM, STACK_POINTER_REGNUM))) -/* Define to use software floating point emulator for REAL_ARITHMETIC and - decimal <-> binary conversion. */ -#define REAL_ARITHMETIC - /* Specify the machine mode that this machine uses for the index in the tablejump instruction. */ #define CASE_VECTOR_MODE Pmode diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index c2bc2ea..4125056 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -362,10 +362,6 @@ extern int target_flags; /* target machine storage layout */ -/* Define for cross-compilation from a host with a different float format - or endianness (e.g. VAX, x86). */ -#define REAL_ARITHMETIC - /* Define this macro if it is advisable to hold scalars in registers in a wider mode than that declared by the program. In such cases, the value is constrained to be within the bounds of the declared diff --git a/gcc/config/pj/pj.h b/gcc/config/pj/pj.h index ed82473..42065f5 100644 --- a/gcc/config/pj/pj.h +++ b/gcc/config/pj/pj.h @@ -110,10 +110,6 @@ extern int target_flags; /* Target machine storage layout. */ -/* Define to use software floating point emulator for REAL_ARITHMETIC and - decimal <-> binary conversion. */ -#define REAL_ARITHMETIC - /* Define this if most significant bit is lowest numbered in instructions that operate on numbered bit-fields. */ #define BITS_BIG_ENDIAN 0 diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index e8d9022..30c87bf 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -483,9 +483,6 @@ extern int rs6000_altivec_abi; /* target machine storage layout */ -/* Define to support cross compilation to an RS6000 target. */ -#define REAL_ARITHMETIC - /* Define this macro if it is advisable to hold scalars in registers in a wider mode than that declared by the program. In such cases, the value is constrained to be within the bounds of the declared diff --git a/gcc/config/s390/s390.h b/gcc/config/s390/s390.h index 0d2d9ff..959bc9c 100644 --- a/gcc/config/s390/s390.h +++ b/gcc/config/s390/s390.h @@ -78,7 +78,7 @@ extern int target_flags; #define OVERRIDE_OPTIONS override_options () -/* Defines for REAL_ARITHMETIC. */ +/* Defines for real.c. */ #define IEEE_FLOAT 1 #define TARGET_IBM_FLOAT 0 #define TARGET_IEEE_FLOAT 1 @@ -201,10 +201,6 @@ if (INTEGRAL_MODE_P (MODE) && \ #define STRICT_ALIGNMENT 0 -/* real arithmetic */ - -#define REAL_ARITHMETIC - /* Define target floating point format. */ #undef TARGET_FLOAT_FORMAT diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h index 8d98aa2..75e7d5e 100644 --- a/gcc/config/sh/sh.h +++ b/gcc/config/sh/sh.h @@ -406,10 +406,6 @@ do { \ /* Target machine storage layout. */ -/* Define to use software floating point emulator for REAL_ARITHMETIC and - decimal <-> binary conversion. */ -#define REAL_ARITHMETIC - /* Define this if most significant bit is lowest numbered in instructions that operate on numbered bit-fields. */ diff --git a/gcc/config/sparc/freebsd.h b/gcc/config/sparc/freebsd.h index 61a61d4..ff7c3e7 100644 --- a/gcc/config/sparc/freebsd.h +++ b/gcc/config/sparc/freebsd.h @@ -56,7 +56,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE 32 -/* Define for support of TFmode long double and REAL_ARITHMETIC. +/* Define for support of TFmode long double. Sparc ABI says that long double is 4 words. */ #undef LONG_DOUBLE_TYPE_SIZE #define LONG_DOUBLE_TYPE_SIZE (TARGET_LONG_DOUBLE_128 ? 128 : 64) diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h index d464133..086bcdb 100644 --- a/gcc/config/sparc/linux.h +++ b/gcc/config/sparc/linux.h @@ -228,7 +228,7 @@ do { \ sprintf (LABEL, "*.L%s%ld", PREFIX, (long)(NUM)) -/* Define for support of TFmode long double and REAL_ARITHMETIC. +/* Define for support of TFmode long double. Sparc ABI says that long double is 4 words. */ #define LONG_DOUBLE_TYPE_SIZE (TARGET_LONG_DOUBLE_128 ? 128 : 64) diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h index 31d8204..1d5dfa0 100644 --- a/gcc/config/sparc/linux64.h +++ b/gcc/config/sparc/linux64.h @@ -146,7 +146,7 @@ Boston, MA 02111-1307, USA. */ #undef MAX_WCHAR_TYPE_SIZE -/* Define for support of TFmode long double and REAL_ARITHMETIC. +/* Define for support of TFmode long double. Sparc ABI says that long double is 4 words. */ #undef LONG_DOUBLE_TYPE_SIZE #define LONG_DOUBLE_TYPE_SIZE (TARGET_LONG_DOUBLE_128 ? 128 : 64) diff --git a/gcc/config/sparc/sol2.h b/gcc/config/sparc/sol2.h index 1f86a50..4994584 100644 --- a/gcc/config/sparc/sol2.h +++ b/gcc/config/sparc/sol2.h @@ -196,7 +196,7 @@ Boston, MA 02111-1307, USA. */ /* ??? This does not work in SunOS 4.x, so it is not enabled in sparc.h. Instead, it is enabled here, because it does work under Solaris. */ -/* Define for support of TFmode long double and REAL_ARITHMETIC. +/* Define for support of TFmode long double. Sparc ABI says that long double is 4 words. */ #define LONG_DOUBLE_TYPE_SIZE 128 diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h index 348d98c..c1e472d 100644 --- a/gcc/config/sparc/sparc.h +++ b/gcc/config/sparc/sparc.h @@ -687,10 +687,6 @@ extern struct sparc_cpu_select sparc_select[]; /* target machine storage layout */ -/* Define for cross-compilation to a sparc target with no TFmode from a host - with a different float format (e.g. VAX). */ -#define REAL_ARITHMETIC - /* Define this if most significant bit is lowest numbered in instructions that operate on numbered bit-fields. */ #define BITS_BIG_ENDIAN 1 @@ -732,7 +728,7 @@ extern struct sparc_cpu_select sparc_select[]; #if 0 /* ??? This does not work in SunOS 4.x, so it is not enabled here. Instead, it is enabled in sol2.h, because it does work under Solaris. */ -/* Define for support of TFmode long double and REAL_ARITHMETIC. +/* Define for support of TFmode long double. Sparc ABI says that long double is 4 words. */ #define LONG_DOUBLE_TYPE_SIZE 128 #endif diff --git a/gcc/config/sparc/vxsim.h b/gcc/config/sparc/vxsim.h index 94cfb92..30d9279 100644 --- a/gcc/config/sparc/vxsim.h +++ b/gcc/config/sparc/vxsim.h @@ -128,6 +128,6 @@ do { \ /* ??? This does not work in SunOS 4.x, so it is not enabled in sparc.h. Instead, it is enabled here, because it does work under Solaris. */ -/* Define for support of TFmode long double and REAL_ARITHMETIC. +/* Define for support of TFmode long double. Sparc ABI says that long double is 4 words. */ #define LONG_DOUBLE_TYPE_SIZE 64 diff --git a/gcc/config/stormy16/stormy16.h b/gcc/config/stormy16/stormy16.h index 8f5dbb8..846ac24 100644 --- a/gcc/config/stormy16/stormy16.h +++ b/gcc/config/stormy16/stormy16.h @@ -2808,30 +2808,6 @@ do { \ is treated as a logical line separator. */ #define IS_ASM_LOGICAL_LINE_SEPARATOR(C) ((C) == '|') -/* These macros are provided by `real.h' for writing the definitions of - `ASM_OUTPUT_DOUBLE' and the like: */ - -/* These translate X, of type `REAL_VALUE_TYPE', to the target's floating point - representation, and store its bit pattern in the array of `long int' whose - address is L. The number of elements in the output array is determined by - the size of the desired target floating point data type: 32 bits of it go in - each `long int' array element. Each array element holds 32 bits of the - result, even if `long int' is wider than 32 bits on the host machine. - - The array element values are designed so that you can print them out using - `fprintf' in the order they should appear in the target machine's memory. */ -/* #define REAL_VALUE_TO_TARGET_SINGLE(X, L) */ -/* #define REAL_VALUE_TO_TARGET_DOUBLE(X, L) */ -/* #define REAL_VALUE_TO_TARGET_LONG_DOUBLE(X, L) */ - -/* This macro converts X, of type `REAL_VALUE_TYPE', to a decimal number and - stores it as a string into STRING. You must pass, as STRING, the address of - a long enough block of space to hold the result. - - The argument FORMAT is a `printf'-specification that serves as a suggestion - for how to format the output string. */ -/* #define REAL_VALUE_TO_DECIMAL(X, FORMAT, STRING) */ - /* Output of Uninitialized Variables. */ @@ -3859,10 +3835,6 @@ do { \ /* Miscellaneous Parameters. */ -/* Define REAL_ARITHMETIC to use a software emulator for the target floating - point mode. Otherwise the host floating point mode is used. */ -#define REAL_ARITHMETIC - /* Define this if you have defined special-purpose predicates in the file `MACHINE.c'. This macro is called within an initializer of an array of structures. The first field in the structure is the name of a predicate and diff --git a/gcc/config/v850/v850.h b/gcc/config/v850/v850.h index a42eb74..175fc9f 100644 --- a/gcc/config/v850/v850.h +++ b/gcc/config/v850/v850.h @@ -1360,10 +1360,6 @@ do { \ #undef PREFERRED_DEBUGGING_TYPE #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG -/* Define to use software floating point emulator for REAL_ARITHMETIC and - decimal <-> binary conversion. */ -#define REAL_ARITHMETIC - /* Specify the machine mode that this machine uses for the index in the tablejump instruction. */ #define CASE_VECTOR_MODE (TARGET_BIG_SWITCH ? SImode : HImode) diff --git a/gcc/config/vax/vax.h b/gcc/config/vax/vax.h index ce5d350..87f405c 100644 --- a/gcc/config/vax/vax.h +++ b/gcc/config/vax/vax.h @@ -89,8 +89,6 @@ extern int target_flags; /* Target machine storage layout */ -#define REAL_ARITHMETIC - /* Define this if most significant bit is lowest numbered in instructions that operate on numbered bit-fields. This is not true on the VAX. */ diff --git a/gcc/config/xtensa/xtensa.h b/gcc/config/xtensa/xtensa.h index 8e049a8..1083ebc 100644 --- a/gcc/config/xtensa/xtensa.h +++ b/gcc/config/xtensa/xtensa.h @@ -221,10 +221,6 @@ extern unsigned xtensa_current_frame_size; /* Target machine storage layout */ -/* Define in order to support both big and little endian float formats - in the same gcc binary. */ -#define REAL_ARITHMETIC - /* Define this if most significant bit is lowest numbered in instructions that operate on numbered bit-fields. */ #define BITS_BIG_ENDIAN (TARGET_BIG_ENDIAN != 0) |