From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17195 invoked by alias); 1 Feb 2013 20:55:32 -0000 Received: (qmail 17187 invoked by uid 22791); 1 Feb 2013 20:55:31 -0000 X-SWARE-Spam-Status: No, hits=-2.9 required=5.0 tests=AWL,BAYES_00,KHOP_SPAMHAUS_DROP,KHOP_THREADED,RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail.fgznet.ch (HELO smtp.fgznet.ch) (81.92.96.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 01 Feb 2013 20:55:24 +0000 Received: from deuterium.andreas.nets (dhclient-91-190-14-19.flashcable.ch [91.190.14.19]) by smtp.fgznet.ch (8.13.8/8.13.8/Submit_SMTPAUTH) with ESMTP id r11KtGFh095799; Fri, 1 Feb 2013 21:55:16 +0100 (CET) (envelope-from andreast-list@fgznet.ch) Message-ID: <510C2BB3.3070501@fgznet.ch> Date: Fri, 01 Feb 2013 20:55:00 -0000 From: Andreas Tobler User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:17.0) Gecko/20130107 Thunderbird/17.0.2 MIME-Version: 1.0 To: Pedro Alves CC: gdb-patches@sourceware.org Subject: Re: [RFC] patch to refactor ppc64 specific code from ppc-linux-tdep References: <50DCBF4B.7000009@fgznet.ch> <50FD6398.3000807@redhat.com> <51040329.3090102@fgznet.ch> <510C109C.6070205@redhat.com> In-Reply-To: <510C109C.6070205@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2013-02/txt/msg00030.txt.bz2 Hi Pedro, On 01.02.13 19:59, Pedro Alves wrote: > On 01/26/2013 04:24 PM, Andreas Tobler wrote: >>>> Also, GDB's convention is that the function name goes on the first >>>> column in function definitions only, not declarations, and that >>>> declarations in .h files get an explicit "extern". >> Done, not sure if I need the extern on ppc64-tdep.h too? > > Yes. > >> 2013-01-26 Andreas Tobler >> >> * Makefile.in (ALL_TARGET_OBS): Add new file ppc64-tdep.o. >> (HFILES_NO_SRCDIR): Likewise. >> (ALLDEPFILES): Likewise. > > * Makefile.in (ALL_TARGET_OBS): Add ppc64-tdep.o. > (HFILES_NO_SRCDIR): Add ppc64-tdep.h. > (ALLDEPFILES): Add ppc64-tdep.c. > > >> * configure.tgt: Add new file for powerpc-linux. > > * configure.tgt (powerpc-*-linux* | powerpc64-*-linux*): Add ppc64-tdep.o > to gdb_target_obs. > >> * ppc64-tdep.h: New file. >> * ppc64-tdep.c: New file. >> (insn_d, insn_ds, insn_xfx, ppc64_desc_entry_point): Move from >> ppc-linux-tdep.c to here. >> (PPC64_STANDARD_LINKAGE1_LEN, PPC64_STANDARD_LINKAGE2_LEN) >> (PPC64_STANDARD_LINKAGE2_LEN): Likewise and use ARRAY_SIZE macro. >> (ppc64_standard_linkage1_target, ppc64_standard_linkage2_target) >> (ppc64_standard_linkage3_target, ppc64_skip_trampoline_code): Move >> from ppc-linux-tdep.c to here. >> (ppc64_convert_from_func_ptr_addr): Rename it from >> ppc64_linux_convert_from_func_ptr_addr to >> ppc64_convert_from_func_ptr_addr and move it from ppc-linux-tdep.c to >> here. > > Drop the "it"s. > >> * rs6000-tdep.c: >> (read_insn): Move from ppc-linux-tdep.c to here. >> (insns_match_pattern, insn_d_field, insn_ds_field): Move >> from ppc-linux-tdep.c to here and rename them with the ppc_ prefix. >> * ppc-linux-tdep.c: Include ppc64-tdep.h. >> Removed above functions. > > >> (ppc_linux_init_abi): Rename >> ppc64_linux_convert_from_func_ptr_addr to >> ppc64_convert_from_func_ptr_addr. > > (ppc_linux_init_abi): Adjust. > > >> diff --git a/gdb/ppc-tdep.h b/gdb/ppc-tdep.h >> index 9be9666..b268e90 100644 >> --- a/gdb/ppc-tdep.h >> +++ b/gdb/ppc-tdep.h >> @@ -291,6 +291,23 @@ enum { >> PPC_NUM_REGS >> }; >> >> +/* An instruction to match. */ >> + >> +struct ppc_insn_pattern >> +{ >> + unsigned int mask; /* mask the insn with this... */ >> + unsigned int data; /* ...and see if it matches this. */ >> + int optional; /* If non-zero, this insn may be absent. */ >> +}; >> + >> +extern int >> +ppc_insns_match_pattern (CORE_ADDR pc, struct ppc_insn_pattern *pattern, >> + unsigned int *insn); >> +extern CORE_ADDR >> +ppc_insn_d_field (unsigned int insn); >> + >> +extern CORE_ADDR >> +ppc_insn_ds_field (unsigned int insn); > > Here, GDB's convention is that the function name goes on the first > column in function definitions only, not declarations. So: > > extern int ppc_insns_match_pattern (CORE_ADDR pc, > struct ppc_insn_pattern *pattern, > unsigned int *insn); > > extern CORE_ADDR ppc_insn_d_field (unsigned int insn); > > extern CORE_ADDR ppc_insn_ds_field (unsigned int insn); > > > This is so 'grep ^functionname" finds function definitions. > >> >> /* Instruction size. */ >> #define PPC_INSN_SIZE 4 >> diff --git a/gdb/ppc64-tdep.c b/gdb/ppc64-tdep.c >> new file mode 100644 >> index 0000000..cdf8f4d >> --- /dev/null >> +++ b/gdb/ppc64-tdep.c >> @@ -0,0 +1,364 @@ >> +/* Common target-dependent code for ppc64 GDB, the GNU debugger. >> + >> + Copyright (C) 2013 Free Software >> + Foundation, Inc. > > This is existing code, not new code. Please retain the copyright > the copyright years of the file(s) the code has been copied from. > > This is okay with these issues fixed. > > Thanks again for doing this. Commit done, thank you for the patience! Andreas