* Makefile.in (ALLDEPFILES): Remove mipsv4-nat.c.
(mipsv4-nat.o): Delete. * mipsv4-nat.c: Delete.
This commit is contained in:
parent
f3d770869c
commit
d0e5500c95
3 changed files with 7 additions and 176 deletions
|
@ -1,3 +1,9 @@
|
|||
2006-12-16 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* Makefile.in (ALLDEPFILES): Remove mipsv4-nat.c.
|
||||
(mipsv4-nat.o): Delete.
|
||||
* mipsv4-nat.c: Delete.
|
||||
|
||||
2006-12-16 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* dve3900-rom.c: Delete file.
|
||||
|
|
|
@ -1473,7 +1473,7 @@ ALLDEPFILES = \
|
|||
mingw-hdep.c \
|
||||
mips-linux-nat.c mips-linux-tdep.c \
|
||||
mips-irix-tdep.c \
|
||||
mips-tdep.c mipsv4-nat.c \
|
||||
mips-tdep.c \
|
||||
mipsnbsd-nat.c mipsnbsd-tdep.c \
|
||||
mips64obsd-nat.c mips64obsd-tdep.c \
|
||||
nbsd-tdep.c obsd-tdep.c \
|
||||
|
@ -2381,8 +2381,6 @@ mips-tdep.o: mips-tdep.c $(defs_h) $(gdb_string_h) $(gdb_assert_h) \
|
|||
$(elf_bfd_h) $(symcat_h) $(sim_regno_h) $(dis_asm_h) \
|
||||
$(frame_unwind_h) $(frame_base_h) $(trad_frame_h) $(infcall_h) \
|
||||
$(floatformat_h) $(remote_h) $(target_descriptions_h)
|
||||
mipsv4-nat.o: mipsv4-nat.c $(defs_h) $(inferior_h) $(gdbcore_h) $(target_h) \
|
||||
$(regcache_h) $(gregset_h)
|
||||
memory-map.o: memory-map.c $(defs_h) $(memory_map_h) $(xml_support_h) \
|
||||
$(gdb_assert_h) $(exceptions_h) $(gdb_string_h) $(gdb_expat_h)
|
||||
mn10300-linux-tdep.o: mn10300-linux-tdep.c $(defs_h) $(gdbcore_h) \
|
||||
|
|
173
gdb/mipsv4-nat.c
173
gdb/mipsv4-nat.c
|
@ -1,173 +0,0 @@
|
|||
/* Native support for MIPS running SVR4, for GDB.
|
||||
Copyright (C) 1994, 1995, 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., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
#include "defs.h"
|
||||
#include "inferior.h"
|
||||
#include "gdbcore.h"
|
||||
#include "target.h"
|
||||
#include "regcache.h"
|
||||
|
||||
#include <sys/time.h>
|
||||
#include <sys/procfs.h>
|
||||
#include <setjmp.h> /* For JB_XXX. */
|
||||
|
||||
/* Prototypes for supply_gregset etc. */
|
||||
#include "gregset.h"
|
||||
|
||||
/* Size of elements in jmpbuf */
|
||||
|
||||
#define JB_ELEMENT_SIZE 4
|
||||
|
||||
/*
|
||||
* See the comment in m68k-tdep.c regarding the utility of these functions.
|
||||
*
|
||||
* These definitions are from the MIPS SVR4 ABI, so they may work for
|
||||
* any MIPS SVR4 target.
|
||||
*/
|
||||
|
||||
void
|
||||
supply_gregset (gregset_t *gregsetp)
|
||||
{
|
||||
int regi;
|
||||
greg_t *regp = &(*gregsetp)[0];
|
||||
char zerobuf[MAX_REGISTER_SIZE];
|
||||
memset (zerobuf, 0, MAX_REGISTER_SIZE);
|
||||
|
||||
for (regi = 0; regi <= CXT_RA; regi++)
|
||||
regcache_raw_supply (current_regcache, regi, (char *) (regp + regi));
|
||||
|
||||
regcache_raw_supply (current_regcache, mips_regnum (current_gdbarch)->pc,
|
||||
(char *) (regp + CXT_EPC));
|
||||
regcache_raw_supply (current_regcache, mips_regnum (current_gdbarch)->hi,
|
||||
(char *) (regp + CXT_MDHI));
|
||||
regcache_raw_supply (current_regcache, mips_regnum (current_gdbarch)->lo,
|
||||
(char *) (regp + CXT_MDLO));
|
||||
regcache_raw_supply (current_regcache, mips_regnum (current_gdbarch)->cause,
|
||||
(char *) (regp + CXT_CAUSE));
|
||||
|
||||
/* Fill inaccessible registers with zero. */
|
||||
regcache_raw_supply (current_regcache, MIPS_PS_REGNUM, zerobuf);
|
||||
regcache_raw_supply (current_regcache,
|
||||
mips_regnum (current_gdbarch)->badvaddr,
|
||||
zerobuf);
|
||||
regcache_raw_supply (current_regcache, DEPRECATED_FP_REGNUM, zerobuf);
|
||||
regcache_raw_supply (current_regcache, MIPS_UNUSED_REGNUM, zerobuf);
|
||||
for (regi = MIPS_FIRST_EMBED_REGNUM; regi <= MIPS_LAST_EMBED_REGNUM; regi++)
|
||||
regcache_raw_supply (current_regcache, regi, zerobuf);
|
||||
}
|
||||
|
||||
void
|
||||
fill_gregset (gregset_t *gregsetp, int regno)
|
||||
{
|
||||
int regi;
|
||||
greg_t *regp = &(*gregsetp)[0];
|
||||
|
||||
for (regi = 0; regi <= 32; regi++)
|
||||
if ((regno == -1) || (regno == regi))
|
||||
*(regp + regi) = *(greg_t *) & deprecated_registers[DEPRECATED_REGISTER_BYTE (regi)];
|
||||
|
||||
if ((regno == -1) || (regno == mips_regnum (current_gdbarch)->pc))
|
||||
*(regp + CXT_EPC) = *(greg_t *) & deprecated_registers[DEPRECATED_REGISTER_BYTE (mips_regnum (current_gdbarch)->pc)];
|
||||
|
||||
if ((regno == -1) || (regno == mips_regnum (current_gdbarch)->cause))
|
||||
*(regp + CXT_CAUSE) = *(greg_t *) & deprecated_registers[DEPRECATED_REGISTER_BYTE (mips_regnum (current_gdbarch)->cause)];
|
||||
|
||||
if ((regno == -1) || (regno == mips_regnum (current_gdbarch)->hi))
|
||||
*(regp + CXT_MDHI) = *(greg_t *) & deprecated_registers[DEPRECATED_REGISTER_BYTE (mips_regnum (current_gdbarch)->hi)];
|
||||
|
||||
if ((regno == -1) || (regno == mips_regnum (current_gdbarch)->lo))
|
||||
*(regp + CXT_MDLO) = *(greg_t *) & deprecated_registers[DEPRECATED_REGISTER_BYTE (mips_regnum (current_gdbarch)->lo)];
|
||||
}
|
||||
|
||||
/*
|
||||
* Now we do the same thing for floating-point registers.
|
||||
* We don't bother to condition on FP0 regnum since any
|
||||
* reasonable MIPS configuration has an R3010 in it.
|
||||
*
|
||||
* Again, see the comments in m68k-tdep.c.
|
||||
*/
|
||||
|
||||
void
|
||||
supply_fpregset (fpregset_t *fpregsetp)
|
||||
{
|
||||
int regi;
|
||||
char zerobuf[MAX_REGISTER_SIZE];
|
||||
memset (zerobuf, 0, MAX_REGISTER_SIZE);
|
||||
|
||||
for (regi = 0; regi < 32; regi++)
|
||||
regcache_raw_supply (current_regcache,
|
||||
mips_regnum (current_gdbarch)->fp0 + regi,
|
||||
(char *) &fpregsetp->fp_r.fp_regs[regi]);
|
||||
|
||||
regcache_raw_supply (current_regcache,
|
||||
mips_regnum (current_gdbarch)->fp_control_status,
|
||||
(char *) &fpregsetp->fp_csr);
|
||||
|
||||
/* FIXME: how can we supply FCRIR? The ABI doesn't tell us. */
|
||||
regcache_raw_supply (current_regcache,
|
||||
mips_regnum (current_gdbarch)->fp_implementation_revision,
|
||||
zerobuf);
|
||||
}
|
||||
|
||||
void
|
||||
fill_fpregset (fpregset_t *fpregsetp, int regno)
|
||||
{
|
||||
int regi;
|
||||
char *from, *to;
|
||||
|
||||
for (regi = mips_regnum (current_gdbarch)->fp0;
|
||||
regi < mips_regnum (current_gdbarch)->fp0 + 32; regi++)
|
||||
{
|
||||
if ((regno == -1) || (regno == regi))
|
||||
{
|
||||
from = (char *) &deprecated_registers[DEPRECATED_REGISTER_BYTE (regi)];
|
||||
to = (char *) &(fpregsetp->fp_r.fp_regs[regi - mips_regnum (current_gdbarch)->fp0]);
|
||||
memcpy (to, from, register_size (current_gdbarch, regi));
|
||||
}
|
||||
}
|
||||
|
||||
if ((regno == -1)
|
||||
|| (regno == mips_regnum (current_gdbarch)->fp_control_status))
|
||||
fpregsetp->fp_csr = *(unsigned *) &deprecated_registers[DEPRECATED_REGISTER_BYTE (mips_regnum (current_gdbarch)->fp_control_status)];
|
||||
}
|
||||
|
||||
|
||||
/* Figure out where the longjmp will land.
|
||||
We expect the first arg to be a pointer to the jmp_buf structure from which
|
||||
we extract the pc (_JB_PC) that we will land at. The pc is copied into PC.
|
||||
This routine returns true on success. */
|
||||
|
||||
int
|
||||
get_longjmp_target (CORE_ADDR *pc)
|
||||
{
|
||||
char *buf;
|
||||
CORE_ADDR jb_addr;
|
||||
|
||||
buf = alloca (TARGET_PTR_BIT / TARGET_CHAR_BIT);
|
||||
jb_addr = read_register (MIPS_A0_REGNUM);
|
||||
|
||||
if (target_read_memory (jb_addr + _JB_PC * JB_ELEMENT_SIZE, buf,
|
||||
TARGET_PTR_BIT / TARGET_CHAR_BIT))
|
||||
return 0;
|
||||
|
||||
*pc = extract_unsigned_integer (buf, TARGET_PTR_BIT / TARGET_CHAR_BIT);
|
||||
|
||||
return 1;
|
||||
}
|
Loading…
Reference in a new issue