gdb: make put_frame_register_bytes take the next frame

Similar to the previous patches, change put_frame_register_bytes to take
the "next frame" instead of "this frame".

Change-Id: I27bcb26573686d99b231230823cff8db6405a788
Reviewed-By: John Baldwin <jhb@FreeBSD.org>
This commit is contained in:
Simon Marchi
2023-12-01 11:27:24 -05:00
parent 584468de6c
commit 534dcbcb80
5 changed files with 31 additions and 36 deletions

View File

@@ -999,7 +999,8 @@ mips_value_to_register (frame_info_ptr frame, int regnum,
{
gdb_byte fill[8];
size_t len = type->length ();
frame_info_ptr next_frame = get_next_frame_sentinel_okay (frame);
/* Sign extend values, irrespective of type, that are stored to
a 64-bit general purpose register. (32-bit unsigned values
are stored as signed quantities within a 64-bit register.
@@ -1012,8 +1013,8 @@ mips_value_to_register (frame_info_ptr frame, int regnum,
store_signed_integer (fill, 8, BFD_ENDIAN_BIG, -1);
else
store_signed_integer (fill, 8, BFD_ENDIAN_BIG, 0);
put_frame_register_bytes (frame, regnum, 0, {fill, 8 - len});
put_frame_register_bytes (frame, regnum, 8 - len, {from, len});
put_frame_register_bytes (next_frame, regnum, 0, {fill, 8 - len});
put_frame_register_bytes (next_frame, regnum, 8 - len, {from, len});
}
else
{
@@ -1021,8 +1022,8 @@ mips_value_to_register (frame_info_ptr frame, int regnum,
store_signed_integer (fill, 8, BFD_ENDIAN_LITTLE, -1);
else
store_signed_integer (fill, 8, BFD_ENDIAN_LITTLE, 0);
put_frame_register_bytes (frame, regnum, 0, {from, len});
put_frame_register_bytes (frame, regnum, len, {fill, 8 - len});
put_frame_register_bytes (next_frame, regnum, 0, {from, len});
put_frame_register_bytes (next_frame, regnum, len, {fill, 8 - len});
}
}
else