diff options
author | Max Filippov <jcmvbkbc@gmail.com> | 2016-11-18 11:39:47 -0800 |
---|---|---|
committer | Max Filippov <jcmvbkbc@gmail.com> | 2017-03-27 13:02:12 -0700 |
commit | f74f865e5030057deb8a6a56af4a9e003d82cdcd (patch) | |
tree | 08ff781da4df490835f53af4c23cabc80f4135ac /gdb/xtensa-tdep.c | |
parent | 0d0bf81a6729478563c3851ccfca435222ddfa25 (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.c | 4 |
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; |