- *(regp + regi) =
- extract_signed_integer (&deprecated_registers[DEPRECATED_REGISTER_BYTE (regi)],
- DEPRECATED_REGISTER_RAW_SIZE (regi));
-
- if ((regno == -1) || (regno == PC_REGNUM))
- *(regp + CTX_EPC) =
- extract_signed_integer (&deprecated_registers[DEPRECATED_REGISTER_BYTE (mips_regnum (current_gdbarch)->pc)],
- DEPRECATED_REGISTER_RAW_SIZE (mips_regnum (current_gdbarch)->pc));
-
- if ((regno == -1) || (regno == mips_regnum (current_gdbarch)->cause))
- *(regp + CTX_CAUSE) =
- extract_signed_integer (&deprecated_registers[DEPRECATED_REGISTER_BYTE (mips_regnum (current_gdbarch)->cause)],
- DEPRECATED_REGISTER_RAW_SIZE (mips_regnum (current_gdbarch)->cause));
-
- if ((regno == -1)
- || (regno == mips_regnum (current_gdbarch)->hi))
- *(regp + CTX_MDHI) =
- extract_signed_integer (&deprecated_registers[DEPRECATED_REGISTER_BYTE (mips_regnum (current_gdbarch)->hi)],
- DEPRECATED_REGISTER_RAW_SIZE (mips_regnum (current_gdbarch)->hi));
-
- if ((regno == -1) || (regno == mips_regnum (current_gdbarch)->lo))
- *(regp + CTX_MDLO) =
- extract_signed_integer (&deprecated_registers[DEPRECATED_REGISTER_BYTE (mips_regnum (current_gdbarch)->lo)],
- DEPRECATED_REGISTER_RAW_SIZE (mips_regnum (current_gdbarch)->lo));
+ {
+ size = register_size (gdbarch, regi);
+ regcache_raw_collect (regcache, regi, buf);
+ *(regp + regi) = extract_signed_integer (buf, size, byte_order);
+ }
+
+ if ((regno == -1) || (regno == mips_regnum (gdbarch)->pc))
+ {
+ regi = mips_regnum (gdbarch)->pc;
+ size = register_size (gdbarch, regi);
+ regcache_raw_collect (regcache, regi, buf);
+ *(regp + CTX_EPC) = extract_signed_integer (buf, size, byte_order);
+ }
+
+ if ((regno == -1) || (regno == mips_regnum (gdbarch)->cause))
+ {
+ regi = mips_regnum (gdbarch)->cause;
+ size = register_size (gdbarch, regi);
+ regcache_raw_collect (regcache, regi, buf);
+ *(regp + CTX_CAUSE) = extract_signed_integer (buf, size, byte_order);
+ }
+
+ if ((regno == -1) || (regno == mips_regnum (gdbarch)->hi))
+ {
+ regi = mips_regnum (gdbarch)->hi;
+ size = register_size (gdbarch, regi);
+ regcache_raw_collect (regcache, regi, buf);
+ *(regp + CTX_MDHI) = extract_signed_integer (buf, size, byte_order);
+ }
+
+ if ((regno == -1) || (regno == mips_regnum (gdbarch)->lo))
+ {
+ regi = mips_regnum (gdbarch)->lo;
+ size = register_size (gdbarch, regi);
+ regcache_raw_collect (regcache, regi, buf);
+ *(regp + CTX_MDLO) = extract_signed_integer (buf, size, byte_order);
+ }