x86-64: Zero-extend lower 32 bits displacement to 64 bits
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 14 Jul 2020 16:57:52 +0000 (09:57 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 14 Jul 2020 16:58:07 +0000 (09:58 -0700)
commit8e58ef803cf752cbde547a5064540f05470ea714
tree9b809d30f1943d72b1a9d8c6c28dff2a3d1953aa
parentf63dcaf808b8e253e197446aeb318e49eddfd260
x86-64: Zero-extend lower 32 bits displacement to 64 bits

Since the addr32 (0x67) prefix zero-extends the lower 32 bits address to
64 bits, change disassembler to zero-extend the lower 32 bits displacement
to 64 bits when there is no base nor index registers.

gas/

PR gas/26237
* testsuite/gas/i386/addr32.s: Add tests for 32-bit wrapped around
address.
* testsuite/gas/i386/x86-64-addr32.s: Likewise.
* testsuite/gas/i386/addr32.d: Updated.
* testsuite/gas/i386/x86-64-addr32-intel.d: Likewise.
* testsuite/gas/i386/x86-64-addr32.d: Likewise.
* testsuite/gas/i386/ilp32/x86-64-addr32-intel.d: Likewise.
* testsuite/gas/i386/ilp32/x86-64-addr32.d: Likewise.

opcodes/

PR gas/26237
* i386-dis.c (OP_E_memory): Without base nor index registers,
32-bit displacement to 64 bits.
gas/ChangeLog
gas/testsuite/gas/i386/addr32.d
gas/testsuite/gas/i386/addr32.s
gas/testsuite/gas/i386/ilp32/x86-64-addr32-intel.d
gas/testsuite/gas/i386/ilp32/x86-64-addr32.d
gas/testsuite/gas/i386/x86-64-addr32-intel.d
gas/testsuite/gas/i386/x86-64-addr32.d
gas/testsuite/gas/i386/x86-64-addr32.s
opcodes/ChangeLog
opcodes/i386-dis.c