* config/m68k/tm-delta68.h (EXTRACT_RETURN_VALUE,
authorStan Shebs <shebs@codesourcery.com>
Wed, 17 Aug 1994 20:27:17 +0000 (20:27 +0000)
committerStan Shebs <shebs@codesourcery.com>
Wed, 17 Aug 1994 20:27:17 +0000 (20:27 +0000)
STORE_RETURN_VALUE): Define to use %a0 for pointers.

gdb/ChangeLog
gdb/config/m68k/tm-delta68.h

index fe8a4669078619579edbc9be1f24e971aaca6a3d..7c72e5ac7bc9246666224576a76369b7c94b5599 100644 (file)
@@ -1,3 +1,8 @@
+Wed Aug 17 13:19:52 1994  Stan Shebs  (shebs@andros.cygnus.com)
+
+       * config/m68k/tm-delta68.h (EXTRACT_RETURN_VALUE,
+       STORE_RETURN_VALUE): Define to use %a0 for pointers.
+
 Wed Aug 17 07:43:06 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
 
        * remote-mips.c: Remove unused declaration of mips_load.
index e7ec0fa6552f7f42e52f09315cebcd5663aa20e1..195c00d657525e3ec9d88017a417a19d8106111c 100644 (file)
@@ -1,5 +1,5 @@
 /* Target definitions for delta68.
-   Copyright 1993 Free Software Foundation, Inc.
+   Copyright 1993, 1994 Free Software Foundation, Inc.
 
 This file is part of GDB.
 
@@ -23,7 +23,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #define BPT_VECTOR 0x1
 
 #undef CPLUS_MARKER
-#define CPLUS_MARKER   '%'
+#define CPLUS_MARKER '%'
+
 #define GCC_COMPILED_FLAG_SYMBOL "gcc_compiled%"
 #define GCC2_COMPILED_FLAG_SYMBOL "gcc2_compiled%"
 
@@ -34,6 +35,30 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 /* 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)
 
+/* 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.  */
+
+/* When it returns a pointer value, use a0 in sysV68.  */
+
+#define EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
+  memcpy ((VALBUF),                                                    \
+         (char *) ((REGBUF) +                                          \
+                   (TYPE_CODE(TYPE) == TYPE_CODE_PTR ? 8 * 4 :         \
+                    (TYPE_LENGTH(TYPE) >= 4 ? 0 : 4 - TYPE_LENGTH(TYPE)))), \
+         TYPE_LENGTH(TYPE))
+
+/* Write into appropriate registers a function return value
+   of type TYPE, given in virtual format.  */
+
+/* When it returns a pointer value, use a0 in sysV68.  */
+
+#define STORE_RETURN_VALUE(TYPE,VALBUF) \
+  write_register_bytes ((TYPE_CODE(TYPE) == TYPE_CODE_PTR ? 8 * 4 : 0),        \
+                       VALBUF, TYPE_LENGTH (TYPE))
+
+
 #include "m68k/tm-m68k.h"