summaryrefslogtreecommitdiff
path: root/gdb/xtensa-tdep.c
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2016-11-18 11:39:47 -0800
committerMax Filippov <jcmvbkbc@gmail.com>2017-03-27 13:02:12 -0700
commitf74f865e5030057deb8a6a56af4a9e003d82cdcd (patch)
tree08ff781da4df490835f53af4c23cabc80f4135ac /gdb/xtensa-tdep.c
parent0d0bf81a6729478563c3851ccfca435222ddfa25 (diff)
gdb: xtensa-linux: support THREADPTR register
Make THREADPTR user register accessible. gdb/ 2017-03-27 Max Filippov <jcmvbkbc@gmail.com> * xtensa-linux-nat.c (fill_gregset): Call regcache_raw_collect for THREADPTR register. (supply_gregset_reg): Call regcache_raw_supply for THREADPTR register. * xtensa-tdep.c (XTENSA_DBREGN_UREG): New definition. (xtensa_derive_tdep): Initialize tdep->threadptr_regnum. * xtensa-tdep.h (gdbarch_tdep::threadptr_regnum): New field.
Diffstat (limited to 'gdb/xtensa-tdep.c')
-rw-r--r--gdb/xtensa-tdep.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c
index 2338ac10ea..13f1514e76 100644
--- a/gdb/xtensa-tdep.c
+++ b/gdb/xtensa-tdep.c
@@ -3107,6 +3107,8 @@ xtensa_derive_tdep (struct gdbarch_tdep *tdep)
/* Special registers 0..255 (core). */
#define XTENSA_DBREGN_SREG(n) (0x0200+(n))
+/* User registers 0..255. */
+#define XTENSA_DBREGN_UREG(n) (0x0300+(n))
for (rmap = tdep->regmap, n = 0; rmap->target_number != -1; n++, rmap++)
{
@@ -3138,6 +3140,8 @@ xtensa_derive_tdep (struct gdbarch_tdep *tdep)
tdep->litbase_regnum = n;
else if (rmap->target_number == XTENSA_DBREGN_SREG(230))
tdep->ps_regnum = n;
+ else if (rmap->target_number == XTENSA_DBREGN_UREG(231))
+ tdep->threadptr_regnum = n;
#if 0
else if (rmap->target_number == XTENSA_DBREGN_SREG(226))
tdep->interrupt_regnum = n;