From: Jim Kingdon Date: Thu, 9 Sep 1993 18:33:44 +0000 (+0000) Subject: More gcc lint: X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f46ffb9ebd962cac950b40604900ede5e174afd8;p=binutils-gdb.git More gcc lint: * exec.c (ignore): Return 0. * stack.c (return_command): Fetch lazy value directly, not via VALUE_CONTENTS, to avoid "value computed is not used". * inflow.c (new_tty): Move osigttou inside #if. * remote.c (remote_fetch_registers): If remote reply is short, just note that fact and keep going (reading extra registers as all bits 0). (remote_store_registers): Send number of registers that were found by remote_fetch_registers. * m68k-tdep.c, config/m68k/tm-m68k.h, config/m68k/tm-*.h: Remove HAVE_68881. Define CANNOT_STORE_REGISTER if ptrace() can't write floating registers. * config/m68k/{tm-m68k-nofp.h,m68k-nofp.mt,tm-m68k-fp.h,m68k-fp.mt}: Remove, replaced by {tm-m68k-em.h,m68k-em.mt}. * Makefile.in, configure.in: Change accordingly. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2e42103f450..cd41715257d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,8 +1,31 @@ +Thu Sep 9 10:18:29 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * remote-udi.c (udi_wait, case UDIStdinNeeded): Use a loop calling + getchar() (terminated only on '\n') instead of scanf. Send the + '\n' which terminates it to the remote system. + + More gcc lint: + * exec.c (ignore): Return 0. + * stack.c (return_command): Fetch lazy value directly, not via + VALUE_CONTENTS, to avoid "value computed is not used". + * inflow.c (new_tty): Move osigttou inside #if. + + * remote.c (remote_fetch_registers): If remote reply is short, just + note that fact and keep going (reading extra registers as all bits 0). + (remote_store_registers): Send number of registers that were found + by remote_fetch_registers. + * m68k-tdep.c, config/m68k/tm-m68k.h, config/m68k/tm-*.h: Remove + HAVE_68881. Define CANNOT_STORE_REGISTER if ptrace() can't write + floating registers. + * config/m68k/{tm-m68k-nofp.h,m68k-nofp.mt,tm-m68k-fp.h,m68k-fp.mt}: + Remove, replaced by {tm-m68k-em.h,m68k-em.mt}. + * Makefile.in, configure.in: Change accordingly. + Thu Sep 9 04:59:03 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) * mipsread.c (cross_ref): Allow SGI extended symbol types as cross reference targets. - * symmisc.c (print_symbol): Use TYP_TAG_NAME not TYPE_NAME to avoid + * symmisc.c (print_symbol): Use TYPE_TAG_NAME not TYPE_NAME to avoid printing of identities. Wed Sep 8 19:18:27 1993 Jim Kingdon (kingdon@lioth.cygnus.com) diff --git a/gdb/config/m68k/.Sanitize b/gdb/config/m68k/.Sanitize index 611fe67cb82..9947f75c0ea 100644 --- a/gdb/config/m68k/.Sanitize +++ b/gdb/config/m68k/.Sanitize @@ -40,8 +40,7 @@ hp300hpux.mh hp300hpux.mt isi.mh isi.mt -m68k-fp.mt -m68k-nofp.mt +m68k-em.mt monitor.mt news.mh news.mt @@ -67,8 +66,7 @@ sun3os4.mh sun3os4.mt tm-3b1.h tm-delta68.h -tm-m68k-fp.h -tm-m68k-nofp.h +tm-m68k-em.h tm-m68k.h tm-altos.h tm-amix.h diff --git a/gdb/config/m68k/m68k-em.mt b/gdb/config/m68k/m68k-em.mt index 177613da105..0d0a94602a5 100644 --- a/gdb/config/m68k/m68k-em.mt +++ b/gdb/config/m68k/m68k-em.mt @@ -1,3 +1,3 @@ # Target: Motorola 68xxx with floating point TDEPFILES= exec.o m68k-pinsn.o m68k-tdep.o -TM_FILE= tm-m68k-fp.h +TM_FILE= tm-m68k-em.h diff --git a/gdb/config/m68k/tm-3b1.h b/gdb/config/m68k/tm-3b1.h index 4d726d3ebb2..57c6e00ab2e 100644 --- a/gdb/config/m68k/tm-3b1.h +++ b/gdb/config/m68k/tm-3b1.h @@ -17,6 +17,9 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +/* The child target can't deal with floating registers. */ +#define CANNOT_STORE_REGISTER(regno) ((regno) >= FP0_REGNUM) + /* Define BPT_VECTOR if it is different than the default. This is the vector number used by traps to indicate a breakpoint. */ diff --git a/gdb/config/m68k/tm-altos.h b/gdb/config/m68k/tm-altos.h index 05ba2f3b28c..e8092bfb8ce 100644 --- a/gdb/config/m68k/tm-altos.h +++ b/gdb/config/m68k/tm-altos.h @@ -17,6 +17,9 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +/* The child target can't deal with floating registers. */ +#define CANNOT_STORE_REGISTER(regno) ((regno) >= FP0_REGNUM) + /* Define BPT_VECTOR if it is different than the default. This is the vector number used by traps to indicate a breakpoint. */ diff --git a/gdb/config/m68k/tm-amix.h b/gdb/config/m68k/tm-amix.h index 5d5f8a223ee..f3469dd9cbd 100644 --- a/gdb/config/m68k/tm-amix.h +++ b/gdb/config/m68k/tm-amix.h @@ -18,11 +18,6 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* All Amiga's (so far) running UNIX have come standard with the floating - point coprocessor. */ - -#define HAVE_68881 - /* Define BPT_VECTOR if it is different than the default. This is the vector number used by traps to indicate a breakpoint. */ diff --git a/gdb/config/m68k/tm-delta68.h b/gdb/config/m68k/tm-delta68.h index f0bef1fbe99..e7ec0fa6552 100644 --- a/gdb/config/m68k/tm-delta68.h +++ b/gdb/config/m68k/tm-delta68.h @@ -32,8 +32,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #define DECR_PC_AFTER_BREAK 0 -#define HAVE_68881 - /* Not sure what happens if we try to store this register, but phdm@info.ucl.ac.be says we need this define. */ #define CANNOT_STORE_REGISTER(regno) (regno == FPI_REGNUM) diff --git a/gdb/config/m68k/tm-dpx2.h b/gdb/config/m68k/tm-dpx2.h index 026723f14e5..694e05488c8 100644 --- a/gdb/config/m68k/tm-dpx2.h +++ b/gdb/config/m68k/tm-dpx2.h @@ -22,8 +22,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #define BPT_VECTOR 0xe -#define HAVE_68881 - /* Need to get function ends by adding this to epilogue address from .bf record, not using x_fsize field. */ #define FUNCTION_EPILOGUE_SIZE 4 diff --git a/gdb/config/m68k/tm-es1800.h b/gdb/config/m68k/tm-es1800.h index bd1dbe349ce..d07e26a7093 100644 --- a/gdb/config/m68k/tm-es1800.h +++ b/gdb/config/m68k/tm-es1800.h @@ -24,8 +24,6 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #define DEFAULT_PROMPT "(esgdb) " -#define HAVE_68881 - #include "m68k/tm-m68k.h" /* Longjmp stuff borrowed from sun3 configuration. Don't know if correct. diff --git a/gdb/config/m68k/tm-hp300bsd.h b/gdb/config/m68k/tm-hp300bsd.h index 900d7fdaaa3..0e5bf90f449 100644 --- a/gdb/config/m68k/tm-hp300bsd.h +++ b/gdb/config/m68k/tm-hp300bsd.h @@ -21,8 +21,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ including Utah, Mt. Xinu or Berkeley variants. This is NOT for HP-UX. Problems to hpbsd-bugs@cs.utah.edu. */ -#define HAVE_68881 - /* Define BPT_VECTOR if it is different than the default. This is the vector number used by traps to indicate a breakpoint. */ diff --git a/gdb/config/m68k/tm-hp300hpux.h b/gdb/config/m68k/tm-hp300hpux.h index 61e755bc611..0f5f23f7cff 100644 --- a/gdb/config/m68k/tm-hp300hpux.h +++ b/gdb/config/m68k/tm-hp300hpux.h @@ -17,8 +17,6 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#define HAVE_68881 - /* Define BPT_VECTOR if it is different than the default. This is the vector number used by traps to indicate a breakpoint. */ diff --git a/gdb/config/m68k/tm-isi.h b/gdb/config/m68k/tm-isi.h index e57f3048c8b..e279080e90b 100644 --- a/gdb/config/m68k/tm-isi.h +++ b/gdb/config/m68k/tm-isi.h @@ -20,8 +20,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* This has not been tested on ISI's running BSD 4.2, but it will probably work. */ -#define HAVE_68881 - /* Data segment starts at etext rounded up to DATAROUND in {N,Z}MAGIC files */ #define DATAROUND 0x20000 diff --git a/gdb/config/m68k/tm-m68k-em.h b/gdb/config/m68k/tm-m68k-em.h index 4dcebaa717b..c4fc5ff1d0d 100644 --- a/gdb/config/m68k/tm-m68k-em.h +++ b/gdb/config/m68k/tm-m68k-em.h @@ -17,8 +17,6 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#define HAVE_68881 - #include "m68k/tm-m68k.h" /* Longjmp info comes from the Sun-3 machine description. Might as well diff --git a/gdb/config/m68k/tm-m68k.h b/gdb/config/m68k/tm-m68k.h index 29e45ca8afb..db7b6a4f62a 100644 --- a/gdb/config/m68k/tm-m68k.h +++ b/gdb/config/m68k/tm-m68k.h @@ -17,12 +17,9 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* Generic 68000 stuff, to be included by other tm-*.h files. - Define HAVE_68881 if that is the case. */ +/* Generic 68000 stuff, to be included by other tm-*.h files. */ -#if defined (HAVE_68881) #define IEEE_FLOAT 1 -#endif /* Define the bit, byte, and word ordering of the machine. */ #define TARGET_BYTE_ORDER BIG_ENDIAN @@ -91,28 +88,33 @@ read_memory_integer (read_register (SP_REGNUM), 4) #define REGISTER_TYPE long -#if defined (HAVE_68881) -# if defined (GDB_TARGET_IS_SUN3) - /* Sun3 status includes fpflags, which shows whether the FPU has been used - by the process, and whether the FPU was done with an instruction or - was interrupted in the middle of a long instruction. See - . */ - /* a&d, pc,sr, fp, fpstat, fpflags */ -# define NUM_REGS 31 -# define REGISTER_BYTES (16*4 + 8 + 8*12 + 3*4 + 4) -# else /* Not sun3. */ -# define NUM_REGS 29 -# define REGISTER_BYTES (16*4 + 8 + 8*12 + 3*4) -# endif /* Not sun3. */ -#else /* No 68881. */ -# define NUM_REGS 18 -# define REGISTER_BYTES (16*4 + 8) -#endif /* No 68881. */ +#define REGISTER_BYTES_SUN3 (16*4 + 8 + 8*12 + 3*4 + 4) +#define REGISTER_BYTES_FP (16*4 + 8 + 8*12 + 3*4) +#define REGISTER_BYTES_NOFP (16*4 + 8) + +#if defined (GDB_TARGET_IS_SUN3) + /* Sun3 status includes fpflags, which shows whether the FPU has been used + by the process, and whether the FPU was done with an instruction or + was interrupted in the middle of a long instruction. See + . */ + /* a&d, pc,sr, fp, fpstat, fpflags */ +# define NUM_REGS 31 +# define REGISTER_BYTES (16*4 + 8 + 8*12 + 3*4 + 4) +# define REGISTER_BYTES_OK(b) \ + ((b) == REGISTER_BYTES_SUN3 \ + || (b) == REGISTER_BYTES_FP \ + || (b) == REGISTER_BYTES_NOFP) +#else /* Not sun3. */ +# define NUM_REGS 29 +# define REGISTER_BYTES_OK(b) \ + ((b) == REGISTER_BYTES_FP \ + || (b) == REGISTER_BYTES_NOFP) +# define REGISTER_BYTES (16*4 + 8 + 8*12 + 3*4) +#endif /* Not sun3. */ /* Index within `registers' of the first byte of the space for register N. */ -#if defined (HAVE_68881) #define REGISTER_BYTE(N) \ ((N) >= FPC_REGNUM ? (((N) - FPC_REGNUM) * 4) + 168 \ : (N) >= FP0_REGNUM ? (((N) - FP0_REGNUM) * 12) + 72 \ @@ -181,52 +183,6 @@ extern const struct ext_format ext_format_68881; (N) == PC_REGNUM || (N) == FP_REGNUM || (N) == SP_REGNUM ? \ lookup_pointer_type (builtin_type_void) : builtin_type_int) -#else /* no 68881. */ -/* Index within `registers' of the first byte of the space for - register N. */ - -#define REGISTER_BYTE(N) ((N) * 4) - -/* Number of bytes of storage in the actual machine representation - for register N. On the 68000, all regs are 4 bytes. */ - -#define REGISTER_RAW_SIZE(N) 4 - -/* Number of bytes of storage in the program's representation - for register N. On the 68000, all regs are 4 bytes. */ - -#define REGISTER_VIRTUAL_SIZE(N) 4 - -/* Largest value REGISTER_RAW_SIZE can have. */ - -#define MAX_REGISTER_RAW_SIZE 4 - -/* Largest value REGISTER_VIRTUAL_SIZE can have. */ - -#define MAX_REGISTER_VIRTUAL_SIZE 4 - -/* Nonzero if register N requires conversion - from raw format to virtual format. */ - -#define REGISTER_CONVERTIBLE(N) 0 - -/* Convert data from raw format for register REGNUM - to virtual format for register REGNUM. */ - -#define REGISTER_CONVERT_TO_VIRTUAL(REGNUM,FROM,TO) memcpy ((TO), (FROM), 4); - -/* Convert data from virtual format for register REGNUM - to raw format for register REGNUM. */ - -#define REGISTER_CONVERT_TO_RAW(REGNUM,FROM,TO) memcpy ((TO), (FROM), 4); - -/* Return the GDB type object for the "standard" data type - of data in register N. */ - -#define REGISTER_VIRTUAL_TYPE(N) builtin_type_int - -#endif /* No 68881. */ - /* Initializer for an array of names of registers. Entries beyond the first NUM_REGS are ignored. */ @@ -249,12 +205,10 @@ extern const struct ext_format ext_format_68881; #define SP_REGNUM 15 /* Contains address of top of stack */ #define PS_REGNUM 16 /* Contains processor status */ #define PC_REGNUM 17 /* Contains program counter */ -#if defined (HAVE_68881) #define FP0_REGNUM 18 /* Floating point register 0 */ #define FPC_REGNUM 26 /* 68881 control register */ #define FPS_REGNUM 27 /* 68881 status register */ #define FPI_REGNUM 28 /* 68881 iaddr register */ -#endif /* 68881. */ /* Store the address of the place in which to copy the structure the subroutine will return. This is called from call_function. */ @@ -373,15 +327,18 @@ extern const struct ext_format ext_format_68881; /* The CALL_DUMMY macro is the sequence of instructions, as disassembled by gdb itself: + These instructions exist only so that m68k_find_saved_regs can parse + them as a "prologue"; they are never executed. + fmovemx fp0-fp7,sp@- 0xf227 0xe0ff moveml d0-a5,sp@- 0x48e7 0xfffc clrw sp@- 0x4267 movew ccr,sp@- 0x42e7 - /..* The arguments are pushed at this point by GDB; - no code is needed in the dummy for this. - The CALL_DUMMY_START_OFFSET gives the position of - the following jsr instruction. *../ + The arguments are pushed at this point by GDB; no code is needed in + the dummy for this. The CALL_DUMMY_START_OFFSET gives the position + of the following jsr instruction. That is where we start + executing. jsr @#0x32323232 0x4eb9 0x3232 0x3232 addal #0x69696969,sp 0xdffc 0x6969 0x6969 @@ -389,28 +346,20 @@ extern const struct ext_format ext_format_68881; nop 0x4e71 Note this is CALL_DUMMY_LENGTH bytes (28 for the above example). - We actually start executing at the jsr, since the pushing of the - registers is done by PUSH_DUMMY_FRAME. If this were real code, - the arguments for the function called by the jsr would be pushed - between the moveml and the jsr, and we could allow it to execute through. - But the arguments have to be pushed by GDB after the PUSH_DUMMY_FRAME is - done, and we cannot allow the moveml to push the registers again lest - they be taken for the arguments. */ -#if defined (HAVE_68881) + The dummy frame always saves the floating-point registers, whether they + actually exist on this target or not. */ + +/* FIXME: Wrong to hardwire this as BPT_VECTOR when sometimes it + should be REMOTE_BPT_VECTOR. We should be using + target_insert_breakpoint (but then I think we need + target_remove_breakpoint somewhere--easiest way to make this happen + is to make this breakpoint a real breakpoint.c type breakpoint). */ #define CALL_DUMMY {0xf227e0ff, 0x48e7fffc, 0x426742e7, 0x4eb93232, 0x3232dffc, 0x69696969, (0x4e404e71 | (BPT_VECTOR << 16))} #define CALL_DUMMY_LENGTH 28 /* Size of CALL_DUMMY */ #define CALL_DUMMY_START_OFFSET 12 /* Offset to jsr instruction*/ -#else - -#define CALL_DUMMY {0x48e7fffc, 0x426742e7, 0x4eb93232, 0x3232dffc, 0x69696969, (0x4e404e71 | (BPT_VECTOR << 16))} -#define CALL_DUMMY_LENGTH 24 /* Size of CALL_DUMMY */ -#define CALL_DUMMY_START_OFFSET 8 /* Offset to jsr instruction*/ - -#endif /* HAVE_68881 */ - /* Insert the specified number of args and function address into a call sequence of the above form stored at DUMMYNAME. We use the BFD routines to store a big-endian value of known size. */ diff --git a/gdb/config/m68k/tm-news.h b/gdb/config/m68k/tm-news.h index 09fc7c4291d..886cf250227 100644 --- a/gdb/config/m68k/tm-news.h +++ b/gdb/config/m68k/tm-news.h @@ -18,17 +18,14 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* See following cpu type determination macro to get the machine type. - + Here is an m-news.h file for gdb. It supports the 68881 registers. by hikichi@srava.sra.junet - -* Support Sun assembly format instead of Motorola one. + * Ptrace for handling floating register has a bug(before NEWS OS version 2.2), * After NEWS OS version 3.2, some of ptrace's bug is fixed. But we cannot change the floating register(see adb(1) in OS 3.2) yet. */ -#define HAVE_68881 - /* Extract from an array REGBUF containing the (raw) register state a function return value of type TYPE, and copy that, in virtual format, into VALBUF. */ diff --git a/gdb/config/m68k/tm-st2000.h b/gdb/config/m68k/tm-st2000.h index 6a238303853..7c24a114bf8 100644 --- a/gdb/config/m68k/tm-st2000.h +++ b/gdb/config/m68k/tm-st2000.h @@ -17,6 +17,4 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#define HAVE_68881 /* GDB won't compile without this */ - #include "m68k/tm-m68k.h" diff --git a/gdb/config/m68k/tm-sun2.h b/gdb/config/m68k/tm-sun2.h index a2d08afc32d..5e5c4ba8017 100644 --- a/gdb/config/m68k/tm-sun2.h +++ b/gdb/config/m68k/tm-sun2.h @@ -17,4 +17,7 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +/* The child target can't deal with floating registers. */ +#define CANNOT_STORE_REGISTER(regno) ((regno) >= FP0_REGNUM) + #include "m68k/tm-m68k.h" diff --git a/gdb/config/m68k/tm-sun3.h b/gdb/config/m68k/tm-sun3.h index 103abfc7a4f..2d0432b3b1b 100644 --- a/gdb/config/m68k/tm-sun3.h +++ b/gdb/config/m68k/tm-sun3.h @@ -17,8 +17,6 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#define HAVE_68881 - /* Let native-versus-cross support code know we are targeting sun3, and modify registers to include sun3 fpustate register. */ diff --git a/gdb/config/m68k/tm-vx68.h b/gdb/config/m68k/tm-vx68.h index e47accffce9..9eb6a4bfb23 100644 --- a/gdb/config/m68k/tm-vx68.h +++ b/gdb/config/m68k/tm-vx68.h @@ -22,8 +22,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #define DEFAULT_PROMPT "(vxgdb) " -#define HAVE_68881 - /* We have more complex, useful breakpoints on the target. */ #define DECR_PC_AFTER_BREAK 0 diff --git a/gdb/configure.in b/gdb/configure.in index a61de103362..75ac07a6597 100644 --- a/gdb/configure.in +++ b/gdb/configure.in @@ -202,9 +202,6 @@ i960-*-elf) gdb_target=nindy960 ;; i960-*-nindy) gdb_target=nindy960 ;; i960-*-vxworks) gdb_target=vxworks960 ;; -m68000-*-aout) gdb_target=m68k-nofp ;; -m68000-*-coff) gdb_target=m68k-nofp ;; -m68000-*-elf) gdb_target=m68k-nofp ;; m68000-*-sunos3*) gdb_target=sun2os3 ;; m68000-*-sunos4*) gdb_target=sun2os4 ;; @@ -226,9 +223,9 @@ m68*-rom68k-*) gdb_target=monitor ;; m68*-*bug-*) gdb_target=monitor ;; m68*-monitor-*) gdb_target=monitor ;; -m68*-*-aout) gdb_target=m68k-fp ;; -m68*-*-coff) gdb_target=m68k-fp ;; -m68*-*-elf) gdb_target=m68k-fp ;; +m68*-*-aout) gdb_target=m68k-em ;; +m68*-*-coff) gdb_target=m68k-em ;; +m68*-*-elf) gdb_target=m68k-em ;; m68*-*-os68k) gdb_target=os68k ;; m68*-*-sunos3*) gdb_target=sun3os3 ;; m68*-*-sunos4*) gdb_target=sun3os4 ;;