aboutsummaryrefslogtreecommitdiff
path: root/gdb/sparcnbsd-tdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/sparcnbsd-tdep.c')
-rw-r--r--gdb/sparcnbsd-tdep.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/gdb/sparcnbsd-tdep.c b/gdb/sparcnbsd-tdep.c
index b8673b0..d9093b1 100644
--- a/gdb/sparcnbsd-tdep.c
+++ b/gdb/sparcnbsd-tdep.c
@@ -265,21 +265,18 @@ sparc32nbsd_sigtramp_frame_sniffer (struct frame_info *next_frame)
address. */
CORE_ADDR
-sparcnbsd_step_trap (unsigned long insn)
+sparcnbsd_step_trap (struct frame_info *frame, unsigned long insn)
{
if ((X_I (insn) == 0 && X_RS1 (insn) == 0 && X_RS2 (insn) == 0)
|| (X_I (insn) == 1 && X_RS1 (insn) == 0 && (insn & 0x7f) == 0))
{
/* "New" system call. */
- ULONGEST number;
-
- regcache_cooked_read_unsigned (current_regcache,
- SPARC_G1_REGNUM, &number);
+ ULONGEST number = get_frame_register_unsigned (frame, SPARC_G1_REGNUM);
if (number & 0x400)
- return sparc_address_from_register (SPARC_G2_REGNUM);
+ return get_frame_register_unsigned (frame, SPARC_G2_REGNUM);
if (number & 0x800)
- return sparc_address_from_register (SPARC_G7_REGNUM);
+ return get_frame_register_unsigned (frame, SPARC_G7_REGNUM);
}
return 0;