old-cross-binutils/gdb/i386b-nat.c
Andrew Cagney 779497948d 2003-09-17 Andrew Cagney <cagney@redhat.com>
* sparc-tdep.c (legacy_register_name): Delete function.
	* mips-tdep.c (mips_dump_tdep): Do not print REGISTER_NAME.
	(mips_gdbarch_init): Refer to MIPS_REGISTER_NAME in comments.
	* infcmd.c (gdb_register_name): Delete variable.
	* gdbarch.sh (SDB_REG_TO_REGNUM): Delete reference to
	REGISTER_NAME and "tm.h".
	* gdbarch.h, gdbarch.c: Regenerate.
	* dpx2-nat.c (regmap): Refer to REGISTER_NAME and not
	REGISTER_NAMES in comments.
	* remote-st.c (get_reg_name), i386b-nat.c (tregmap): Ditto.
	* m68klinux-nat.c (regmap): Ditto.

2003-09-18  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	documentation on REGISTER_NAMES.
2003-09-18 22:39:21 +00:00

72 lines
2.1 KiB
C

/* Native-dependent code for BSD Unix running on i386's, for GDB.
Copyright 1988, 1989, 1991, 1992, 1994, 1995, 1996, 1998, 1999, 2000,
2001 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., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "defs.h"
#include <machine/reg.h>
/* This table must line up with REGISTER_NAME in "i386-tdep.c". */
/* symbols like 'tEAX' come from <machine/reg.h> */
static int tregmap[] =
{
tEAX, tECX, tEDX, tEBX,
tESP, tEBP, tESI, tEDI,
tEIP, tEFLAGS, tCS, tSS
};
#ifdef sEAX
static int sregmap[] =
{
sEAX, sECX, sEDX, sEBX,
sESP, sEBP, sESI, sEDI,
sEIP, sEFLAGS, sCS, sSS
};
#else /* No sEAX */
/* FreeBSD has decided to collapse the s* and t* symbols. So if the s*
ones aren't around, use the t* ones for sregmap too. */
static int sregmap[] =
{
tEAX, tECX, tEDX, tEBX,
tESP, tEBP, tESI, tEDI,
tEIP, tEFLAGS, tCS, tSS
};
#endif /* No sEAX */
/* blockend is the value of u.u_ar0, and points to the
place where ES is stored. */
int
i386_register_u_addr (int blockend, int regnum)
{
/* The following condition is a kludge to get at the proper register map
depending upon the state of pcb_flag.
The proper condition would be
if (u.u_pcb.pcb_flag & FM_TRAP)
but that would require a ptrace call here and wouldn't work
for corefiles. */
if (blockend < 0x1fcc)
return (blockend + 4 * tregmap[regnum]);
else
return (blockend + 4 * sregmap[regnum]);
}