diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a769264637..7b42aac797 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -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. diff --git a/gdb/alldeps.mak b/gdb/alldeps.mak index 20057b9a91..6d61d2a80d 100644 --- a/gdb/alldeps.mak +++ b/gdb/alldeps.mak @@ -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\ diff --git a/gdb/config/i386/.Sanitize b/gdb/config/i386/.Sanitize index 852ee46607..426d4ce7fa 100644 --- a/gdb/config/i386/.Sanitize +++ b/gdb/config/i386/.Sanitize @@ -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 index 0000000000..178cd73b45 --- /dev/null +++ b/gdb/config/i386/i386aix.mh @@ -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 index 0000000000..ae7abb0ea8 --- /dev/null +++ b/gdb/config/i386/i386aix.mt @@ -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 index 0000000000..49bf31b369 --- /dev/null +++ b/gdb/config/i386/nm-i386aix.h @@ -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 index 0000000000..9294e62785 --- /dev/null +++ b/gdb/config/i386/tm-i386aix.h @@ -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 + +#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 index 0000000000..ec50adb068 --- /dev/null +++ b/gdb/config/i386/xm-i386aix.h @@ -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 + +/* Use setpgid instead of setpgrp on AIX */ +#define NEED_POSIX_SETPGID