diff options
author | John Baldwin <jhb@FreeBSD.org> | 2022-01-28 11:14:37 -0800 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2022-01-28 11:14:37 -0800 |
commit | b623bbc9a5b18a1100837450b7806de220068ccc (patch) | |
tree | 8b94746b5789f82327160a098359ba69b2e453f1 /binutils/objcopy.c | |
parent | 5046f3c8c0cf0a641f25cf0b3f6e3a6969f28dd8 (diff) | |
download | binutils-b623bbc9a5b18a1100837450b7806de220068ccc.zip binutils-b623bbc9a5b18a1100837450b7806de220068ccc.tar.gz binutils-b623bbc9a5b18a1100837450b7806de220068ccc.tar.bz2 |
regcache: Zero-extend small registers described by a register map.
When registers are supplied via regcache_supply_register from a
register block described by a register map, registers may be stored in
slots smaller than GDB's native register size (e.g. x86 segment
registers are 16 bits, but the GDB registers for those are 32-bits).
regcache_collect_regset is careful to zero-extend slots larger than a
register size, but regcache_supply_regset just used
regcache::raw_supply_part and did not initialize the upper bytes of a
register value.
trad_frame_set_reg_regmap assumes these semantics (zero-extending
short registers). Upcoming patches also require these semantics for
handling x86 segment register values stored in 16-bit slots on
FreeBSD. Note that architecturally x86 segment registers are 16 bits,
but the x86 gdb architectures treat these registers as 32 bits.
Diffstat (limited to 'binutils/objcopy.c')
0 files changed, 0 insertions, 0 deletions