aboutsummaryrefslogtreecommitdiff
path: root/gdb/config/m88k
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1993-09-02 05:35:49 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1993-09-02 05:35:49 +0000
commit22202966ce66e9e8076fd55b244d78e93c5489ca (patch)
tree5f70d4b4f34936d1ee62865ee5dc1642cfdfdf1c /gdb/config/m88k
parentca4cb0ded91b04ffb5b5a0e30fe6812d0c588f9b (diff)
downloadgdb-22202966ce66e9e8076fd55b244d78e93c5489ca.zip
gdb-22202966ce66e9e8076fd55b244d78e93c5489ca.tar.gz
gdb-22202966ce66e9e8076fd55b244d78e93c5489ca.tar.bz2
* config/m88k/xm-dgux.h: Renamed from config/m88k/xm-m88k.h.
* config/m88k/xm-m88k.h: New file, with HOST_BYTE_ORDER, MAKEVA_END and MAKEVA_ARG. * config/m88k/xm-*.h: Include m88k/xm-m88k.h. * printcmd.c: Remove __INT_VARARGS_H code; now in xm-m88k.h.
Diffstat (limited to 'gdb/config/m88k')
-rw-r--r--gdb/config/m88k/xm-delta88.h2
-rw-r--r--gdb/config/m88k/xm-delta88v4.h2
-rw-r--r--gdb/config/m88k/xm-dgux.h62
-rw-r--r--gdb/config/m88k/xm-m88k.h70
4 files changed, 92 insertions, 44 deletions
diff --git a/gdb/config/m88k/xm-delta88.h b/gdb/config/m88k/xm-delta88.h
index 7398f58..51ae16f 100644
--- a/gdb/config/m88k/xm-delta88.h
+++ b/gdb/config/m88k/xm-delta88.h
@@ -18,7 +18,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. */
-#define HOST_BYTE_ORDER BIG_ENDIAN
+#include "m88k/xm-m88k.h"
#if !defined (USG)
#define USG 1
diff --git a/gdb/config/m88k/xm-delta88v4.h b/gdb/config/m88k/xm-delta88v4.h
index 140ff04..54a2361 100644
--- a/gdb/config/m88k/xm-delta88v4.h
+++ b/gdb/config/m88k/xm-delta88v4.h
@@ -17,6 +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 HOST_BYTE_ORDER BIG_ENDIAN
+#include "m88k/xm-m88k.h"
#include "xm-sysv4.h"
diff --git a/gdb/config/m88k/xm-dgux.h b/gdb/config/m88k/xm-dgux.h
index e69de29..bcdc0eb 100644
--- a/gdb/config/m88k/xm-dgux.h
+++ b/gdb/config/m88k/xm-dgux.h
@@ -0,0 +1,62 @@
+/* Host-machine dependent parameters for Motorola 88000, for GDB.
+ Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1993
+ Free Software Foundation, Inc.
+
+This file is part of GDB.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+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. */
+
+#include "m88k/xm-m88k.h"
+
+#define HOST_BYTE_ORDER BIG_ENDIAN
+
+#if !defined (USG)
+#define USG 1
+#endif
+
+#include <sys/param.h>
+
+#ifdef __GNUC__
+#define memcpy __builtin_memcpy
+/* gcc doesn't have this, at least not gcc 1.92. */
+/* #define memset __builtin_memset */
+#define strcmp __builtin_strcmp
+#endif
+
+#define x_foff _x_x._x_offset
+#define x_fname _x_name
+#define USER ptrace_user
+#define _BSD_WAIT_FLAVOR
+
+#define HAVE_TERMIO
+
+#ifndef USIZE
+#define USIZE 2048
+#endif
+#define NBPG NBPC
+#define UPAGES USIZE
+
+/* Get rid of any system-imposed stack limit if possible. */
+
+#define SET_STACK_LIMIT_HUGE
+
+/* This is the amount to subtract from u.u_ar0
+ to get the offset in the core file of the register values. */
+
+/* Since registers r0 through r31 are stored directly in the struct ptrace_user,
+ (for m88k BCS)
+ the ptrace_user offsets are sufficient and KERNEL_U_ADDRESS can be 0 */
+
+#define KERNEL_U_ADDR 0
diff --git a/gdb/config/m88k/xm-m88k.h b/gdb/config/m88k/xm-m88k.h
index f58f758..3ff3512 100644
--- a/gdb/config/m88k/xm-m88k.h
+++ b/gdb/config/m88k/xm-m88k.h
@@ -1,5 +1,5 @@
/* Host-machine dependent parameters for Motorola 88000, for GDB.
- Copyright 1986, 1987, 1988, 1989, 1990, 1991 Free Software Foundation, Inc.
+ Copyright 1993 Free Software Foundation, Inc.
This file is part of GDB.
@@ -19,44 +19,30 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define HOST_BYTE_ORDER BIG_ENDIAN
-#if !defined (USG)
-#define USG 1
-#endif
-
-#include <sys/param.h>
-
-#ifdef __GNUC__
-#define memcpy __builtin_memcpy
-/* gcc doesn't have this, at least not gcc 1.92. */
-/* #define memset __builtin_memset */
-#define strcmp __builtin_strcmp
-#endif
-
-#ifdef DGUX
-#define x_foff _x_x._x_offset
-#define x_fname _x_name
-#define USER ptrace_user
-#define _BSD_WAIT_FLAVOR
-#endif
-
-#define HAVE_TERMIO
-
-#ifndef USIZE
-#define USIZE 2048
-#endif
-#define NBPG NBPC
-#define UPAGES USIZE
-
-/* Get rid of any system-imposed stack limit if possible. */
-
-#define SET_STACK_LIMIT_HUGE
-
-/* This is the amount to subtract from u.u_ar0
- to get the offset in the core file of the register values. */
-
-/* Since registers r0 through r31 are stored directly in the struct ptrace_user,
- (for m88k BCS)
- the ptrace_user offsets are sufficient and KERNEL_U_ADDRESS can be 0 */
-
-#define KERNEL_U_ADDR 0
-
+#define MAKEVA_END(list) \
+ va_list retval; \
+ retval.__va_arg = 0; \
+ retval.__va_stk = (int *) (list)->aligner.arg_bytes; \
+ retval.__va_reg = (int *) (list)->aligner.arg_bytes; \
+ return retval;
+
+/* I don't know whether rounding the arguments to 4 or 8 bytes is correct
+ for the 88k, or whether it is just code borrowed from the pa. The issue
+ is moot for now, since printf_command only uses argsize of sizeof (int),
+ sizeof (double), or sizeof (long long). */
+#define MAKEVA_ARG(list, argaddr, argsize) \
+ { \
+ int rounded_argsize; \
+ if (argsize > 8) \
+ /* Currently this never happens; printf_command only uses argsize */ \
+ /* of sizeof (int), sizeof (double), or sizeof (long long). */ \
+ error ("MAKEVA_ARG not fully written for m88k"); \
+ if (argsize <= 4) \
+ rounded_argsize = 4; \
+ else if (argsize <= 8) \
+ rounded_argsize = 8; \
+ while ((int)(&list->aligner.arg_bytes[list->argindex]) % rounded_argsize) \
+ list->argindex++; \
+ memcpy (&list->aligner.arg_bytes[list->argindex], argaddr, argsize); \
+ list->argindex += rounded_argsize; \
+ }