From 179bfe826ba62ca8aa43f3d20cc1b21dfc41b1d0 Mon Sep 17 00:00:00 2001 From: Yao Qi Date: Tue, 7 Jul 2015 16:58:19 +0100 Subject: [PATCH] Remove {fetch,store}_fpregister and {fetch,store}_register 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-07-07 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/ChangeLog | 11 +++ gdb/arm-linux-nat.c | 223 +------------------------------------------- 2 files changed, 15 insertions(+), 219 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d6d45bfba1b..5cfd3ae7b24 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,14 @@ +2015-07-07 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. + 2015-07-06 Andrew Burgess * doc/gdb.texinfo (TUI): Restructure documentation on TUI layout diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c index c167bce18b3..5a8880f3c08 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); -- 2.30.2