Move ARM_CPSR_GREGNUM to arch/arm-linux.h

Message ID 1461151574-31818-1-git-send-email-yao.qi@linaro.org
State New, archived
Headers

Commit Message

Yao Qi April 20, 2016, 11:26 a.m. UTC
  This patch moves macro ARM_CPSR_GREGNUM to arch/arm-linux.h so that it
can be used in GDBserver side.  I'll push it in.

gdb:

2016-04-20  Yao Qi  <yao.qi@linaro.org>

	* arm-linux-tdep.h (ARM_CPSR_GREGNUM): Move it to ...
	* arch/arm-linux.h: ... here.

gdb/gdbserver:

2016-04-20  Yao Qi  <yao.qi@linaro.org>

	* linux-aarch32-low.c: Include "arch/arm-linux.h".
	(arm_fill_gregset): Use ARM_CPSR_GREGNUM rather than magic
	number 16.
	* linux-aarch32-low.c (arm_store_gregset): Likewise.
---
 gdb/arch/arm-linux.h              | 3 +++
 gdb/arm-linux-tdep.h              | 3 ---
 gdb/gdbserver/linux-aarch32-low.c | 5 +++--
 3 files changed, 6 insertions(+), 5 deletions(-)
  

Comments

Yao Qi April 20, 2016, 11:44 a.m. UTC | #1
Yao Qi <qiyaoltc@gmail.com> writes:

> 2016-04-20  Yao Qi  <yao.qi@linaro.org>
>
> 	* linux-aarch32-low.c: Include "arch/arm-linux.h".
> 	(arm_fill_gregset): Use ARM_CPSR_GREGNUM rather than magic
> 	number 16.
> 	* linux-aarch32-low.c (arm_store_gregset): Likewise.
        ^^^^^^^^^^^^^^^^^^^^^^

"linux-aarch32-low.c" is not needed.  It is removed from the committed
version.
  

Patch

diff --git a/gdb/arch/arm-linux.h b/gdb/arch/arm-linux.h
index dfd634c..ed83da9 100644
--- a/gdb/arch/arm-linux.h
+++ b/gdb/arch/arm-linux.h
@@ -20,6 +20,9 @@ 
 #ifndef ARM_LINUX_H
 #define ARM_LINUX_H
 
+/* The index to access CSPR in user_regs defined in GLIBC.  */
+#define ARM_CPSR_GREGNUM 16
+
 /* There are a couple of different possible stack layouts that
    we need to support.
 
diff --git a/gdb/arm-linux-tdep.h b/gdb/arm-linux-tdep.h
index 99f1777..be18a64 100644
--- a/gdb/arm-linux-tdep.h
+++ b/gdb/arm-linux-tdep.h
@@ -24,9 +24,6 @@  struct regcache;
 				+ 2 * INT_REGISTER_SIZE \
 				+ 8 + INT_REGISTER_SIZE)
 
-/* The index to access CSPR in user_regs defined in GLIBC.  */
-#define ARM_CPSR_GREGNUM 16
-
 /* Support for register format used by the NWFPE FPA emulator.  Each
    register takes three words, where either the first one, two, or
    three hold a single, double, or extended precision value (depending
diff --git a/gdb/gdbserver/linux-aarch32-low.c b/gdb/gdbserver/linux-aarch32-low.c
index 2bbbb24..0c4b140 100644
--- a/gdb/gdbserver/linux-aarch32-low.c
+++ b/gdb/gdbserver/linux-aarch32-low.c
@@ -17,6 +17,7 @@ 
 
 #include "server.h"
 #include "arch/arm.h"
+#include "arch/arm-linux.h"
 #include "linux-low.h"
 #include "linux-aarch32-low.h"
 
@@ -65,7 +66,7 @@  arm_fill_gregset (struct regcache *regcache, void *buf)
   for (i = ARM_A1_REGNUM; i <= ARM_PC_REGNUM; i++)
     collect_register (regcache, i, &regs[i]);
 
-  collect_register (regcache, ARM_PS_REGNUM, &regs[16]);
+  collect_register (regcache, ARM_PS_REGNUM, &regs[ARM_CPSR_GREGNUM]);
 }
 
 /* Supply GP registers contents, stored in BUF, to REGCACHE.  */
@@ -84,7 +85,7 @@  arm_store_gregset (struct regcache *regcache, const void *buf)
   for (; i < ARM_PS_REGNUM; i++)
     supply_register (regcache, i, zerobuf);
 
-  supply_register (regcache, ARM_PS_REGNUM, &regs[16]);
+  supply_register (regcache, ARM_PS_REGNUM, &regs[ARM_CPSR_GREGNUM]);
 }
 
 /* Collect NUM number of VFP registers from REGCACHE to buffer BUF.  */