From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22856 invoked by alias); 16 Sep 2003 15:42:41 -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 22639 invoked from network); 16 Sep 2003 15:42:36 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 16 Sep 2003 15:42:36 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id h8GFgY422319 for ; Tue, 16 Sep 2003 11:42:34 -0400 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [172.16.52.156]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h8GFgXe28104 for ; Tue, 16 Sep 2003 11:42:33 -0400 Received: from localhost.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by pobox.corp.redhat.com (8.12.8/8.12.8) with ESMTP id h8GFgWxI008948 for ; Tue, 16 Sep 2003 11:42:33 -0400 Received: by localhost.redhat.com (Postfix, from userid 469) id 292EA2CA3B; Tue, 16 Sep 2003 10:25:41 -0400 (EDT) From: Elena Zannoni MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <16231.7524.778391.339845@localhost.redhat.com> Date: Tue, 16 Sep 2003 15:42:00 -0000 To: Corinna Vinschen Subject: Re: SH patch 1 (was Re: [RFA] SH: Deprecate deprecated functions, use new frame interface) In-Reply-To: <20030915155259.GG9981@cygbert.vinschen.de> References: <20030908165510.GK1859@cygbert.vinschen.de> <16226.1322.230352.450541@localhost.redhat.com> <20030915155259.GG9981@cygbert.vinschen.de> X-SW-Source: 2003-09/txt/msg00356.txt.bz2 Corinna Vinschen writes: > On Fri, Sep 12, 2003 at 01:40:58PM -0400, Elena Zannoni wrote: > > Seems ok, but....could you split the renaming of insn to inst and > > removal of tdep into a separate patch, and repost the 2 patches? > > I.e. the renaming/tdep and the real cleanups after that. It's not easy > > to see what's going on with this diff. > > > > thanks > > elena > > Ok, this is the first patch which consists entirely of pure > mechanical changes... > Ah, much easier. Thanks, yes. elena > - removing tdep > - renaming insn to inst in both frame_init_saved_regs() funcs > - renaming IS_ADD_SP to IS_ADD_IMM_SP > - renaming IS_FMOV to IS_FPUSH > - renaming SH_DEFAULT_NUM_REGS to SH_NUM_REGS > - removing NUM_PSEUDO_REGS_SH_MEDIA and NUM_PSEUDO_REGS_SH_COMPACT since they > are only usind in sh64-tdep.c > - removing a useless comment from sh_extract_struct_value_address() > - removing a bunch of register number values (DSP_foo) which basically > only duplicate the already existing register number definitions in > sh-tdep.h. Change the sh_dsp_register_sim_regno accordingly. > > Corinna > > ChangeLog: > > * sh-tdep.h (struct gdbarch_tdep): Remove. Change all register > numbers to enumeration values. > * sh-tdep.c: Accomodate above change. > (SH_NUM_REGS): Rename from SH_DEFAULT_NUM_REGS. > (NUM_PSEUDO_REGS_SH_MEDIA): Remove (sh5 only). > (NUM_PSEUDO_REGS_SH_COMPACT): Remove (sh5 only). > (IS_ADD_IMM_SP): Rename from IS_ADD_SP. > (IS_FPUSH): Rename from IS_FMOV. > (sh_extract_struct_value_address): Remove useless comment. > (sh_dsp_register_sim_regno): Use register values from sh-tdep.h > instead of own local values. > (sh_dump_tdep): Remove. > (_initialize_sh_tdep): Accomodate removing sh_dump_tdep. > * sh3-rom.c (sh3_supply_register): Accomodate sh-tdep.h changes. > > Index: sh-tdep.c > =================================================================== > RCS file: /cvs/src/src/gdb/sh-tdep.c,v > retrieving revision 1.139 > diff -u -p -r1.139 sh-tdep.c > --- sh-tdep.c 14 Sep 2003 16:32:14 -0000 1.139 > +++ sh-tdep.c 15 Sep 2003 15:45:25 -0000 > @@ -53,7 +53,7 @@ > > static void (*sh_show_regs) (void); > > -#define SH_DEFAULT_NUM_REGS 59 > +#define SH_NUM_REGS 59 > > /* Define other aspects of the stack frame. > we keep a copy of the worked out return pc lying around, since it > @@ -256,9 +256,6 @@ sh_sh4_register_name (int reg_nr) > return register_names[reg_nr]; > } > > -#define NUM_PSEUDO_REGS_SH_MEDIA 80 > -#define NUM_PSEUDO_REGS_SH_COMPACT 51 > - > static const unsigned char * > sh_breakpoint_from_pc (CORE_ADDR *pcptr, int *lenptr) > { > @@ -325,7 +322,7 @@ sh_push_dummy_code (struct gdbarch *gdba > > /* ADD #imm,r15 01111111iiiiiiii > r15+imm-->r15 */ > -#define IS_ADD_SP(x) (((x) & 0xff00) == 0x7f00) > +#define IS_ADD_IMM_SP(x) (((x) & 0xff00) == 0x7f00) > > #define IS_MOV_R3(x) (((x) & 0xff00) == 0x1a00) > #define IS_SHLL_R3(x) ((x) == 0x4300) > @@ -337,7 +334,9 @@ sh_push_dummy_code (struct gdbarch *gdba > /* FMOV.S FRm,@-Rn Rn-4-->Rn, FRm-->(Rn) 1111nnnnmmmm1011 > FMOV DRm,@-Rn Rn-8-->Rn, DRm-->(Rn) 1111nnnnmmm01011 > FMOV XDm,@-Rn Rn-8-->Rn, XDm-->(Rn) 1111nnnnmmm11011 */ > -#define IS_FMOV(x) (((x) & 0xf00f) == 0xf00b) > +/* CV, 2003-08-28: Only suitable with Rn == SP, therefore name changed to > + make this entirely clear. */ > +#define IS_FPUSH(x) (((x) & 0xf00f) == 0xf00b) > > /* MOV Rm,Rn Rm-->Rn 0110nnnnmmmm0011 > MOV.L Rm,@(disp,Rn) Rm-->(dispx4+Rn) 0001nnnnmmmmdddd > @@ -401,8 +400,8 @@ sh_skip_prologue_hard_way (CORE_ADDR sta > { > int w = read_memory_integer (here, 2); > here += 2; > - if (IS_FMOV (w) || IS_PUSH (w) || IS_STS (w) || IS_MOV_R3 (w) > - || IS_ADD_R3SP (w) || IS_ADD_SP (w) || IS_SHLL_R3 (w) > + if (IS_FPUSH (w) || IS_PUSH (w) || IS_STS (w) || IS_MOV_R3 (w) > + || IS_ADD_R3SP (w) || IS_ADD_IMM_SP (w) || IS_SHLL_R3 (w) > || IS_ARG_MOV (w) || IS_MOV_TO_R14 (w)) > { > start_pc = here; > @@ -536,7 +535,7 @@ sh_nofp_frame_init_saved_regs (struct fr > int depth; > int pc; > int opc; > - int insn; > + int inst; > int r3_val = 0; > char *dummy_regs = deprecated_generic_find_dummy_frame (get_frame_pc (fi), > get_frame_base (fi)); > @@ -563,7 +562,7 @@ sh_nofp_frame_init_saved_regs (struct fr > > depth = 0; > > - /* Loop around examining the prologue insns until we find something > + /* Loop around examining the prologue inst until we find something > that does not appear to be part of the prologue. But give up > after 20 of them, since we're getting silly then. */ > > @@ -576,38 +575,38 @@ sh_nofp_frame_init_saved_regs (struct fr > > for (opc = pc + (2 * 28); pc < opc; pc += 2) > { > - insn = read_memory_integer (pc, 2); > + inst = read_memory_integer (pc, 2); > /* See where the registers will be saved to */ > - if (IS_PUSH (insn)) > + if (IS_PUSH (inst)) > { > - rn = GET_PUSHED_REG (insn); > + rn = GET_PUSHED_REG (inst); > where[rn] = depth; > depth += 4; > } > - else if (IS_STS (insn)) > + else if (IS_STS (inst)) > { > where[PR_REGNUM] = depth; > /* If we're storing the pr then this isn't a leaf */ > get_frame_extra_info (fi)->leaf_function = 0; > depth += 4; > } > - else if (IS_MOV_R3 (insn)) > + else if (IS_MOV_R3 (inst)) > { > - r3_val = ((insn & 0xff) ^ 0x80) - 0x80; > + r3_val = ((inst & 0xff) ^ 0x80) - 0x80; > } > - else if (IS_SHLL_R3 (insn)) > + else if (IS_SHLL_R3 (inst)) > { > r3_val <<= 1; > } > - else if (IS_ADD_R3SP (insn)) > + else if (IS_ADD_R3SP (inst)) > { > depth += -r3_val; > } > - else if (IS_ADD_SP (insn)) > + else if (IS_ADD_IMM_SP (inst)) > { > - depth -= ((insn & 0xff) ^ 0x80) - 0x80; > + depth -= ((inst & 0xff) ^ 0x80) - 0x80; > } > - else if (IS_MOV_SP_FP (insn)) > + else if (IS_MOV_SP_FP (inst)) > break; > #if 0 /* This used to just stop when it found an instruction that > was not considered part of the prologue. Now, we just > @@ -655,7 +654,7 @@ fv_reg_base_num (int fv_regnum) > int fp_regnum; > > fp_regnum = FP0_REGNUM + > - (fv_regnum - gdbarch_tdep (current_gdbarch)->FV0_REGNUM) * 4; > + (fv_regnum - FV0_REGNUM) * 4; > return fp_regnum; > } > > @@ -666,7 +665,7 @@ dr_reg_base_num (int dr_regnum) > int fp_regnum; > > fp_regnum = FP0_REGNUM + > - (dr_regnum - gdbarch_tdep (current_gdbarch)->DR0_REGNUM) * 2; > + (dr_regnum - DR0_REGNUM) * 2; > return fp_regnum; > } > > @@ -679,10 +678,9 @@ sh_fp_frame_init_saved_regs (struct fram > int depth; > int pc; > int opc; > - int insn; > + int inst; > int r3_val = 0; > char *dummy_regs = deprecated_generic_find_dummy_frame (get_frame_pc (fi), get_frame_base (fi)); > - struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); > > if (get_frame_saved_regs (fi) == NULL) > frame_saved_regs_zalloc (fi); > @@ -706,7 +704,7 @@ sh_fp_frame_init_saved_regs (struct fram > > depth = 0; > > - /* Loop around examining the prologue insns until we find something > + /* Loop around examining the prologue inst until we find something > that does not appear to be part of the prologue. But give up > after 20 of them, since we're getting silly then. */ > > @@ -719,40 +717,40 @@ sh_fp_frame_init_saved_regs (struct fram > > for (opc = pc + (2 * 28); pc < opc; pc += 2) > { > - insn = read_memory_integer (pc, 2); > + inst = read_memory_integer (pc, 2); > /* See where the registers will be saved to */ > - if (IS_PUSH (insn)) > + if (IS_PUSH (inst)) > { > - rn = GET_PUSHED_REG (insn); > + rn = GET_PUSHED_REG (inst); > where[rn] = depth; > depth += 4; > } > - else if (IS_STS (insn)) > + else if (IS_STS (inst)) > { > where[PR_REGNUM] = depth; > /* If we're storing the pr then this isn't a leaf */ > get_frame_extra_info (fi)->leaf_function = 0; > depth += 4; > } > - else if (IS_MOV_R3 (insn)) > + else if (IS_MOV_R3 (inst)) > { > - r3_val = ((insn & 0xff) ^ 0x80) - 0x80; > + r3_val = ((inst & 0xff) ^ 0x80) - 0x80; > } > - else if (IS_SHLL_R3 (insn)) > + else if (IS_SHLL_R3 (inst)) > { > r3_val <<= 1; > } > - else if (IS_ADD_R3SP (insn)) > + else if (IS_ADD_R3SP (inst)) > { > depth += -r3_val; > } > - else if (IS_ADD_SP (insn)) > + else if (IS_ADD_IMM_SP (inst)) > { > - depth -= ((insn & 0xff) ^ 0x80) - 0x80; > + depth -= ((inst & 0xff) ^ 0x80) - 0x80; > } > - else if (IS_FMOV (insn)) > + else if (IS_FPUSH (inst)) > { > - if (read_register (tdep->FPSCR_REGNUM) & FPSCR_SZ) > + if (read_register (FPSCR_REGNUM) & FPSCR_SZ) > { > depth += 8; > } > @@ -761,7 +759,7 @@ sh_fp_frame_init_saved_regs (struct fram > depth += 4; > } > } > - else if (IS_MOV_SP_FP (insn)) > + else if (IS_MOV_SP_FP (inst)) > break; > #if 0 /* This used to just stop when it found an instruction that > was not considered part of the prologue. Now, we just > @@ -842,7 +840,6 @@ static CORE_ADDR > sh_extract_struct_value_address (struct regcache *regcache) > { > ULONGEST addr; > - /*FIXME: Is R0 really correct here? Not STRUCT_RETURN_REGNUM? */ > regcache_cooked_read_unsigned (regcache, STRUCT_RETURN_REGNUM, &addr); > return addr; > } > @@ -959,7 +956,6 @@ sh_push_dummy_call_fpu (struct gdbarch * > char valbuf[4]; > int len; > int odd_sized_struct; > - struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); > > /* first force sp to a 4-byte alignment */ > sp = sh_frame_align (gdbarch, sp); > @@ -1070,7 +1066,6 @@ sh_push_dummy_call_nofpu (struct gdbarch > char valbuf[4]; > int len; > int odd_sized_struct; > - struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); > > /* first force sp to a 4-byte alignment */ > sp = sh_frame_align (gdbarch, sp); > @@ -1240,8 +1235,6 @@ sh3e_sh4_store_return_value (struct type > static void > sh_generic_show_regs (void) > { > - struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); > - > printf_filtered ("PC=%s SR=%08lx PR=%08lx MACH=%08lx MACHL=%08lx\n", > paddr (read_register (PC_REGNUM)), > (long) read_register (SR_REGNUM), > @@ -1276,8 +1269,6 @@ sh_generic_show_regs (void) > static void > sh3_show_regs (void) > { > - struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); > - > printf_filtered ("PC=%s SR=%08lx PR=%08lx MACH=%08lx MACHL=%08lx\n", > paddr (read_register (PC_REGNUM)), > (long) read_register (SR_REGNUM), > @@ -1289,8 +1280,8 @@ sh3_show_regs (void) > (long) read_register (GBR_REGNUM), > (long) read_register (VBR_REGNUM)); > printf_filtered (" SSR=%08lx SPC=%08lx", > - (long) read_register (tdep->SSR_REGNUM), > - (long) read_register (tdep->SPC_REGNUM)); > + (long) read_register (SSR_REGNUM), > + (long) read_register (SPC_REGNUM)); > > printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", > (long) read_register (0), > @@ -1327,8 +1318,8 @@ sh2e_show_regs (void) > (long) read_register (GBR_REGNUM), > (long) read_register (VBR_REGNUM)); > printf_filtered (" FPUL=%08lx FPSCR=%08lx", > - (long) read_register (gdbarch_tdep (current_gdbarch)->FPUL_REGNUM), > - (long) read_register (gdbarch_tdep (current_gdbarch)->FPSCR_REGNUM)); > + (long) read_register (FPUL_REGNUM), > + (long) read_register (FPSCR_REGNUM)); > > printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", > (long) read_register (0), > @@ -1372,8 +1363,6 @@ sh2e_show_regs (void) > static void > sh3e_show_regs (void) > { > - struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); > - > printf_filtered ("PC=%s SR=%08lx PR=%08lx MACH=%08lx MACHL=%08lx\n", > paddr (read_register (PC_REGNUM)), > (long) read_register (SR_REGNUM), > @@ -1385,11 +1374,11 @@ sh3e_show_regs (void) > (long) read_register (GBR_REGNUM), > (long) read_register (VBR_REGNUM)); > printf_filtered (" SSR=%08lx SPC=%08lx", > - (long) read_register (tdep->SSR_REGNUM), > - (long) read_register (tdep->SPC_REGNUM)); > + (long) read_register (SSR_REGNUM), > + (long) read_register (SPC_REGNUM)); > printf_filtered (" FPUL=%08lx FPSCR=%08lx", > - (long) read_register (tdep->FPUL_REGNUM), > - (long) read_register (tdep->FPSCR_REGNUM)); > + (long) read_register (FPUL_REGNUM), > + (long) read_register (FPSCR_REGNUM)); > > printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", > (long) read_register (0), > @@ -1433,8 +1422,6 @@ sh3e_show_regs (void) > static void > sh3_dsp_show_regs (void) > { > - struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); > - > printf_filtered ("PC=%s SR=%08lx PR=%08lx MACH=%08lx MACHL=%08lx\n", > paddr (read_register (PC_REGNUM)), > (long) read_register (SR_REGNUM), > @@ -1447,11 +1434,11 @@ sh3_dsp_show_regs (void) > (long) read_register (VBR_REGNUM)); > > printf_filtered (" SSR=%08lx SPC=%08lx", > - (long) read_register (tdep->SSR_REGNUM), > - (long) read_register (tdep->SPC_REGNUM)); > + (long) read_register (SSR_REGNUM), > + (long) read_register (SPC_REGNUM)); > > printf_filtered (" DSR=%08lx", > - (long) read_register (tdep->DSR_REGNUM)); > + (long) read_register (DSR_REGNUM)); > > printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", > (long) read_register (0), > @@ -1473,28 +1460,26 @@ sh3_dsp_show_regs (void) > (long) read_register (15)); > > printf_filtered ("A0G=%02lx A0=%08lx M0=%08lx X0=%08lx Y0=%08lx RS=%08lx MOD=%08lx\n", > - (long) read_register (tdep->A0G_REGNUM) & 0xff, > - (long) read_register (tdep->A0_REGNUM), > - (long) read_register (tdep->M0_REGNUM), > - (long) read_register (tdep->X0_REGNUM), > - (long) read_register (tdep->Y0_REGNUM), > - (long) read_register (tdep->RS_REGNUM), > - (long) read_register (tdep->MOD_REGNUM)); > + (long) read_register (A0G_REGNUM) & 0xff, > + (long) read_register (A0_REGNUM), > + (long) read_register (M0_REGNUM), > + (long) read_register (X0_REGNUM), > + (long) read_register (Y0_REGNUM), > + (long) read_register (RS_REGNUM), > + (long) read_register (MOD_REGNUM)); > printf_filtered ("A1G=%02lx A1=%08lx M1=%08lx X1=%08lx Y1=%08lx RE=%08lx\n", > - (long) read_register (tdep->A1G_REGNUM) & 0xff, > - (long) read_register (tdep->A1_REGNUM), > - (long) read_register (tdep->M1_REGNUM), > - (long) read_register (tdep->X1_REGNUM), > - (long) read_register (tdep->Y1_REGNUM), > - (long) read_register (tdep->RE_REGNUM)); > + (long) read_register (A1G_REGNUM) & 0xff, > + (long) read_register (A1_REGNUM), > + (long) read_register (M1_REGNUM), > + (long) read_register (X1_REGNUM), > + (long) read_register (Y1_REGNUM), > + (long) read_register (RE_REGNUM)); > } > > static void > sh4_show_regs (void) > { > - struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); > - > - int pr = read_register (tdep->FPSCR_REGNUM) & 0x80000; > + int pr = read_register (FPSCR_REGNUM) & 0x80000; > printf_filtered ("PC=%s SR=%08lx PR=%08lx MACH=%08lx MACHL=%08lx\n", > paddr (read_register (PC_REGNUM)), > (long) read_register (SR_REGNUM), > @@ -1506,11 +1491,11 @@ sh4_show_regs (void) > (long) read_register (GBR_REGNUM), > (long) read_register (VBR_REGNUM)); > printf_filtered (" SSR=%08lx SPC=%08lx", > - (long) read_register (tdep->SSR_REGNUM), > - (long) read_register (tdep->SPC_REGNUM)); > + (long) read_register (SSR_REGNUM), > + (long) read_register (SPC_REGNUM)); > printf_filtered (" FPUL=%08lx FPSCR=%08lx", > - (long) read_register (tdep->FPUL_REGNUM), > - (long) read_register (tdep->FPSCR_REGNUM)); > + (long) read_register (FPUL_REGNUM), > + (long) read_register (FPSCR_REGNUM)); > > printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", > (long) read_register (0), > @@ -1558,8 +1543,6 @@ sh4_show_regs (void) > static void > sh_dsp_show_regs (void) > { > - struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); > - > printf_filtered ("PC=%s SR=%08lx PR=%08lx MACH=%08lx MACHL=%08lx\n", > paddr (read_register (PC_REGNUM)), > (long) read_register (SR_REGNUM), > @@ -1572,7 +1555,7 @@ sh_dsp_show_regs (void) > (long) read_register (VBR_REGNUM)); > > printf_filtered (" DSR=%08lx", > - (long) read_register (tdep->DSR_REGNUM)); > + (long) read_register (DSR_REGNUM)); > > printf_filtered ("\nR0-R7 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", > (long) read_register (0), > @@ -1594,20 +1577,20 @@ sh_dsp_show_regs (void) > (long) read_register (15)); > > printf_filtered ("A0G=%02lx A0=%08lx M0=%08lx X0=%08lx Y0=%08lx RS=%08lx MOD=%08lx\n", > - (long) read_register (tdep->A0G_REGNUM) & 0xff, > - (long) read_register (tdep->A0_REGNUM), > - (long) read_register (tdep->M0_REGNUM), > - (long) read_register (tdep->X0_REGNUM), > - (long) read_register (tdep->Y0_REGNUM), > - (long) read_register (tdep->RS_REGNUM), > - (long) read_register (tdep->MOD_REGNUM)); > + (long) read_register (A0G_REGNUM) & 0xff, > + (long) read_register (A0_REGNUM), > + (long) read_register (M0_REGNUM), > + (long) read_register (X0_REGNUM), > + (long) read_register (Y0_REGNUM), > + (long) read_register (RS_REGNUM), > + (long) read_register (MOD_REGNUM)); > printf_filtered ("A1G=%02lx A1=%08lx M1=%08lx X1=%08lx Y1=%08lx RE=%08lx\n", > - (long) read_register (tdep->A1G_REGNUM) & 0xff, > - (long) read_register (tdep->A1_REGNUM), > - (long) read_register (tdep->M1_REGNUM), > - (long) read_register (tdep->X1_REGNUM), > - (long) read_register (tdep->Y1_REGNUM), > - (long) read_register (tdep->RE_REGNUM)); > + (long) read_register (A1G_REGNUM) & 0xff, > + (long) read_register (A1_REGNUM), > + (long) read_register (M1_REGNUM), > + (long) read_register (X1_REGNUM), > + (long) read_register (Y1_REGNUM), > + (long) read_register (RE_REGNUM)); > } > > static void > @@ -1622,11 +1605,9 @@ sh_show_regs_command (char *args, int fr > static struct type * > sh_sh3e_register_type (struct gdbarch *gdbarch, int reg_nr) > { > - struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); > - > if ((reg_nr >= FP0_REGNUM > - && (reg_nr <= tdep->FP_LAST_REGNUM)) > - || (reg_nr == tdep->FPUL_REGNUM)) > + && (reg_nr <= FP_LAST_REGNUM)) > + || (reg_nr == FPUL_REGNUM)) > return builtin_type_float; > else > return builtin_type_int; > @@ -1644,17 +1625,15 @@ sh_sh4_build_float_register_type (int hi > static struct type * > sh_sh4_register_type (struct gdbarch *gdbarch, int reg_nr) > { > - struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); > - > if ((reg_nr >= FP0_REGNUM > - && (reg_nr <= tdep->FP_LAST_REGNUM)) > - || (reg_nr == tdep->FPUL_REGNUM)) > + && (reg_nr <= FP_LAST_REGNUM)) > + || (reg_nr == FPUL_REGNUM)) > return builtin_type_float; > - else if (reg_nr >= tdep->DR0_REGNUM > - && reg_nr <= tdep->DR_LAST_REGNUM) > + else if (reg_nr >= DR0_REGNUM > + && reg_nr <= DR_LAST_REGNUM) > return builtin_type_double; > - else if (reg_nr >= tdep->FV0_REGNUM > - && reg_nr <= tdep->FV_LAST_REGNUM) > + else if (reg_nr >= FV0_REGNUM > + && reg_nr <= FV_LAST_REGNUM) > return sh_sh4_build_float_register_type (3); > else > return builtin_type_int; > @@ -1696,10 +1675,8 @@ static void > sh_sh4_register_convert_to_virtual (int regnum, struct type *type, > char *from, char *to) > { > - struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); > - > - if (regnum >= tdep->DR0_REGNUM > - && regnum <= tdep->DR_LAST_REGNUM) > + if (regnum >= DR0_REGNUM > + && regnum <= DR_LAST_REGNUM) > { > DOUBLEST val; > floatformat_to_doublest (&floatformat_ieee_double_littlebyte_bigword, from, &val); > @@ -1713,10 +1690,8 @@ static void > sh_sh4_register_convert_to_raw (struct type *type, int regnum, > const void *from, void *to) > { > - struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); > - > - if (regnum >= tdep->DR0_REGNUM > - && regnum <= tdep->DR_LAST_REGNUM) > + if (regnum >= DR0_REGNUM > + && regnum <= DR_LAST_REGNUM) > { > DOUBLEST val = extract_typed_floating (from, type); > floatformat_from_doublest (&floatformat_ieee_double_littlebyte_bigword, &val, to); > @@ -1731,10 +1706,9 @@ sh_pseudo_register_read (struct gdbarch > { > int base_regnum, portion; > char temp_buffer[MAX_REGISTER_SIZE]; > - struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); > > - if (reg_nr >= tdep->DR0_REGNUM > - && reg_nr <= tdep->DR_LAST_REGNUM) > + if (reg_nr >= DR0_REGNUM > + && reg_nr <= DR_LAST_REGNUM) > { > base_regnum = dr_reg_base_num (reg_nr); > > @@ -1749,8 +1723,8 @@ sh_pseudo_register_read (struct gdbarch > gdbarch_register_type (gdbarch, reg_nr), > temp_buffer, buffer); > } > - else if (reg_nr >= tdep->FV0_REGNUM > - && reg_nr <= tdep->FV_LAST_REGNUM) > + else if (reg_nr >= FV0_REGNUM > + && reg_nr <= FV_LAST_REGNUM) > { > base_regnum = fv_reg_base_num (reg_nr); > > @@ -1768,10 +1742,9 @@ sh_pseudo_register_write (struct gdbarch > { > int base_regnum, portion; > char temp_buffer[MAX_REGISTER_SIZE]; > - struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); > > - if (reg_nr >= tdep->DR0_REGNUM > - && reg_nr <= tdep->DR_LAST_REGNUM) > + if (reg_nr >= DR0_REGNUM > + && reg_nr <= DR_LAST_REGNUM) > { > base_regnum = dr_reg_base_num (reg_nr); > > @@ -1785,8 +1758,8 @@ sh_pseudo_register_write (struct gdbarch > (temp_buffer > + register_size (gdbarch, base_regnum) * portion)); > } > - else if (reg_nr >= tdep->FV0_REGNUM > - && reg_nr <= tdep->FV_LAST_REGNUM) > + else if (reg_nr >= FV0_REGNUM > + && reg_nr <= FV_LAST_REGNUM) > { > base_regnum = fv_reg_base_num (reg_nr); > > @@ -1805,7 +1778,7 @@ do_fv_register_info (struct gdbarch *gdb > { > int first_fp_reg_num = fv_reg_base_num (fv_regnum); > fprintf_filtered (file, "fv%d\t0x%08x\t0x%08x\t0x%08x\t0x%08x\n", > - fv_regnum - gdbarch_tdep (gdbarch)->FV0_REGNUM, > + fv_regnum - FV0_REGNUM, > (int) read_register (first_fp_reg_num), > (int) read_register (first_fp_reg_num + 1), > (int) read_register (first_fp_reg_num + 2), > @@ -1820,7 +1793,7 @@ do_dr_register_info (struct gdbarch *gdb > int first_fp_reg_num = dr_reg_base_num (dr_regnum); > > fprintf_filtered (file, "dr%d\t0x%08x%08x\n", > - dr_regnum - gdbarch_tdep (gdbarch)->DR0_REGNUM, > + dr_regnum - DR0_REGNUM, > (int) read_register (first_fp_reg_num), > (int) read_register (first_fp_reg_num + 1)); > } > @@ -1829,16 +1802,14 @@ static void > sh_print_pseudo_register (struct gdbarch *gdbarch, struct ui_file *file, > int regnum) > { > - struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); > - > if (regnum < NUM_REGS || regnum >= NUM_REGS + NUM_PSEUDO_REGS) > internal_error (__FILE__, __LINE__, > "Invalid pseudo register number %d\n", regnum); > - else if (regnum >= tdep->DR0_REGNUM > - && regnum <= tdep->DR_LAST_REGNUM) > + else if (regnum >= DR0_REGNUM > + && regnum <= DR_LAST_REGNUM) > do_dr_register_info (gdbarch, file, regnum); > - else if (regnum >= tdep->FV0_REGNUM > - && regnum <= tdep->FV_LAST_REGNUM) > + else if (regnum >= FV0_REGNUM > + && regnum <= FV_LAST_REGNUM) > do_fv_register_info (gdbarch, file, regnum); > } > > @@ -1958,7 +1929,7 @@ sh_print_registers_info (struct gdbarch > regnum ++; > } > else > - regnum += (gdbarch_tdep (gdbarch)->FP_LAST_REGNUM - FP0_REGNUM); /* skip FP regs */ > + regnum += (FP_LAST_REGNUM - FP0_REGNUM); /* skip FP regs */ > } > else > { > @@ -2020,45 +1991,21 @@ sh_linux_svr4_fetch_link_map_offsets (vo > } > #endif /* SVR4_SHARED_LIBS */ > > - > -enum > -{ > - DSP_DSR_REGNUM = 24, > - DSP_A0G_REGNUM, > - DSP_A0_REGNUM, > - DSP_A1G_REGNUM, > - DSP_A1_REGNUM, > - DSP_M0_REGNUM, > - DSP_M1_REGNUM, > - DSP_X0_REGNUM, > - DSP_X1_REGNUM, > - DSP_Y0_REGNUM, > - DSP_Y1_REGNUM, > - > - DSP_MOD_REGNUM = 40, > - > - DSP_RS_REGNUM = 43, > - DSP_RE_REGNUM, > - > - DSP_R0_BANK_REGNUM = 51, > - DSP_R7_BANK_REGNUM = DSP_R0_BANK_REGNUM + 7 > -}; > - > static int > sh_dsp_register_sim_regno (int nr) > { > if (legacy_register_sim_regno (nr) < 0) > return legacy_register_sim_regno (nr); > - if (nr >= DSP_DSR_REGNUM && nr <= DSP_Y1_REGNUM) > - return nr - DSP_DSR_REGNUM + SIM_SH_DSR_REGNUM; > - if (nr == DSP_MOD_REGNUM) > + if (nr >= DSR_REGNUM && nr <= Y1_REGNUM) > + return nr - DSR_REGNUM + SIM_SH_DSR_REGNUM; > + if (nr == MOD_REGNUM) > return SIM_SH_MOD_REGNUM; > - if (nr == DSP_RS_REGNUM) > + if (nr == RS_REGNUM) > return SIM_SH_RS_REGNUM; > - if (nr == DSP_RE_REGNUM) > + if (nr == RE_REGNUM) > return SIM_SH_RE_REGNUM; > - if (nr >= DSP_R0_BANK_REGNUM && nr <= DSP_R7_BANK_REGNUM) > - return nr - DSP_R0_BANK_REGNUM + SIM_SH_R0_BANK_REGNUM; > + if (nr >= R0_BANK_REGNUM && nr <= R7_BANK_REGNUM) > + return nr - R0_BANK_REGNUM + SIM_SH_R0_BANK_REGNUM; > return nr; > } > > @@ -2068,7 +2015,6 @@ static struct gdbarch * > sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) > { > struct gdbarch *gdbarch; > - struct gdbarch_tdep *tdep; > > sh_show_regs = sh_generic_show_regs; > switch (info.bfd_arch_info->mach) > @@ -2109,40 +2055,12 @@ sh_gdbarch_init (struct gdbarch_info inf > > /* None found, create a new architecture from the information > provided. */ > - tdep = XMALLOC (struct gdbarch_tdep); > - gdbarch = gdbarch_alloc (&info, tdep); > + gdbarch = gdbarch_alloc (&info, NULL); > > /* NOTE: cagney/2002-12-06: This can be deleted when this arch is > ready to unwind the PC first (see frame.c:get_prev_frame()). */ > set_gdbarch_deprecated_init_frame_pc (gdbarch, init_frame_pc_default); > > - /* Initialize the register numbers that are not common to all the > - variants to -1, if necessary thse will be overwritten in the case > - statement below. */ > - tdep->FPUL_REGNUM = -1; > - tdep->FPSCR_REGNUM = -1; > - tdep->DSR_REGNUM = -1; > - tdep->FP_LAST_REGNUM = -1; > - tdep->A0G_REGNUM = -1; > - tdep->A0_REGNUM = -1; > - tdep->A1G_REGNUM = -1; > - tdep->A1_REGNUM = -1; > - tdep->M0_REGNUM = -1; > - tdep->M1_REGNUM = -1; > - tdep->X0_REGNUM = -1; > - tdep->X1_REGNUM = -1; > - tdep->Y0_REGNUM = -1; > - tdep->Y1_REGNUM = -1; > - tdep->MOD_REGNUM = -1; > - tdep->RS_REGNUM = -1; > - tdep->RE_REGNUM = -1; > - tdep->SSR_REGNUM = -1; > - tdep->SPC_REGNUM = -1; > - tdep->DR0_REGNUM = -1; > - tdep->DR_LAST_REGNUM = -1; > - tdep->FV0_REGNUM = -1; > - tdep->FV_LAST_REGNUM = -1; > - > set_gdbarch_short_bit (gdbarch, 2 * TARGET_CHAR_BIT); > set_gdbarch_int_bit (gdbarch, 4 * TARGET_CHAR_BIT); > set_gdbarch_long_bit (gdbarch, 4 * TARGET_CHAR_BIT); > @@ -2152,7 +2070,7 @@ sh_gdbarch_init (struct gdbarch_info inf > set_gdbarch_long_double_bit (gdbarch, 8 * TARGET_CHAR_BIT); > set_gdbarch_ptr_bit (gdbarch, 4 * TARGET_CHAR_BIT); > > - set_gdbarch_num_regs (gdbarch, SH_DEFAULT_NUM_REGS); > + set_gdbarch_num_regs (gdbarch, SH_NUM_REGS); > set_gdbarch_sp_regnum (gdbarch, 15); > set_gdbarch_deprecated_fp_regnum (gdbarch, 14); > set_gdbarch_pc_regnum (gdbarch, 16); > @@ -2223,9 +2141,6 @@ sh_gdbarch_init (struct gdbarch_info inf > set_gdbarch_extract_return_value (gdbarch, sh3e_sh4_extract_return_value); > set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_fpu); > set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address); > - tdep->FPUL_REGNUM = 23; > - tdep->FPSCR_REGNUM = 24; > - tdep->FP_LAST_REGNUM = 40; > > set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs); > break; > @@ -2239,20 +2154,6 @@ sh_gdbarch_init (struct gdbarch_info inf > set_gdbarch_extract_return_value (gdbarch, sh_default_extract_return_value); > set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_nofpu); > set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address); > - tdep->DSR_REGNUM = 24; > - tdep->A0G_REGNUM = 25; > - tdep->A0_REGNUM = 26; > - tdep->A1G_REGNUM = 27; > - tdep->A1_REGNUM = 28; > - tdep->M0_REGNUM = 29; > - tdep->M1_REGNUM = 30; > - tdep->X0_REGNUM = 31; > - tdep->X1_REGNUM = 32; > - tdep->Y0_REGNUM = 33; > - tdep->Y1_REGNUM = 34; > - tdep->MOD_REGNUM = 40; > - tdep->RS_REGNUM = 43; > - tdep->RE_REGNUM = 44; > > set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs); > break; > @@ -2265,8 +2166,6 @@ sh_gdbarch_init (struct gdbarch_info inf > set_gdbarch_extract_return_value (gdbarch, sh_default_extract_return_value); > set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_nofpu); > set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address); > - tdep->SSR_REGNUM = 41; > - tdep->SPC_REGNUM = 42; > > set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs); > break; > @@ -2283,11 +2182,6 @@ sh_gdbarch_init (struct gdbarch_info inf > set_gdbarch_extract_return_value (gdbarch, sh3e_sh4_extract_return_value); > set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_fpu); > set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address); > - tdep->FPUL_REGNUM = 23; > - tdep->FPSCR_REGNUM = 24; > - tdep->FP_LAST_REGNUM = 40; > - tdep->SSR_REGNUM = 41; > - tdep->SPC_REGNUM = 42; > > set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_fp_frame_init_saved_regs); > break; > @@ -2301,22 +2195,6 @@ sh_gdbarch_init (struct gdbarch_info inf > set_gdbarch_extract_return_value (gdbarch, sh_default_extract_return_value); > set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_nofpu); > set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address); > - tdep->DSR_REGNUM = 24; > - tdep->A0G_REGNUM = 25; > - tdep->A0_REGNUM = 26; > - tdep->A1G_REGNUM = 27; > - tdep->A1_REGNUM = 28; > - tdep->M0_REGNUM = 29; > - tdep->M1_REGNUM = 30; > - tdep->X0_REGNUM = 31; > - tdep->X1_REGNUM = 32; > - tdep->Y0_REGNUM = 33; > - tdep->Y1_REGNUM = 34; > - tdep->MOD_REGNUM = 40; > - tdep->RS_REGNUM = 43; > - tdep->RE_REGNUM = 44; > - tdep->SSR_REGNUM = 41; > - tdep->SPC_REGNUM = 42; > > set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs); > break; > @@ -2333,15 +2211,6 @@ sh_gdbarch_init (struct gdbarch_info inf > set_gdbarch_extract_return_value (gdbarch, sh3e_sh4_extract_return_value); > set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_fpu); > set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address); > - tdep->FPUL_REGNUM = 23; > - tdep->FPSCR_REGNUM = 24; > - tdep->FP_LAST_REGNUM = 40; > - tdep->SSR_REGNUM = 41; > - tdep->SPC_REGNUM = 42; > - tdep->DR0_REGNUM = 59; > - tdep->DR_LAST_REGNUM = 66; > - tdep->FV0_REGNUM = 67; > - tdep->FV_LAST_REGNUM = 70; > > set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_fp_frame_init_saved_regs); > break; > @@ -2363,17 +2232,6 @@ sh_gdbarch_init (struct gdbarch_info inf > return gdbarch; > } > > -static void > -sh_dump_tdep (struct gdbarch *current_gdbarch, struct ui_file *file) > -{ > - struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); > - > - if (tdep == NULL) > - return; > - > - /* FIXME: dump the rest of gdbarch_tdep. */ > -} > - > extern initialize_file_ftype _initialize_sh_tdep; /* -Wmissing-prototypes */ > > void > @@ -2381,7 +2239,7 @@ _initialize_sh_tdep (void) > { > struct cmd_list_element *c; > > - gdbarch_register (bfd_arch_sh, sh_gdbarch_init, sh_dump_tdep); > + gdbarch_register (bfd_arch_sh, sh_gdbarch_init, NULL); > > add_com ("regs", class_vars, sh_show_regs_command, "Print all registers"); > } > Index: sh-tdep.h > =================================================================== > RCS file: /cvs/src/src/gdb/sh-tdep.h,v > retrieving revision 1.5 > diff -u -p -r1.5 sh-tdep.h > --- sh-tdep.h 8 Sep 2003 11:26:20 -0000 1.5 > +++ sh-tdep.h 15 Sep 2003 15:45:25 -0000 > @@ -24,52 +24,51 @@ > > /* Contributed by Steve Chamberlain sac@cygnus.com */ > > -struct gdbarch_tdep > - { > - int FPUL_REGNUM; /* sh3e, sh4 */ > - int FPSCR_REGNUM; /* sh3e, sh4 */ > - int DSR_REGNUM; /* sh-dsp, sh3-dsp */ > - int FP_LAST_REGNUM; /* sh3e, sh4 */ > - int A0G_REGNUM; /* sh-dsp, sh3-dsp */ > - int A0_REGNUM; /* sh-dsp, sh3-dsp */ > - int A1G_REGNUM; /* sh-dsp, sh3-dsp */ > - int A1_REGNUM; /* sh-dsp, sh3-dsp */ > - int M0_REGNUM; /* sh-dsp, sh3-dsp */ > - int M1_REGNUM; /* sh-dsp, sh3-dsp */ > - int X0_REGNUM; /* sh-dsp, sh3-dsp */ > - int X1_REGNUM; /* sh-dsp, sh3-dsp */ > - int Y0_REGNUM; /* sh-dsp, sh3-dsp */ > - int Y1_REGNUM; /* sh-dsp, sh3-dsp */ > - int MOD_REGNUM; /* sh-dsp, sh3-dsp */ > - int SSR_REGNUM; /* sh3, sh3-dsp, sh3e, sh4 */ > - int SPC_REGNUM; /* sh3, sh3-dsp, sh3e, sh4 */ > - int RS_REGNUM; /* sh-dsp, sh3-dsp */ > - int RE_REGNUM; /* sh-dsp, sh3-dsp */ > - int DR0_REGNUM; /* sh4 */ > - int DR_LAST_REGNUM; /* sh4 */ > - int FV0_REGNUM; /* sh4 */ > - int FV_LAST_REGNUM; /* sh4 */ > - /* FPP stands for Floating Point Pair, to avoid confusion with > - GDB's FP0_REGNUM, which is the number of the first Floating > - point register. Unfortunately on the sh5, the floating point > - registers are called FR, and the floating point pairs are called FP. */ > - }; > - > -/* Registers common to all the SH variants. */ > +/* Registers for all SH variants. Used also by sh3-rom.c. */ > enum > { > R0_REGNUM = 0, > STRUCT_RETURN_REGNUM = 2, > ARG0_REGNUM = 4, > ARGLAST_REGNUM = 7, > + FP_REGNUM = 14, > PR_REGNUM = 17, > GBR_REGNUM = 18, > VBR_REGNUM = 19, > MACH_REGNUM = 20, > MACL_REGNUM = 21, > SR_REGNUM = 22, > + FPUL_REGNUM = 23, > + /* Floating point registers */ > + FPSCR_REGNUM = 24, > FLOAT_ARG0_REGNUM = 29, > - FLOAT_ARGLAST_REGNUM = 36 > + FLOAT_ARGLAST_REGNUM = 36, > + FP_LAST_REGNUM = 40, > + /* sh3,sh4 registers */ > + SSR_REGNUM = 41, > + SPC_REGNUM = 42, > + /* DSP registers */ > + DSR_REGNUM = 24, > + A0G_REGNUM = 25, > + A0_REGNUM = 26, > + A1G_REGNUM = 27, > + A1_REGNUM = 28, > + M0_REGNUM = 29, > + M1_REGNUM = 30, > + X0_REGNUM = 31, > + X1_REGNUM = 32, > + Y0_REGNUM = 33, > + Y1_REGNUM = 34, > + MOD_REGNUM = 40, > + RS_REGNUM = 43, > + RE_REGNUM = 44, > + R0_BANK_REGNUM = 51, > + R7_BANK_REGNUM = 58, > + /* Floating point pseudo registers */ > + DR0_REGNUM = 59, > + DR_LAST_REGNUM = 66, > + FV0_REGNUM = 67, > + FV_LAST_REGNUM = 70 > }; > > extern gdbarch_init_ftype sh64_gdbarch_init; > Index: sh3-rom.c > =================================================================== > RCS file: /cvs/src/src/gdb/sh3-rom.c,v > retrieving revision 1.15 > diff -u -p -r1.15 sh3-rom.c > --- sh3-rom.c 21 Aug 2003 20:43:10 -0000 1.15 > +++ sh3-rom.c 15 Sep 2003 15:45:25 -0000 > @@ -77,9 +77,9 @@ sh3_supply_register (char *regname, int > break; > case 'S': > if (regname[1] == 'S' && regname[2] == 'R') > - regno = gdbarch_tdep (current_gdbarch)->SSR_REGNUM; > + regno = SSR_REGNUM; > else if (regname[1] == 'P' && regname[2] == 'C') > - regno = gdbarch_tdep (current_gdbarch)->SPC_REGNUM; > + regno = SPC_REGNUM; > break; > } > } > > -- > Corinna Vinschen > Cygwin Developer > Red Hat, Inc.