diff options
author | Jim Kingdon <jkingdon@engr.sgi.com> | 1993-09-09 18:33:44 +0000 |
---|---|---|
committer | Jim Kingdon <jkingdon@engr.sgi.com> | 1993-09-09 18:33:44 +0000 |
commit | f46ffb9ebd962cac950b40604900ede5e174afd8 (patch) | |
tree | e30a70cfcc83e29974e5d9423a7962a3a2f53b7f /gdb/config | |
parent | 5c303f64ca252af6e7481942e26c643dad4c6620 (diff) | |
download | gdb-f46ffb9ebd962cac950b40604900ede5e174afd8.zip gdb-f46ffb9ebd962cac950b40604900ede5e174afd8.tar.gz gdb-f46ffb9ebd962cac950b40604900ede5e174afd8.tar.bz2 |
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.
Diffstat (limited to 'gdb/config')
-rw-r--r-- | gdb/config/m68k/.Sanitize | 6 | ||||
-rw-r--r-- | gdb/config/m68k/m68k-em.mt | 2 | ||||
-rw-r--r-- | gdb/config/m68k/tm-3b1.h | 3 | ||||
-rw-r--r-- | gdb/config/m68k/tm-altos.h | 3 | ||||
-rw-r--r-- | gdb/config/m68k/tm-amix.h | 5 | ||||
-rw-r--r-- | gdb/config/m68k/tm-delta68.h | 2 | ||||
-rw-r--r-- | gdb/config/m68k/tm-dpx2.h | 2 | ||||
-rw-r--r-- | gdb/config/m68k/tm-es1800.h | 2 | ||||
-rw-r--r-- | gdb/config/m68k/tm-hp300bsd.h | 2 | ||||
-rw-r--r-- | gdb/config/m68k/tm-hp300hpux.h | 2 | ||||
-rw-r--r-- | gdb/config/m68k/tm-isi.h | 2 | ||||
-rw-r--r-- | gdb/config/m68k/tm-m68k-em.h | 2 | ||||
-rw-r--r-- | gdb/config/m68k/tm-m68k.h | 129 | ||||
-rw-r--r-- | gdb/config/m68k/tm-news.h | 7 | ||||
-rw-r--r-- | gdb/config/m68k/tm-st2000.h | 2 | ||||
-rw-r--r-- | gdb/config/m68k/tm-sun2.h | 3 | ||||
-rw-r--r-- | gdb/config/m68k/tm-sun3.h | 2 | ||||
-rw-r--r-- | gdb/config/m68k/tm-vx68.h | 2 |
18 files changed, 53 insertions, 125 deletions
diff --git a/gdb/config/m68k/.Sanitize b/gdb/config/m68k/.Sanitize index 611fe67..9947f75 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 177613d..0d0a946 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 4d726d3..57c6e00 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 05ba2f3..e8092bf 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 5d5f8a2..f3469dd 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 f0bef1f..e7ec0fa 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 026723f..694e054 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 bd1dbe3..d07e26a 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 900d7fd..0e5bf90 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 61e755b..0f5f23f 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 e57f304..e279080 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 4dcebaa..c4fc5ff 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 29e45ca..db7b6a4 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 - <machine/reg.h>. */ - /* 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 + <machine/reg.h>. */ + /* 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 09fc7c4..886cf25 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 6a23830..7c24a11 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 a2d08af..5e5c4ba 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 103abfc..2d0432b 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 e47accf..9eb6a4b 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 |