From patchwork Wed Jul 1 13:58:21 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yao Qi X-Patchwork-Id: 7445 Received: (qmail 88363 invoked by alias); 1 Jul 2015 13:58:44 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 88317 invoked by uid 89); 1 Jul 2015 13:58:44 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-pd0-f175.google.com Received: from mail-pd0-f175.google.com (HELO mail-pd0-f175.google.com) (209.85.192.175) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Wed, 01 Jul 2015 13:58:39 +0000 Received: by pdcu2 with SMTP id u2so26781554pdc.3 for ; Wed, 01 Jul 2015 06:58:37 -0700 (PDT) X-Received: by 10.70.42.101 with SMTP id n5mr55934032pdl.93.1435759117347; Wed, 01 Jul 2015 06:58:37 -0700 (PDT) Received: from E107787-LIN.cambridge.arm.com (gcc1-power7.osuosl.org. [140.211.15.137]) by mx.google.com with ESMTPSA id sc7sm2417503pbb.85.2015.07.01.06.58.35 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 01 Jul 2015 06:58:36 -0700 (PDT) From: Yao Qi X-Google-Original-From: Yao Qi To: gdb-patches@sourceware.org Subject: [PATCH 01/11] Remove {fetch, store}_fpregister and {fetch, store}_register Date: Wed, 1 Jul 2015 14:58:21 +0100 Message-Id: <1435759111-22856-2-git-send-email-yao.qi@linaro.org> In-Reply-To: <1435759111-22856-1-git-send-email-yao.qi@linaro.org> References: <1435759111-22856-1-git-send-email-yao.qi@linaro.org> X-IsSubscribed: yes This patch is to remove fetch_fpregister, fech_register, store_fpregister and store_register, and use fetch_fpregs, fetch_regs, store_regs, and store_fpregs instead. gdb: 2015-06-23 Yao Qi * arm-linux-nat.c (store_fpregister): Remove. (store_register): Likewise. (fetch_fpregister): Likewise. (fetch_register): Likewise. (arm_linux_store_inferior_registers): Call store_regs and store_fpregs instead. (arm_linux_fetch_inferior_registers): Call fetch_fpregs and fetch_regs instead. --- gdb/arm-linux-nat.c | 223 +--------------------------------------------------- 1 file changed, 4 insertions(+), 219 deletions(-) diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c index c167bce..5a8880f 100644 --- a/gdb/arm-linux-nat.c +++ b/gdb/arm-linux-nat.c @@ -82,47 +82,6 @@ get_thread_id (ptid_t ptid) #define GET_THREAD_ID(PTID) get_thread_id (PTID) -/* Get the value of a particular register from the floating point - state of the process and store it into regcache. */ - -static void -fetch_fpregister (struct regcache *regcache, int regno) -{ - int ret, tid; - gdb_byte fp[ARM_LINUX_SIZEOF_NWFPE]; - - /* Get the thread id for the ptrace call. */ - tid = GET_THREAD_ID (inferior_ptid); - - /* Read the floating point state. */ - if (have_ptrace_getregset == TRIBOOL_TRUE) - { - struct iovec iov; - - iov.iov_base = &fp; - iov.iov_len = ARM_LINUX_SIZEOF_NWFPE; - - ret = ptrace (PTRACE_GETREGSET, tid, NT_FPREGSET, &iov); - } - else - ret = ptrace (PT_GETFPREGS, tid, 0, fp); - - if (ret < 0) - { - warning (_("Unable to fetch floating point register.")); - return; - } - - /* Fetch fpsr. */ - if (ARM_FPS_REGNUM == regno) - regcache_raw_supply (regcache, ARM_FPS_REGNUM, - fp + NWFPE_FPSR_OFFSET); - - /* Fetch the floating point register. */ - if (regno >= ARM_F0_REGNUM && regno <= ARM_F7_REGNUM) - supply_nwfpe_register (regcache, regno, fp); -} - /* Get the whole floating point state of the process and store it into regcache. */ @@ -163,65 +122,6 @@ fetch_fpregs (struct regcache *regcache) supply_nwfpe_register (regcache, regno, fp); } -/* Save a particular register into the floating point state of the - process using the contents from regcache. */ - -static void -store_fpregister (const struct regcache *regcache, int regno) -{ - int ret, tid; - gdb_byte fp[ARM_LINUX_SIZEOF_NWFPE]; - - /* Get the thread id for the ptrace call. */ - tid = GET_THREAD_ID (inferior_ptid); - - /* Read the floating point state. */ - if (have_ptrace_getregset == TRIBOOL_TRUE) - { - struct iovec iov; - - iov.iov_base = &fp; - iov.iov_len = ARM_LINUX_SIZEOF_NWFPE; - - ret = ptrace (PTRACE_GETREGSET, tid, NT_FPREGSET, &iov); - } - else - ret = ptrace (PT_GETFPREGS, tid, 0, fp); - - if (ret < 0) - { - warning (_("Unable to fetch the floating point registers.")); - return; - } - - /* Store fpsr. */ - if (ARM_FPS_REGNUM == regno - && REG_VALID == regcache_register_status (regcache, ARM_FPS_REGNUM)) - regcache_raw_collect (regcache, ARM_FPS_REGNUM, fp + NWFPE_FPSR_OFFSET); - - /* Store the floating point register. */ - if (regno >= ARM_F0_REGNUM && regno <= ARM_F7_REGNUM) - collect_nwfpe_register (regcache, regno, fp); - - if (have_ptrace_getregset == TRIBOOL_TRUE) - { - struct iovec iov; - - iov.iov_base = &fp; - iov.iov_len = ARM_LINUX_SIZEOF_NWFPE; - - ret = ptrace (PTRACE_SETREGSET, tid, NT_FPREGSET, &iov); - } - else - ret = ptrace (PTRACE_SETFPREGS, tid, 0, fp); - - if (ret < 0) - { - warning (_("Unable to store floating point register.")); - return; - } -} - /* Save the whole floating point state of the process using the contents from regcache. */ @@ -282,59 +182,6 @@ store_fpregs (const struct regcache *regcache) } } -/* Fetch a general register of the process and store into - regcache. */ - -static void -fetch_register (struct regcache *regcache, int regno) -{ - int ret, tid; - elf_gregset_t regs; - - /* Get the thread id for the ptrace call. */ - tid = GET_THREAD_ID (inferior_ptid); - - if (have_ptrace_getregset == TRIBOOL_TRUE) - { - struct iovec iov; - - iov.iov_base = ®s; - iov.iov_len = sizeof (regs); - - ret = ptrace (PTRACE_GETREGSET, tid, NT_PRSTATUS, &iov); - } - else - ret = ptrace (PTRACE_GETREGS, tid, 0, ®s); - - if (ret < 0) - { - warning (_("Unable to fetch general register.")); - return; - } - - if (regno >= ARM_A1_REGNUM && regno < ARM_PC_REGNUM) - regcache_raw_supply (regcache, regno, (char *) ®s[regno]); - - if (ARM_PS_REGNUM == regno) - { - if (arm_apcs_32) - regcache_raw_supply (regcache, ARM_PS_REGNUM, - (char *) ®s[ARM_CPSR_GREGNUM]); - else - regcache_raw_supply (regcache, ARM_PS_REGNUM, - (char *) ®s[ARM_PC_REGNUM]); - } - - if (ARM_PC_REGNUM == regno) - { - regs[ARM_PC_REGNUM] = gdbarch_addr_bits_remove - (get_regcache_arch (regcache), - regs[ARM_PC_REGNUM]); - regcache_raw_supply (regcache, ARM_PC_REGNUM, - (char *) ®s[ARM_PC_REGNUM]); - } -} - /* Fetch all general registers of the process and store into regcache. */ @@ -381,68 +228,6 @@ fetch_regs (struct regcache *regcache) (char *) ®s[ARM_PC_REGNUM]); } -/* Store all general registers of the process from the values in - regcache. */ - -static void -store_register (const struct regcache *regcache, int regno) -{ - int ret, tid; - elf_gregset_t regs; - - if (REG_VALID != regcache_register_status (regcache, regno)) - return; - - /* Get the thread id for the ptrace call. */ - tid = GET_THREAD_ID (inferior_ptid); - - /* Get the general registers from the process. */ - if (have_ptrace_getregset == TRIBOOL_TRUE) - { - struct iovec iov; - - iov.iov_base = ®s; - iov.iov_len = sizeof (regs); - - ret = ptrace (PTRACE_GETREGSET, tid, NT_PRSTATUS, &iov); - } - else - ret = ptrace (PTRACE_GETREGS, tid, 0, ®s); - - if (ret < 0) - { - warning (_("Unable to fetch general registers.")); - return; - } - - if (regno >= ARM_A1_REGNUM && regno <= ARM_PC_REGNUM) - regcache_raw_collect (regcache, regno, (char *) ®s[regno]); - else if (arm_apcs_32 && regno == ARM_PS_REGNUM) - regcache_raw_collect (regcache, regno, - (char *) ®s[ARM_CPSR_GREGNUM]); - else if (!arm_apcs_32 && regno == ARM_PS_REGNUM) - regcache_raw_collect (regcache, ARM_PC_REGNUM, - (char *) ®s[ARM_PC_REGNUM]); - - if (have_ptrace_getregset == TRIBOOL_TRUE) - { - struct iovec iov; - - iov.iov_base = ®s; - iov.iov_len = sizeof (regs); - - ret = ptrace (PTRACE_SETREGSET, tid, NT_PRSTATUS, &iov); - } - else - ret = ptrace (PTRACE_SETREGS, tid, 0, ®s); - - if (ret < 0) - { - warning (_("Unable to store general register.")); - return; - } -} - static void store_regs (const struct regcache *regcache) { @@ -694,9 +479,9 @@ arm_linux_fetch_inferior_registers (struct target_ops *ops, else { if (regno < ARM_F0_REGNUM || regno == ARM_PS_REGNUM) - fetch_register (regcache, regno); + fetch_regs (regcache); else if (regno >= ARM_F0_REGNUM && regno <= ARM_FPS_REGNUM) - fetch_fpregister (regcache, regno); + fetch_fpregs (regcache); else if (tdep->have_wmmx_registers && regno >= ARM_WR0_REGNUM && regno <= ARM_WCGR7_REGNUM) fetch_wmmx_regs (regcache); @@ -730,9 +515,9 @@ arm_linux_store_inferior_registers (struct target_ops *ops, else { if (regno < ARM_F0_REGNUM || regno == ARM_PS_REGNUM) - store_register (regcache, regno); + store_regs (regcache); else if ((regno >= ARM_F0_REGNUM) && (regno <= ARM_FPS_REGNUM)) - store_fpregister (regcache, regno); + store_fpregs (regcache); else if (tdep->have_wmmx_registers && regno >= ARM_WR0_REGNUM && regno <= ARM_WCGR7_REGNUM) store_wmmx_regs (regcache);