+Fri Jul 9 09:47:02 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
+
+ * defs.h, remote-eb.c (TM_FILE_OVERRIDE): Remove it.
+ * mips-tdep.c (init_extra_frame_info): Set proper fci->frame if pc
+ is at the start of the dummy code.
+
Thu Jul 8 14:48:54 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* sparc-tdep.c (sparc_push_dummy_frame): Skip all the do_save_insn
extern int
input_from_terminal_p PARAMS ((void));
-extern int
-catch_errors PARAMS ((int (*) (char *), char *, char *));
-
/* From printcmd.c */
extern void
extern NORETURN void /* Does not return to the caller. */
nomem PARAMS ((long));
+/* Reasons for calling return_to_top_level. */
+enum return_reason {
+ /* User interrupt. */
+ RETURN_QUIT,
+
+ /* Any other error. */
+ RETURN_ERROR
+};
+
+#define RETURN_MASK_QUIT (1 << (int)RETURN_QUIT)
+#define RETURN_MASK_ERROR (1 << (int)RETURN_ERROR)
+#define RETURN_MASK_ALL (RETURN_MASK_QUIT | RETURN_MASK_ERROR)
+typedef int return_mask;
+
extern NORETURN void /* Does not return to the caller. */
-return_to_top_level PARAMS ((void));
+return_to_top_level PARAMS ((enum return_reason));
+
+extern int catch_errors PARAMS ((int (*) (char *), void *, char *,
+ return_mask));
extern void
warning_setup PARAMS ((void));
#define LITTLE_ENDIAN 1234
#endif
-/* Target-system-dependent parameters for GDB.
-
- The standard thing is to include defs.h. However, files that are
- specific to a particular target can define TM_FILE_OVERRIDE before
- including defs.h, then can include any particular tm-file they desire. */
+/* Target-system-dependent parameters for GDB. */
/* Target machine definition. This will be a symlink to one of the
tm-*.h files, built by the `configure' script. */
-#ifndef TM_FILE_OVERRIDE
#include "tm.h"
-#endif
/* The bit byte-order has to do just with numbering of bits in
debugging symbols and such. Conceptually, it's quite separate
/* Fixup frame-pointer - only needed for top frame */
/* This may not be quite right, if proc has a real frame register */
- if (fci->pc == PROC_LOW_ADDR(proc_desc))
+ if (fci->pc == PROC_LOW_ADDR(proc_desc) && !PROC_DESC_IS_DUMMY(proc_desc))
fci->frame = read_register (SP_REGNUM);
else
fci->frame = READ_FRAME_REG(fci, PROC_FRAME_REG(proc_desc))
#endif
return -1;
}
-
-\f
-/* Bad floats: Returns 0 if P points to a valid IEEE floating point number,
- 1 if P points to a denormalized number or a NaN. LEN says whether this is
- a single-precision or double-precision float */
-#define SINGLE_EXP_BITS 8
-#define DOUBLE_EXP_BITS 11
-int
-isa_NAN(p, len)
- int *p, len;
-{
- int exponent;
- if (len == 4)
- {
- exponent = *p;
- exponent = exponent << 1 >> (32 - SINGLE_EXP_BITS - 1);
- return ((exponent == -1) || (exponent == 0 && ((*p << 1) != 0)));
- }
- else if (len == 8)
- {
-#if TARGET_BYTE_ORDER == BIG_ENDIAN
- exponent = *p;
-#else
- exponent = *(p+1);
-#endif
- exponent = exponent << 1 >> (32 - DOUBLE_EXP_BITS - 1);
- return ((exponent == -1) || (! exponent && *p * *(p+1)));
- }
- else return 1;
-}
\f
/* To skip prologues, I use this predicate. Returns either PC
itself if the code at PC does not look like a function prologue;
has PC/NFS, so it can access the same executables that gdb can,
over the net in real time. */
-#define TM_FILE_OVERRIDE
#include "defs.h"
#include <string.h>
-#include "a29k/tm-a29k.h"
#include "inferior.h"
#include "bfd.h"