Lines Matching refs:regcache
182 struct regcache struct
199 struct regcache * argument
203 struct regcache *regcache; in regcache_xmalloc() local
206 regcache = XMALLOC (struct regcache); in regcache_xmalloc()
207 regcache->descr = descr; in regcache_xmalloc()
208 regcache->registers in regcache_xmalloc()
210 regcache->register_valid_p in regcache_xmalloc()
212 regcache->readonly_p = 1; in regcache_xmalloc()
213 return regcache; in regcache_xmalloc()
217 regcache_xfree (struct regcache *regcache) in regcache_xfree() argument
219 if (regcache == NULL) in regcache_xfree()
221 xfree (regcache->registers); in regcache_xfree()
222 xfree (regcache->register_valid_p); in regcache_xfree()
223 xfree (regcache); in regcache_xfree()
233 make_cleanup_regcache_xfree (struct regcache *regcache) in make_cleanup_regcache_xfree() argument
235 return make_cleanup (do_regcache_xfree, regcache); in make_cleanup_regcache_xfree()
241 get_regcache_arch (const struct regcache *regcache) in get_regcache_arch() argument
243 return regcache->descr->gdbarch; in get_regcache_arch()
249 register_buffer (const struct regcache *regcache, int regnum) in register_buffer() argument
251 return regcache->registers + regcache->descr->register_offset[regnum]; in register_buffer()
255 regcache_save (struct regcache *dst, regcache_cooked_read_ftype *cooked_read, in regcache_save()
288 regcache_restore (struct regcache *dst, in regcache_restore()
316 struct regcache *regcache = src; in do_cooked_read() local
317 if (!regcache->register_valid_p[regnum] && regcache->readonly_p) in do_cooked_read()
322 regcache_cooked_read (regcache, regnum, buf); in do_cooked_read()
328 regcache_cpy (struct regcache *dst, struct regcache *src) in regcache_cpy()
345 regcache_cpy_no_passthrough (struct regcache *dst, struct regcache *src) in regcache_cpy_no_passthrough()
359 struct regcache *
360 regcache_dup (struct regcache *src) in regcache_dup()
362 struct regcache *newbuf; in regcache_dup()
369 struct regcache *
370 regcache_dup_no_passthrough (struct regcache *src) in regcache_dup_no_passthrough()
372 struct regcache *newbuf; in regcache_dup_no_passthrough()
380 regcache_valid_p (struct regcache *regcache, int regnum) in regcache_valid_p() argument
382 gdb_assert (regcache != NULL); in regcache_valid_p()
383 gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers); in regcache_valid_p()
384 return regcache->register_valid_p[regnum]; in regcache_valid_p()
388 deprecated_grub_regcache_for_registers (struct regcache *regcache) in deprecated_grub_regcache_for_registers() argument
390 return regcache->registers; in deprecated_grub_regcache_for_registers()
396 struct regcache *current_regcache;
599 regcache_raw_read (struct regcache *regcache, int regnum, void *buf) in regcache_raw_read() argument
601 gdb_assert (regcache != NULL && buf != NULL); in regcache_raw_read()
602 gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers); in regcache_raw_read()
607 if (!regcache->readonly_p) in regcache_raw_read()
609 gdb_assert (regcache == current_regcache); in regcache_raw_read()
628 memcpy (buf, register_buffer (regcache, regnum), in regcache_raw_read()
629 regcache->descr->sizeof_register[regnum]); in regcache_raw_read()
633 regcache_raw_read_signed (struct regcache *regcache, int regnum, LONGEST *val) in regcache_raw_read_signed() argument
636 gdb_assert (regcache != NULL); in regcache_raw_read_signed()
637 gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers); in regcache_raw_read_signed()
638 buf = alloca (regcache->descr->sizeof_register[regnum]); in regcache_raw_read_signed()
639 regcache_raw_read (regcache, regnum, buf); in regcache_raw_read_signed()
641 regcache->descr->sizeof_register[regnum]); in regcache_raw_read_signed()
645 regcache_raw_read_unsigned (struct regcache *regcache, int regnum, in regcache_raw_read_unsigned() argument
649 gdb_assert (regcache != NULL); in regcache_raw_read_unsigned()
650 gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers); in regcache_raw_read_unsigned()
651 buf = alloca (regcache->descr->sizeof_register[regnum]); in regcache_raw_read_unsigned()
652 regcache_raw_read (regcache, regnum, buf); in regcache_raw_read_unsigned()
654 regcache->descr->sizeof_register[regnum]); in regcache_raw_read_unsigned()
658 regcache_raw_write_signed (struct regcache *regcache, int regnum, LONGEST val) in regcache_raw_write_signed() argument
661 gdb_assert (regcache != NULL); in regcache_raw_write_signed()
662 gdb_assert (regnum >=0 && regnum < regcache->descr->nr_raw_registers); in regcache_raw_write_signed()
663 buf = alloca (regcache->descr->sizeof_register[regnum]); in regcache_raw_write_signed()
664 store_signed_integer (buf, regcache->descr->sizeof_register[regnum], val); in regcache_raw_write_signed()
665 regcache_raw_write (regcache, regnum, buf); in regcache_raw_write_signed()
669 regcache_raw_write_unsigned (struct regcache *regcache, int regnum, in regcache_raw_write_unsigned() argument
673 gdb_assert (regcache != NULL); in regcache_raw_write_unsigned()
674 gdb_assert (regnum >=0 && regnum < regcache->descr->nr_raw_registers); in regcache_raw_write_unsigned()
675 buf = alloca (regcache->descr->sizeof_register[regnum]); in regcache_raw_write_unsigned()
676 store_unsigned_integer (buf, regcache->descr->sizeof_register[regnum], val); in regcache_raw_write_unsigned()
677 regcache_raw_write (regcache, regnum, buf); in regcache_raw_write_unsigned()
689 regcache_cooked_read (struct regcache *regcache, int regnum, void *buf) in regcache_cooked_read() argument
692 gdb_assert (regnum < regcache->descr->nr_cooked_registers); in regcache_cooked_read()
693 if (regnum < regcache->descr->nr_raw_registers) in regcache_cooked_read()
694 regcache_raw_read (regcache, regnum, buf); in regcache_cooked_read()
695 else if (regcache->readonly_p in regcache_cooked_read()
696 && regnum < regcache->descr->nr_cooked_registers in regcache_cooked_read()
697 && regcache->register_valid_p[regnum]) in regcache_cooked_read()
699 memcpy (buf, register_buffer (regcache, regnum), in regcache_cooked_read()
700 regcache->descr->sizeof_register[regnum]); in regcache_cooked_read()
702 gdbarch_pseudo_register_read (regcache->descr->gdbarch, regcache, in regcache_cooked_read()
707 regcache_cooked_read_signed (struct regcache *regcache, int regnum, in regcache_cooked_read_signed() argument
711 gdb_assert (regcache != NULL); in regcache_cooked_read_signed()
712 gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_cooked_registers); in regcache_cooked_read_signed()
713 buf = alloca (regcache->descr->sizeof_register[regnum]); in regcache_cooked_read_signed()
714 regcache_cooked_read (regcache, regnum, buf); in regcache_cooked_read_signed()
716 regcache->descr->sizeof_register[regnum]); in regcache_cooked_read_signed()
720 regcache_cooked_read_unsigned (struct regcache *regcache, int regnum, in regcache_cooked_read_unsigned() argument
724 gdb_assert (regcache != NULL); in regcache_cooked_read_unsigned()
725 gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_cooked_registers); in regcache_cooked_read_unsigned()
726 buf = alloca (regcache->descr->sizeof_register[regnum]); in regcache_cooked_read_unsigned()
727 regcache_cooked_read (regcache, regnum, buf); in regcache_cooked_read_unsigned()
729 regcache->descr->sizeof_register[regnum]); in regcache_cooked_read_unsigned()
733 regcache_cooked_write_signed (struct regcache *regcache, int regnum, in regcache_cooked_write_signed() argument
737 gdb_assert (regcache != NULL); in regcache_cooked_write_signed()
738 gdb_assert (regnum >=0 && regnum < regcache->descr->nr_cooked_registers); in regcache_cooked_write_signed()
739 buf = alloca (regcache->descr->sizeof_register[regnum]); in regcache_cooked_write_signed()
740 store_signed_integer (buf, regcache->descr->sizeof_register[regnum], val); in regcache_cooked_write_signed()
741 regcache_cooked_write (regcache, regnum, buf); in regcache_cooked_write_signed()
745 regcache_cooked_write_unsigned (struct regcache *regcache, int regnum, in regcache_cooked_write_unsigned() argument
749 gdb_assert (regcache != NULL); in regcache_cooked_write_unsigned()
750 gdb_assert (regnum >=0 && regnum < regcache->descr->nr_cooked_registers); in regcache_cooked_write_unsigned()
751 buf = alloca (regcache->descr->sizeof_register[regnum]); in regcache_cooked_write_unsigned()
752 store_unsigned_integer (buf, regcache->descr->sizeof_register[regnum], val); in regcache_cooked_write_unsigned()
753 regcache_cooked_write (regcache, regnum, buf); in regcache_cooked_write_unsigned()
757 regcache_raw_write (struct regcache *regcache, int regnum, const void *buf) in regcache_raw_write() argument
759 gdb_assert (regcache != NULL && buf != NULL); in regcache_raw_write()
760 gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers); in regcache_raw_write()
761 gdb_assert (!regcache->readonly_p); in regcache_raw_write()
769 gdb_assert (regcache == current_regcache); in regcache_raw_write()
778 if (regcache_valid_p (regcache, regnum) in regcache_raw_write()
779 && (memcmp (register_buffer (regcache, regnum), buf, in regcache_raw_write()
780 regcache->descr->sizeof_register[regnum]) == 0)) in regcache_raw_write()
784 memcpy (register_buffer (regcache, regnum), buf, in regcache_raw_write()
785 regcache->descr->sizeof_register[regnum]); in regcache_raw_write()
786 regcache->register_valid_p[regnum] = 1; in regcache_raw_write()
799 regcache_cooked_write (struct regcache *regcache, int regnum, const void *buf) in regcache_cooked_write() argument
802 gdb_assert (regnum < regcache->descr->nr_cooked_registers); in regcache_cooked_write()
803 if (regnum < regcache->descr->nr_raw_registers) in regcache_cooked_write()
804 regcache_raw_write (regcache, regnum, buf); in regcache_cooked_write()
806 gdbarch_pseudo_register_write (regcache->descr->gdbarch, regcache, in regcache_cooked_write()
866 typedef void (regcache_read_ftype) (struct regcache *regcache, int regnum,
868 typedef void (regcache_write_ftype) (struct regcache *regcache, int regnum,
872 regcache_xfer_part (struct regcache *regcache, int regnum, in regcache_xfer_part() argument
876 struct regcache_descr *descr = regcache->descr; in regcache_xfer_part()
889 read (regcache, regnum, reg); in regcache_xfer_part()
900 write (regcache, regnum, reg); in regcache_xfer_part()
905 regcache_raw_read_part (struct regcache *regcache, int regnum, in regcache_raw_read_part() argument
908 struct regcache_descr *descr = regcache->descr; in regcache_raw_read_part()
910 regcache_xfer_part (regcache, regnum, offset, len, buf, NULL, in regcache_raw_read_part()
915 regcache_raw_write_part (struct regcache *regcache, int regnum, in regcache_raw_write_part() argument
918 struct regcache_descr *descr = regcache->descr; in regcache_raw_write_part()
920 regcache_xfer_part (regcache, regnum, offset, len, NULL, buf, in regcache_raw_write_part()
925 regcache_cooked_read_part (struct regcache *regcache, int regnum, in regcache_cooked_read_part() argument
928 struct regcache_descr *descr = regcache->descr; in regcache_cooked_read_part()
930 regcache_xfer_part (regcache, regnum, offset, len, buf, NULL, in regcache_cooked_read_part()
935 regcache_cooked_write_part (struct regcache *regcache, int regnum, in regcache_cooked_write_part() argument
938 struct regcache_descr *descr = regcache->descr; in regcache_cooked_write_part()
940 regcache_xfer_part (regcache, regnum, offset, len, NULL, buf, in regcache_cooked_write_part()
1030 regcache_raw_supply (struct regcache *regcache, int regnum, const void *buf) in regcache_raw_supply() argument
1035 gdb_assert (regcache != NULL); in regcache_raw_supply()
1036 gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers); in regcache_raw_supply()
1037 gdb_assert (!regcache->readonly_p); in regcache_raw_supply()
1041 if (regcache == current_regcache in regcache_raw_supply()
1048 regbuf = register_buffer (regcache, regnum); in regcache_raw_supply()
1049 size = regcache->descr->sizeof_register[regnum]; in regcache_raw_supply()
1057 regcache->register_valid_p[regnum] = 1; in regcache_raw_supply()
1063 regcache_raw_collect (const struct regcache *regcache, int regnum, void *buf) in regcache_raw_collect() argument
1068 gdb_assert (regcache != NULL && buf != NULL); in regcache_raw_collect()
1069 gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers); in regcache_raw_collect()
1071 regbuf = register_buffer (regcache, regnum); in regcache_raw_collect()
1072 size = regcache->descr->sizeof_register[regnum]; in regcache_raw_collect()
1211 regcache_dump (struct regcache *regcache, struct ui_file *file, in regcache_dump() argument
1215 struct gdbarch *gdbarch = regcache->descr->gdbarch; in regcache_dump()
1226 regcache->descr->nr_raw_registers); in regcache_dump()
1228 regcache->descr->nr_cooked_registers); in regcache_dump()
1230 regcache->descr->sizeof_raw_registers); in regcache_dump()
1232 regcache->descr->sizeof_raw_register_valid_p); in regcache_dump()
1237 gdb_assert (regcache->descr->nr_cooked_registers in regcache_dump()
1240 for (regnum = -1; regnum < regcache->descr->nr_cooked_registers; regnum++) in regcache_dump()
1275 regcache->descr->register_offset[regnum]); in regcache_dump()
1276 if (register_offset != regcache->descr->register_offset[regnum] in regcache_dump()
1279 && (regcache->descr->register_offset[regnum] in regcache_dump()
1280 != (regcache->descr->register_offset[regnum - 1] in regcache_dump()
1281 + regcache->descr->sizeof_register[regnum - 1]))) in regcache_dump()
1290 register_offset = (regcache->descr->register_offset[regnum] in regcache_dump()
1291 + regcache->descr->sizeof_register[regnum]); in regcache_dump()
1299 regcache->descr->sizeof_register[regnum]); in regcache_dump()
1309 t = TYPE_NAME (register_type (regcache->descr->gdbarch, regnum)); in regcache_dump()
1334 else if (regnum >= regcache->descr->nr_raw_registers) in regcache_dump()
1336 else if (!regcache_valid_p (regcache, regnum)) in regcache_dump()
1340 regcache_raw_read (regcache, regnum, buf); in regcache_dump()
1343 regcache->descr->sizeof_register[regnum]); in regcache_dump()
1354 regcache_cooked_read (regcache, regnum, buf); in regcache_dump()
1357 regcache->descr->sizeof_register[regnum]); in regcache_dump()