[PATCH 3/3] PR gdb/16304: Zero-extend address from 32-bit to 64-bit
H.J. Lu
hjl.tools@gmail.com
Sat Dec 14 23:13:00 GMT 2013
On Sun, Dec 08, 2013 at 11:44:50AM -0800, H.J. Lu wrote:
> When there is ADDR32 prefix in 64-bit mode, we should zero-extend
> address from 32-bit to 64-bit. Tested on Linux/x86-64. OK to install?
>
> Thanks.
>
> H.J.
> ----
> 2013-12-08 H.J. Lu <hongjiu.lu@intel.com>
>
> PR gdb/16304
> * i386-tdep.c (i386_record_lea_modrm_addr): Zero-extend 32-bit
> address to 64-bit in 64-bit mode.
> ---
> gdb/i386-tdep.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
> index be99aa3..17605ef 100644
> --- a/gdb/i386-tdep.c
> +++ b/gdb/i386-tdep.c
> @@ -4265,6 +4265,13 @@ i386_record_lea_modrm_addr (struct i386_record_s *irp, uint64_t *addr)
> else
> *addr = (uint32_t) (*addr + (offset64 << scale));
> }
> +
> + if (!irp->aflag)
> + {
> + /* Since we are in 64-bit mode with ADDR32 prefix, zero-extend
> + address from 32-bit to 64-bit. */
> + *addr = (uint32_t) *addr;
> + }
> }
> else
> {
> --
> 1.8.3.1
>
Hi Mark,
Do you get time to review this?
Thanks.
H.J.
More information about the Gdb-patches
mailing list