From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5301 invoked by alias); 10 Dec 2001 21:46:15 -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 5272 invoked from network); 10 Dec 2001 21:46:11 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sources.redhat.com with SMTP; 10 Dec 2001 21:46:11 -0000 Received: from cygnus.com (reddwarf.cygnus.com [205.180.231.12]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id NAA03540; Mon, 10 Dec 2001 13:46:10 -0800 (PST) Message-ID: <3C152C77.94DFC3BB@cygnus.com> Date: Mon, 10 Dec 2001 13:46:00 -0000 From: Michael Snyder Organization: Red Hat, Inc. X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.4.2-2smp i686) X-Accept-Language: en MIME-Version: 1.0 To: gdb-patches@sources.redhat.com, cagney@redhat.com Subject: Re: [PATCH] Generic register_virtual_size function. References: <200112102141.fBALfJW01783@reddwarf.cygnus.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-SW-Source: 2001-12/txt/msg00288.txt.bz2 Argh -- this is what I meant to say... Michael Snyder wrote: > > This idea occurred to me after looking at Andrew's > generic version of register_raw_size: > > 2001-12-10 Michael Snyder > > * arch-utils.c (generic_register_virtual_size): New function. > * arch-utils.h: Export generic version of register_virtual_size. > * gdbarch.sh (REGISTER_VIRTUAL_SIZE): Use new function as default. > * gdbarch.c: Regenerate. > > Index: gdbarch.sh > =================================================================== > RCS file: /cvs/src/src/gdb/gdbarch.sh,v > retrieving revision 1.96 > diff -c -3 -p -r1.96 gdbarch.sh > *** gdbarch.sh 2001/12/10 04:58:29 1.96 > --- gdbarch.sh 2001/12/10 21:40:13 > *************** v:2:REGISTER_BYTES:int:register_bytes::: > *** 429,435 **** > f:2:REGISTER_BYTE:int:register_byte:int reg_nr:reg_nr::0:0 > f:2:REGISTER_RAW_SIZE:int:register_raw_size:int reg_nr:reg_nr::generic_register_raw_size:0 > v:2:MAX_REGISTER_RAW_SIZE:int:max_register_raw_size::::0:-1 > ! f:2:REGISTER_VIRTUAL_SIZE:int:register_virtual_size:int reg_nr:reg_nr::0:0 > v:2:MAX_REGISTER_VIRTUAL_SIZE:int:max_register_virtual_size::::0:-1 > f:2:REGISTER_VIRTUAL_TYPE:struct type *:register_virtual_type:int reg_nr:reg_nr::0:0 > f:2:DO_REGISTERS_INFO:void:do_registers_info:int reg_nr, int fpregs:reg_nr, fpregs:::do_registers_info::0 > --- 429,435 ---- > f:2:REGISTER_BYTE:int:register_byte:int reg_nr:reg_nr::0:0 > f:2:REGISTER_RAW_SIZE:int:register_raw_size:int reg_nr:reg_nr::generic_register_raw_size:0 > v:2:MAX_REGISTER_RAW_SIZE:int:max_register_raw_size::::0:-1 > ! f:2:REGISTER_VIRTUAL_SIZE:int:register_virtual_size:int reg_nr:reg_nr::generic_register_virtual_size:0 > v:2:MAX_REGISTER_VIRTUAL_SIZE:int:max_register_virtual_size::::0:-1 > f:2:REGISTER_VIRTUAL_TYPE:struct type *:register_virtual_type:int reg_nr:reg_nr::0:0 > f:2:DO_REGISTERS_INFO:void:do_registers_info:int reg_nr, int fpregs:reg_nr, fpregs:::do_registers_info::0 > Index: gdbarch.c > =================================================================== > RCS file: /cvs/src/src/gdb/gdbarch.c,v > retrieving revision 1.91 > diff -c -3 -p -r1.91 gdbarch.c > *** gdbarch.c 2001/12/10 04:58:29 1.91 > --- gdbarch.c 2001/12/10 21:40:13 > *************** struct gdbarch startup_gdbarch = > *** 314,320 **** > 0, > generic_register_raw_size, > 0, > ! 0, > 0, > 0, > 0, > --- 314,320 ---- > 0, > generic_register_raw_size, > 0, > ! generic_register_virtual_size, > 0, > 0, > 0, > Index: arch-utils.c > =================================================================== > RCS file: /cvs/src/src/gdb/arch-utils.c,v > retrieving revision 1.40 > diff -c -3 -p -r1.40 arch-utils.c > *** arch-utils.c 2001/12/10 04:58:29 1.40 > --- arch-utils.c 2001/12/10 21:40:13 > *************** generic_register_raw_size (int regnum) > *** 387,392 **** > --- 387,400 ---- > return TARGET_INT_BIT / HOST_CHAR_BIT; > } > > + /* Assume the virtual size corresponds to the virtual type. */ > + > + int > + generic_register_virtual_size (int regnum) > + { > + return TYPE_LENGTH (REGISTER_VIRTUAL_TYPE (regnum)); > + } > + > > /* Functions to manipulate the endianness of the target. */ > > Index: arch-utils.h > =================================================================== > RCS file: /cvs/src/src/gdb/arch-utils.h,v > retrieving revision 1.25 > diff -c -3 -p -r1.25 arch-utils.h > *** arch-utils.h 2001/12/10 04:58:29 1.25 > --- arch-utils.h 2001/12/10 21:40:13 > *************** extern int generic_in_function_epilogue_ > *** 142,145 **** > --- 142,149 ---- > of the integer type. */ > extern int generic_register_raw_size (int regnum); > > + /* Assume the virtual size of registers corresponds to the virtual type. */ > + > + extern int generic_register_virtual_type (int regnum); > + > #endif