aboutsummaryrefslogtreecommitdiff
path: root/gdb/regcache.c
AgeCommit message (Collapse)AuthorFilesLines
2002-08-132002-08-13 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-3/+10
* regcache.c (init_regcache_descr): Overallocate the raw_register_valid_p array including space for NUM_PSEUDO_REGS. (registers_changed): Replace NUM_REGS+NUM_PSEUDO_REGS with num_raw_registers. (set_register_cached): Add range checking assertions. Use current_regcache.
2002-08-132002-08-13 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-0/+25
* i386-tdep.c (i386_register_name): Handle mmx registers. (mmx_regnum_p): New function. (i386_mmx_names): New array. (mmx_num_regs): New variable. (i386_pseudo_register_read): New function. (i386_pseudo_register_write): New function. (mmx_regnum_to_fp_regnum): New function. Code from Fernando Nasser. * regcache.c (regcache_raw_read_unsigned): New function. (regcache_raw_read_signed): New function. * regcache.h (regcache_raw_read_unsigned): Declare. (regcache_raw_read_signed): Declare.
2002-08-132002-08-12 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-11/+26
* regcache.c (regcache_raw_read_as_address): Delete function. (regcache_cooked_read_signed): New function. (regcache_cooked_read_unsigned): New function. * regcache.h (regcache_cooked_read_signed): Declare. (regcache_cooked_read_unsigned): Declare. (regcache_raw_read_as_address): Delete declaration. * blockframe.c (generic_read_register_dummy): Use regcache_cooked_read_unsigned. * i386-tdep.c (i386_extract_struct_value_address): Use regcache_cooked_read_unsigned.
2002-08-102002-08-09 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-1/+2
* regcache.c (regcache_dump): Compare the register offset with REGISTER_BYTE. * arch-utils.c (generic_register_byte): New function. * arch-utils.h (generic_register_byte): Declare. * gdbarch.sh (REGISTER_BYTE): Default to generic_register_byte. * gdbarch.h, gdbarch.c: Regenerate.
2002-08-102002-08-09 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-0/+249
* regcache.c: Include "gdbcmd.h" (_initialize_regcache): Add commands "maintenance print registers", "maintenance print raw-registers" and "maintenance print cooked-registers". (enum regcache_dump_what): Define. (dump_endian_bytes): New function. (regcache_dump): New function. (regcache_print): New function. (maintenance_print_registers): New function. (maintenance_print_raw_registers): New function. (maintenance_print_cooked_registers): New function. * Makefile.in (regcache.o): Update dependencies.
2002-08-072002-08-07 Andrew Cagney <ac131313@redhat.com>Andrew Cagney1-45/+5
* regcache.c (pseudo_register): Delete function. (fetch_register): Delete function. (store_register): Delete function. (regcache_raw_read, legacy_read_register_gen): Use target_fetch_registers instead of fetch_register. (legacy_write_register_gen, regcache_raw_write): Use target_store_register instead of store_register. (write_register_bytes): Ditto. * gdbarch.sh (FETCH_PSEUDO_REGISTER): Delete. (STORE_PSEUDO_REGISTER): Delete. * gdbarch.h, gdbarch.c: Regenerate.
2002-08-02Fri Aug 2 15:53:50 2002 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-0/+1
* gdbarch.sh: Include "gdb_string.h". * gdbarch.c: Regenerate. * regcache.c: Include "gdb_string.h". * ax-general.c: Ditto. * varobj.c: Ditto. * std-regs.c: Ditto. * fbsd-proc.c: Ditto. * thread.c: Ditto. * Makefile.in (regcache.o): Update dependencies. (thread.o, gdbarch.o): Ditto. (ax-general.o, gdbarch.o): Ditto. (varobj.o, std-regs.o): Ditto. (fbsd-proc.o): Specify dependencies.
2002-08-022002-08-02 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-3/+2
* regcache.c (regcache_cooked_read): Rename rawnum parameter to regnum. (regcache_cooked_write): Ditto.
2002-08-02Add the cooked register interface.Andrew Cagney1-10/+22
2002-08-022002-08-02 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-5/+7
* gdbarch.sh (pseudo_register_read, pseudo_register_write): Replace the architecture methods register_read and register_write. * gdbarch.h, gdbarch.c: Regenerate. * regcache.c (init_regcache_descr): Update. (read_register_gen): Update. (write_register_gen): Update. (supply_register): Update comment. * sh-tdep.c (sh_gdbarch_init): Update. (sh_pseudo_register_read, sh64_pseudo_register_read): Add `regcache' and `gdbarch' parameters. Make `buffer' a void pointer. Update code. (sh_pseudo_register_write, sh64_pseudo_register_write): Add `regcache' and `gdbarch' parameters. Make `buffer' a constant void pointer. Update code. (sh64_register_write): Delete. (sh4_register_read): Delete. (sh64_register_read): Delete. (sh4_register_write): Delete. (sh_sh4_register_convert_to_raw): Make `from' parameter a constant void pointer, `to' parameter a void pointer. (sh_sh64_register_convert_to_raw): Ditto.
2002-07-292002-07-25 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-29/+42
* regcache.c (struct regcache_descr): Rename nr_registers to nr_cooked_registers. Revise comments describing the structure member fields. (init_regcache_descr): Update. (init_legacy_regcache_descr): Update. (read_register_gen, write_register_gen): When a cooked register in the raw register range, directly access the value from the raw register cache.
2002-07-242002-07-24 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-4/+4
* regcache.c (regcache_raw_write): Change buf parameter to a constant void pointer. (regcache_raw_read): Change buf parameter to a void pointer. (legacy_write_register_gen): Change myaddr parameter a constant void pointer. (supply_register): Change val parameter to a const void pointer. * regcache.h (regcache_raw_write): Update declaration. (regcache_raw_read): Update declaration. (supply_register): Update declaration.
2002-07-242002-07-24 Andrew Cagney <cagney@redhat.com>Andrew Cagney1-6/+6
* regcache.h (regcache_raw_read, regcache_raw_write): Replace regcache_read and regcache_write. (regcache_raw_read_as_address): Replace regcache_read_as_address. * regcache.c: Update. * sh-tdep.c (sh64_push_arguments): Update comment. (sh_pseudo_register_read): Update. (sh_pseudo_register_write): Update. (sh4_register_read): Update. (sh4_register_write): Update. (sh64_pseudo_register_read): Update. (sh64_pseudo_register_write): Update. (sh64_register_read): Update. (sh64_register_write): Update. * i386-tdep.c (i386_extract_return_value): Update. (i386_extract_struct_value_address): Update. (i386_extract_return_value): Update. * blockframe.c (generic_read_register_dummy): Update. (generic_call_dummy_register_unwind): Update * infrun.c (write_inferior_status_register): Update.
2002-07-03* infcmd.c (print_return_value): Remove compatibility code callingAndrew Cagney1-0/+12
deprecated_grub_regcache_for_registers. * values.c: Include "regcache.h". (value_being_returned): Update. Use deprecated_grub_regcache_for_registers to extract the register buffer address. * value.h (value_being_returned): Change ``retbuf'' parameter to a ``struct regcache''. * Makefile.in (values.o): Add dependency on $(regcache_h). * inferior.h (run_stack_dummy): Change type of second parameter to a ``struct regcache''. * valops.c (hand_function_call): Change type of retbuf to ``struct regcache''. Allocate using regcache_xmalloc, clean using make_cleanup_regcache_xfree. * infcmd.c (run_stack_dummy): Update. Use regcache_cpu_no_passthrough instead of memcpy to copy the buffer. * regcache.c (do_regcache_xfree): New function. (make_cleanup_regcache_xfree): New function. * regcache.h (make_cleanup_regcache_xfree): Declare.
2002-06-27From 2002-06-27 John David Anglin <dave@hiauly1.hia.nrc.ca>:Andrew Cagney1-1/+2
* regcache.c (supply_register): Add missing argument to register_buffer call.
2002-06-22* regcache.h: Update comments describing the regcache_cpy familyAndrew Cagney1-35/+0
of functions. (regcache_save, regcache_restore): Delete declaration. (regcache_save_no_passthrough): Delete declaration. (regcache_restore_no_passthrough): Delete declaration. * regcache.c (regcache_save): Delete function. (regcache_save_no_passthrough): Delete function. (regcache_restore): Delete function. (regcache_restore_no_passthrough): Delete function.
2002-06-20* regcache.h: Update copyright.Andrew Cagney1-46/+486
(struct regcache, struct gdbarch): Add opaque declarations. (current_regcache): Declare global variable. (regcache_read, regcache_write): Add gdbarch parameter. (regcache_save, regcache_save_no_passthrough) (regcache_restore, regcache_restore_no_passthrough) (regcache_dup, regcache_dup_no_passthrough) (regcache_cpy, regcache_cpy_no_passthrough) (deprecated_grub_regcache_for_registers) (deprecated_grub_regcache_for_register_valid) (regcache_valid_p): Add function declarations. * regcache.c: Update copyright. (regcache_descr_handle): New global variable. (struct regcache_descr): Define. (init_legacy_regcache_descr, init_regcache_descr): New functions. (regcache_descr, xfree_regcache_descr): New functions. (struct regcache): Define. (regcache_xmalloc, regcache_xfree): New functions. (regcache_cpy, regcache_cpy_no_passthrough): New functions. (regcache_dup, regcache_dup_no_passthrough): New functions. (regcache_valid_p, regcache_read_as_address): New functions. (deprecated_grub_regcache_for_registers): New function. (deprecated_grub_regcache_for_register_valid): New function. (current_regcache): New global variable. (register_buffer): Add regcache parameter. Update calls. (regcache_read, regcache_write): Add regcache parameter. Rewrite. (read_register_gen, write_register_gen): Update register_buffer call. Test for legacy_p instead of gdbarch_register_read_p or gdbarch_register_write_p. (regcache_collect): Update register_buffer call. (build_regcache): Rewrite. Use deprecated grub functions. (regcache_save, regcache_save_no_passthrough): New functions. (regcache_restore, regcache_restore_no_passthrough): New functions. (_initialize_regcache): Create the regcache_data_handle. Swap current_regcache global variable. * sh-tdep.c (sh_pseudo_register_read): Add current_regcache parameter to regcache_read and regcache_write calls. (sh4_register_read): Ditto. (sh64_pseudo_register_read): Ditto. (sh64_register_read): Ditto. (sh_pseudo_register_write): Ditto. (sh4_register_write): Ditto. (sh64_pseudo_register_write): Ditto. (sh64_register_write): Ditto. * defs.h (XCALLOC): Define.
2002-05-15* regcache.c (register_valid): Revise comments refering to "NotAndrew Cagney1-1/+7
available" and "unavailable". * frame.c (frame_register_read): Ditto. * findvar.c (value_of_register): Ditto.
2002-05-13* config/m88k/tm-m88k.h: Update copyright.Andrew Cagney1-2/+0
(m88k_target_write_pc): Declare (TARGET_WRITE_PC): Redefine using m88k_target_write_pc. (M88K_NNPC_REGNUM): Rename NNPC_REGNUM. (SHIFT_INST_REGS): Update definition. * m88k-tdep.c (m88k_target_write_pc): New function. Implement using old definition of TARGET_WRITE_PC. * regcache.c (generic_target_write_pc): Delete code handling NNPC_REGNUM. * gdbarch.sh (NNPC_REGNUM): Delete. * gdbarch.h, gdbarch.c: Regenerate. * gdbint.texinfo (Target Architecture Definition): Delete documentation on NNPC_REGNUM.
2002-04-06* h8500-tdep.c (h8500_write_fp): Delete function.Andrew Cagney1-26/+6
* dwarf2cfi.c (cfi_write_fp): Document as not used. * mips-tdep.c (mips_gdbarch_init): Do not set write_fp. * ia64-tdep.c (ia64_gdbarch_init): Do not set write_fp. * m68hc11-tdep.c (m68hc11_gdbarch_init): Do not set write_fp. * rs6000-tdep.c (rs6000_gdbarch_init): Do not set write_fp. * s390-tdep.c (s390_gdbarch_init): Do not set write_fp. (s390_write_fp): * sh-tdep.c (sh_gdbarch_init): Do not set write_fp. * x86-64-tdep.c (i386_gdbarch_init): Do not set write_fp. * d10v-tdep.c (d10v_gdbarch_init): Do not set write_fp. (d10v_write_fp): Delete function. * inferior.h (write_fp, generic_target_write_fp): Delete declarations. * regcache.c (generic_target_write_fp): Delete function. (write_fp): Delete function. * gdbarch.sh (TARGET_WRITE_FP): Delete. * gdbarch.h, gdbarch.c: Regenerate. * config/v850/tm-v850.h (TARGET_WRITE_FP): Delete macro. * config/sparc/tm-sp64.h (TARGET_WRITE_FP): Delete macro. (sparc64_write_fp): Delete declaration. * config/h8500/tm-h8500.h (TARGET_WRITE_FP): Delete macro. (h8500_write_fp): Delete declaration.
2002-03-212002-03-20 Martin M. Hunt <hunt@redhat.com>Martin Hunt1-2/+0
* regcache.c (_initialize_regcache): No need to call build_regcache() at this time; it gets called whenever the gdbarch changes.
2002-02-062002-02-05 Michael Snyder <msnyder@redhat.com>Michael Snyder1-2/+4
* regcache.c (fetch_register): Call target_fetch_register only if we don't call FETCH_PSEUDO_REGISTER. (store_register): Call target_store_register only if we don't call STORE_PSEUDO_REGISTER.
2002-01-292002-01-28 Michael Snyder <msnyder@redhat.com>Michael Snyder1-2/+2
* regcache.c (legacy_read_register_gen): Need to be able to read pseudo-register as well as real register. (legacy_write_register_gen): Ditto.
2002-01-15* config/pa/tm-hppa.h (DEPRECATED_CLEAN_UP_REGISTER_VALUE): RenameAndrew Cagney1-2/+2
CLEAN_UP_REGISTER_VALUE. * regcache.c (supply_register): Update only call.
2001-12-07Zap stray XCALLOC().Andrew Cagney1-3/+0
2001-12-06Expand the regcache so that there is space for pseudo-registers.Andrew Cagney1-23/+50
2001-11-15* TODO (register_buffer): Delete.Andrew Cagney1-1/+8
* regcache.c (register_buffer): Make static. (regcache_collect): New function. * regcache.h (register_buffer): Delete declaration. (regcache_collect): Declare. * remote.c (store_register_using_P): Rewrite using regcache_collect. (remote_store_registers): Ditto. * go32-nat.c (store_register): Ditto.
2001-08-24* regcache.c (read_register_bytes): When REGISTER_NAME indicatesAndrew Cagney1-5/+12
that a register should be ignored, supply a value for the register from the raw registers[] buffer.
2001-08-102001-08-10 Michael Snyder <msnyder@redhat.com>Michael Snyder1-8/+9
* regcache.c (legacy_write_register_gen): Don't 'optimize out' a write_register to a pseudo-reg. Target_store_pseudo_register needs to get called, because these regs may be computed and may have side-effects.
2001-06-15Multi-arch CANNOT_FETCH_REGISTER() and CANNOT_STORE_REGISTER().Andrew Cagney1-5/+0
2001-05-04Phase 1 of the ptid_t changes.Kevin Buettner1-49/+53
2001-03-27* arch-utils.c (#include "gdbthread.h"): Removed.J.T. Conklin1-1/+0
(#include "symfile.h"): Removed. (XMALLOC): Removed unused macro. * breakpoint.c (tbreak_command): Removed local declaration. (awatch_command, do_enable_breakpoint, set_breakpoint_count): Remove duplicate declarations. (bpstat_should_step, bpstat_have_active_hw_watchpoints) (remove_solib_event_breakpoints): Fix indentation botch. * c-typeprint.c (#include "command.h"): Removed. (#include "gdbcmd.h"): Removed. * ch-exp.c (ch_terminal_match_float_literal, parse_expr) (parse_primval, parse_untyped_expr, parse_opt_untyped_expr): Removed duplicate declarations. * ch-typeprint.c (#include "command.h"): Removed. (#include "gdbcmd.h"): Removed. * corefile.c (#include "frame.h"): Removed (#include "symfile.h"): Removed. (#include "language.h"): Removed. * dbxread.c (#include "command.h"): Removed. * environ.c (#include "gdbcore.h"): Removed. * event-loop.c (#include "top.h"): Removed. * f-typeprint.c (#include "command.h"): Removed. (#include "gdbcmd.h"): Removed. (#include "language.h"): Removed. (#include "typeprint.h"): Removed. (#include "frame.h"): Removed. * gdbtypes.h (print_type_scalar): Removed declaration. * infcmd.c (#include "completer.h"): Removed. * language.c (#include "frame.h"): Removed. * m2-typeprint.c (#include "command.h"): Removed. (#include "gdbcmd.h"): Removed. (#include "language.h"): Removed. * m2-valprint.c (#include "valprint.h"): Removed. * p-typeprint.c (#include "command.h"): Removed. (#include "gdbcmd.h"): Removed. * p-valprint.c (#include "typeprint.h"): Removed. * parse.c (#include "linespec.h"): Removed. * regcache.c (#include "frame.h"): Removed. * remote.c (#include "frame.h"): Removed. (getpkt_sane): Make static. * source.c (#include "completer.h"): Removed. * stack.c (#include "symfile.h"): Removed. (#include "objfiles.h"): Removed. * symfile.c (#include "completer.h"): Removed. * tracepoint.c (#include "completer.h"): Removed. * values.c (#include "frame.h"): Removed. * varobj.c (#include "valprint.h"): Removed. * wrapper.c (#include "frame.h"): Removed. * memattr.c (create_mem_region): Removed unused variable. * remote-nrom.c: Removed spurious semicolon after init_nrom_ops. -------------------------------------------------------------------
2001-03-24Re-vamp the register code so that a lot more is routed throughAndrew Cagney1-82/+96
{read,write}_register_gen. Hook that function with multi-arch.
2001-03-13Eliminate ARCH_NUM_REGS.Andrew Cagney1-2/+2
2001-03-06Update/correct copyright notices.Kevin Buettner1-1/+1
2001-03-01Create new file regcache.h. Update all uses.Andrew Cagney1-0/+9
2001-02-20Move frame specific register code to the new file frame.c.Andrew Cagney1-199/+0
2001-02-08Add __FILE__ and __LINE__ parameter to internal_error() /Andrew Cagney1-7/+13
internal_verror().
2001-02-062001-02-06 Michael Snyder <msnyder@makita.cygnus.com>Michael Snyder1-1/+1
Submitted by Paul Hilfinger (hilfingr@gnat.com) and Andrei Petrov (and@genesyslab.com). * findvar.c: Buffers of size MAX_REGISTER_RAW_SIZE or REGISTER_BYTES must be allocated dynamically, since these are no longer constants. * infcmd.c: Ditto. * regcache.c: Ditto. * remote.c: Ditto. * sol-thread.c: Ditto. * valops.c: Ditto. * config/sparc/sun4sol2.mh (MH_CFLAGS): Add -I/usr/include/v9, as a work-around for a missing Sun header file in solaris for sparc64.
2001-01-09 * regcache.c (set_register_cached, register_buffer,Nicholas Duffek1-61/+96
real_register, pseudo_register fetch_register, store_register): New functions. (register_changed, read_relative_register_raw_bytes_for_frame, registers_changed, registers_fetched, read_register_bytes, read_register_gen, write_register_gen, read_register, read_signed_register, write_register, supply_register): Replace register_valid[] with register_cached() and set_register_cached(). (read_register_bytes, read_register_gen, write_register_gen, read_register, read_signed_register, write_register, supply_register): Replace registers[] with register_buffer(). (read_register_bytes, read_register_gen, read_register, read_signed_register): Call fetch_register(). (write_register_gen, write_register): Call real_register() and store_register(). (write_register_bytes): Call store_register(). * value.h (set_register_cached, register_buffer): Prototype. * remote.c (remote_fetch_registers): Allocate regs[] with a run-time size. Replace register_valid[] with set_register_cached(). (store_register_using_P, remote_store_registers): Replace registers[] with register_buffer().
2001-01-09 * regcache.c: Change "write-back" comment to "write-through".Nicholas Duffek1-99/+98
Change "regno" to "regnum". (read_register, read_signed_register): Remove "raw" from return value description. (supply_register): Spelling fix. * value.h: Change "regno" to "regnum".
2000-11-172000-11-16 Michael Snyder <msnyder@cleaver.cygnus.com>Michael Snyder1-1/+8
* regcache.c (read_register_bytes): Failing to set register_valid is not necessarily an error, if the register is a pseudo-register. Some pseudo-registers are never marked as valid, so that they will be read anew every time. Determining if a pseudo-register is valid (or should be marked invalid) may be difficult, whereas just recomputing it may be cheap.
2000-10-30* gdbarch.sh, hp-psymtab-read.c, hpread.c, m3-nat.c, mcore-tdep.c,J.T. Conklin1-1/+1
mips-tdep.c, monitor.c, regcache.c, remote-es.c, ser-unix.c, somread.c, tracepoint.c: Fix spelling errors in comments. * gdbarch.c: Regenerate. * gnu-nat.c (S_exception_raise_request): Fix typos and spelling errors in strings. * m3-nat.c (intercept_exec_calls, mach_thread_parse_id): Likewise. * mcore-tdep.c (mcore_analyze_prologue): Likewise. * mips-tdep.c (mips16_next_pc, _initialize_mips_tdep): Likewise. * remote-e7000.c (e7000_start_remote): Likewise. * remote-rdp.c (handle_swi): Likewise. * remote-vx.c (vx_load_command): Likewise. * sh-tdep.c (sh_do_pseudo_register): Likewise. * sol-thread.c (td_err_string): Likewise. * symtab.c (decode_line_2): Likewise. -------------------------------------------------------------------
2000-09-012000-09-01 Michael Snyder <msnyder@cleaver.cygnus.com>Michael Snyder1-0/+15
* regcache.c (reg_flush_command): New function. Maintainer-mode command, flushes GDB's register cache, for testing purposes.
2000-08-25Fri Aug 25 16:57:05 2000 David Taylor <taylor@texas.cygnus.com>David Taylor1-0/+9
* regcache.c (register_changed): New function. * value.h: Declare it.
2000-08-11Restore GET_SAVED_REGISTERSAndrew Cagney1-0/+5
2000-08-11 * regcache.c (TARGET_WRITE_PC, TARGET_READ_PC, TARGET_READ_FP,Andrew Cagney1-29/+0
TARGET_WRITE_FP, TARGET_READ_SP, TARGET_WRITE_SP): Move initialization from here. * gdbarch.sh: To here. * gdbarch.h, gdbarch.c: Regenerate.
2000-07-242000-07-24 Elena Zannoni <ezannoni@kwikemart.cygnus.com>Elena Zannoni1-6/+6
* gdbarch.sh: Add FETCH_PSEUDO_REGISTER and STORE_PSEUDO_REGISTER to the gdbarch structure. * gdbarch.c: Regenerate. * gdbarch.h: Regenerate. * inferior.h (FETCH_PSEUDO_REGISTER, STORE_PSEUDO_REGISTER): Delete macros. * regcache.c (write_register, read_register, write_register_bytes, write_register_gen, read_register_bytes, read_register_gen): Rename ARCH_FECTH_PSEUDO_REGISTERS to FETCH_PSEUDO_REGISTERS and ARCH_STORE_PSEUDO_REGISTER to STORE_PSEUDO_REGISTER.
2000-07-212000-07-21 Elena Zannoni <ezannoni@kwikemart.cygnus.com>Elena Zannoni1-2/+2
* regcache.c (read_register, read_register_bytes): Fix typos.
2000-07-122000-07-12 Michael Snyder <msnyder@cleaver.cygnus.com>Michael Snyder1-16/+46
* regcache.c (registers_changed, registers_fetched): Use ARCH_NUM_REGS directly, eliminating an unnecessary variable. This change adds pseudo-register capability to GDB. Pseudo-registers are handled like registers, but they don't come from or live on the target. They may be aliases for an existing register, or they may be computed. * defs.h (NUM_PSEUDO_REGISTERS): Define default of zero. (ARCH_FETCH_PSEUDO_REGISTERS): Define default of no-op. (ARCH_STORE_PSEUDO_REGISTERS): Define default of no-op. # regcache.c (registers_changed): Mark pseudo-registers invalid, as well as real registers. (registers_fetched): Do not mark pseudo-registers as fetched at the same time as other (real) registers. (read_register_bytes): Fetch pseudo-registers (if any) from the target architecture module instead of from the target. (read_register_gen): Ditto. (read_register): Ditto. (write_register_bytes): Store pseudo-registers (if any) to the target architecture module instead of to the target. (write_register_gen): Ditto. (write_register): Ditto. (build_regcache): Allocate enough register_valid space for pseudo-registers as well as normal (real) ones.