From: Simon Marchi Date: Mon, 28 May 2018 15:27:27 +0000 (-0400) Subject: Move supply and collect things to reg_buffer X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0e04bb35765d2717818dddd88328cb975f417b2c;p=thirdparty%2Fbinutils-gdb.git Move supply and collect things to reg_buffer --- diff --git a/gdb/regcache.c b/gdb/regcache.c index 7d950ff0895..0a06b9f0096 100644 --- a/gdb/regcache.c +++ b/gdb/regcache.c @@ -330,7 +330,7 @@ reg_buffer::get_register_status (int regnum) const } void -detached_regcache::invalidate (int regnum) +reg_buffer::invalidate (int regnum) { assert_regnum (regnum); m_register_status[regnum] = REG_UNKNOWN; @@ -881,7 +881,7 @@ regcache::cooked_write_part (int regnum, int offset, int len, } void -detached_regcache::raw_supply (int regnum, const void *buf) +reg_buffer::raw_supply (int regnum, const void *buf) { void *regbuf; size_t size; @@ -913,8 +913,8 @@ detached_regcache::raw_supply (int regnum, const void *buf) most significant bytes of the integer will be truncated. */ void -detached_regcache::raw_supply_integer (int regnum, const gdb_byte *addr, - int addr_len, bool is_signed) +reg_buffer::raw_supply_integer (int regnum, const gdb_byte *addr, + int addr_len, bool is_signed) { enum bfd_endian byte_order = gdbarch_byte_order (m_descr->gdbarch); gdb_byte *regbuf; @@ -935,7 +935,7 @@ detached_regcache::raw_supply_integer (int regnum, const gdb_byte *addr, unavailable). */ void -detached_regcache::raw_supply_zeroed (int regnum) +reg_buffer::raw_supply_zeroed (int regnum) { void *regbuf; size_t size; @@ -950,7 +950,7 @@ detached_regcache::raw_supply_zeroed (int regnum) } void -regcache::raw_collect (int regnum, void *buf) const +reg_buffer::raw_collect (int regnum, void *buf) const { const void *regbuf; size_t size; @@ -974,8 +974,8 @@ regcache::raw_collect (int regnum, void *buf) const most significant bytes of the integer will be truncated. */ void -regcache::raw_collect_integer (int regnum, gdb_byte *addr, int addr_len, - bool is_signed) const +reg_buffer::raw_collect_integer (int regnum, gdb_byte *addr, int addr_len, + bool is_signed) const { enum bfd_endian byte_order = gdbarch_byte_order (m_descr->gdbarch); const gdb_byte *regbuf; diff --git a/gdb/regcache.h b/gdb/regcache.h index bf2e0c98c61..23018fce8e1 100644 --- a/gdb/regcache.h +++ b/gdb/regcache.h @@ -153,6 +153,26 @@ public: buffer. */ enum register_status get_register_status (int regnum) const; + void raw_collect (int regnum, void *buf) const; + + void raw_collect_integer (int regnum, gdb_byte *addr, int addr_len, + bool is_signed) const; + + /* Supply register REGNUM, whose contents are stored in BUF, to REGCACHE. */ + void raw_supply (int regnum, const void *buf); + + void raw_supply (int regnum, const reg_buffer &src) + { + raw_supply (regnum, src.register_buffer (regnum)); + } + + void raw_supply_integer (int regnum, const gdb_byte *addr, int addr_len, + bool is_signed); + + void raw_supply_zeroed (int regnum); + + void invalidate (int regnum); + virtual ~reg_buffer () = 0; protected: @@ -231,23 +251,9 @@ public: : readable_regcache (gdbarch, has_pseudo) {} - /* Supply register REGNUM, whose contents are stored in BUF, to REGCACHE. */ - void raw_supply (int regnum, const void *buf); - - void raw_supply (int regnum, const reg_buffer &src) - { - raw_supply (regnum, src.register_buffer (regnum)); - } - void raw_update (int regnum) override {} - void raw_supply_integer (int regnum, const gdb_byte *addr, int addr_len, - bool is_signed); - - void raw_supply_zeroed (int regnum); - - void invalidate (int regnum); DISABLE_COPY_AND_ASSIGN (detached_regcache); }; @@ -289,12 +295,6 @@ public: void raw_update (int regnum) override; - /* Collect register REGNUM from REGCACHE and store its contents in BUF. */ - void raw_collect (int regnum, void *buf) const; - - void raw_collect_integer (int regnum, gdb_byte *addr, int addr_len, - bool is_signed) const; - /* Partial transfer of raw registers. Perform read, modify, write style operations. */ void raw_write_part (int regnum, int offset, int len, const gdb_byte *buf);