diff --git a/include/ChangeLog b/include/ChangeLog index bdd47bb98c2727ad30f73823bba837f988067ad4..575bcf73db768262bb50624513d4933c521d4cac 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -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. diff --git a/include/floatformat.h b/include/floatformat.h index a24487430504148e2a968996da65c88190c227a5..f1bd7f601f536716b1e3cf6e8dc4d1e7dd0e7577 100644 --- a/include/floatformat.h +++ b/include/floatformat.h @@ -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; diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index d2bda7022ed11661cc39d438ee69f49d30f6e9a1..eeae1e3435fe246f8dc54a408991d6a03a777525 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -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. diff --git a/libiberty/floatformat.c b/libiberty/floatformat.c index 8f0d7894641702ab6fc04f51058f94ec8060f627..28c9fbf662dbae73270c3b900f7fbe5bd1a7256b 100644 --- a/libiberty/floatformat.c +++ b/libiberty/floatformat.c @@ -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);