This is the mail archive of the binutils@sourceware.org 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 13.05.15 at 18:53, <hjl.tools@gmail.com> wrote:
> On Wed, May 13, 2015 at 9:50 AM, Maciej W. Rozycki <macro@linux-mips.org> 
> 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.

Not sure what else feedback you expect - after all I had suggested
the introduction of command line options or alike to control the
specific behavior. All I'm really after is that without any such override
given behavior remain like what it is in 2.25.

Jan


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