summaryrefslogtreecommitdiff
path: root/gdb/sparc64-tdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/sparc64-tdep.c')
-rw-r--r--gdb/sparc64-tdep.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gdb/sparc64-tdep.c b/gdb/sparc64-tdep.c
index b3313df001a..177a7b04b7b 100644
--- a/gdb/sparc64-tdep.c
+++ b/gdb/sparc64-tdep.c
@@ -1205,6 +1205,11 @@ sparc64_supply_gregset (const struct sparc_gregset *gregset,
regs + gregset->r_y_offset, gregset->r_y_size);
regcache_raw_supply (regcache, SPARC64_Y_REGNUM, buf);
}
+
+ if ((regnum == SPARC64_FPRS_REGNUM || regnum == -1)
+ && gregset->r_fprs_offset != -1)
+ regcache_raw_supply (regcache, SPARC64_FPRS_REGNUM,
+ regs + gregset->r_fprs_offset);
}
if (regnum == SPARC_G0_REGNUM || regnum == -1)
@@ -1316,6 +1321,12 @@ sparc64_collect_gregset (const struct sparc_gregset *gregset,
memcpy (regs + gregset->r_y_offset,
buf + 8 - gregset->r_y_size, gregset->r_y_size);
}
+
+ if ((regnum == SPARC64_FPRS_REGNUM || regnum == -1)
+ && gregset->r_fprs_offset != -1)
+ regcache_raw_collect (regcache, SPARC64_FPRS_REGNUM,
+ regs + gregset->r_fprs_offset);
+
}
if ((regnum >= SPARC_G1_REGNUM && regnum <= SPARC_O7_REGNUM) || regnum == -1)