This is the mail archive of the mailing list for the binutils project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [committed, PATCH] Remove Disp16|Disp32 from 64-bit direct branches

On Wed, May 13, 2015 at 9:50 AM, Maciej W. Rozycki <> wrote:
> On Wed, 13 May 2015, H.J. Lu wrote:
>> >> > Well, what do you suggest?  Your change is clearly wrong as well.
>> >>
>> >> I won't call it wrong since it implies there is a right.
>> >
>> > Of course there is a right.  The x86-64 specification is quite clear what
>> > happens with the prefix on jumps.  Intel CPUs are simply buggy in not
>> > implementing it.  And you're making binutils follow that buggy behaviour.
>> AMD64 and Intel64 differ in some subtle ways.
>> > And that is wrong.  The associated bug report is invalid.
>> How about this
>> 1.  Add flavors of AMD64 and Intel64 to assembler.  Make the most
>> permissive one as the default.  In case of call/jmp, the default will
>> take AMD64.
>> 2.  Add -Mintel64/-Mamd64 to objdump,  Make the most permissive
>> ones the default.
>  FWIW I think this will be the right direction, though the exact options
> may have to be discussed yet.
>  The assembler is a tool, it should not be forcing a use policy upon
> users.  Therefore it should allow whatever is encodable given the
> instruction set definition and let users decide themselves how to use
> it, whether implementations follow the rules or not.
>  And then if you want to add safety traps such as for this difference
> between individual model implementations, then wire them to `-march=' or
> suchlike.

Thanks for your feedbacks.  I am waiting for feedbacks from Jan and
Michael before I start investigation.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]