projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add a new 'info proc files' subcommand of 'info proc'.
[deliverable/binutils-gdb.git]
/
gdb
/
mep-tdep.c
diff --git
a/gdb/mep-tdep.c
b/gdb/mep-tdep.c
index 623ab7f42f137f9745926755634d5d2794c75307..69e7fdda5975ef5100f3e0af27e36a55064842af 100644
(file)
--- a/
gdb/mep-tdep.c
+++ b/
gdb/mep-tdep.c
@@
-1,6
+1,6
@@
/* Target-dependent code for the Toshiba MeP for GDB, the GNU debugger.
/* Target-dependent code for the Toshiba MeP for GDB, the GNU debugger.
- Copyright (C) 2001-201
7
Free Software Foundation, Inc.
+ Copyright (C) 2001-201
8
Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
Contributed by Red Hat, Inc.
@@
-927,8
+927,6
@@
current_ccr_names (void)
static const char *
mep_register_name (struct gdbarch *gdbarch, int regnr)
{
static const char *
mep_register_name (struct gdbarch *gdbarch, int regnr)
{
- struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-
/* General-purpose registers. */
static const char *gpr_names[] = {
"r0", "r1", "r2", "r3", /* 0 */
/* General-purpose registers. */
static const char *gpr_names[] = {
"r0", "r1", "r2", "r3", /* 0 */
@@
-1114,18
+1112,9
@@
mep_register_type (struct gdbarch *gdbarch, int reg_nr)
return builtin_type (gdbarch)->builtin_uint32;
}
return builtin_type (gdbarch)->builtin_uint32;
}
-
-static CORE_ADDR
-mep_read_pc (struct regcache *regcache)
-{
- ULONGEST pc;
- regcache_cooked_read_unsigned (regcache, MEP_PC_REGNUM, &pc);
- return pc;
-}
-
static enum register_status
mep_pseudo_cr32_read (struct gdbarch *gdbarch,
static enum register_status
mep_pseudo_cr32_read (struct gdbarch *gdbarch,
-
struct
regcache *regcache,
+
readable_
regcache *regcache,
int cookednum,
gdb_byte *buf)
{
int cookednum,
gdb_byte *buf)
{
@@
-1138,7
+1127,7
@@
mep_pseudo_cr32_read (struct gdbarch *gdbarch,
gdb_assert (TYPE_LENGTH (register_type (gdbarch, rawnum)) == sizeof (buf64));
gdb_assert (TYPE_LENGTH (register_type (gdbarch, cookednum)) == 4);
gdb_assert (TYPE_LENGTH (register_type (gdbarch, rawnum)) == sizeof (buf64));
gdb_assert (TYPE_LENGTH (register_type (gdbarch, cookednum)) == 4);
- status = regcache
_raw_read (regcache,
rawnum, buf64);
+ status = regcache
->raw_read (
rawnum, buf64);
if (status == REG_VALID)
{
/* Slow, but legible. */
if (status == REG_VALID)
{
/* Slow, but legible. */
@@
-1151,23
+1140,23
@@
mep_pseudo_cr32_read (struct gdbarch *gdbarch,
static enum register_status
mep_pseudo_cr64_read (struct gdbarch *gdbarch,
static enum register_status
mep_pseudo_cr64_read (struct gdbarch *gdbarch,
-
struct
regcache *regcache,
+
readable_
regcache *regcache,
int cookednum,
gdb_byte *buf)
{
int cookednum,
gdb_byte *buf)
{
- return regcache
_raw_read (regcache,
mep_pseudo_to_raw[cookednum], buf);
+ return regcache
->raw_read (
mep_pseudo_to_raw[cookednum], buf);
}
static enum register_status
mep_pseudo_register_read (struct gdbarch *gdbarch,
}
static enum register_status
mep_pseudo_register_read (struct gdbarch *gdbarch,
-
struct
regcache *regcache,
+
readable_
regcache *regcache,
int cookednum,
gdb_byte *buf)
{
if (IS_CSR_REGNUM (cookednum)
|| IS_CCR_REGNUM (cookednum))
int cookednum,
gdb_byte *buf)
{
if (IS_CSR_REGNUM (cookednum)
|| IS_CCR_REGNUM (cookednum))
- return regcache
_raw_read (regcache,
mep_pseudo_to_raw[cookednum], buf);
+ return regcache
->raw_read (
mep_pseudo_to_raw[cookednum], buf);
else if (IS_CR32_REGNUM (cookednum)
|| IS_FP_CR32_REGNUM (cookednum))
return mep_pseudo_cr32_read (gdbarch, regcache, cookednum, buf);
else if (IS_CR32_REGNUM (cookednum)
|| IS_FP_CR32_REGNUM (cookednum))
return mep_pseudo_cr32_read (gdbarch, regcache, cookednum, buf);
@@
-1227,7
+1216,7
@@
mep_pseudo_cr32_write (struct gdbarch *gdbarch,
/* Slow, but legible. */
store_unsigned_integer (buf64, 8, byte_order,
extract_unsigned_integer (buf, 4, byte_order));
/* Slow, but legible. */
store_unsigned_integer (buf64, 8, byte_order,
extract_unsigned_integer (buf, 4, byte_order));
- regcache
_raw_write (regcache,
rawnum, buf64);
+ regcache
->raw_write (
rawnum, buf64);
}
}
@@
-1237,7
+1226,7
@@
mep_pseudo_cr64_write (struct gdbarch *gdbarch,
int cookednum,
const gdb_byte *buf)
{
int cookednum,
const gdb_byte *buf)
{
- regcache
_raw_write (regcache,
mep_pseudo_to_raw[cookednum], buf);
+ regcache
->raw_write (
mep_pseudo_to_raw[cookednum], buf);
}
}
@@
-1256,7
+1245,7
@@
mep_pseudo_register_write (struct gdbarch *gdbarch,
|| IS_FP_CR64_REGNUM (cookednum))
mep_pseudo_cr64_write (gdbarch, regcache, cookednum, buf);
else if (IS_CCR_REGNUM (cookednum))
|| IS_FP_CR64_REGNUM (cookednum))
mep_pseudo_cr64_write (gdbarch, regcache, cookednum, buf);
else if (IS_CCR_REGNUM (cookednum))
- regcache
_raw_write (regcache,
mep_pseudo_to_raw[cookednum], buf);
+ regcache
->raw_write (
mep_pseudo_to_raw[cookednum], buf);
else
gdb_assert_not_reached ("unexpected pseudo register");
}
else
gdb_assert_not_reached ("unexpected pseudo register");
}
@@
-1640,12
+1629,12
@@
is_arg_spill (struct gdbarch *gdbarch, pv_t value, pv_t addr,
{
return (is_arg_reg (value)
&& pv_is_register (addr, MEP_SP_REGNUM)
{
return (is_arg_reg (value)
&& pv_is_register (addr, MEP_SP_REGNUM)
- && !
pv_area_find_reg (stack,
gdbarch, value.reg, 0));
+ && !
stack->find_reg (
gdbarch, value.reg, 0));
}
/* Function for finding saved registers in a 'struct pv_area'; we pass
}
/* Function for finding saved registers in a 'struct pv_area'; we pass
- this to pv_area
_
scan.
+ this to pv_area
::
scan.
If VALUE is a saved register, ADDR says it was saved at a constant
offset from the frame base, and SIZE indicates that the whole
If VALUE is a saved register, ADDR says it was saved at a constant
offset from the frame base, and SIZE indicates that the whole
@@
-1673,10
+1662,7
@@
mep_analyze_prologue (struct gdbarch *gdbarch,
CORE_ADDR pc;
unsigned long insn;
int rn;
CORE_ADDR pc;
unsigned long insn;
int rn;
- int found_lp = 0;
pv_t reg[MEP_NUM_REGS];
pv_t reg[MEP_NUM_REGS];
- struct pv_area *stack;
- struct cleanup *back_to;
CORE_ADDR after_last_frame_setup_insn = start_pc;
memset (result, 0, sizeof (*result));
CORE_ADDR after_last_frame_setup_insn = start_pc;
memset (result, 0, sizeof (*result));
@@
-1688,8
+1674,7
@@
mep_analyze_prologue (struct gdbarch *gdbarch,
result->reg_offset[rn] = 1;
}
result->reg_offset[rn] = 1;
}
- stack = make_pv_area (MEP_SP_REGNUM, gdbarch_addr_bit (gdbarch));
- back_to = make_cleanup_free_pv_area (stack);
+ pv_area stack (MEP_SP_REGNUM, gdbarch_addr_bit (gdbarch));
pc = start_pc;
while (pc < limit_pc)
pc = start_pc;
while (pc < limit_pc)
@@
-1741,13
+1726,13
@@
mep_analyze_prologue (struct gdbarch *gdbarch,
/* If simulating this store would require us to forget
everything we know about the stack frame in the name of
accuracy, it would be better to just quit now. */
/* If simulating this store would require us to forget
everything we know about the stack frame in the name of
accuracy, it would be better to just quit now. */
- if (
pv_area_store_would_trash (stack,
reg[rm]))
+ if (
stack.store_would_trash (
reg[rm]))
break;
break;
- if (is_arg_spill (gdbarch, reg[rn], reg[rm], stack))
+ if (is_arg_spill (gdbarch, reg[rn], reg[rm],
&
stack))
after_last_frame_setup_insn = next_pc;
after_last_frame_setup_insn = next_pc;
-
pv_area_store (stack,
reg[rm], 4, reg[rn]);
+
stack.store (
reg[rm], 4, reg[rn]);
}
else if (IS_SW_IMMD (insn))
{
}
else if (IS_SW_IMMD (insn))
{
@@
-1758,13
+1743,13
@@
mep_analyze_prologue (struct gdbarch *gdbarch,
/* If simulating this store would require us to forget
everything we know about the stack frame in the name of
accuracy, it would be better to just quit now. */
/* If simulating this store would require us to forget
everything we know about the stack frame in the name of
accuracy, it would be better to just quit now. */
- if (
pv_area_store_would_trash (stack,
addr))
+ if (
stack.store_would_trash (
addr))
break;
break;
- if (is_arg_spill (gdbarch, reg[rn], addr, stack))
+ if (is_arg_spill (gdbarch, reg[rn], addr,
&
stack))
after_last_frame_setup_insn = next_pc;
after_last_frame_setup_insn = next_pc;
-
pv_area_store (stack,
addr, 4, reg[rn]);
+
stack.store (
addr, 4, reg[rn]);
}
else if (IS_MOV (insn))
{
}
else if (IS_MOV (insn))
{
@@
-1786,13
+1771,13
@@
mep_analyze_prologue (struct gdbarch *gdbarch,
: (gdb_assert (IS_SW (insn)), 4));
pv_t addr = pv_add_constant (reg[rm], disp);
: (gdb_assert (IS_SW (insn)), 4));
pv_t addr = pv_add_constant (reg[rm], disp);
- if (
pv_area_store_would_trash (stack,
addr))
+ if (
stack.store_would_trash (
addr))
break;
break;
- if (is_arg_spill (gdbarch, reg[rn], addr, stack))
+ if (is_arg_spill (gdbarch, reg[rn], addr,
&
stack))
after_last_frame_setup_insn = next_pc;
after_last_frame_setup_insn = next_pc;
-
pv_area_store (stack,
addr, size, reg[rn]);
+
stack.store (
addr, size, reg[rn]);
}
else if (IS_LDC (insn))
{
}
else if (IS_LDC (insn))
{
@@
-1808,7
+1793,7
@@
mep_analyze_prologue (struct gdbarch *gdbarch,
int offset = LW_OFFSET (insn);
pv_t addr = pv_add_constant (reg[rm], offset);
int offset = LW_OFFSET (insn);
pv_t addr = pv_add_constant (reg[rm], offset);
- reg[rn] =
pv_area_fetch (stack,
addr, 4);
+ reg[rn] =
stack.fetch (
addr, 4);
}
else if (IS_BRA (insn) && BRA_DISP (insn) > 0)
{
}
else if (IS_BRA (insn) && BRA_DISP (insn) > 0)
{
@@
-1887,11
+1872,9
@@
mep_analyze_prologue (struct gdbarch *gdbarch,
}
/* Record where all the registers were saved. */
}
/* Record where all the registers were saved. */
-
pv_area_scan (stack,
check_for_saved, (void *) result);
+
stack.scan (
check_for_saved, (void *) result);
result->prologue_end = after_last_frame_setup_insn;
result->prologue_end = after_last_frame_setup_insn;
-
- do_cleanups (back_to);
}
}
@@
-2022,7
+2005,6
@@
mep_frame_prev_register (struct frame_info *this_frame,
MEP_LP_REGNUM);
lp = value_as_long (value);
release_value (value);
MEP_LP_REGNUM);
lp = value_as_long (value);
release_value (value);
- value_free (value);
return frame_unwind_got_constant (this_frame, regnum, lp & ~1);
}
return frame_unwind_got_constant (this_frame, regnum, lp & ~1);
}
@@
-2053,13
+2035,11
@@
mep_frame_prev_register (struct frame_info *this_frame,
psw = value_as_long (value);
release_value (value);
psw = value_as_long (value);
release_value (value);
- value_free (value);
/* Get the LP's value, too. */
value = get_frame_register_value (this_frame, MEP_LP_REGNUM);
lp = value_as_long (value);
release_value (value);
/* Get the LP's value, too. */
value = get_frame_register_value (this_frame, MEP_LP_REGNUM);
lp = value_as_long (value);
release_value (value);
- value_free (value);
/* If LP.LTOM is set, then toggle PSW.OM. */
if (lp & 0x1)
/* If LP.LTOM is set, then toggle PSW.OM. */
if (lp & 0x1)
@@
-2133,9
+2113,8
@@
mep_extract_return_value (struct gdbarch *arch,
offset = 0;
/* Return values that do fit in a single register are returned in R0. */
offset = 0;
/* Return values that do fit in a single register are returned in R0. */
- regcache_cooked_read_part (regcache, MEP_R0_REGNUM,
- offset, TYPE_LENGTH (type),
- valbuf);
+ regcache->cooked_read_part (MEP_R0_REGNUM, offset, TYPE_LENGTH (type),
+ valbuf);
}
}
@@
-2160,9
+2139,8
@@
mep_store_return_value (struct gdbarch *arch,
else
offset = 0;
else
offset = 0;
- regcache_cooked_write_part (regcache, MEP_R0_REGNUM,
- offset, TYPE_LENGTH (type),
- valbuf);
+ regcache->cooked_write_part (MEP_R0_REGNUM, offset, TYPE_LENGTH (type),
+ valbuf);
}
/* Return values larger than a single register are returned in
}
/* Return values larger than a single register are returned in
@@
-2286,7
+2264,6
@@
mep_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
{
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
CORE_ADDR *copy = (CORE_ADDR *) alloca (argc * sizeof (copy[0]));
{
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
CORE_ADDR *copy = (CORE_ADDR *) alloca (argc * sizeof (copy[0]));
- CORE_ADDR func_addr = find_function_addr (function, NULL);
int i;
/* The number of the next register available to hold an argument. */
int i;
/* The number of the next register available to hold an argument. */
@@
-2454,7
+2431,6
@@
mep_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
tdep->me_module = me_module;
/* Register set. */
tdep->me_module = me_module;
/* Register set. */
- set_gdbarch_read_pc (gdbarch, mep_read_pc);
set_gdbarch_num_regs (gdbarch, MEP_NUM_RAW_REGS);
set_gdbarch_pc_regnum (gdbarch, MEP_PC_REGNUM);
set_gdbarch_sp_regnum (gdbarch, MEP_SP_REGNUM);
set_gdbarch_num_regs (gdbarch, MEP_NUM_RAW_REGS);
set_gdbarch_pc_regnum (gdbarch, MEP_PC_REGNUM);
set_gdbarch_sp_regnum (gdbarch, MEP_SP_REGNUM);
This page took
0.029497 seconds
and
4
git commands to generate.