From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23072 invoked by alias); 2 Aug 2002 16:04:03 -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 23062 invoked from network); 2 Aug 2002 16:04:01 -0000 Received: from unknown (HELO localhost.redhat.com) (216.138.202.10) by sources.redhat.com with SMTP; 2 Aug 2002 16:04:01 -0000 Received: from ges.redhat.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 2B94B3CBF for ; Fri, 2 Aug 2002 12:04:02 -0400 (EDT) Message-ID: <3D4AAD71.4050403@ges.redhat.com> Date: Fri, 02 Aug 2002 09:04:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0.0) Gecko/20020708 X-Accept-Language: en-us, en MIME-Version: 1.0 To: gdb-patches@sources.redhat.com Subject: [rfa:m68hc11] Switch m68hc11 to cooked registers Content-Type: multipart/mixed; boundary="------------000502050801020904010803" X-SW-Source: 2002-08/txt/msg00055.txt.bz2 This is a multi-part message in MIME format. --------------000502050801020904010803 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-length: 183 Hello, The attached patch tries to switch the m68hc11 to the new cooked register framework. It certainly compiles and looks ok (....) but I've not tested it. ok to commit? Andrew --------------000502050801020904010803 Content-Type: text/plain; name="diffs" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="diffs" Content-length: 2557 Index: ChangeLog 2002-08-02 Andrew Cagney * m68hc11-tdep.c (m68hc11_pseudo_register_read): Replace m68hc11_fetch_pseudo_register. (m68hc11_pseudo_register_write): Replace m68hc11_store_pseudo_register. (m68hc11_gdbarch_init): Update. Index: m68hc11-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/m68hc11-tdep.c,v retrieving revision 1.22 diff -u -r1.22 m68hc11-tdep.c --- m68hc11-tdep.c 29 Jul 2002 16:34:06 -0000 1.22 +++ m68hc11-tdep.c 2 Aug 2002 15:58:37 -0000 @@ -218,11 +218,11 @@ /* Fetch a pseudo register. The 68hc11 soft registers are treated like pseudo registers. They are located in memory. Translate the register fetch into a memory read. */ -void -m68hc11_fetch_pseudo_register (int regno) +static void +m68hc11_pseudo_register_read (struct gdbarch *gdbarch, + struct regcache *regcache, + int regno, void *buf) { - char buf[MAX_REGISTER_RAW_SIZE]; - m68hc11_initialize_register_info (); /* Fetch a soft register: translate into a memory read. */ @@ -234,23 +234,24 @@ { memset (buf, 0, 2); } - supply_register (regno, buf); } /* Store a pseudo register. Translate the register store into a memory write. */ static void -m68hc11_store_pseudo_register (int regno) +m68hc11_pseudo_register_write (struct gdbarch *gdbarch, + struct regcache *regcache, + int regno, const void *buf) { m68hc11_initialize_register_info (); /* Store a soft register: translate into a memory write. */ if (soft_regs[regno].name) { - char buf[MAX_REGISTER_RAW_SIZE]; - - read_register_gen (regno, buf); - target_write_memory (soft_regs[regno].addr, buf, 2); + const int regsize = 2; + char *tmp = alloca (regsize); + memcpy (tmp, buf, regsize); + target_write_memory (soft_regs[regno].addr, tmp, regsize); } } @@ -1098,8 +1099,8 @@ set_gdbarch_register_size (gdbarch, 2); set_gdbarch_register_bytes (gdbarch, M68HC11_ALL_REGS * 2); set_gdbarch_register_virtual_type (gdbarch, m68hc11_register_virtual_type); - set_gdbarch_fetch_pseudo_register (gdbarch, m68hc11_fetch_pseudo_register); - set_gdbarch_store_pseudo_register (gdbarch, m68hc11_store_pseudo_register); + set_gdbarch_pseudo_register_read (gdbarch, m68hc11_pseudo_register_read); + set_gdbarch_pseudo_register_write (gdbarch, m68hc11_pseudo_register_write); set_gdbarch_use_generic_dummy_frames (gdbarch, 1); set_gdbarch_call_dummy_length (gdbarch, 0); --------------000502050801020904010803--