[RFA][2/5] New port: Cell BE SPU (valops.c fix)
Ulrich Weigand
uweigand@de.ibm.com
Mon Nov 27 22:06:00 GMT 2006
Jim Blandy wrote:
> It seems to me this is the problem to fix. When value_from_register
> retrieves a char from an SPU register, and that char is occupying byte
> three of the register, then if that value doesn't have its
> value_offset set, that seems wrong. You're using CONVERTIBLE_P and
> VALUE_TO_REGISTER / REGISTER_TO_VALUE to make up for that loss of
> information; why not actually provide it?
So just to make sure I understood correctly, you'd suggesting that
I should *not* be using CONVERT_REGISTER_P for those registers?
Instead, value_from_register should run into its default path,
and at the place where it computes the offset
if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG
&& len < register_size (current_gdbarch, regnum))
/* Big-endian, and we want less than full size. */
set_value_offset (v, register_size (current_gdbarch, regnum) - len);
else
set_value_offset (v, 0);
we add some architecture-specific way to set a different offset?
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
Ulrich.Weigand@de.ibm.com
More information about the Gdb-patches
mailing list