from Mark Kettenis <kettenis@gnu.org>

* floatformat.c (floatformat_vax_aingle, floatformat_vax_double):
New variables.

* floatformat.h (enum floatformat_byteorders): Add
floatformat_vax.
(floatformat_vax_aingle, floatformat_vax_double): Declare.

From-SVN: r106281
This commit is contained in:
Mark Kettenis 2005-10-31 17:52:38 +00:00 committed by DJ Delorie
parent 44bcbae366
commit 0432a5de96
4 changed files with 48 additions and 6 deletions

View File

@ -1,3 +1,9 @@
2005-10-31 Mark Kettenis <kettenis@gnu.org>
* floatformat.h (enum floatformat_byteorders): Add
floatformat_vax.
(floatformat_vax_aingle, floatformat_vax_double): Declare.
2005-09-26 Mark Mitchell <mark@codesourcery.com>
* libiberty.h (expandargv): New function.

View File

@ -29,25 +29,26 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
(i.e. BITS_BIG_ENDIAN type numbering), and specify which bits each field
contains with the *_start and *_len fields. */
/* What is the order of the bytes. */
/* What is the order of the bytes? */
enum floatformat_byteorders {
/* Standard little endian byte order.
EX: 1.2345678e10 => 00 00 80 c5 e0 fe 06 42 */
floatformat_little,
/* Standard big endian byte order.
EX: 1.2345678e10 => 42 06 fe e0 c5 80 00 00 */
floatformat_big,
/* Little endian byte order but big endian word order.
EX: 1.2345678e10 => e0 fe 06 42 00 00 80 c5 */
floatformat_littlebyte_bigword,
floatformat_littlebyte_bigword
/* VAX byte order. Little endian byte order with 16-bit words. The
following example is an illustration of the byte order only; VAX
doesn't have a fully IEEE compliant floating-point format.
EX: 1.2345678e10 => 80 c5 00 00 06 42 e0 fe */
floatformat_vax
};
enum floatformat_intbit { floatformat_intbit_yes, floatformat_intbit_no };
@ -97,6 +98,12 @@ extern const struct floatformat floatformat_ieee_double_little;
extern const struct floatformat floatformat_ieee_double_littlebyte_bigword;
/* floatformats for VAX. */
extern const struct floatformat floatformat_vax_f;
extern const struct floatformat floatformat_vax_d;
extern const struct floatformat floatformat_vax_g;
/* floatformats for various extendeds. */
extern const struct floatformat floatformat_i387_ext;

View File

@ -1,3 +1,8 @@
2005-10-31 Mark Kettenis <kettenis@gnu.org>
* floatformat.c (floatformat_vax_aingle, floatformat_vax_double):
New variables.
2005-10-07 Mark Mitchell <mark@codesourcery.com>
* at-file.texi: Fix typo.

View File

@ -108,6 +108,30 @@ const struct floatformat floatformat_ieee_double_littlebyte_bigword =
floatformat_always_valid
};
/* floatformat for VAX. Not quite IEEE, but close enough. */
const struct floatformat floatformat_vax_f =
{
floatformat_vax, 32, 0, 1, 8, 129, 0, 9, 23,
floatformat_intbit_no,
"floatformat_vax_f",
floatformat_always_valid
};
const struct floatformat floatformat_vax_d =
{
floatformat_vax, 64, 0, 1, 8, 129, 0, 9, 55,
floatformat_intbit_no,
"floatformat_vax_d",
floatformat_always_valid
};
const struct floatformat floatformat_vax_g =
{
floatformat_vax, 64, 0, 1, 11, 1025, 0, 12, 52,
floatformat_intbit_no,
"floatformat_vax_g",
floatformat_always_valid
};
static int floatformat_i387_ext_is_valid (const struct floatformat *fmt,
const void *from);