aboutsummaryrefslogtreecommitdiff
path: root/gdb/m68k-tdep.c
diff options
context:
space:
mode:
authorStan Shebs <shebs@codesourcery.com>1999-05-05 14:45:51 +0000
committerStan Shebs <shebs@codesourcery.com>1999-05-05 14:45:51 +0000
commitb83266a0e1813b7f4891d5d6b0ed6b7302a3fe98 (patch)
treec59a94fbe917e0839329b872139198c2a7a05ab1 /gdb/m68k-tdep.c
parente1346c8d0969dad58ddc13c9c741cb0f4e6345a5 (diff)
downloadgdb-b83266a0e1813b7f4891d5d6b0ed6b7302a3fe98.zip
gdb-b83266a0e1813b7f4891d5d6b0ed6b7302a3fe98.tar.gz
gdb-b83266a0e1813b7f4891d5d6b0ed6b7302a3fe98.tar.bz2
import gdb-19990504 snapshot
Diffstat (limited to 'gdb/m68k-tdep.c')
-rw-r--r--gdb/m68k-tdep.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c
index c751604..56e5552 100644
--- a/gdb/m68k-tdep.c
+++ b/gdb/m68k-tdep.c
@@ -26,6 +26,53 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "inferior.h"
+/* The only reason this is here is the tm-altos.h reference below. It
+ was moved back here from tm-m68k.h. FIXME? */
+
+extern CORE_ADDR
+altos_skip_prologue (pc)
+ CORE_ADDR 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 */
+ return pc;
+}
+
+/* The only reason this is here is the tm-isi.h reference below. It
+ was moved back here from tm-m68k.h. FIXME? */
+
+extern CORE_ADDR
+isi_skip_prologue (pc)
+ CORE_ADDR 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 */
+ return pc;
+}
+
+
/* Push an empty stack frame, to record the current PC, etc. */
void