This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH] m32c-tdep.c: Add virtual_frame_pointer function
- From: Corinna Vinschen <vinschen at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Wed, 28 Jun 2006 15:29:18 +0200
- Subject: [PATCH] m32c-tdep.c: Add virtual_frame_pointer function
- Reply-to: gdb-patches at sourceware dot org
Hi,
the below patch adds a virtual_frame_pointer function to m32c-tdep.c,
to avoid that legacy_virtual_frame_pointer is called from tracepoint.c,
function encode_actions(). The legacy function either expects a
DEPRECATED_FP_REGNUM function, or it expects SP_REGNUM <= NUM_REGS,
which is not the case for the m32c code which includes serious
register banking. The patch avoids all GDB internal errors in the
gdb.trace testsuite and allows to return PASSes for all these testcases,
except a single one (FAIL: gdb.trace/packetlen.exp: setup collect actions).
Ok to apply?
Thanks,
Corinna
* m32c-tdep.c (m32c_virtual_frame_pointer): New function.
(m32c_gdbarch_init): Add set_gdbarch_virtual_frame_pointer call.
Index: m32c-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/m32c-tdep.c,v
retrieving revision 1.1
diff -u -p -r1.1 m32c-tdep.c
--- m32c-tdep.c 20 Apr 2006 23:18:48 -0000 1.1
+++ m32c-tdep.c 28 Jun 2006 13:20:38 -0000
@@ -2475,6 +2475,14 @@ m32c_m16c_pointer_to_address (struct typ
return ptr;
}
+void
+m32c_virtual_frame_pointer (CORE_ADDR pc,
+ int *frame_regnum,
+ LONGEST *frame_offset)
+{
+ *frame_regnum = SP_REGNUM;
+ *frame_offset = 0;
+}
/* Initialization. */
@@ -2539,6 +2547,8 @@ m32c_gdbarch_init (struct gdbarch_info i
/* Trampolines. */
set_gdbarch_skip_trampoline_code (arch, m32c_skip_trampoline_code);
+ set_gdbarch_virtual_frame_pointer (arch, m32c_virtual_frame_pointer);
+
return arch;
}
--
Corinna Vinschen
Cygwin Project Co-Leader
Red Hat