[committed, PATCH] Remove Disp16|Disp32 from 64-bit direct branches
Jan Beulich
JBeulich@suse.com
Tue May 12 10:41:00 GMT 2015
>>> On 11.05.15 at 23:23, <hongjiu.lu@intel.com> wrote:
> Disp16 and Disp32 aren't supported by direct branches in 64-bit mode.
> This patch removes them from 64-bit direct branches.
See the recent discussion regarding callw - these can certainly have
16-bit displacements on AMD CPUs. And while disassembly may just
get "disturbed" by getting this wrong, assembly will produce bad
code if you don't account for both cases (or refuse to assemble
such mnemonics if they would require size overrides to be added).
Apart from that I wonder why you do this for CALL and JMP, but not
for Jcc, JCXZ, JRCXZ, LOOP, and LOOPcc.
But first of all - please don't bias x86 binutils towards only supporting
Intel hardware.
Jan
More information about the Binutils
mailing list