b216cd4ae3
* real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE. Always make REAL_VALUE_TYPE a struct containing an array of HOST_WIDE_INT, not a double. Tidy up the code deciding how big it is. Don't declare or use union real_extract. * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1, decode_rtx_const, output_constant_pool), config/a29k/a29k.c (print_operand), config/arm/arm.c (output_move_double), config/arm/arm.md (consttable_4, consttable_8), config/romp/romp.c (output_fpops), config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c (xtensa_output_literal): Don't use union real_extract. * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c (sfmode_constant_to_ulong), config/ns32k/merlin.h (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand), config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h (PRINT_OPERAND): Don't use local version of union real_extract. * config/convex/convex.c (check_float_value), config/vax/vax.c (vax_float_literal), config/m88k/m88k.md (divdf3), config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2), config/pdp11/pdp11.c (output_move_quad): Don't do host arithmetic on target floating point quantities. * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT. * fold-const.c (fold), simplify-rtx.c (simplify_binary_real): Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY. * real.c (earith): Test INFINITY rather than REAL_INFINITY; NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef INFINITY. * print-rtl.c (print_rtx): Disable code which needs floating-point emulator. * libgcc2.c: Include float.h and use DBL_MANT_DIG, FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than depending on HOST_FLOAT_FORMAT to be defined properly. * ch/grant.c, cp/error.c: Always use REAL_VALUE_TO_DECIMAL; don't test REAL_IS_NOT_DOUBLE. * config/1750a/1750a.c (get_double, float_label): Delete. (print_operand): Delete huge commented-out chunk. Use REAL_VALUE_TO_DECIMAL. * config/1750a/1750a-protos.h: Delete prototypes of deleted functions. * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to IEEE_FLOAT_FORMAT. * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]): Use REAL_VALUE_TO_DECIMAL as ELF version does. * config/m88k/m88k.c (real_power_of_2_operand, legitimize_operand): Take the REAL_VALUE_TYPE and/or union real_extract out of the union; run the input through REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords from that into the union. * config/pdp11/pdp11.c (output_move_double): Rearrange parentheses to make automatic indenter happy. * doc/tm.texi (Cross-compilation): Rename node to "Floating Point" and rewrite to describe current situation. Also adjust documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to match code. * doc/rtl.texi: Adjust cross reference. From-SVN: r51210 |
||
---|---|---|
.. | ||
actions.c | ||
actions.h | ||
ch-tree.def | ||
ch-tree.h | ||
ChangeLog | ||
chill.brochure | ||
chill.in | ||
chill.texi | ||
config-lang.in | ||
convert.c | ||
decl.c | ||
except.c | ||
expr.c | ||
gperf | ||
grant.c | ||
hash.h | ||
inout.c | ||
lang-options.h | ||
lang-specs.h | ||
lang.c | ||
lex.c | ||
lex.h | ||
loop.c | ||
Make-lang.in | ||
Makefile.in | ||
nloop.c | ||
parse.c | ||
parse.h | ||
README | ||
satisfy.c | ||
tasking.c | ||
tasking.h | ||
timing.c | ||
tree.c | ||
typeck.c | ||
xtypeck.c |
This directory contains the GNU front-end for the Chill language, contributed by Cygnus Solutions. Chill is the "CCITT High-Level Language", where CCITT is the old name for what is now ITU, the International Telecommunications Union. It is is language in the Modula2 family, and targets many of the same applications as Ada (especially large embedded systems). Chill was never used much in the United States, but is still being used in Europe, Brazil, Korea, and other places. Chill has been standardized by a series of reports/standards. The GNU implementation mostly follows the 1988 version of the language, with some backwards compatibility options for the 1984 version, and some other extensions. However, it does not implement all of the features of any standard. The most recent standard is Z.200 (11/93), available from http://www.itu.int/itudoc/itu-t/rec/z.html. The GNU Chill implementation is not being actively developed. Cygnus has one customer we are maintaining Chill for, but we are not planning on putting major work into Chill. This Net release is for educational purposes (as an example of a different Gcc front-end), and for those who find it useful. It is an unsupported hacker release. Bug reports without patches are likely to get ignored. Questions may get answered or ignored depending on our mood! If you want to try your luck, you can send a note to David Brolley <brolley@cygnus.com> or Per Bothner <bothner@cygnus.com>. One known problem is that we only support native builds of GNU Chill. If you need a cross-compiler, you will find various problems, including the directory structure, and the setjmp-based exception handling mechanism. The Chill run-time system is in the runtime sub-directory. Notice rts.c contains a poor main's implementation of Chill "processes" (threads). It is not added to libchill.a. We only use it for testing. (Our customer uses a different implementation for production work.) The GNU Chill implementation was primarily written by Per Bothner, along with Bill Cox, Wilfried Moser, Michael Tiemann, and David Brolley.