Lines Matching refs:regnum

159 register_type (struct gdbarch *gdbarch, int regnum)  in register_type()  argument
163 gdb_assert (regnum >= 0 && regnum < descr->nr_cooked_registers); in register_type()
164 return descr->register_type[regnum]; in register_type()
171 register_size (struct gdbarch *gdbarch, int regnum) in register_size() argument
176 gdb_assert (regnum >= 0 in register_size()
177 && regnum < (gdbarch_num_regs (gdbarch) in register_size()
179 size = descr->sizeof_register[regnum]; in register_size()
287 register_buffer (const struct regcache *regcache, int regnum) in register_buffer() argument
289 return regcache->registers + regcache->descr->register_offset[regnum]; in register_buffer()
298 int regnum; in regcache_save() local
312 for (regnum = 0; regnum < dst->descr->nr_cooked_registers; regnum++) in regcache_save()
314 if (gdbarch_register_reggroup_p (gdbarch, regnum, save_reggroup)) in regcache_save()
316 enum register_status status = cooked_read (src, regnum, buf); in regcache_save()
319 memcpy (register_buffer (dst, regnum), buf, in regcache_save()
320 register_size (gdbarch, regnum)); in regcache_save()
325 memset (register_buffer (dst, regnum), 0, in regcache_save()
326 register_size (gdbarch, regnum)); in regcache_save()
328 dst->register_status[regnum] = status; in regcache_save()
340 int regnum; in regcache_restore() local
349 for (regnum = 0; regnum < dst->descr->nr_cooked_registers; regnum++) in regcache_restore()
351 if (gdbarch_register_reggroup_p (gdbarch, regnum, restore_reggroup)) in regcache_restore()
355 status = cooked_read (cooked_read_context, regnum, buf); in regcache_restore()
357 regcache_cooked_write (dst, regnum, buf); in regcache_restore()
363 do_cooked_read (void *src, int regnum, gdb_byte *buf) in do_cooked_read() argument
367 return regcache_cooked_read (regcache, regnum, buf); in do_cooked_read()
414 regcache_register_status (const struct regcache *regcache, int regnum) in regcache_register_status() argument
417 gdb_assert (regnum >= 0); in regcache_register_status()
419 gdb_assert (regnum < regcache->descr->nr_cooked_registers); in regcache_register_status()
421 gdb_assert (regnum < regcache->descr->nr_raw_registers); in regcache_register_status()
423 return regcache->register_status[regnum]; in regcache_register_status()
427 regcache_invalidate (struct regcache *regcache, int regnum) in regcache_invalidate() argument
430 gdb_assert (regnum >= 0); in regcache_invalidate()
432 gdb_assert (regnum < regcache->descr->nr_raw_registers); in regcache_invalidate()
433 regcache->register_status[regnum] = REG_UNKNOWN; in regcache_invalidate()
598 regcache_raw_read (struct regcache *regcache, int regnum, gdb_byte *buf) in regcache_raw_read() argument
601 gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers); in regcache_raw_read()
607 && regcache_register_status (regcache, regnum) == REG_UNKNOWN) in regcache_raw_read()
612 target_fetch_registers (regcache, regnum); in regcache_raw_read()
618 if (regcache->register_status[regnum] == REG_UNKNOWN) in regcache_raw_read()
619 regcache->register_status[regnum] = REG_UNAVAILABLE; in regcache_raw_read()
622 if (regcache->register_status[regnum] != REG_VALID) in regcache_raw_read()
623 memset (buf, 0, regcache->descr->sizeof_register[regnum]); in regcache_raw_read()
625 memcpy (buf, register_buffer (regcache, regnum), in regcache_raw_read()
626 regcache->descr->sizeof_register[regnum]); in regcache_raw_read()
628 return regcache->register_status[regnum]; in regcache_raw_read()
632 regcache_raw_read_signed (struct regcache *regcache, int regnum, LONGEST *val) in regcache_raw_read_signed() argument
638 gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers); in regcache_raw_read_signed()
639 buf = alloca (regcache->descr->sizeof_register[regnum]); in regcache_raw_read_signed()
640 status = regcache_raw_read (regcache, regnum, buf); in regcache_raw_read_signed()
643 (buf, regcache->descr->sizeof_register[regnum], in regcache_raw_read_signed()
651 regcache_raw_read_unsigned (struct regcache *regcache, int regnum, in regcache_raw_read_unsigned() argument
658 gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers); in regcache_raw_read_unsigned()
659 buf = alloca (regcache->descr->sizeof_register[regnum]); in regcache_raw_read_unsigned()
660 status = regcache_raw_read (regcache, regnum, buf); in regcache_raw_read_unsigned()
663 (buf, regcache->descr->sizeof_register[regnum], in regcache_raw_read_unsigned()
671 regcache_raw_write_signed (struct regcache *regcache, int regnum, LONGEST val) in regcache_raw_write_signed() argument
676 gdb_assert (regnum >=0 && regnum < regcache->descr->nr_raw_registers); in regcache_raw_write_signed()
677 buf = alloca (regcache->descr->sizeof_register[regnum]); in regcache_raw_write_signed()
678 store_signed_integer (buf, regcache->descr->sizeof_register[regnum], in regcache_raw_write_signed()
680 regcache_raw_write (regcache, regnum, buf); in regcache_raw_write_signed()
684 regcache_raw_write_unsigned (struct regcache *regcache, int regnum, in regcache_raw_write_unsigned() argument
690 gdb_assert (regnum >=0 && regnum < regcache->descr->nr_raw_registers); in regcache_raw_write_unsigned()
691 buf = alloca (regcache->descr->sizeof_register[regnum]); in regcache_raw_write_unsigned()
692 store_unsigned_integer (buf, regcache->descr->sizeof_register[regnum], in regcache_raw_write_unsigned()
694 regcache_raw_write (regcache, regnum, buf); in regcache_raw_write_unsigned()
698 regcache_cooked_read (struct regcache *regcache, int regnum, gdb_byte *buf) in regcache_cooked_read() argument
700 gdb_assert (regnum >= 0); in regcache_cooked_read()
701 gdb_assert (regnum < regcache->descr->nr_cooked_registers); in regcache_cooked_read()
702 if (regnum < regcache->descr->nr_raw_registers) in regcache_cooked_read()
703 return regcache_raw_read (regcache, regnum, buf); in regcache_cooked_read()
705 && regcache->register_status[regnum] != REG_UNKNOWN) in regcache_cooked_read()
709 if (regcache->register_status[regnum] == REG_VALID) in regcache_cooked_read()
710 memcpy (buf, register_buffer (regcache, regnum), in regcache_cooked_read()
711 regcache->descr->sizeof_register[regnum]); in regcache_cooked_read()
713 memset (buf, 0, regcache->descr->sizeof_register[regnum]); in regcache_cooked_read()
715 return regcache->register_status[regnum]; in regcache_cooked_read()
725 regcache, regnum); in regcache_cooked_read()
728 regcache->descr->sizeof_register[regnum]); in regcache_cooked_read()
731 memset (buf, 0, regcache->descr->sizeof_register[regnum]); in regcache_cooked_read()
741 regnum, buf); in regcache_cooked_read()
745 regcache_cooked_read_value (struct regcache *regcache, int regnum) in regcache_cooked_read_value() argument
747 gdb_assert (regnum >= 0); in regcache_cooked_read_value()
748 gdb_assert (regnum < regcache->descr->nr_cooked_registers); in regcache_cooked_read_value()
750 if (regnum < regcache->descr->nr_raw_registers in regcache_cooked_read_value()
752 && regcache->register_status[regnum] != REG_UNKNOWN) in regcache_cooked_read_value()
758 regnum)); in regcache_cooked_read_value()
760 VALUE_REGNUM (result) = regnum; in regcache_cooked_read_value()
765 if (regcache_cooked_read (regcache, regnum, in regcache_cooked_read_value()
774 regcache, regnum); in regcache_cooked_read_value()
778 regcache_cooked_read_signed (struct regcache *regcache, int regnum, in regcache_cooked_read_signed() argument
785 gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_cooked_registers); in regcache_cooked_read_signed()
786 buf = alloca (regcache->descr->sizeof_register[regnum]); in regcache_cooked_read_signed()
787 status = regcache_cooked_read (regcache, regnum, buf); in regcache_cooked_read_signed()
790 (buf, regcache->descr->sizeof_register[regnum], in regcache_cooked_read_signed()
798 regcache_cooked_read_unsigned (struct regcache *regcache, int regnum, in regcache_cooked_read_unsigned() argument
805 gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_cooked_registers); in regcache_cooked_read_unsigned()
806 buf = alloca (regcache->descr->sizeof_register[regnum]); in regcache_cooked_read_unsigned()
807 status = regcache_cooked_read (regcache, regnum, buf); in regcache_cooked_read_unsigned()
810 (buf, regcache->descr->sizeof_register[regnum], in regcache_cooked_read_unsigned()
818 regcache_cooked_write_signed (struct regcache *regcache, int regnum, in regcache_cooked_write_signed() argument
824 gdb_assert (regnum >=0 && regnum < regcache->descr->nr_cooked_registers); in regcache_cooked_write_signed()
825 buf = alloca (regcache->descr->sizeof_register[regnum]); in regcache_cooked_write_signed()
826 store_signed_integer (buf, regcache->descr->sizeof_register[regnum], in regcache_cooked_write_signed()
828 regcache_cooked_write (regcache, regnum, buf); in regcache_cooked_write_signed()
832 regcache_cooked_write_unsigned (struct regcache *regcache, int regnum, in regcache_cooked_write_unsigned() argument
838 gdb_assert (regnum >=0 && regnum < regcache->descr->nr_cooked_registers); in regcache_cooked_write_unsigned()
839 buf = alloca (regcache->descr->sizeof_register[regnum]); in regcache_cooked_write_unsigned()
840 store_unsigned_integer (buf, regcache->descr->sizeof_register[regnum], in regcache_cooked_write_unsigned()
842 regcache_cooked_write (regcache, regnum, buf); in regcache_cooked_write_unsigned()
846 regcache_raw_write (struct regcache *regcache, int regnum, in regcache_raw_write() argument
852 gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers); in regcache_raw_write()
857 if (gdbarch_cannot_store_register (get_regcache_arch (regcache), regnum)) in regcache_raw_write()
862 if (regcache_register_status (regcache, regnum) == REG_VALID in regcache_raw_write()
863 && (memcmp (register_buffer (regcache, regnum), buf, in regcache_raw_write()
864 regcache->descr->sizeof_register[regnum]) == 0)) in regcache_raw_write()
871 memcpy (register_buffer (regcache, regnum), buf, in regcache_raw_write()
872 regcache->descr->sizeof_register[regnum]); in regcache_raw_write()
873 regcache->register_status[regnum] = REG_VALID; in regcache_raw_write()
874 target_store_registers (regcache, regnum); in regcache_raw_write()
880 regcache_cooked_write (struct regcache *regcache, int regnum, in regcache_cooked_write() argument
883 gdb_assert (regnum >= 0); in regcache_cooked_write()
884 gdb_assert (regnum < regcache->descr->nr_cooked_registers); in regcache_cooked_write()
885 if (regnum < regcache->descr->nr_raw_registers) in regcache_cooked_write()
886 regcache_raw_write (regcache, regnum, buf); in regcache_cooked_write()
889 regnum, buf); in regcache_cooked_write()
895 typedef void (regcache_read_ftype) (struct regcache *regcache, int regnum,
897 typedef void (regcache_write_ftype) (struct regcache *regcache, int regnum,
901 regcache_xfer_part (struct regcache *regcache, int regnum, in regcache_xfer_part() argument
904 int regnum, in regcache_xfer_part()
906 void (*write) (struct regcache *regcache, int regnum, in regcache_xfer_part()
912 gdb_assert (offset >= 0 && offset <= descr->sizeof_register[regnum]); in regcache_xfer_part()
913 gdb_assert (len >= 0 && offset + len <= descr->sizeof_register[regnum]); in regcache_xfer_part()
920 || offset + len < descr->sizeof_register[regnum]) in regcache_xfer_part()
925 status = read (regcache, regnum, reg); in regcache_xfer_part()
938 write (regcache, regnum, reg); in regcache_xfer_part()
945 regcache_raw_read_part (struct regcache *regcache, int regnum, in regcache_raw_read_part() argument
950 gdb_assert (regnum >= 0 && regnum < descr->nr_raw_registers); in regcache_raw_read_part()
951 return regcache_xfer_part (regcache, regnum, offset, len, buf, NULL, in regcache_raw_read_part()
956 regcache_raw_write_part (struct regcache *regcache, int regnum, in regcache_raw_write_part() argument
961 gdb_assert (regnum >= 0 && regnum < descr->nr_raw_registers); in regcache_raw_write_part()
962 regcache_xfer_part (regcache, regnum, offset, len, NULL, buf, in regcache_raw_write_part()
967 regcache_cooked_read_part (struct regcache *regcache, int regnum, in regcache_cooked_read_part() argument
972 gdb_assert (regnum >= 0 && regnum < descr->nr_cooked_registers); in regcache_cooked_read_part()
973 return regcache_xfer_part (regcache, regnum, offset, len, buf, NULL, in regcache_cooked_read_part()
978 regcache_cooked_write_part (struct regcache *regcache, int regnum, in regcache_cooked_write_part() argument
983 gdb_assert (regnum >= 0 && regnum < descr->nr_cooked_registers); in regcache_cooked_write_part()
984 regcache_xfer_part (regcache, regnum, offset, len, NULL, buf, in regcache_cooked_write_part()
991 regcache_raw_supply (struct regcache *regcache, int regnum, const void *buf) in regcache_raw_supply() argument
997 gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers); in regcache_raw_supply()
1000 regbuf = register_buffer (regcache, regnum); in regcache_raw_supply()
1001 size = regcache->descr->sizeof_register[regnum]; in regcache_raw_supply()
1006 regcache->register_status[regnum] = REG_VALID; in regcache_raw_supply()
1014 regcache->register_status[regnum] = REG_UNAVAILABLE; in regcache_raw_supply()
1021 regcache_raw_collect (const struct regcache *regcache, int regnum, void *buf) in regcache_raw_collect() argument
1027 gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers); in regcache_raw_collect()
1029 regbuf = register_buffer (regcache, regnum); in regcache_raw_collect()
1030 size = regcache->descr->sizeof_register[regnum]; in regcache_raw_collect()
1127 int regnum; in regcache_dump() local
1154 for (regnum = -1; regnum < regcache->descr->nr_cooked_registers; regnum++) in regcache_dump()
1157 if (regnum < 0) in regcache_dump()
1161 const char *p = gdbarch_register_name (gdbarch, regnum); in regcache_dump()
1171 if (regnum < 0) in regcache_dump()
1174 fprintf_unfiltered (file, " %4d", regnum); in regcache_dump()
1177 if (regnum < 0) in regcache_dump()
1179 else if (regnum < gdbarch_num_regs (gdbarch)) in regcache_dump()
1180 fprintf_unfiltered (file, " %4d", regnum); in regcache_dump()
1183 (regnum - gdbarch_num_regs (gdbarch))); in regcache_dump()
1186 if (regnum < 0) in regcache_dump()
1191 regcache->descr->register_offset[regnum]); in regcache_dump()
1192 if (register_offset != regcache->descr->register_offset[regnum] in regcache_dump()
1193 || (regnum > 0 in regcache_dump()
1194 && (regcache->descr->register_offset[regnum] in regcache_dump()
1195 != (regcache->descr->register_offset[regnum - 1] in regcache_dump()
1196 + regcache->descr->sizeof_register[regnum - 1]))) in regcache_dump()
1205 register_offset = (regcache->descr->register_offset[regnum] in regcache_dump()
1206 + regcache->descr->sizeof_register[regnum]); in regcache_dump()
1210 if (regnum < 0) in regcache_dump()
1214 regcache->descr->sizeof_register[regnum]); in regcache_dump()
1220 if (regnum < 0) in regcache_dump()
1226 t = TYPE_NAME (register_type (regcache->descr->gdbarch, regnum)); in regcache_dump()
1250 if (regnum < 0) in regcache_dump()
1252 else if (regnum >= regcache->descr->nr_raw_registers) in regcache_dump()
1254 else if (regcache_register_status (regcache, regnum) == REG_UNKNOWN) in regcache_dump()
1256 else if (regcache_register_status (regcache, regnum) == REG_UNAVAILABLE) in regcache_dump()
1260 regcache_raw_read (regcache, regnum, buf); in regcache_dump()
1264 regcache->descr->sizeof_register[regnum]); in regcache_dump()
1271 if (regnum < 0) in regcache_dump()
1277 status = regcache_cooked_read (regcache, regnum, buf); in regcache_dump()
1287 regcache->descr->sizeof_register[regnum]); in regcache_dump()
1295 if (regnum < 0) in regcache_dump()
1306 if (gdbarch_register_reggroup_p (gdbarch, regnum, group)) in regcache_dump()
1319 if (regnum < 0) in regcache_dump()
1323 else if (regnum < regcache->descr->nr_raw_registers) in regcache_dump()
1327 if (remote_register_number_and_offset (get_regcache_arch (regcache), regnum, in regcache_dump()