aboutsummaryrefslogtreecommitdiff
path: root/gdb/tm-isi.h
diff options
context:
space:
mode:
authorFred Fish <fnf@specifix.com>1991-11-19 01:54:52 +0000
committerFred Fish <fnf@specifix.com>1991-11-19 01:54:52 +0000
commitb6666a5d6772e257ee5d08781f2bdcd460df33e8 (patch)
treedc4d9a6cffc76d14c11d439dc1e667a6e6243064 /gdb/tm-isi.h
parent5e2569e653fc05fde0084a5f9b1873d15352f033 (diff)
downloadgdb-b6666a5d6772e257ee5d08781f2bdcd460df33e8.zip
gdb-b6666a5d6772e257ee5d08781f2bdcd460df33e8.tar.gz
gdb-b6666a5d6772e257ee5d08781f2bdcd460df33e8.tar.bz2
Add generic m68k function prologue skipping support and expand the
skipping to include movem and fmovem.
Diffstat (limited to 'gdb/tm-isi.h')
-rw-r--r--gdb/tm-isi.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/gdb/tm-isi.h b/gdb/tm-isi.h
index c235902..e4e6492 100644
--- a/gdb/tm-isi.h
+++ b/gdb/tm-isi.h
@@ -139,4 +139,23 @@ retry: \
(frame_saved_regs).regs[PC_REGNUM] = (frame_info)->frame + 4; \
}
+/* The only reason this is here is the tm-isi.h reference below. It
+ was moved back here from tm-68k.h. FIXME? */
+
+#define SKIP_PROLOGUE(pc) \
+{ register int op = read_memory_integer (pc, 2); \
+ if (op == 0047126) \
+ pc += 4; /* Skip link #word */ \
+ else if (op == 0044016) \
+ pc += 6; /* Skip link #long */ \
+ /* Not sure why branches are here. */ \
+ /* From tm-isi.h, tm-altos.h */ \
+ else if (op == 0060000) \
+ pc += 4; /* Skip bra #word */ \
+ else if (op == 00600377) \
+ pc += 6; /* skip bra #long */ \
+ else if ((op & 0177400) == 0060000) \
+ pc += 2; /* skip bra #char */ \
+}
+
#include "tm-68k.h"