projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* defs.h (extract_signed_integer, extract_unsigned_integer,
[deliverable/binutils-gdb.git]
/
gdb
/
value.c
diff --git
a/gdb/value.c
b/gdb/value.c
index dc2e8bc3093c484eeec3a4365bfa498551a3b60e..fffc183af07564884b291c4fb02aefc1f6c72ad3 100644
(file)
--- a/
gdb/value.c
+++ b/
gdb/value.c
@@
-1626,6
+1626,7
@@
value_as_address (struct value *val)
LONGEST
unpack_long (struct type *type, const gdb_byte *valaddr)
{
LONGEST
unpack_long (struct type *type, const gdb_byte *valaddr)
{
+ enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (type));
enum type_code code = TYPE_CODE (type);
int len = TYPE_LENGTH (type);
int nosign = TYPE_UNSIGNED (type);
enum type_code code = TYPE_CODE (type);
int len = TYPE_LENGTH (type);
int nosign = TYPE_UNSIGNED (type);
@@
-1642,9
+1643,9
@@
unpack_long (struct type *type, const gdb_byte *valaddr)
case TYPE_CODE_RANGE:
case TYPE_CODE_MEMBERPTR:
if (nosign)
case TYPE_CODE_RANGE:
case TYPE_CODE_MEMBERPTR:
if (nosign)
- return extract_unsigned_integer (valaddr, len);
+ return extract_unsigned_integer (valaddr, len
, byte_order
);
else
else
- return extract_signed_integer (valaddr, len);
+ return extract_signed_integer (valaddr, len
, byte_order
);
case TYPE_CODE_FLT:
return extract_typed_floating (valaddr, type);
case TYPE_CODE_FLT:
return extract_typed_floating (valaddr, type);
@@
-1652,7
+1653,7
@@
unpack_long (struct type *type, const gdb_byte *valaddr)
case TYPE_CODE_DECFLOAT:
/* libdecnumber has a function to convert from decimal to integer, but
it doesn't work when the decimal number has a fractional part. */
case TYPE_CODE_DECFLOAT:
/* libdecnumber has a function to convert from decimal to integer, but
it doesn't work when the decimal number has a fractional part. */
- return decimal_to_doublest (valaddr, len);
+ return decimal_to_doublest (valaddr, len
, byte_order
);
case TYPE_CODE_PTR:
case TYPE_CODE_REF:
case TYPE_CODE_PTR:
case TYPE_CODE_REF:
@@
-1675,6
+1676,7
@@
unpack_long (struct type *type, const gdb_byte *valaddr)
DOUBLEST
unpack_double (struct type *type, const gdb_byte *valaddr, int *invp)
{
DOUBLEST
unpack_double (struct type *type, const gdb_byte *valaddr, int *invp)
{
+ enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (type));
enum type_code code;
int len;
int nosign;
enum type_code code;
int len;
int nosign;
@@
-1712,7
+1714,7
@@
unpack_double (struct type *type, const gdb_byte *valaddr, int *invp)
return extract_typed_floating (valaddr, type);
}
else if (code == TYPE_CODE_DECFLOAT)
return extract_typed_floating (valaddr, type);
}
else if (code == TYPE_CODE_DECFLOAT)
- return decimal_to_doublest (valaddr, len);
+ return decimal_to_doublest (valaddr, len
, byte_order
);
else if (nosign)
{
/* Unsigned -- be sure we compensate for signed LONGEST. */
else if (nosign)
{
/* Unsigned -- be sure we compensate for signed LONGEST. */
@@
-1980,6
+1982,7
@@
value_fn_field (struct value **arg1p, struct fn_field *f, int j, struct type *ty
LONGEST
unpack_field_as_long (struct type *type, const gdb_byte *valaddr, int fieldno)
{
LONGEST
unpack_field_as_long (struct type *type, const gdb_byte *valaddr, int fieldno)
{
+ enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (type));
ULONGEST val;
ULONGEST valmask;
int bitpos = TYPE_FIELD_BITPOS (type, fieldno);
ULONGEST val;
ULONGEST valmask;
int bitpos = TYPE_FIELD_BITPOS (type, fieldno);
@@
-1987,7
+1990,8
@@
unpack_field_as_long (struct type *type, const gdb_byte *valaddr, int fieldno)
int lsbcount;
struct type *field_type;
int lsbcount;
struct type *field_type;
- val = extract_unsigned_integer (valaddr + bitpos / 8, sizeof (val));
+ val = extract_unsigned_integer (valaddr + bitpos / 8,
+ sizeof (val), byte_order);
field_type = TYPE_FIELD_TYPE (type, fieldno);
CHECK_TYPEDEF (field_type);
field_type = TYPE_FIELD_TYPE (type, fieldno);
CHECK_TYPEDEF (field_type);
@@
-2028,6
+2032,7
@@
void
modify_field (struct type *type, gdb_byte *addr,
LONGEST fieldval, int bitpos, int bitsize)
{
modify_field (struct type *type, gdb_byte *addr,
LONGEST fieldval, int bitpos, int bitsize)
{
+ enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (type));
ULONGEST oword;
ULONGEST mask = (ULONGEST) -1 >> (8 * sizeof (ULONGEST) - bitsize);
ULONGEST oword;
ULONGEST mask = (ULONGEST) -1 >> (8 * sizeof (ULONGEST) - bitsize);
@@
-2047,7
+2052,7
@@
modify_field (struct type *type, gdb_byte *addr,
fieldval &= mask;
}
fieldval &= mask;
}
- oword = extract_unsigned_integer (addr, sizeof oword);
+ oword = extract_unsigned_integer (addr, sizeof oword
, byte_order
);
/* Shifting for bit field depends on endianness of the target machine. */
if (gdbarch_bits_big_endian (get_type_arch (type)))
/* Shifting for bit field depends on endianness of the target machine. */
if (gdbarch_bits_big_endian (get_type_arch (type)))
@@
-2056,7
+2061,7
@@
modify_field (struct type *type, gdb_byte *addr,
oword &= ~(mask << bitpos);
oword |= fieldval << bitpos;
oword &= ~(mask << bitpos);
oword |= fieldval << bitpos;
- store_unsigned_integer (addr, sizeof oword, oword);
+ store_unsigned_integer (addr, sizeof oword,
byte_order,
oword);
}
\f
/* Pack NUM into BUF using a target format of TYPE. */
}
\f
/* Pack NUM into BUF using a target format of TYPE. */
@@
-2064,6
+2069,7
@@
modify_field (struct type *type, gdb_byte *addr,
void
pack_long (gdb_byte *buf, struct type *type, LONGEST num)
{
void
pack_long (gdb_byte *buf, struct type *type, LONGEST num)
{
+ enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (type));
int len;
type = check_typedef (type);
int len;
type = check_typedef (type);
@@
-2078,7
+2084,7
@@
pack_long (gdb_byte *buf, struct type *type, LONGEST num)
case TYPE_CODE_BOOL:
case TYPE_CODE_RANGE:
case TYPE_CODE_MEMBERPTR:
case TYPE_CODE_BOOL:
case TYPE_CODE_RANGE:
case TYPE_CODE_MEMBERPTR:
- store_signed_integer (buf, len, num);
+ store_signed_integer (buf, len,
byte_order,
num);
break;
case TYPE_CODE_REF:
break;
case TYPE_CODE_REF:
This page took
0.030653 seconds
and
4
git commands to generate.