From ca3c57e52e3ffacf49738bfd665d269ee305ff61 Mon Sep 17 00:00:00 2001 From: Stan Shebs Date: Wed, 17 Aug 1994 20:27:17 +0000 Subject: [PATCH] * config/m68k/tm-delta68.h (EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE): Define to use %a0 for pointers. --- gdb/ChangeLog | 5 +++++ gdb/config/m68k/tm-delta68.h | 29 +++++++++++++++++++++++++++-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index fe8a4669078..7c72e5ac7bc 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -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. diff --git a/gdb/config/m68k/tm-delta68.h b/gdb/config/m68k/tm-delta68.h index e7ec0fa6552..195c00d6575 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" -- 2.30.2