From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6241 invoked by alias); 21 Aug 2005 21:53:33 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 6220 invoked by uid 22791); 21 Aug 2005 21:53:28 -0000 Received: from sibelius.xs4all.nl (HELO sibelius.xs4all.nl) (82.92.89.47) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Sun, 21 Aug 2005 21:53:28 +0000 Received: from elgar.sibelius.xs4all.nl (root@elgar.sibelius.xs4all.nl [192.168.0.2]) by sibelius.xs4all.nl (8.13.0/8.13.0) with ESMTP id j7LLrKgV021457; Sun, 21 Aug 2005 23:53:20 +0200 (CEST) Received: from elgar.sibelius.xs4all.nl (kettenis@localhost.sibelius.xs4all.nl [127.0.0.1]) by elgar.sibelius.xs4all.nl (8.13.4/8.13.3) with ESMTP id j7LLrJem020404; Sun, 21 Aug 2005 23:53:19 +0200 (CEST) Received: (from kettenis@localhost) by elgar.sibelius.xs4all.nl (8.13.4/8.13.4/Submit) id j7LLrJXJ006901; Sun, 21 Aug 2005 23:53:19 +0200 (CEST) Date: Sun, 21 Aug 2005 21:59:00 -0000 Message-Id: <200508212153.j7LLrJXJ006901@elgar.sibelius.xs4all.nl> From: Mark Kettenis To: gdb-patches@sourceware.org, binutils@sourceware.org, gcc-patches@gcc.org Subject: [RFA] Add some VAX floating point formats to floatformat.[ch] X-SW-Source: 2005-08/txt/msg00220.txt.bz2 This patch adds support for the two VAX floating-point formats used by GCC for 'float' and 'double'. The real guts are in gdb/doublest.c (which I wil post later to the gdb list); this only adds the description. ok? Mark Index: include/ChangeLog from Mark Kettenis * floatformat.h (enum floatformat_byteorders): Add floatformat_vax. (floatformat_vax_aingle, floatformat_vax_double): Declare. Index: include/floatformat.h =================================================================== RCS file: /cvs/src/src/include/floatformat.h,v retrieving revision 1.12 diff -u -p -r1.12 floatformat.h --- include/floatformat.h 17 Aug 2005 18:03:25 -0000 1.12 +++ include/floatformat.h 21 Aug 2005 21:48:26 -0000 @@ -29,25 +29,23 @@ Foundation, Inc., 51 Franklin Street - F (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. */ + floatformat_vax }; enum floatformat_intbit { floatformat_intbit_yes, floatformat_intbit_no }; @@ -97,6 +95,11 @@ extern const struct floatformat floatfor extern const struct floatformat floatformat_ieee_double_littlebyte_bigword; +/* floatformats for VAX. */ + +extern const struct floatformat floatformat_vax_single; +extern const struct floatformat floatformat_vax_double; + /* floatformats for various extendeds. */ extern const struct floatformat floatformat_i387_ext; Index: libiberty/ChangeLog from Mark Kettenis * floatformat.c (floatformat_vax_aingle, floatformat_vax_double): New variables. Index: libiberty/floatformat.c =================================================================== RCS file: /cvs/src/src/libiberty/floatformat.c,v retrieving revision 1.16 diff -u -p -r1.16 floatformat.c --- libiberty/floatformat.c 17 Aug 2005 18:03:42 -0000 1.16 +++ libiberty/floatformat.c 21 Aug 2005 21:48:31 -0000 @@ -108,6 +108,23 @@ const struct floatformat floatformat_iee floatformat_always_valid }; +/* floatformat for VAX. Not quite IEEE, but close enough. */ + +const struct floatformat floatformat_vax_single = +{ + floatformat_vax, 32, 0, 1, 8, 129, 0, 9, 23, + floatformat_intbit_no, + "floatformat_vax_single", + floatformat_always_valid +}; +const struct floatformat floatformat_vax_double = +{ + floatformat_vax, 64, 0, 1, 8, 129, 0, 9, 55, + floatformat_intbit_no, + "floatformat_vax_single", + floatformat_always_valid +}; + static int floatformat_i387_ext_is_valid (const struct floatformat *fmt, const void *from);