projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix nullptr in with_command_1
[deliverable/binutils-gdb.git]
/
gdb
/
xtensa-tdep.c
diff --git
a/gdb/xtensa-tdep.c
b/gdb/xtensa-tdep.c
index c23d7770f81a4992fe43c045e681623afab71c52..efa0bcb1dc3ba05cd037874aa2431d060873aa3f 100644
(file)
--- a/
gdb/xtensa-tdep.c
+++ b/
gdb/xtensa-tdep.c
@@
-1,6
+1,6
@@
/* Target-dependent code for the Xtensa port of GDB, the GNU debugger.
/* Target-dependent code for the Xtensa port of GDB, the GNU debugger.
- Copyright (C) 2003-201
8
Free Software Foundation, Inc.
+ Copyright (C) 2003-201
9
Free Software Foundation, Inc.
This file is part of GDB.
This file is part of GDB.
@@
-234,9
+234,7
@@
xtensa_find_register_by_name (struct gdbarch *gdbarch, const char *name)
{
int i;
{
int i;
- for (i = 0; i < gdbarch_num_regs (gdbarch)
- + gdbarch_num_pseudo_regs (gdbarch);
- i++)
+ for (i = 0; i < gdbarch_num_cooked_regs (gdbarch); i++)
if (strcasecmp (gdbarch_tdep (gdbarch)->regmap[i].name, name) == 0)
return i;
if (strcasecmp (gdbarch_tdep (gdbarch)->regmap[i].name, name) == 0)
return i;
@@
-249,8
+247,7
@@
static const char *
xtensa_register_name (struct gdbarch *gdbarch, int regnum)
{
/* Return the name stored in the register map. */
xtensa_register_name (struct gdbarch *gdbarch, int regnum)
{
/* Return the name stored in the register map. */
- if (regnum >= 0 && regnum < gdbarch_num_regs (gdbarch)
- + gdbarch_num_pseudo_regs (gdbarch))
+ if (regnum >= 0 && regnum < gdbarch_num_cooked_regs (gdbarch))
return gdbarch_tdep (gdbarch)->regmap[regnum].name;
internal_error (__FILE__, __LINE__, _("invalid register %d"), regnum);
return gdbarch_tdep (gdbarch)->regmap[regnum].name;
internal_error (__FILE__, __LINE__, _("invalid register %d"), regnum);
@@
-276,8
+273,7
@@
xtensa_register_type (struct gdbarch *gdbarch, int regnum)
return builtin_type (gdbarch)->builtin_data_ptr;
/* Return the stored type for all other registers. */
return builtin_type (gdbarch)->builtin_data_ptr;
/* Return the stored type for all other registers. */
- else if (regnum >= 0 && regnum < gdbarch_num_regs (gdbarch)
- + gdbarch_num_pseudo_regs (gdbarch))
+ else if (regnum >= 0 && regnum < gdbarch_num_cooked_regs (gdbarch))
{
xtensa_register_t* reg = &tdep->regmap[regnum];
{
xtensa_register_t* reg = &tdep->regmap[regnum];
@@
-319,15
+315,14
@@
xtensa_register_type (struct gdbarch *gdbarch, int regnum)
if (tp == NULL)
{
if (tp == NULL)
{
-
char *name = xstr
printf ("int%d", size * 8);
+
std::string name = string_
printf ("int%d", size * 8);
tp = XNEW (struct ctype_cache);
tp->next = tdep->type_entries;
tdep->type_entries = tp;
tp->size = size;
tp->virtual_type
tp = XNEW (struct ctype_cache);
tp->next = tdep->type_entries;
tdep->type_entries = tp;
tp->size = size;
tp->virtual_type
- = arch_integer_type (gdbarch, size * 8, 1, name);
- xfree (name);
+ = arch_integer_type (gdbarch, size * 8, 1, name.c_str ());
}
reg->ctype = tp->virtual_type;
}
reg->ctype = tp->virtual_type;
@@
-353,9
+348,7
@@
xtensa_reg_to_regnum (struct gdbarch *gdbarch, int regnum)
if (regnum >= 0 && regnum < 16)
return gdbarch_tdep (gdbarch)->a0_base + regnum;
if (regnum >= 0 && regnum < 16)
return gdbarch_tdep (gdbarch)->a0_base + regnum;
- for (i = 0;
- i < gdbarch_num_regs (gdbarch) + gdbarch_num_pseudo_regs (gdbarch);
- i++)
+ for (i = 0; i < gdbarch_num_cooked_regs (gdbarch); i++)
if (regnum == gdbarch_tdep (gdbarch)->regmap[i].target_number)
return i;
if (regnum == gdbarch_tdep (gdbarch)->regmap[i].target_number)
return i;
@@
-586,9
+579,7
@@
xtensa_pseudo_register_read (struct gdbarch *gdbarch,
return REG_VALID;
}
/* Pseudo registers. */
return REG_VALID;
}
/* Pseudo registers. */
- else if (regnum >= 0
- && regnum < gdbarch_num_regs (gdbarch)
- + gdbarch_num_pseudo_regs (gdbarch))
+ else if (regnum >= 0 && regnum < gdbarch_num_cooked_regs (gdbarch))
{
xtensa_register_t *reg = &gdbarch_tdep (gdbarch)->regmap[regnum];
xtensa_register_type_t type = reg->type;
{
xtensa_register_t *reg = &gdbarch_tdep (gdbarch)->regmap[regnum];
xtensa_register_type_t type = reg->type;
@@
-671,9
+662,7
@@
xtensa_pseudo_register_write (struct gdbarch *gdbarch,
return;
}
/* Pseudo registers. */
return;
}
/* Pseudo registers. */
- else if (regnum >= 0
- && regnum < gdbarch_num_regs (gdbarch)
- + gdbarch_num_pseudo_regs (gdbarch))
+ else if (regnum >= 0 && regnum < gdbarch_num_cooked_regs (gdbarch))
{
xtensa_register_t *reg = &gdbarch_tdep (gdbarch)->regmap[regnum];
xtensa_register_type_t type = reg->type;
{
xtensa_register_t *reg = &gdbarch_tdep (gdbarch)->regmap[regnum];
xtensa_register_type_t type = reg->type;
@@
-848,38
+837,37
@@
xtensa_supply_gregset (const struct regset *regset,
DEBUGTRACE ("xtensa_supply_gregset (..., regnum==%d, ...)\n", regnum);
if (regnum == gdbarch_pc_regnum (gdbarch) || regnum == -1)
DEBUGTRACE ("xtensa_supply_gregset (..., regnum==%d, ...)\n", regnum);
if (regnum == gdbarch_pc_regnum (gdbarch) || regnum == -1)
- r
egcache_raw_supply (rc,
gdbarch_pc_regnum (gdbarch), (char *) ®s->pc);
+ r
c->raw_supply (
gdbarch_pc_regnum (gdbarch), (char *) ®s->pc);
if (regnum == gdbarch_ps_regnum (gdbarch) || regnum == -1)
if (regnum == gdbarch_ps_regnum (gdbarch) || regnum == -1)
- r
egcache_raw_supply (rc,
gdbarch_ps_regnum (gdbarch), (char *) ®s->ps);
+ r
c->raw_supply (
gdbarch_ps_regnum (gdbarch), (char *) ®s->ps);
if (regnum == gdbarch_tdep (gdbarch)->wb_regnum || regnum == -1)
if (regnum == gdbarch_tdep (gdbarch)->wb_regnum || regnum == -1)
- r
egcache_raw_supply (rc,
gdbarch_tdep (gdbarch)->wb_regnum,
-
(char *) ®s->windowbase);
+ r
c->raw_supply (
gdbarch_tdep (gdbarch)->wb_regnum,
+ (char *) ®s->windowbase);
if (regnum == gdbarch_tdep (gdbarch)->ws_regnum || regnum == -1)
if (regnum == gdbarch_tdep (gdbarch)->ws_regnum || regnum == -1)
- r
egcache_raw_supply (rc,
gdbarch_tdep (gdbarch)->ws_regnum,
-
(char *) ®s->windowstart);
+ r
c->raw_supply (
gdbarch_tdep (gdbarch)->ws_regnum,
+ (char *) ®s->windowstart);
if (regnum == gdbarch_tdep (gdbarch)->lbeg_regnum || regnum == -1)
if (regnum == gdbarch_tdep (gdbarch)->lbeg_regnum || regnum == -1)
- r
egcache_raw_supply (rc,
gdbarch_tdep (gdbarch)->lbeg_regnum,
-
(char *) ®s->lbeg);
+ r
c->raw_supply (
gdbarch_tdep (gdbarch)->lbeg_regnum,
+ (char *) ®s->lbeg);
if (regnum == gdbarch_tdep (gdbarch)->lend_regnum || regnum == -1)
if (regnum == gdbarch_tdep (gdbarch)->lend_regnum || regnum == -1)
- r
egcache_raw_supply (rc,
gdbarch_tdep (gdbarch)->lend_regnum,
-
(char *) ®s->lend);
+ r
c->raw_supply (
gdbarch_tdep (gdbarch)->lend_regnum,
+ (char *) ®s->lend);
if (regnum == gdbarch_tdep (gdbarch)->lcount_regnum || regnum == -1)
if (regnum == gdbarch_tdep (gdbarch)->lcount_regnum || regnum == -1)
- r
egcache_raw_supply (rc,
gdbarch_tdep (gdbarch)->lcount_regnum,
-
(char *) ®s->lcount);
+ r
c->raw_supply (
gdbarch_tdep (gdbarch)->lcount_regnum,
+ (char *) ®s->lcount);
if (regnum == gdbarch_tdep (gdbarch)->sar_regnum || regnum == -1)
if (regnum == gdbarch_tdep (gdbarch)->sar_regnum || regnum == -1)
- r
egcache_raw_supply (rc,
gdbarch_tdep (gdbarch)->sar_regnum,
-
(char *) ®s->sar);
+ r
c->raw_supply (
gdbarch_tdep (gdbarch)->sar_regnum,
+ (char *) ®s->sar);
if (regnum >=gdbarch_tdep (gdbarch)->ar_base
&& regnum < gdbarch_tdep (gdbarch)->ar_base
+ gdbarch_tdep (gdbarch)->num_aregs)
if (regnum >=gdbarch_tdep (gdbarch)->ar_base
&& regnum < gdbarch_tdep (gdbarch)->ar_base
+ gdbarch_tdep (gdbarch)->num_aregs)
- regcache_raw_supply (rc, regnum,
- (char *) ®s->ar[regnum - gdbarch_tdep
- (gdbarch)->ar_base]);
+ rc->raw_supply
+ (regnum, (char *) ®s->ar[regnum - gdbarch_tdep (gdbarch)->ar_base]);
else if (regnum == -1)
{
for (i = 0; i < gdbarch_tdep (gdbarch)->num_aregs; ++i)
else if (regnum == -1)
{
for (i = 0; i < gdbarch_tdep (gdbarch)->num_aregs; ++i)
- r
egcache_raw_supply (rc,
gdbarch_tdep (gdbarch)->ar_base + i,
-
(char *) ®s->ar[i]);
+ r
c->raw_supply (
gdbarch_tdep (gdbarch)->ar_base + i,
+ (char *) ®s->ar[i]);
}
}
}
}
@@
-904,8
+892,8
@@
xtensa_iterate_over_regset_sections (struct gdbarch *gdbarch,
{
DEBUGTRACE ("xtensa_iterate_over_regset_sections\n");
{
DEBUGTRACE ("xtensa_iterate_over_regset_sections\n");
- cb (".reg", sizeof (xtensa_elf_gregset_t),
&xtensa_gregset
,
- NULL, cb_data);
+ cb (".reg", sizeof (xtensa_elf_gregset_t),
sizeof (xtensa_elf_gregset_t)
,
+
&xtensa_gregset,
NULL, cb_data);
}
}
@@
-1596,7
+1584,7
@@
xtensa_extract_return_value (struct type *type,
for (; len > 0; len -= 4, areg++, valbuf += 4)
{
if (len < 4)
for (; len > 0; len -= 4, areg++, valbuf += 4)
{
if (len < 4)
- regcache
_raw_read_part (regcache,
areg, offset, len, valbuf);
+ regcache
->raw_read_part (
areg, offset, len, valbuf);
else
regcache->raw_read (areg, valbuf);
}
else
regcache->raw_read (areg, valbuf);
}
@@
-1627,8
+1615,8
@@
xtensa_store_return_value (struct type *type,
if (len > (callsize > 8 ? 8 : 16))
internal_error (__FILE__, __LINE__,
if (len > (callsize > 8 ? 8 : 16))
internal_error (__FILE__, __LINE__,
- _("unimplemented for this length: %
d
"),
-
TYPE_LENGTH (type
));
+ _("unimplemented for this length: %
s
"),
+
pulongest (TYPE_LENGTH (type)
));
areg = arreg_number (gdbarch,
gdbarch_tdep (gdbarch)->a0_base + 2 + callsize, wb);
areg = arreg_number (gdbarch,
gdbarch_tdep (gdbarch)->a0_base + 2 + callsize, wb);
@@
-1646,7
+1634,7
@@
xtensa_store_return_value (struct type *type,
for (; len > 0; len -= 4, areg++, valbuf += 4)
{
if (len < 4)
for (; len > 0; len -= 4, areg++, valbuf += 4)
{
if (len < 4)
- regcache
_raw_write_part (regcache,
areg, offset, len, valbuf);
+ regcache
->raw_write_part (
areg, offset, len, valbuf);
else
regcache->raw_write (areg, valbuf);
}
else
regcache->raw_write (areg, valbuf);
}
@@
-1697,11
+1685,10
@@
xtensa_push_dummy_call (struct gdbarch *gdbarch,
int nargs,
struct value **args,
CORE_ADDR sp,
int nargs,
struct value **args,
CORE_ADDR sp,
-
int struct_return
,
+
function_call_return_method return_method
,
CORE_ADDR struct_addr)
{
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
CORE_ADDR struct_addr)
{
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- int i;
int size, onstack_size;
gdb_byte *buf = (gdb_byte *) alloca (16);
CORE_ADDR ra, ps;
int size, onstack_size;
gdb_byte *buf = (gdb_byte *) alloca (16);
CORE_ADDR ra, ps;
@@
-1727,19
+1714,18
@@
xtensa_push_dummy_call (struct gdbarch *gdbarch,
if (xtensa_debug_level > 3)
{
if (xtensa_debug_level > 3)
{
- int i;
DEBUGINFO ("[xtensa_push_dummy_call] nargs = %d\n", nargs);
DEBUGINFO ("[xtensa_push_dummy_call] nargs = %d\n", nargs);
- DEBUGINFO ("[xtensa_push_dummy_call] sp=0x%x,
struct_return
=%d, "
+ DEBUGINFO ("[xtensa_push_dummy_call] sp=0x%x,
return_method
=%d, "
"struct_addr=0x%x\n",
"struct_addr=0x%x\n",
- (int) sp, (int)
struct_return
, (int) struct_addr);
+ (int) sp, (int)
return_method
, (int) struct_addr);
- for (i = 0; i < nargs; i++)
+ for (i
nt i
= 0; i < nargs; i++)
{
struct value *arg = args[i];
struct type *arg_type = check_typedef (value_type (arg));
{
struct value *arg = args[i];
struct type *arg_type = check_typedef (value_type (arg));
- fprintf_unfiltered (gdb_stdlog, "%2d: %s %3
d
", i,
+ fprintf_unfiltered (gdb_stdlog, "%2d: %s %3
s
", i,
host_address_to_string (arg),
host_address_to_string (arg),
-
TYPE_LENGTH (arg_type
));
+
pulongest (TYPE_LENGTH (arg_type)
));
switch (TYPE_CODE (arg_type))
{
case TYPE_CODE_INT:
switch (TYPE_CODE (arg_type))
{
case TYPE_CODE_INT:
@@
-1764,12
+1750,11
@@
xtensa_push_dummy_call (struct gdbarch *gdbarch,
size = 0;
onstack_size = 0;
size = 0;
onstack_size = 0;
- i = 0;
- if (
struct_return
)
+ if (
return_method == return_method_struct
)
size = REGISTER_SIZE;
size = REGISTER_SIZE;
- for (i = 0; i < nargs; i++)
+ for (i
nt i
= 0; i < nargs; i++)
{
struct argument_info *info = &arg_info[i];
struct value *arg = args[i];
{
struct argument_info *info = &arg_info[i];
struct value *arg = args[i];
@@
-1843,13
+1828,13
@@
xtensa_push_dummy_call (struct gdbarch *gdbarch,
/* Second Loop: Load arguments. */
/* Second Loop: Load arguments. */
- if (
struct_return
)
+ if (
return_method == return_method_struct
)
{
store_unsigned_integer (buf, REGISTER_SIZE, byte_order, struct_addr);
{
store_unsigned_integer (buf, REGISTER_SIZE, byte_order, struct_addr);
- regcache
_cooked_write (regcache,
ARG_1ST (gdbarch), buf);
+ regcache
->cooked_write (
ARG_1ST (gdbarch), buf);
}
}
- for (i = 0; i < nargs; i++)
+ for (i
nt i
= 0; i < nargs; i++)
{
struct argument_info *info = &arg_info[i];
{
struct argument_info *info = &arg_info[i];
@@
-1888,7
+1873,7
@@
xtensa_push_dummy_call (struct gdbarch *gdbarch,
v = v >> ((REGISTER_SIZE - n) * TARGET_CHAR_BIT);
store_unsigned_integer (buf, REGISTER_SIZE, byte_order, v);
v = v >> ((REGISTER_SIZE - n) * TARGET_CHAR_BIT);
store_unsigned_integer (buf, REGISTER_SIZE, byte_order, v);
- regcache
_cooked_write (regcache,
r, buf);
+ regcache
->cooked_write (
r, buf);
cp += REGISTER_SIZE;
n -= REGISTER_SIZE;
cp += REGISTER_SIZE;
n -= REGISTER_SIZE;
@@
-1897,7
+1882,7
@@
xtensa_push_dummy_call (struct gdbarch *gdbarch,
else
while (n > 0)
{
else
while (n > 0)
{
- regcache
_cooked_write (regcache,
r, cp);
+ regcache
->cooked_write (
r, cp);
cp += REGISTER_SIZE;
n -= REGISTER_SIZE;
cp += REGISTER_SIZE;
n -= REGISTER_SIZE;
This page took
0.028246 seconds
and
4
git commands to generate.