From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19901 invoked by alias); 13 Aug 2002 16:20:01 -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 19889 invoked from network); 13 Aug 2002 16:20:00 -0000 Received: from unknown (HELO kraid.nerim.net) (62.4.16.95) by sources.redhat.com with SMTP; 13 Aug 2002 16:20:00 -0000 Received: from nerim.fr (unknown [62.212.108.40]) by kraid.nerim.net (Postfix) with ESMTP id A2EF541071; Tue, 13 Aug 2002 18:12:17 +0200 (CEST) Message-ID: <3D594DC2.3060201@nerim.fr> Date: Tue, 13 Aug 2002 09:20:00 -0000 From: Stephane Carrez User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.4.1) Gecko/20020508 Netscape6/6.2.3 X-Accept-Language: en-us MIME-Version: 1.0 To: gdb-patches@sources.redhat.com Subject: [PATCH]: Add support for page register in HC12 gdb Content-Type: multipart/mixed; boundary="------------010202030108000503070006" X-SW-Source: 2002-08/txt/msg00299.txt.bz2 This is a multi-part message in MIME format. --------------010202030108000503070006 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-length: 510 Hi! I've committed this patch on mainline to be able to read/write the 68HC12 page register. The patch also fixes register sizes since A, B and CCR are 8-bit wide (but it doesn't matter very much...) Stephane 2002-08-13 Stephane Carrez * m68hc11-tdep.c (HARD_PAGE_REGNUM): Define for 68HC12 page register. (M68HC11_LAST_HARD_REG, m68hc11_register_names): Update. (m68hc11_register_virtual_type): Return a 8-bit type for 8-bit registers. (m68hc11_register_raw_size): Likewise. --------------010202030108000503070006 Content-Type: text/plain; name="m68hc11-tdep.c.diffs" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="m68hc11-tdep.c.diffs" Content-length: 2151 Index: m68hc11-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/m68hc11-tdep.c,v retrieving revision 1.25 diff -u -p -r1.25 m68hc11-tdep.c --- m68hc11-tdep.c 13 Aug 2002 13:10:42 -0000 1.25 +++ m68hc11-tdep.c 13 Aug 2002 16:12:54 -0000 @@ -55,7 +55,14 @@ Foundation, Inc., 59 Temple Place - Suit #define HARD_A_REGNUM 5 #define HARD_B_REGNUM 6 #define HARD_CCR_REGNUM 7 -#define M68HC11_LAST_HARD_REG (HARD_CCR_REGNUM) + +/* 68HC12 page number register. + Note: to keep a compatibility with gcc register naming, we must + not have to rename FP and other soft registers. The page register + is a real hard register and must therefore be counted by NUM_REGS. + For this it has the same number as Z register (which is not used). */ +#define HARD_PAGE_REGNUM 8 +#define M68HC11_LAST_HARD_REG (HARD_PAGE_REGNUM) /* Z is replaced by X or Y by gcc during machine reorg. ??? There is no way to get it and even know whether @@ -114,7 +121,7 @@ static char * m68hc11_register_names[] = { "x", "d", "y", "sp", "pc", "a", "b", - "ccr", "z", "frame","tmp", "zs", "xy", 0, + "ccr", "page", "frame","tmp", "zs", "xy", 0, "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "d9", "d10", "d11", "d12", "d13", "d14", "d15", "d16", "d17", "d18", "d19", "d20", "d21", @@ -891,7 +898,17 @@ m68hc11_call_dummy_address (void) static struct type * m68hc11_register_virtual_type (int reg_nr) { - return builtin_type_uint16; + switch (reg_nr) + { + case HARD_PAGE_REGNUM: + case HARD_A_REGNUM: + case HARD_B_REGNUM: + case HARD_CCR_REGNUM: + return builtin_type_uint8; + + default: + return builtin_type_uint16; + } } static void @@ -1014,7 +1031,17 @@ m68hc11_register_byte (int reg_nr) static int m68hc11_register_raw_size (int reg_nr) { - return M68HC11_REG_SIZE; + switch (reg_nr) + { + case HARD_PAGE_REGNUM: + case HARD_A_REGNUM: + case HARD_B_REGNUM: + case HARD_CCR_REGNUM: + return 1; + + default: + return M68HC11_REG_SIZE; + } } static int --------------010202030108000503070006--