X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fxtensa-linux-nat.c;h=57ad8a69722404533e85f6ab7f688f50d5d90571;hb=refs%2Fheads%2Fconcurrent-displaced-stepping-2020-04-01;hp=57a44e302370ec97bab262da85dfdabfe3f0dcb6;hpb=222312d359fe0a68f8583ba315583ee8cc94f252;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/xtensa-linux-nat.c b/gdb/xtensa-linux-nat.c index 57a44e3023..57ad8a6972 100644 --- a/gdb/xtensa-linux-nat.c +++ b/gdb/xtensa-linux-nat.c @@ -1,6 +1,6 @@ /* Xtensa GNU/Linux native support. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2020 Free Software Foundation, Inc. This file is part of GDB. @@ -28,7 +28,7 @@ #include #include #include -#include "gdb_wait.h" +#include "gdbsupport/gdb_wait.h" #include #include #include "nat/gdb_ptrace.h" @@ -64,63 +64,54 @@ fill_gregset (const struct regcache *regcache, struct gdbarch *gdbarch = regcache->arch (); if (regnum == gdbarch_pc_regnum (gdbarch) || regnum == -1) - regcache_raw_collect (regcache, gdbarch_pc_regnum (gdbarch), ®s->pc); + regcache->raw_collect (gdbarch_pc_regnum (gdbarch), ®s->pc); if (regnum == gdbarch_ps_regnum (gdbarch) || regnum == -1) - regcache_raw_collect (regcache, gdbarch_ps_regnum (gdbarch), ®s->ps); + regcache->raw_collect (gdbarch_ps_regnum (gdbarch), ®s->ps); if (regnum == gdbarch_tdep (gdbarch)->wb_regnum || regnum == -1) - regcache_raw_collect (regcache, - gdbarch_tdep (gdbarch)->wb_regnum, - ®s->windowbase); + regcache->raw_collect (gdbarch_tdep (gdbarch)->wb_regnum, + ®s->windowbase); if (regnum == gdbarch_tdep (gdbarch)->ws_regnum || regnum == -1) - regcache_raw_collect (regcache, - gdbarch_tdep (gdbarch)->ws_regnum, - ®s->windowstart); + regcache->raw_collect (gdbarch_tdep (gdbarch)->ws_regnum, + ®s->windowstart); if (regnum == gdbarch_tdep (gdbarch)->lbeg_regnum || regnum == -1) - regcache_raw_collect (regcache, - gdbarch_tdep (gdbarch)->lbeg_regnum, - ®s->lbeg); + regcache->raw_collect (gdbarch_tdep (gdbarch)->lbeg_regnum, + ®s->lbeg); if (regnum == gdbarch_tdep (gdbarch)->lend_regnum || regnum == -1) - regcache_raw_collect (regcache, - gdbarch_tdep (gdbarch)->lend_regnum, - ®s->lend); + regcache->raw_collect (gdbarch_tdep (gdbarch)->lend_regnum, + ®s->lend); if (regnum == gdbarch_tdep (gdbarch)->lcount_regnum || regnum == -1) - regcache_raw_collect (regcache, - gdbarch_tdep (gdbarch)->lcount_regnum, - ®s->lcount); + regcache->raw_collect (gdbarch_tdep (gdbarch)->lcount_regnum, + ®s->lcount); if (regnum == gdbarch_tdep (gdbarch)->sar_regnum || regnum == -1) - regcache_raw_collect (regcache, - gdbarch_tdep (gdbarch)->sar_regnum, - ®s->sar); + regcache->raw_collect (gdbarch_tdep (gdbarch)->sar_regnum, + ®s->sar); if (regnum == gdbarch_tdep (gdbarch)->threadptr_regnum || regnum == -1) - regcache_raw_collect (regcache, - gdbarch_tdep (gdbarch)->threadptr_regnum, - ®s->threadptr); + regcache->raw_collect (gdbarch_tdep (gdbarch)->threadptr_regnum, + ®s->threadptr); if (regnum >=gdbarch_tdep (gdbarch)->ar_base && regnum < gdbarch_tdep (gdbarch)->ar_base + gdbarch_tdep (gdbarch)->num_aregs) - regcache_raw_collect (regcache,regnum, - ®s->ar[regnum - gdbarch_tdep (gdbarch)->ar_base]); + regcache->raw_collect (regnum, + ®s->ar[regnum - gdbarch_tdep (gdbarch)->ar_base]); else if (regnum == -1) { for (i = 0; i < gdbarch_tdep (gdbarch)->num_aregs; ++i) - regcache_raw_collect (regcache, - gdbarch_tdep (gdbarch)->ar_base + i, - ®s->ar[i]); + regcache->raw_collect (gdbarch_tdep (gdbarch)->ar_base + i, + ®s->ar[i]); } if (regnum >= gdbarch_tdep (gdbarch)->a0_base && regnum < gdbarch_tdep (gdbarch)->a0_base + C0_NREGS) - regcache_raw_collect (regcache, regnum, - ®s->ar[(4 * regs->windowbase + regnum - - gdbarch_tdep (gdbarch)->a0_base) + regcache->raw_collect (regnum, + ®s->ar[(4 * regs->windowbase + regnum + - gdbarch_tdep (gdbarch)->a0_base) % gdbarch_tdep (gdbarch)->num_aregs]); else if (regnum == -1) { for (i = 0; i < C0_NREGS; ++i) - regcache_raw_collect (regcache, - gdbarch_tdep (gdbarch)->a0_base + i, - ®s->ar[(4 * regs->windowbase + i) - % gdbarch_tdep (gdbarch)->num_aregs]); + regcache->raw_collect (gdbarch_tdep (gdbarch)->a0_base + i, + (®s->ar[(4 * regs->windowbase + i) + % gdbarch_tdep (gdbarch)->num_aregs])); } } @@ -134,63 +125,54 @@ supply_gregset_reg (struct regcache *regcache, struct gdbarch *gdbarch = regcache->arch (); if (regnum == gdbarch_pc_regnum (gdbarch) || regnum == -1) - regcache_raw_supply (regcache, gdbarch_pc_regnum (gdbarch), ®s->pc); + regcache->raw_supply (gdbarch_pc_regnum (gdbarch), ®s->pc); if (regnum == gdbarch_ps_regnum (gdbarch) || regnum == -1) - regcache_raw_supply (regcache, gdbarch_ps_regnum (gdbarch), ®s->ps); + regcache->raw_supply (gdbarch_ps_regnum (gdbarch), ®s->ps); if (regnum == gdbarch_tdep (gdbarch)->wb_regnum || regnum == -1) - regcache_raw_supply (regcache, - gdbarch_tdep (gdbarch)->wb_regnum, + regcache->raw_supply (gdbarch_tdep (gdbarch)->wb_regnum, ®s->windowbase); if (regnum == gdbarch_tdep (gdbarch)->ws_regnum || regnum == -1) - regcache_raw_supply (regcache, - gdbarch_tdep (gdbarch)->ws_regnum, + regcache->raw_supply (gdbarch_tdep (gdbarch)->ws_regnum, ®s->windowstart); if (regnum == gdbarch_tdep (gdbarch)->lbeg_regnum || regnum == -1) - regcache_raw_supply (regcache, - gdbarch_tdep (gdbarch)->lbeg_regnum, + regcache->raw_supply (gdbarch_tdep (gdbarch)->lbeg_regnum, ®s->lbeg); if (regnum == gdbarch_tdep (gdbarch)->lend_regnum || regnum == -1) - regcache_raw_supply (regcache, - gdbarch_tdep (gdbarch)->lend_regnum, + regcache->raw_supply (gdbarch_tdep (gdbarch)->lend_regnum, ®s->lend); if (regnum == gdbarch_tdep (gdbarch)->lcount_regnum || regnum == -1) - regcache_raw_supply (regcache, - gdbarch_tdep (gdbarch)->lcount_regnum, + regcache->raw_supply (gdbarch_tdep (gdbarch)->lcount_regnum, ®s->lcount); if (regnum == gdbarch_tdep (gdbarch)->sar_regnum || regnum == -1) - regcache_raw_supply (regcache, - gdbarch_tdep (gdbarch)->sar_regnum, + regcache->raw_supply (gdbarch_tdep (gdbarch)->sar_regnum, ®s->sar); if (regnum == gdbarch_tdep (gdbarch)->threadptr_regnum || regnum == -1) - regcache_raw_supply (regcache, - gdbarch_tdep (gdbarch)->threadptr_regnum, + regcache->raw_supply (gdbarch_tdep (gdbarch)->threadptr_regnum, ®s->threadptr); if (regnum >=gdbarch_tdep (gdbarch)->ar_base && regnum < gdbarch_tdep (gdbarch)->ar_base + gdbarch_tdep (gdbarch)->num_aregs) - regcache_raw_supply (regcache,regnum, + regcache->raw_supply (regnum, ®s->ar[regnum - gdbarch_tdep (gdbarch)->ar_base]); else if (regnum == -1) { for (i = 0; i < gdbarch_tdep (gdbarch)->num_aregs; ++i) - regcache_raw_supply (regcache, - gdbarch_tdep (gdbarch)->ar_base + i, + regcache->raw_supply (gdbarch_tdep (gdbarch)->ar_base + i, ®s->ar[i]); } if (regnum >= gdbarch_tdep (gdbarch)->a0_base && regnum < gdbarch_tdep (gdbarch)->a0_base + C0_NREGS) - regcache_raw_supply (regcache, regnum, - ®s->ar[(4 * regs->windowbase + regnum - - gdbarch_tdep (gdbarch)->a0_base) + regcache->raw_supply (regnum, + ®s->ar[(4 * regs->windowbase + regnum + - gdbarch_tdep (gdbarch)->a0_base) % gdbarch_tdep (gdbarch)->num_aregs]); else if (regnum == -1) { for (i = 0; i < C0_NREGS; ++i) - regcache_raw_supply (regcache, - gdbarch_tdep (gdbarch)->a0_base + i, - ®s->ar[(4 * regs->windowbase + i) - % gdbarch_tdep (gdbarch)->num_aregs]); + regcache->raw_supply (gdbarch_tdep (gdbarch)->a0_base + i, + ®s->ar[(4 * regs->windowbase + i) + % gdbarch_tdep (gdbarch)->num_aregs]); } } @@ -220,7 +202,7 @@ supply_fpregset (struct regcache *regcache, static void fetch_gregs (struct regcache *regcache, int regnum) { - int tid = ptid_get_lwp (regcache->ptid ()); + int tid = regcache->ptid ().lwp (); gdb_gregset_t regs; int areg; @@ -239,7 +221,7 @@ fetch_gregs (struct regcache *regcache, int regnum) static void store_gregs (struct regcache *regcache, int regnum) { - int tid = ptid_get_lwp (regcache->ptid ()); + int tid = regcache->ptid ().lwp (); gdb_gregset_t regs; int areg; @@ -267,7 +249,7 @@ static int xtreg_high; static void fetch_xtregs (struct regcache *regcache, int regnum) { - int tid = ptid_get_lwp (regcache->ptid ()); + int tid = regcache->ptid ().lwp (); const xtensa_regtable_t *ptr; char xtregs [XTENSA_ELF_XTREG_SIZE]; @@ -276,14 +258,13 @@ fetch_xtregs (struct regcache *regcache, int regnum) for (ptr = xtensa_regmap_table; ptr->name; ptr++) if (regnum == ptr->gdb_regnum || regnum == -1) - regcache_raw_supply (regcache, ptr->gdb_regnum, - xtregs + ptr->ptrace_offset); + regcache->raw_supply (ptr->gdb_regnum, xtregs + ptr->ptrace_offset); } static void store_xtregs (struct regcache *regcache, int regnum) { - int tid = ptid_get_lwp (regcache->ptid ()); + int tid = regcache->ptid ().lwp (); const xtensa_regtable_t *ptr; char xtregs [XTENSA_ELF_XTREG_SIZE]; @@ -292,8 +273,7 @@ store_xtregs (struct regcache *regcache, int regnum) for (ptr = xtensa_regmap_table; ptr->name; ptr++) if (regnum == ptr->gdb_regnum || regnum == -1) - regcache_raw_collect (regcache, ptr->gdb_regnum, - xtregs + ptr->ptrace_offset); + regcache->raw_collect (ptr->gdb_regnum, xtregs + ptr->ptrace_offset); if (ptrace (PTRACE_SETXTREGS, tid, 0, (long)&xtregs) < 0) perror_with_name (_("Couldn't write extended registers")); @@ -348,8 +328,9 @@ ps_get_thread_area (struct ps_prochandle *ph, return PS_OK; } +void _initialize_xtensa_linux_nat (); void -_initialize_xtensa_linux_nat (void) +_initialize_xtensa_linux_nat () { const xtensa_regtable_t *ptr;