-/* Definitions to make GDB run on a Sequent Symmetry under dynix 3.0,
+/* Target machine definitions for GDB on a Sequent Symmetry under dynix 3.0,
with Weitek 1167 and i387 support.
- Copyright (C) 1986, 1987, 1989, 1991 Free Software Foundation, Inc.
+ Copyright 1986, 1987, 1989, 1991, 1992 Free Software Foundation, Inc.
+ Symmetry version by Jay Vosburgh (uunet!sequent!fubar).
This file is part of GDB.
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-/* Symmetry version by Jay Vosburgh (uunet!sequent!fubar) */
-
/* I don't know if this will work for cross-debugging, even if you do get
a copy of the right include file. */
#include <machine/reg.h>
#define SKIP_PROLOGUE(frompc) {(frompc) = i386_skip_prologue((frompc));}
+extern int
+i386_skip_prologue PARAMS ((int));
+
/* Immediately after a function call, return the saved pc.
Can't always go through the frames for this because on some machines
the new frame is not set up until the new function executes
(REGNUM < 14) ? i387_to_double((FROM), (TO)) : \
bcopy ((FROM), (TO), 4))
+extern void
+i387_to_double PARAMS ((char *, char *));
+
/* Convert data from virtual format for register REGNUM
to raw format for register REGNUM. */
(REGNUM < 14) ? double_to_i387((FROM), (TO)) : \
bcopy ((FROM), (TO), 4))
+extern void
+double_to_i387 PARAMS ((char *, char *));
+
/* Return the GDB type object for the "standard" data type
of data in register N. */
/* FRAME_CHAIN takes a frame's nominal address
and produces the frame's chain-pointer.
- FRAME_CHAIN_COMBINE takes the chain pointer and the frame's nominal address
- and produces the nominal address of the caller frame.
-
However, if FRAME_CHAIN_VALID returns zero,
- it means the given frame is the outermost one and has no caller.
- In that case, FRAME_CHAIN_COMBINE is not used. */
+ it means the given frame is the outermost one and has no caller. */
/* On Symmetry, %ebp points to caller's %ebp, and the return address
- is right on top of that.
-*/
+ is right on top of that. */
#define FRAME_CHAIN(thisframe) \
- (outside_startup_file ((thisframe)->pc) ? \
+ (!inside_entry_file ((thisframe)->pc) ? \
read_memory_integer((thisframe)->frame, 4) :\
0)
#define FRAME_CHAIN_VALID(chain, thisframe) \
(chain != 0)
-#define FRAME_CHAIN_COMBINE(chain, thisframe) (chain)
-
/* Define other aspects of the stack frame. */
/* A macro that tells us whether the function invocation represented
#define FRAME_FIND_SAVED_REGS(frame_info, frame_saved_regs) \
{ i386_frame_find_saved_regs ((frame_info), &(frame_saved_regs)); }
+#ifdef __STDC__ /* Forward decl's for prototypes */
+struct frame_info;
+struct frame_saved_regs;
+#endif
+
+extern void
+i386_frame_find_saved_regs PARAMS ((struct frame_info *,
+ struct frame_saved_regs *));
+
\f
/* Things needed for making the inferior call functions. */
delta = to - from; \
*(int *)((char *)(dummyname) + 1) = delta; \
}
+
+extern void
+print_387_control_word PARAMS ((unsigned int));
+
+extern void
+print_387_status_word PARAMS ((unsigned int));