diff options
author | Youling Tang <tangyouling@loongson.cn> | 2022-07-10 10:22:33 +0800 |
---|---|---|
committer | Tiezhu Yang <yangtiezhu@loongson.cn> | 2022-07-10 17:27:50 +0800 |
commit | 3eba483364436567fd1b6ac4b5d82e23bb223a54 (patch) | |
tree | e28a404bcf927b5bc244ccd8c96c70ce1551da50 /gdbserver | |
parent | e5c0531cfe8667e4f510f6357e62f488113b7049 (diff) |
gdbserver: LoongArch: Simplify code with register number macros
Move "enum loongarch_regnum" to gdb/arch/loongarch.h so that the
macro definitions can be used in gdbserver/linux-loongarch-low.cc
to simplify the code.
Signed-off-by: Youling Tang <tangyouling@loongson.cn>
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Diffstat (limited to 'gdbserver')
-rw-r--r-- | gdbserver/linux-loongarch-low.cc | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/gdbserver/linux-loongarch-low.cc b/gdbserver/linux-loongarch-low.cc index 5d3739354e..7b81e4b786 100644 --- a/gdbserver/linux-loongarch-low.cc +++ b/gdbserver/linux-loongarch-low.cc @@ -94,15 +94,13 @@ loongarch_target::low_arch_setup () static void loongarch_fill_gregset (struct regcache *regcache, void *buf) { - const struct target_desc *tdesc = regcache->tdesc; elf_gregset_t *regset = (elf_gregset_t *) buf; - int regno = find_regno (tdesc, "r0"); int i; for (i = 1; i < 32; i++) - collect_register (regcache, regno + i, *regset + i); - collect_register_by_name (regcache, "pc", *regset + 32); - collect_register_by_name (regcache, "badv", *regset + 33); + collect_register (regcache, i, *regset + i); + collect_register (regcache, LOONGARCH_PC_REGNUM, *regset + LOONGARCH_PC_REGNUM); + collect_register (regcache, LOONGARCH_BADV_REGNUM, *regset + LOONGARCH_BADV_REGNUM); } /* Supply GPRs from BUF into REGCACHE. */ @@ -110,16 +108,14 @@ loongarch_fill_gregset (struct regcache *regcache, void *buf) static void loongarch_store_gregset (struct regcache *regcache, const void *buf) { - const struct target_desc *tdesc = regcache->tdesc; const elf_gregset_t *regset = (const elf_gregset_t *) buf; - int regno = find_regno (tdesc, "r0"); int i; - supply_register_zeroed (regcache, regno); + supply_register_zeroed (regcache, 0); for (i = 1; i < 32; i++) - supply_register (regcache, regno + i, *regset + i); - supply_register_by_name (regcache, "pc", *regset + 32); - supply_register_by_name (regcache, "badv", *regset + 33); + supply_register (regcache, i, *regset + i); + supply_register (regcache, LOONGARCH_PC_REGNUM, *regset + LOONGARCH_PC_REGNUM); + supply_register (regcache, LOONGARCH_BADV_REGNUM, *regset + LOONGARCH_BADV_REGNUM); } /* LoongArch/Linux regsets. */ @@ -158,11 +154,9 @@ loongarch_target::get_regs_info () bool loongarch_target::low_fetch_register (regcache *regcache, int regno) { - const struct target_desc *tdesc = regcache->tdesc; - - if (regno != find_regno (tdesc, "r0")) + if (regno != 0) return false; - supply_register_zeroed (regcache, regno); + supply_register_zeroed (regcache, 0); return true; } |