From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9863 invoked by alias); 19 Mar 2005 06:17:39 -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 9727 invoked from network); 19 Mar 2005 06:17:29 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 19 Mar 2005 06:17:29 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11/8.12.11) with ESMTP id j2J6HT5f009195 for ; Sat, 19 Mar 2005 01:17:29 -0500 Received: from zenia.home.redhat.com (sebastian-int.corp.redhat.com [172.16.52.221]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id j2J6HNY04941; Sat, 19 Mar 2005 01:17:23 -0500 To: gdb-patches@sources.redhat.com Subject: RFC: Add 'double' member to 64-bit vector register type From: Jim Blandy Date: Sat, 19 Mar 2005 06:17:00 -0000 Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2005-03/txt/msg00249.txt.bz2 gdb/ChangeLog: 2005-03-17 Jim Blandy * gdbtypes.c (build_builtin_type_vec64): Include a 'double' member in the union, too, since these registers can hold 64-bit floating point types. gdb/testsuite/ChangeLog: 2005-03-17 Jim Blandy * gdb.arch/e500-regs.exp: Expect to see 'dbl' members in ev registers. Index: gdb/gdbtypes.c =================================================================== RCS file: /cvs/src/src/gdb/gdbtypes.c,v retrieving revision 1.99 diff -c -p -r1.99 gdbtypes.c *** gdb/gdbtypes.c 24 Feb 2005 13:51:32 -0000 1.99 --- gdb/gdbtypes.c 17 Mar 2005 05:19:43 -0000 *************** build_builtin_type_vec64 (void) *** 896,901 **** --- 896,902 ---- union __gdb_builtin_type_vec64 { int64_t uint64; + double dbl; float v2_float[2]; int32_t v2_int32[2]; int16_t v4_int16[4]; *************** build_builtin_type_vec64 (void) *** 907,912 **** --- 908,914 ---- t = init_composite_type ("__gdb_builtin_type_vec64", TYPE_CODE_UNION); append_composite_type_field (t, "uint64", builtin_type_int64); + append_composite_type_field (t, "dbl", builtin_type_double); append_composite_type_field (t, "v2_float", builtin_type_v2_float); append_composite_type_field (t, "v2_int32", builtin_type_v2_int32); append_composite_type_field (t, "v4_int16", builtin_type_v4_int16); Index: gdb/testsuite/gdb.arch/e500-regs.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.arch/e500-regs.exp,v retrieving revision 1.2 diff -c -p -r1.2 e500-regs.exp *** gdb/testsuite/gdb.arch/e500-regs.exp 15 Jun 2004 18:12:04 -0000 1.2 --- gdb/testsuite/gdb.arch/e500-regs.exp 17 Mar 2005 05:19:47 -0000 *************** gdb_expect { *** 85,93 **** # b) the register read (below) also works. if {$endianness == "big"} { ! set vector_register ".uint64 = 0x100000001, v2_float = .0x0, 0x0., v2_int32 = .0x1, 0x1., v4_int16 = .0x0, 0x1, 0x0, 0x1., v8_int8 = .0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1.." } else { ! set vector_register ".uint64 = 0x100000001, v2_float = .0x0, 0x0., v2_int32 = .0x1, 0x1., v4_int16 = .0x1, 0x0, 0x1, 0x0., v8_int8 = .0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0.." } for {set i 0} {$i < 32} {incr i 1} { --- 85,93 ---- # b) the register read (below) also works. if {$endianness == "big"} { ! set vector_register ".uint64 = 0x100000001, dbl = 0x0, v2_float = .0x0, 0x0., v2_int32 = .0x1, 0x1., v4_int16 = .0x0, 0x1, 0x0, 0x1., v8_int8 = .0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1.." } else { ! set vector_register ".uint64 = 0x100000001, dbl = 0x0, v2_float = .0x0, 0x0., v2_int32 = .0x1, 0x1., v4_int16 = .0x1, 0x0, 0x1, 0x0., v8_int8 = .0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0.." } for {set i 0} {$i < 32} {incr i 1} { *************** for {set i 0} {$i < 32} {incr i 1} { *** 110,118 **** # the way gdb works. if {$endianness == "big"} { ! set decimal_vector ".uint64 = 4294967297, v2_float = .1.*e-45, 1.*e-45., v2_int32 = .1, 1., v4_int16 = .0, 1, 0, 1., v8_int8 = ..000.000.000.001.000.000.000.001.." } else { ! set decimal_vector ".uint64 = 4294967297, v2_float = .1.*e-45, 1.*e-45., v2_int32 = .1, 1., v4_int16 = .1, 0, 1, 0., v8_int8 = ..001.000.000.000.001.000.000.." } for {set i 0} {$i < 32} {incr i 1} { --- 110,118 ---- # the way gdb works. if {$endianness == "big"} { ! set decimal_vector ".uint64 = 4294967297, dbl = 0, v2_float = .1.*e-45, 1.*e-45., v2_int32 = .1, 1., v4_int16 = .0, 1, 0, 1., v8_int8 = ..000.000.000.001.000.000.000.001.." } else { ! set decimal_vector ".uint64 = 4294967297, dbl = 0, v2_float = .1.*e-45, 1.*e-45., v2_int32 = .1, 1., v4_int16 = .1, 0, 1, 0., v8_int8 = ..001.000.000.000.001.000.000.." } for {set i 0} {$i < 32} {incr i 1} {