projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
2004-07-21 Andrew Cagney <cagney@gnu.org>
[deliverable/binutils-gdb.git]
/
gdb
/
mipsnbsd-tdep.c
diff --git
a/gdb/mipsnbsd-tdep.c
b/gdb/mipsnbsd-tdep.c
index 73ba3847ba4aa625504eba536f3118cac6ac1879..d18e0a51c16822000042200203be65ee8cbc0479 100644
(file)
--- a/
gdb/mipsnbsd-tdep.c
+++ b/
gdb/mipsnbsd-tdep.c
@@
-1,5
+1,5
@@
/* Target-dependent code for MIPS systems running NetBSD.
/* Target-dependent code for MIPS systems running NetBSD.
- Copyright 2002 Free Software Foundation, Inc.
+ Copyright 2002
, 2003, 2004
Free Software Foundation, Inc.
Contributed by Wasabi Systems, Inc.
This file is part of GDB.
Contributed by Wasabi Systems, Inc.
This file is part of GDB.
@@
-28,6
+28,7
@@
#include "nbsd-tdep.h"
#include "mipsnbsd-tdep.h"
#include "nbsd-tdep.h"
#include "mipsnbsd-tdep.h"
+#include "mips-tdep.h"
#include "solib-svr4.h"
#include "solib-svr4.h"
@@
-44,9
+45,10
@@
mipsnbsd_supply_reg (char *regs, int regno)
if (regno == i || regno == -1)
{
if (CANNOT_FETCH_REGISTER (i))
if (regno == i || regno == -1)
{
if (CANNOT_FETCH_REGISTER (i))
-
supply_register (
i, NULL);
+
regcache_raw_supply (current_regcache,
i, NULL);
else
else
- supply_register (i, regs + (i * MIPS_REGSIZE));
+ regcache_raw_supply (current_regcache, i,
+ regs + (i * mips_isa_regsize (current_gdbarch)));
}
}
}
}
}
}
@@
-58,7
+60,7
@@
mipsnbsd_fill_reg (char *regs, int regno)
for (i = 0; i <= PC_REGNUM; i++)
if ((regno == i || regno == -1) && ! CANNOT_STORE_REGISTER (i))
for (i = 0; i <= PC_REGNUM; i++)
if ((regno == i || regno == -1) && ! CANNOT_STORE_REGISTER (i))
- regcache_collect (i, regs + (i *
MIPS_REGSIZE
));
+ regcache_collect (i, regs + (i *
mips_isa_regsize (current_gdbarch)
));
}
void
}
void
@@
-66,14
+68,17
@@
mipsnbsd_supply_fpreg (char *fpregs, int regno)
{
int i;
{
int i;
- for (i = FP0_REGNUM; i <= FCRIR_REGNUM; i++)
+ for (i = FP0_REGNUM;
+ i <= mips_regnum (current_gdbarch)->fp_implementation_revision;
+ i++)
{
if (regno == i || regno == -1)
{
if (CANNOT_FETCH_REGISTER (i))
{
if (regno == i || regno == -1)
{
if (CANNOT_FETCH_REGISTER (i))
-
supply_register (
i, NULL);
+
regcache_raw_supply (current_regcache,
i, NULL);
else
else
- supply_register (i, fpregs + ((i - FP0_REGNUM) * MIPS_REGSIZE));
+ regcache_raw_supply (current_regcache, i,
+ fpregs + ((i - FP0_REGNUM) * mips_isa_regsize (current_gdbarch)));
}
}
}
}
}
}
@@
-83,9
+88,10
@@
mipsnbsd_fill_fpreg (char *fpregs, int regno)
{
int i;
{
int i;
- for (i = FP0_REGNUM; i <= FCRCS_REGNUM; i++)
+ for (i = FP0_REGNUM; i <= mips_regnum (current_gdbarch)->fp_control_status;
+ i++)
if ((regno == i || regno == -1) && ! CANNOT_STORE_REGISTER (i))
if ((regno == i || regno == -1) && ! CANNOT_STORE_REGISTER (i))
- regcache_collect (i, fpregs + ((i - FP0_REGNUM) *
MIPS_REGSIZE
));
+ regcache_collect (i, fpregs + ((i - FP0_REGNUM) *
mips_isa_regsize (current_gdbarch)
));
}
static void
}
static void
@@
-105,7
+111,7
@@
fetch_core_registers (char *core_reg_sect, unsigned core_reg_size, int which,
mipsnbsd_supply_reg (regs, -1);
/* Floating point registers. */
mipsnbsd_supply_reg (regs, -1);
/* Floating point registers. */
- mipsnbsd_supply_fpreg (regs, -1);
+ mipsnbsd_supply_fpreg (
fp
regs, -1);
}
static void
}
static void
@@
-194,7
+200,7
@@
mipsnbsd_sigtramp_offset (CORE_ADDR pc)
LONGEST off;
int i;
LONGEST off;
int i;
- if (read_memory_nobpt (pc, (char *) w, sizeof (w)) != 0)
+ if (
deprecated_
read_memory_nobpt (pc, (char *) w, sizeof (w)) != 0)
return -1;
for (i = 0; i < RETCODE_NWORDS; i++)
return -1;
for (i = 0; i < RETCODE_NWORDS; i++)
@@
-208,7
+214,7
@@
mipsnbsd_sigtramp_offset (CORE_ADDR pc)
off = i * 4;
pc -= off;
off = i * 4;
pc -= off;
- if (read_memory_nobpt (pc, (char *) ret, sizeof (ret)) != 0)
+ if (
deprecated_
read_memory_nobpt (pc, (char *) ret, sizeof (ret)) != 0)
return -1;
if (memcmp (ret, retcode, RETCODE_SIZE) == 0)
return -1;
if (memcmp (ret, retcode, RETCODE_SIZE) == 0)
@@
-217,13
+223,6
@@
mipsnbsd_sigtramp_offset (CORE_ADDR pc)
return -1;
}
return -1;
}
-static int
-mipsnbsd_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
-{
- return (nbsd_pc_in_sigtramp (pc, func_name)
- || mipsnbsd_sigtramp_offset (pc) >= 0);
-}
-
/* Figure out where the longjmp will land. We expect that we have
just entered longjmp and haven't yet setup the stack frame, so
the args are still in the argument regs. A0_REGNUM points at the
/* Figure out where the longjmp will land. We expect that we have
just entered longjmp and haven't yet setup the stack frame, so
the args are still in the argument regs. A0_REGNUM points at the
@@
-232,7
+231,7
@@
mipsnbsd_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
success. */
#define NBSD_MIPS_JB_PC (2 * 4)
success. */
#define NBSD_MIPS_JB_PC (2 * 4)
-#define NBSD_MIPS_JB_ELEMENT_SIZE
MIPS_REGSIZE
+#define NBSD_MIPS_JB_ELEMENT_SIZE
mips_isa_regsize (current_gdbarch)
#define NBSD_MIPS_JB_OFFSET (NBSD_MIPS_JB_PC * \
NBSD_MIPS_JB_ELEMENT_SIZE)
#define NBSD_MIPS_JB_OFFSET (NBSD_MIPS_JB_PC * \
NBSD_MIPS_JB_ELEMENT_SIZE)
@@
-250,7
+249,7
@@
mipsnbsd_get_longjmp_target (CORE_ADDR *pc)
NBSD_MIPS_JB_ELEMENT_SIZE))
return 0;
NBSD_MIPS_JB_ELEMENT_SIZE))
return 0;
- *pc = extract_
address
(buf, NBSD_MIPS_JB_ELEMENT_SIZE);
+ *pc = extract_
unsigned_integer
(buf, NBSD_MIPS_JB_ELEMENT_SIZE);
return 1;
}
return 1;
}
@@
-259,14
+258,14
@@
static int
mipsnbsd_cannot_fetch_register (int regno)
{
return (regno == ZERO_REGNUM
mipsnbsd_cannot_fetch_register (int regno)
{
return (regno == ZERO_REGNUM
- || regno ==
FCRIR_REGNUM
);
+ || regno ==
mips_regnum (current_gdbarch)->fp_implementation_revision
);
}
static int
mipsnbsd_cannot_store_register (int regno)
{
return (regno == ZERO_REGNUM
}
static int
mipsnbsd_cannot_store_register (int regno)
{
return (regno == ZERO_REGNUM
- || regno ==
FCRIR_REGNUM
);
+ || regno ==
mips_regnum (current_gdbarch)->fp_implementation_revision
);
}
/* NetBSD/mips uses a slightly different link_map structure from the
}
/* NetBSD/mips uses a slightly different link_map structure from the
@@
-341,8
+340,6
@@
static void
mipsnbsd_init_abi (struct gdbarch_info info,
struct gdbarch *gdbarch)
{
mipsnbsd_init_abi (struct gdbarch_info info,
struct gdbarch *gdbarch)
{
- set_gdbarch_pc_in_sigtramp (gdbarch, mipsnbsd_pc_in_sigtramp);
-
set_gdbarch_get_longjmp_target (gdbarch, mipsnbsd_get_longjmp_target);
set_gdbarch_cannot_fetch_register (gdbarch, mipsnbsd_cannot_fetch_register);
set_gdbarch_get_longjmp_target (gdbarch, mipsnbsd_get_longjmp_target);
set_gdbarch_cannot_fetch_register (gdbarch, mipsnbsd_cannot_fetch_register);
@@
-359,9
+356,9
@@
mipsnbsd_init_abi (struct gdbarch_info info,
void
_initialize_mipsnbsd_tdep (void)
{
void
_initialize_mipsnbsd_tdep (void)
{
- gdbarch_register_osabi (bfd_arch_mips, GDB_OSABI_NETBSD_ELF,
+ gdbarch_register_osabi (bfd_arch_mips,
0,
GDB_OSABI_NETBSD_ELF,
mipsnbsd_init_abi);
mipsnbsd_init_abi);
- add_core_fns (&mipsnbsd_core_fns);
- add_core_fns (&mipsnbsd_elfcore_fns);
+
deprecated_
add_core_fns (&mipsnbsd_core_fns);
+
deprecated_
add_core_fns (&mipsnbsd_elfcore_fns);
}
}
This page took
0.025917 seconds
and
4
git commands to generate.