From 2fcdae93aafbc5de1a370169ed673cc75e17d022 Mon Sep 17 00:00:00 2001 From: Peter Schauer Date: Fri, 9 Jul 1993 16:50:43 +0000 Subject: [PATCH] * 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. --- gdb/ChangeLog | 6 ++++++ gdb/defs.h | 30 +++++++++++++++++++----------- gdb/mips-tdep.c | 32 +------------------------------- gdb/remote-eb.c | 2 -- 4 files changed, 26 insertions(+), 44 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 086d7cd241b..138d5feed07 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +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 diff --git a/gdb/defs.h b/gdb/defs.h index 9dae5e7ec79..203ffe0a6e2 100644 --- a/gdb/defs.h +++ b/gdb/defs.h @@ -295,9 +295,6 @@ batch_mode PARAMS ((void)); extern int input_from_terminal_p PARAMS ((void)); -extern int -catch_errors PARAMS ((int (*) (char *), char *, char *)); - /* From printcmd.c */ extern void @@ -626,8 +623,25 @@ exit PARAMS ((int)); /* 4.10.4.3 */ 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)); @@ -776,18 +790,12 @@ strerror PARAMS ((int)); /* 4.11.6.2 */ #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 diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c index b86fea90cd6..8da1f8a61e6 100644 --- a/gdb/mips-tdep.c +++ b/gdb/mips-tdep.c @@ -331,7 +331,7 @@ init_extra_frame_info(fci) /* 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)) @@ -688,36 +688,6 @@ mips_frame_num_args(fip) #endif return -1; } - - -/* 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; -} /* To skip prologues, I use this predicate. Returns either PC itself if the code at PC does not look like a function prologue; diff --git a/gdb/remote-eb.c b/gdb/remote-eb.c index cdf12dfedc3..6e36b7edac5 100644 --- a/gdb/remote-eb.c +++ b/gdb/remote-eb.c @@ -25,10 +25,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ 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 -#include "a29k/tm-a29k.h" #include "inferior.h" #include "bfd.h" -- 2.30.2