Re: [PATCH 03/10] Remove regcache_save and regcache_cpy

Simon Marchi
2018-02-17T02:07:29Z

On 2018-02-07 05:32, Yao Qi wrote:
> --- a/gdb/regcache.h
> +++ b/gdb/regcache.h
> @@ -198,20 +198,10 @@ extern struct type *register_type (struct
> gdbarch *gdbarch, int regnum);
>
> extern int register_size (struct gdbarch *gdbarch, int regnum);
>
> -
> -/* Save/restore a register cache. The set of registers saved /
> - restored into the DST regcache determined by the save_reggroup /
> - restore_reggroup respectively. COOKED_READ returns zero iff the
> - register's value can't be returned. */
> -
> typedef enum register_status (regcache_cooked_read_ftype) (void *src,
> int regnum,
> gdb_byte *buf);
>
> -extern void regcache_save (struct regcache *dst,
> - regcache_cooked_read_ftype *cooked_read,
> - void *cooked_read_context);
> -
> enum regcache_dump_what
> {
> regcache_dump_none, regcache_dump_raw,
> @@ -317,7 +307,14 @@ public:
> return m_aspace;
> }
>
> +/* Save/restore a register cache. The set of registers saved /
> + restored into the regcache determined by the save_reggroup /
> + restore_reggroup respectively. COOKED_READ returns zero iff the
> + register's value can't be returned. */
> void save (regcache_cooked_read_ftype *cooked_read, void *src);
> + /* Writes to regcache will go through to the target. SRC is a
> + read-only register cache. */
> + void restore (struct regcache *src);

Nit: add an empty line after the declaration of save.

Also, would it be possible to improve the comment of save? I read them
multiple times, and I still haven't figured out what the function does
exactly. It saves the content of this regcache in another regcache? Or
it saves another regcache in this regcache? How are the parameters used
exactly?

Simon