diff options
Diffstat (limited to 'gdb/riscv-tdep.h')
-rw-r--r-- | gdb/riscv-tdep.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gdb/riscv-tdep.h b/gdb/riscv-tdep.h index 20e2612..d1f1cf1 100644 --- a/gdb/riscv-tdep.h +++ b/gdb/riscv-tdep.h @@ -137,4 +137,27 @@ extern bool riscv_abi_embedded (struct gdbarch *gdbarch); extern std::vector<CORE_ADDR> riscv_software_single_step (struct regcache *regcache); +/* Supply register REGNUM from the buffer REGS (length LEN) into + REGCACHE. REGSET describes the layout of the buffer. If REGNUM is -1 + then all registers described by REGSET are supplied. + + The register RISCV_ZERO_REGNUM should not be described by REGSET, + however, this register (which always has the value 0) will be supplied + by this function if requested. + + The registers RISCV_CSR_FFLAGS_REGNUM and RISCV_CSR_FRM_REGNUM should + not be described by REGSET, however, these register will be provided if + requested assuming either: + (a) REGCACHE already contains the value of RISCV_CSR_FCSR_REGNUM, or + (b) REGSET describes the location of RISCV_CSR_FCSR_REGNUM in the REGS + buffer. + + This function can be used as the supply function for either x-regs or + f-regs when loading corefiles, and doesn't care which abi is currently + in use. */ + +extern void riscv_supply_regset (const struct regset *regset, + struct regcache *regcache, int regnum, + const void *regs, size_t len); + #endif /* RISCV_TDEP_H */ |