This is the mail archive of the
mailing list for the binutils project.
Re: [committed, PATCH] Remove Disp16|Disp32 from 64-bit direct branches
- From: "Jan Beulich" <JBeulich at suse dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: <binutils at sourceware dot org>
- Date: Tue, 12 May 2015 11:41:11 +0100
- Subject: Re: [committed, PATCH] Remove Disp16|Disp32 from 64-bit direct branches
- Authentication-results: sourceware.org; auth=none
- References: <20150511212331 dot GA1838 at intel dot com>
>>> On 11.05.15 at 23:23, <firstname.lastname@example.org> 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