* config/i386/*aix*: New files.
authorJim Kingdon <jkingdon@engr.sgi.com>
Mon, 21 Jun 1993 23:14:07 +0000 (23:14 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Mon, 21 Jun 1993 23:14:07 +0000 (23:14 +0000)
* alldeps.mak: List them.

gdb/ChangeLog
gdb/alldeps.mak
gdb/config/i386/.Sanitize
gdb/config/i386/i386aix.mh [new file with mode: 0644]
gdb/config/i386/i386aix.mt [new file with mode: 0644]
gdb/config/i386/nm-i386aix.h [new file with mode: 0644]
gdb/config/i386/tm-i386aix.h [new file with mode: 0644]
gdb/config/i386/xm-i386aix.h [new file with mode: 0644]

index a769264..7b42aac 100644 (file)
@@ -1,3 +1,8 @@
+Mon Jun 21 16:09:46 1993  Jim Kingdon  (kingdon@cygnus.com)
+
+       * config/i386/*aix*: New files.
+       * alldeps.mak: List them.
+
 Mon Jun 21 15:10:07 1993  Fred Fish  (fnf@cygnus.com)
 
        * Makefile.in (BFD_INCLUDES):  Bfd.h is now back in bfd build dir.
index 20057b9..6d61d2a 100644 (file)
@@ -116,6 +116,7 @@ ${srcdir}/config/gould/xm-np1.h\
 ${srcdir}/config/gould/xm-pn.h\
 ${srcdir}/config/h8300/tm-h8300.h\
 ${srcdir}/config/h8500/tm-h8500.h\
+${srcdir}/config/i386/nm-i386aix.h\
 ${srcdir}/config/i386/nm-i386bsd.h\
 ${srcdir}/config/i386/nm-i386lynx.h\
 ${srcdir}/config/i386/nm-i386mach.h\
@@ -125,6 +126,7 @@ ${srcdir}/config/i386/nm-i386v.h\
 ${srcdir}/config/i386/nm-i386v4.h\
 ${srcdir}/config/i386/nm-linux.h\
 ${srcdir}/config/i386/nm-sun386.h\
+${srcdir}/config/i386/tm-i386aix.h\
 ${srcdir}/config/i386/tm-i386bsd.h\
 ${srcdir}/config/i386/tm-i386lynx.h\
 ${srcdir}/config/i386/tm-i386v.h\
@@ -133,6 +135,7 @@ ${srcdir}/config/i386/tm-linux.h\
 ${srcdir}/config/i386/tm-sun386.h\
 ${srcdir}/config/i386/tm-symmetry.h\
 ${srcdir}/config/i386/xm-go32.h\
+${srcdir}/config/i386/xm-i386aix.h\
 ${srcdir}/config/i386/xm-i386bsd.h\
 ${srcdir}/config/i386/xm-i386lynx.h\
 ${srcdir}/config/i386/xm-i386mach.h\
@@ -254,6 +257,8 @@ ${srcdir}/config/gould/pn.mt\
 ${srcdir}/config/h8300/h8300hms.mt\
 ${srcdir}/config/h8500/h8500hms.mt\
 ${srcdir}/config/i386/go32.mh\
+${srcdir}/config/i386/i386aix.mh\
+${srcdir}/config/i386/i386aix.mt\
 ${srcdir}/config/i386/i386aout.mt\
 ${srcdir}/config/i386/i386bsd.mh\
 ${srcdir}/config/i386/i386bsd.mt\
index 852ee46..426d4ce 100644 (file)
@@ -22,6 +22,8 @@ Do-first:
 Things-to-keep:
 
 go32.mh
+i386aix.mh
+i386aix.mt
 i386aout.mt
 i386bsd.mh
 i386bsd.mt
@@ -41,6 +43,7 @@ linux.mh
 linux.mt
 ncr3000.mh
 ncr3000.mt
+nm-i386aix.h
 nm-i386bsd.h
 nm-i386lynx.h
 nm-i386mach.h
@@ -54,6 +57,7 @@ sun386.mh
 sun386.mt
 symmetry.mh
 symmetry.mt
+tm-i386aix.h
 tm-i386bsd.h
 tm-i386lynx.h
 tm-i386v.h
@@ -62,6 +66,7 @@ tm-linux.h
 tm-sun386.h
 tm-symmetry.h
 xm-go32.h
+xm-i386aix.h
 xm-i386bsd.h
 xm-i386lynx.h
 xm-i386mach.h
diff --git a/gdb/config/i386/i386aix.mh b/gdb/config/i386/i386aix.mh
new file mode 100644 (file)
index 0000000..178cd73
--- /dev/null
@@ -0,0 +1,12 @@
+# Host: IBM PS/2 (i386) running AIX PS/2
+XDEPFILES= 
+XM_FILE= xm-i386aix.h
+NAT_FILE= nm-i386v.h
+NATDEPFILES= infptrace.o inftarg.o fork-child.o corelow.o i386v-nat.o
+XM_CLIBS=
+SYSV_DEFINE=-DSYSV -D_AIX -D_I386
+REGEX=regex.o
+REGEX1=regex.o
+TERMCAP=-lcurses
+# Use gcc. Only coff output can be debugged
+CC=gcc
diff --git a/gdb/config/i386/i386aix.mt b/gdb/config/i386/i386aix.mt
new file mode 100644 (file)
index 0000000..ae7abb0
--- /dev/null
@@ -0,0 +1,3 @@
+# Target: IBM PS/2 (i386) running AIX PS/2
+TDEPFILES= exec.o i386-tdep.o i386-pinsn.o i387-tdep.o
+TM_FILE= tm-i386aix.h
diff --git a/gdb/config/i386/nm-i386aix.h b/gdb/config/i386/nm-i386aix.h
new file mode 100644 (file)
index 0000000..49bf31b
--- /dev/null
@@ -0,0 +1,42 @@
+/* Native support for i386 aix ps/2.
+   Copyright 1986, 1987, 1989, 1992, 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.  */
+
+/*
+ * Changes for IBM AIX PS/2 by Minh Tran-Le (tranle@intellicorp.com)
+ * Revision:    5-May-93 00:11:35
+ */
+
+#ifndef NM_I386AIX_H
+#define NM_I386AIX_H 1
+
+/* code to execute to print interesting information about the
+ * floating point processor (if any)
+ * No need to define if there is nothing to do.
+ */
+#define FLOAT_INFO { i386_float_info (); }
+
+/* This is the amount to subtract from u.u_ar0
+   to get the offset in the core file of the register values.  */
+#undef  KERNEL_U_ADDR
+#define KERNEL_U_ADDR 0xf03fd000
+
+/* Override copies of {fetch,store}_inferior_registers in infptrace.c.  */
+#define FETCH_INFERIOR_REGISTERS
+
+#endif /* NM_I386AIX_H */
diff --git a/gdb/config/i386/tm-i386aix.h b/gdb/config/i386/tm-i386aix.h
new file mode 100644 (file)
index 0000000..9294e62
--- /dev/null
@@ -0,0 +1,155 @@
+/* Macro defintions for IBM AIX PS/2 (i386).
+   Copyright 1986, 1987, 1989, 1992, 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.  */
+
+/*
+ * Changes for IBM AIX PS/2 by Minh Tran-Le (tranle@intellicorp.com)
+ * Revision:    5-May-93 00:11:35
+ */
+
+#ifndef TM_I386AIX_H
+#define TM_I386AIX_H 1
+
+#include "i386/tm-i386v.h"
+#include <sys/reg.h>
+
+#ifndef I386
+# define I386 1
+#endif
+#ifndef I386_AIX_TARGET
+# define I386_AIX_TARGET 1
+#endif
+
+/* number of traps that happen between exec'ing the shell 
+ * to run an inferior, and when we finally get to 
+ * the inferior code.  This is 2 on most implementations.
+ */
+#undef  START_INFERIOR_TRAPS_EXPECTED
+#define START_INFERIOR_TRAPS_EXPECTED 2
+
+/* Number of machine registers */
+#undef  NUM_REGS
+#define NUM_REGS 24 /* 16+8 */
+
+/* Initializer for an array of names of registers.
+   There should be NUM_REGS strings in this initializer.  */
+
+/* the order of the first 8 registers must match the compiler's 
+ * numbering scheme (which is the same as the 386 scheme)
+ * also, this table must match regmap in i386-pinsn.c.
+ */
+#undef  REGISTER_NAMES
+#define REGISTER_NAMES { "eax", "ecx", "edx", "ebx", \
+                        "esp", "ebp", "esi", "edi", \
+                        "eip", "eflags", "cs", "ss", \
+                        "ds", "es", "fs", "gs", \
+                        "st0", "st1", "st2", "st3", \
+                        "st4", "st5", "st6", "st7", \
+                        }
+
+/* Register numbers of various important registers.
+   Note that some of these values are "real" register numbers,
+   and correspond to the general registers of the machine,
+   and some are "phony" register numbers which are too large
+   to be actual register numbers as far as the user is concerned
+   but do serve to get the desired values when passed to read_register.  */
+
+#undef  FP_REGNUM
+#define FP_REGNUM 5    /* (ebp) Contains address of executing stack frame */
+#undef  SP_REGNUM
+#define SP_REGNUM 4    /* (usp) Contains address of top of stack */
+
+#undef  PC_REGNUM
+#define PC_REGNUM 8    /* (eip) Contains program counter */
+#undef  PS_REGNUM 
+#define PS_REGNUM 9    /* (eflags) Contains processor status */
+
+#define FP0_REGNUM 16   /*  (st0) 387 register */
+
+/* Total amount of space needed to store our copies of the machine's
+   register state, the array `registers'.  */
+/* 16 i386 registers and 8 i387 registers */
+#undef REGISTER_BYTES
+#define REGISTER_BYTES (16*4 + 8*10)
+
+/* Index within `registers' of the first byte of the space for
+   register N.  */
+#undef REGISTER_BYTE
+#define REGISTER_BYTE(N) \
+  ((N < FP0_REGNUM) ? (N * 4) : \
+   (((N - FP0_REGNUM) * 10) + 64))
+/* Number of bytes of storage in the actual machine representation
+ * for register N.  All registers are 4 bytes, except 387 st(0) - st(7),
+ * which are 80 bits each. 
+ */
+#undef REGISTER_RAW_SIZE
+#define REGISTER_RAW_SIZE(N) \
+  ((N < FP0_REGNUM) ? 4 : 10)
+
+/* Largest value REGISTER_RAW_SIZE can have.  */
+#undef MAX_REGISTER_RAW_SIZE
+#define MAX_REGISTER_RAW_SIZE 10
+
+/* Nonzero if register N requires conversion
+   from raw format to virtual format.  */
+#undef REGISTER_CONVERTIBLE
+#define REGISTER_CONVERTIBLE(N) \
+  ((N < FP0_REGNUM) ? 0 : 1)
+
+/* Convert data from raw format for register REGNUM
+   to virtual format for register REGNUM.  */
+#undef REGISTER_CONVERT_TO_VIRTUAL
+#define REGISTER_CONVERT_TO_VIRTUAL(REGNUM,FROM,TO) \
+  ((REGNUM < FP0_REGNUM) ? bcopy ((FROM), (TO), 4) : \
+   i387_to_double((FROM), (TO)))
+
+/* Convert data from virtual format for register REGNUM
+   to raw format for register REGNUM.  */
+#undef REGISTER_CONVERT_TO_RAW
+#define REGISTER_CONVERT_TO_RAW(REGNUM,FROM,TO) \
+  ((REGNUM < FP0_REGNUM) ? bcopy ((FROM), (TO), 4) : \
+   double_to_i387((FROM), (TO)))
+
+/* Return the GDB type object for the "standard" data type
+   of data in register N.  */
+#undef REGISTER_VIRTUAL_TYPE
+#define REGISTER_VIRTUAL_TYPE(N) \
+  ((N < FP0_REGNUM) ? builtin_type_int : \
+   builtin_type_double)
+
+/* 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.  */
+#undef  EXTRACT_RETURN_VALUE
+#define EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
+  i386_extract_return_value (TYPE,REGBUF,VALBUF)
+
+/* Write into appropriate registers a function return value
+   of type TYPE, given in virtual format.  */
+#undef STORE_RETURN_VALUE
+#define STORE_RETURN_VALUE(TYPE,VALBUF) \
+  {                                                                                 \
+    if (TYPE_CODE (TYPE) == TYPE_CODE_FLT)                                  \
+      write_register_bytes (REGISTER_BYTE (FP0_REGNUM), (VALBUF),           \
+                           TYPE_LENGTH (TYPE));                             \
+    else                                                                    \
+      write_register_bytes (0, (VALBUF), TYPE_LENGTH (TYPE));                       \
+  }
+
+#endif /* TM_I386AIX_H */
diff --git a/gdb/config/i386/xm-i386aix.h b/gdb/config/i386/xm-i386aix.h
new file mode 100644 (file)
index 0000000..ec50adb
--- /dev/null
@@ -0,0 +1,29 @@
+/* Macro defintions for AIX PS/2 (i386)
+   Copyright 1986, 1987, 1989, 1992, 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.  */
+
+/*
+ * Changed for IBM AIX ps/2 by Minh Tran Le (tranle@intellicorp.com)
+ * Revision:   23-Oct-92 17:42:49
+ */
+
+#include "i386/xm-i386v.h"
+#include <limits.h>
+
+/* Use setpgid instead of setpgrp on AIX */
+#define NEED_POSIX_SETPGID