&& type->length () == 4);
}
-static int
+static bool
alpha_register_to_value (const frame_info_ptr &frame, int regnum,
struct type *valtype, gdb_byte *out,
- int *optimizedp, int *unavailablep)
+ bool *optimizedp, bool *unavailablep)
{
struct gdbarch *gdbarch = get_frame_arch (frame);
struct value *value = get_frame_register_value (frame, regnum);
if (*optimizedp || *unavailablep)
{
release_value (value);
- return 0;
+ return false;
}
/* Convert to VALTYPE. */
alpha_sts (gdbarch, out, value->contents_all ().data ());
release_value (value);
- return 1;
+ return true;
}
static void
gdbarch *arch = frame_unwind_arch (next_frame);
int gdb_regnum = dwarf_reg_to_regnum_or_error (arch, p->v.regno);
ULONGEST reg_bits = 8 * register_size (arch, gdb_regnum);
- int optim, unavail;
+ bool optim, unavail;
if (p->offset + p->size < reg_bits)
{
if (gdbarch_convert_register_p (gdbarch, regnum, type1))
{
- int optim, unavail, ok;
+ bool optim, unavail;
/* The ISA/ABI need to something weird when obtaining the
specified value from this register. It might need to
including the location. */
v = value::allocate_register (get_next_frame_sentinel_okay (frame),
regnum, type);
- ok = gdbarch_register_to_value (gdbarch, frame, regnum, type1,
- v->contents_raw ().data (), &optim,
- &unavail);
+ bool ok = gdbarch_register_to_value (gdbarch, frame, regnum, type1,
+ v->contents_raw ().data (), &optim,
+ &unavail);
if (!ok)
{
void
frame_register_unwind (const frame_info_ptr &next_frame, int regnum,
- int *optimizedp, int *unavailablep,
+ bool *optimizedp, bool *unavailablep,
enum lval_type *lvalp, CORE_ADDR *addrp,
int *realnump,
gdb::array_view<gdb_byte> buffer)
frame_unwind_register (const frame_info_ptr &next_frame, int regnum,
gdb::array_view<gdb_byte> buf)
{
- int optimized;
- int unavailable;
+ bool optimized;
+ bool unavailable;
CORE_ADDR addr;
int realnum;
enum lval_type lval;
{
gdbarch *gdbarch = frame_unwind_arch (next_frame);
int realnum;
- int optim;
- int unavail;
+ bool optim;
+ bool unavail;
enum lval_type lval;
CORE_ADDR addr;
int size = register_size (gdbarch, regnum);
deprecated_frame_register_read (const frame_info_ptr &frame, int regnum,
gdb::array_view<gdb_byte> myaddr)
{
- int optimized;
- int unavailable;
+ bool optimized;
+ bool unavailable;
enum lval_type lval;
CORE_ADDR addr;
int realnum;
bool
get_frame_register_bytes (const frame_info_ptr &next_frame, int regnum,
CORE_ADDR offset, gdb::array_view<gdb_byte> buffer,
- int *optimizedp, int *unavailablep)
+ bool *optimizedp, bool *unavailablep)
{
gdbarch *gdbarch = frame_unwind_arch (next_frame);
static void
frame_register_unwind_location (const frame_info_ptr &initial_this_frame,
- int regnum, int *optimizedp, lval_type *lvalp,
+ int regnum, bool *optimizedp, lval_type *lvalp,
CORE_ADDR *addrp, int *realnump)
{
gdb_assert (initial_this_frame == nullptr || initial_this_frame->level >= 0);
frame_info_ptr this_frame = initial_this_frame;
while (this_frame != NULL)
{
- int unavailable;
+ bool unavailable;
frame_register_unwind (this_frame, regnum, optimizedp, &unavailable,
lvalp, addrp, realnump);
&& (get_frame_type (frame_info_ptr (this_frame->next)) == NORMAL_FRAME
|| get_frame_type (frame_info_ptr (this_frame->next)) == INLINE_FRAME))
{
- int optimized, realnum, nrealnum;
+ bool optimized;
+ int realnum, nrealnum;
enum lval_type lval, nlval;
CORE_ADDR addr, naddr;
fetch/compute the value. Instead just return the location of the
value. */
extern void frame_register_unwind (const frame_info_ptr &frame, int regnum,
- int *optimizedp, int *unavailablep,
+ bool *optimizedp, bool *unavailablep,
enum lval_type *lvalp,
CORE_ADDR *addrp, int *realnump,
gdb::array_view<gdb_byte> value = {});
extern bool get_frame_register_bytes (const frame_info_ptr &next_frame,
int regnum, CORE_ADDR offset,
gdb::array_view<gdb_byte> buffer,
- int *optimizedp, int *unavailablep);
+ bool *optimizedp, bool *unavailablep);
/* Write bytes from BUFFER to one or multiple registers starting with REGNUM
in NEXT_FRAME's previous frame, starting at OFFSET. */
gdbarch->convert_register_p = convert_register_p;
}
-int
-gdbarch_register_to_value (struct gdbarch *gdbarch, const frame_info_ptr &frame, int regnum, struct type *type, gdb_byte *buf, int *optimizedp, int *unavailablep)
+bool
+gdbarch_register_to_value (struct gdbarch *gdbarch, const frame_info_ptr &frame, int regnum, struct type *type, gdb_byte *buf, bool *optimizedp, bool *unavailablep)
{
gdb_assert (gdbarch != NULL);
gdb_assert (gdbarch->register_to_value != NULL);
extern bool gdbarch_convert_register_p (struct gdbarch *gdbarch, int regnum, struct type *type);
extern void set_gdbarch_convert_register_p (struct gdbarch *gdbarch, gdbarch_convert_register_p_ftype *convert_register_p);
-typedef int (gdbarch_register_to_value_ftype) (const frame_info_ptr &frame, int regnum, struct type *type, gdb_byte *buf, int *optimizedp, int *unavailablep);
-extern int gdbarch_register_to_value (struct gdbarch *gdbarch, const frame_info_ptr &frame, int regnum, struct type *type, gdb_byte *buf, int *optimizedp, int *unavailablep);
+typedef bool (gdbarch_register_to_value_ftype) (const frame_info_ptr &frame, int regnum, struct type *type, gdb_byte *buf, bool *optimizedp, bool *unavailablep);
+extern bool gdbarch_register_to_value (struct gdbarch *gdbarch, const frame_info_ptr &frame, int regnum, struct type *type, gdb_byte *buf, bool *optimizedp, bool *unavailablep);
extern void set_gdbarch_register_to_value (struct gdbarch *gdbarch, gdbarch_register_to_value_ftype *register_to_value);
typedef void (gdbarch_value_to_register_ftype) (const frame_info_ptr &frame, int regnum, struct type *type, const gdb_byte *buf);
/* Allocate two bytes more for overflow check. */
std::vector<gdb_byte> buf (type->length () + 2, 0);
- int optim, unavail, ok;
+ bool optim, unavail;
/* Set the fingerprint in the last two bytes. */
buf [type->length ()]= 'w';
buf [type->length () + 1]= 'l';
- ok = gdbarch_register_to_value (gdbarch, frame, regnum, type,
- buf.data (), &optim, &unavail);
+ bool ok = gdbarch_register_to_value (gdbarch, frame, regnum,
+ type, buf.data (), &optim,
+ &unavail);
SELF_CHECK (ok);
SELF_CHECK (!optim);
)
Function(
- type="int",
+ type="bool",
name="register_to_value",
params=[
("const frame_info_ptr &", "frame"),
("int", "regnum"),
("struct type *", "type"),
("gdb_byte *", "buf"),
- ("int *", "optimizedp"),
- ("int *", "unavailablep"),
+ ("bool *", "optimizedp"),
+ ("bool *", "unavailablep"),
],
invalid=False,
)
/* Read a value of type TYPE from register REGNUM in frame FRAME, and
return its contents in TO. */
-static int
+static bool
i386_register_to_value (const frame_info_ptr &frame, int regnum,
struct type *type, gdb_byte *to,
- int *optimizedp, int *unavailablep)
+ bool *optimizedp, bool *unavailablep)
{
struct gdbarch *gdbarch = get_frame_arch (frame);
int len = type->length ();
frame_info_ptr next_frame = get_next_frame_sentinel_okay (frame);
if (!get_frame_register_bytes (next_frame, regnum, 0, to_view,
optimizedp, unavailablep))
- return 0;
+ return false;
regnum = i386_next_regnum (regnum);
len -= 4;
to += 4;
}
- *optimizedp = *unavailablep = 0;
- return 1;
+ *optimizedp = *unavailablep = false;
+ return true;
}
/* Write the contents FROM of a value of type TYPE into register
/* Read a value of type TYPE from register REGNUM in frame FRAME, and
return its contents in TO. */
-int
+bool
i387_register_to_value (const frame_info_ptr &frame, int regnum,
struct type *type, gdb_byte *to,
- int *optimizedp, int *unavailablep)
+ bool *optimizedp, bool *unavailablep)
{
struct gdbarch *gdbarch = get_frame_arch (frame);
gdb_byte from[I386_MAX_REGISTER_SIZE];
{
warning (_("Cannot convert floating-point register value "
"to non-floating-point type."));
- *optimizedp = *unavailablep = 0;
- return 0;
+ *optimizedp = *unavailablep = false;
+ return false;
}
/* Convert to TYPE. */
frame_info_ptr next_frame = get_next_frame_sentinel_okay (frame);
if (!get_frame_register_bytes (next_frame, regnum, 0, from_view, optimizedp,
unavailablep))
- return 0;
+ return false;
target_float_convert (from, i387_ext_type (gdbarch), to, type);
- *optimizedp = *unavailablep = 0;
- return 1;
+ *optimizedp = *unavailablep = false;
+ return true;
}
/* Write the contents FROM of a value of type TYPE into register
/* Read a value of type TYPE from register REGNUM in frame FRAME, and
return its contents in TO. */
-extern int i387_register_to_value (const frame_info_ptr &frame, int regnum,
- struct type *type, gdb_byte *to,
- int *optimizedp, int *unavailablep);
+extern bool i387_register_to_value (const frame_info_ptr &frame, int regnum,
+ struct type *type, gdb_byte *to,
+ bool *optimizedp, bool *unavailablep);
/* Write the contents FROM of a value of type TYPE into register
REGNUM in frame FRAME. */
&& type != ia64_ext_type (gdbarch));
}
-static int
+static bool
ia64_register_to_value (const frame_info_ptr &frame, int regnum,
struct type *valtype, gdb_byte *out,
- int *optimizedp, int *unavailablep)
+ bool *optimizedp, bool *unavailablep)
{
struct gdbarch *gdbarch = get_frame_arch (frame);
gdb_byte in[IA64_FP_REGISTER_SIZE];
frame_info_ptr next_frame = get_next_frame_sentinel_okay (frame);
if (!get_frame_register_bytes (next_frame, regnum, 0, in_view, optimizedp,
unavailablep))
- return 0;
+ return false;
target_float_convert (in, ia64_ext_type (gdbarch), out, valtype);
- *optimizedp = *unavailablep = 0;
- return 1;
+ *optimizedp = *unavailablep = false;
+ return true;
}
static void
/* Read a value of type TYPE from register REGNUM in frame FRAME, and
return its contents in TO. */
-static int
+static bool
m68k_register_to_value (const frame_info_ptr &frame, int regnum,
struct type *type, gdb_byte *to,
- int *optimizedp, int *unavailablep)
+ bool *optimizedp, bool *unavailablep)
{
struct gdbarch *gdbarch = get_frame_arch (frame);
gdb_byte from[M68K_MAX_REGISTER_SIZE];
frame_info_ptr next_frame = get_next_frame_sentinel_okay (frame);
if (!get_frame_register_bytes (next_frame, regnum, 0, from_view, optimizedp,
unavailablep))
- return 0;
+ return false;
target_float_convert (from, fpreg_type, to, type);
- *optimizedp = *unavailablep = 0;
- return 1;
+ *optimizedp = *unavailablep = false;
+ return true;
}
/* Write the contents FROM of a value of type TYPE into register
|| mips_convert_register_gpreg_case_p (gdbarch, regnum, type));
}
-static int
+static bool
mips_register_to_value (const frame_info_ptr &frame, int regnum,
struct type *type, gdb_byte *to,
- int *optimizedp, int *unavailablep)
+ bool *optimizedp, bool *unavailablep)
{
struct gdbarch *gdbarch = get_frame_arch (frame);
frame_info_ptr next_frame = get_next_frame_sentinel_okay (frame);
if (!get_frame_register_bytes (next_frame, regnum + 0, 0, second_half,
optimizedp, unavailablep))
- return 0;
+ return false;
if (!get_frame_register_bytes (next_frame, regnum + 1, 0, first_half,
optimizedp, unavailablep))
- return 0;
- *optimizedp = *unavailablep = 0;
- return 1;
+ return false;
+ *optimizedp = *unavailablep = false;
+ return true;
}
else if (mips_convert_register_gpreg_case_p (gdbarch, regnum, type))
{
offset = gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG ? 8 - len : 0;
if (!get_frame_register_bytes (next_frame, regnum, offset, { to, len },
optimizedp, unavailablep))
- return 0;
+ return false;
- *optimizedp = *unavailablep = 0;
- return 1;
+ *optimizedp = *unavailablep = false;
+ return true;
}
else
{
return regnum;
}
-static int
+static bool
rs6000_register_to_value (const frame_info_ptr &frame,
int regnum,
struct type *type,
gdb_byte *to,
- int *optimizedp, int *unavailablep)
+ bool *optimizedp, bool *unavailablep)
{
struct gdbarch *gdbarch = get_frame_arch (frame);
gdb_byte from[PPC_MAX_REGISTER_SIZE];
frame_info_ptr next_frame = get_next_frame_sentinel_okay (frame);
if (!get_frame_register_bytes (next_frame, regnum, 0, from_view, optimizedp,
unavailablep))
- return 0;
+ return false;
target_float_convert (from, builtin_type (gdbarch)->builtin_double,
to, type);
- *optimizedp = *unavailablep = 0;
- return 1;
+ *optimizedp = *unavailablep = false;
+ return true;
}
static void
&& gdbarch_register_reggroup_p (gdbarch, i, all_reggroup))
{
enum lval_type lval;
- int optimized;
- int unavailable;
+ bool optimized;
+ bool unavailable;
CORE_ADDR addr;
int realnum;
LONGEST offset = parent->offset () + toval->offset ();
size_t changed_len;
gdb_byte buffer[sizeof (LONGEST)];
- int optim, unavail;
+ bool optim, unavail;
changed_len = (toval->bitpos ()
+ toval->bitsize ()