aboutsummaryrefslogtreecommitdiff
path: root/gdb/config/m68k
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1993-09-09 18:33:44 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1993-09-09 18:33:44 +0000
commitf46ffb9ebd962cac950b40604900ede5e174afd8 (patch)
treee30a70cfcc83e29974e5d9423a7962a3a2f53b7f /gdb/config/m68k
parent5c303f64ca252af6e7481942e26c643dad4c6620 (diff)
downloadgdb-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/m68k')
-rw-r--r--gdb/config/m68k/.Sanitize6
-rw-r--r--gdb/config/m68k/m68k-em.mt2
-rw-r--r--gdb/config/m68k/tm-3b1.h3
-rw-r--r--gdb/config/m68k/tm-altos.h3
-rw-r--r--gdb/config/m68k/tm-amix.h5
-rw-r--r--gdb/config/m68k/tm-delta68.h2
-rw-r--r--gdb/config/m68k/tm-dpx2.h2
-rw-r--r--gdb/config/m68k/tm-es1800.h2
-rw-r--r--gdb/config/m68k/tm-hp300bsd.h2
-rw-r--r--gdb/config/m68k/tm-hp300hpux.h2
-rw-r--r--gdb/config/m68k/tm-isi.h2
-rw-r--r--gdb/config/m68k/tm-m68k-em.h2
-rw-r--r--gdb/config/m68k/tm-m68k.h129
-rw-r--r--gdb/config/m68k/tm-news.h7
-rw-r--r--gdb/config/m68k/tm-st2000.h2
-rw-r--r--gdb/config/m68k/tm-sun2.h3
-rw-r--r--gdb/config/m68k/tm-sun3.h2
-rw-r--r--gdb/config/m68k/tm-vx68.h2
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