From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4913 invoked by alias); 10 Dec 2001 21:44:13 -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 4892 invoked from network); 10 Dec 2001 21:44:12 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sources.redhat.com with SMTP; 10 Dec 2001 21:44:12 -0000 Received: from reddwarf.cygnus.com (reddwarf.cygnus.com [205.180.231.12]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id NAA03300; Mon, 10 Dec 2001 13:44:11 -0800 (PST) Received: (from msnyder@localhost) by reddwarf.cygnus.com (8.11.2/8.11.2) id fBALfJW01783; Mon, 10 Dec 2001 13:41:19 -0800 Date: Mon, 10 Dec 2001 13:44:00 -0000 From: Michael Snyder Message-Id: <200112102141.fBALfJW01783@reddwarf.cygnus.com> To: gdb-patches@sources.redhat.com Subject: [PATCH] Generic register_virtual_size function. Cc: cagney@redhat.com X-SW-Source: 2001-12/txt/msg00287.txt.bz2 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 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