aboutsummaryrefslogtreecommitdiff
path: root/gdb/config/m68k/tm-delta68.h
diff options
context:
space:
mode:
authorStan Shebs <shebs@codesourcery.com>1994-08-17 20:27:17 +0000
committerStan Shebs <shebs@codesourcery.com>1994-08-17 20:27:17 +0000
commitca3c57e52e3ffacf49738bfd665d269ee305ff61 (patch)
treef93df72114e4ab6f72777daa23b42fdd638478b3 /gdb/config/m68k/tm-delta68.h
parent52283cf39ab4d3feb60e04b8d76e30f02587d8ab (diff)
downloadgdb-ca3c57e52e3ffacf49738bfd665d269ee305ff61.zip
gdb-ca3c57e52e3ffacf49738bfd665d269ee305ff61.tar.gz
gdb-ca3c57e52e3ffacf49738bfd665d269ee305ff61.tar.bz2
* config/m68k/tm-delta68.h (EXTRACT_RETURN_VALUE,
STORE_RETURN_VALUE): Define to use %a0 for pointers.
Diffstat (limited to 'gdb/config/m68k/tm-delta68.h')
-rw-r--r--gdb/config/m68k/tm-delta68.h29
1 files changed, 27 insertions, 2 deletions
diff --git a/gdb/config/m68k/tm-delta68.h b/gdb/config/m68k/tm-delta68.h
index e7ec0fa..195c00d 100644
--- a/gdb/config/m68k/tm-delta68.h
+++ b/gdb/config/m68k/tm-delta68.h
@@ -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"