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: [PATCH] don't generate long nops on i686 (only when -march=[intel])


On Fri, Aug 6, 2010 at 12:58 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Fri, Aug 6, 2010 at 9:59 AM, Quentin Neill
> <quentin.neill.gnu@gmail.com> wrote:
>> On Fri, Aug 6, 2010 at 11:35 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>>
>>> I was wondering if it is necessary and possible to add the negative option
>>> to all ISAs?
>>
>> It is feasible, I looked into this.
>>
>> One problem with the current setup, there is no way to disambiguate
>> between ".nop" and ".nonop" and ".nononop" (etc) because we're using a
>> pair of entries in the init table, and then detecting the "no" prefix.
>>
> [snip]
>
> One problem is .nosse turns off ALL SSE/SSE2/..., not just
> SSE. So what should ".arch .nosse3" disable? Should it also
> disable SSSE3, SSE4, AVX, ....

Okay, now I see that ".nosse" is one of several outliers:

.no87 means &=  ~(8087|287|387|687|FISTTP)
.nosse means &= ~(sse|sse2|sse2|ssse3|sse4_1|sse4_2|sse4a|avx)
.noavx means &= ~(avx)

.87 [is not defined]
.sse means |= (mmx|sse)
.avx means |= (mmx|sse|sse2|sse3|ssse3|sse4_1|sse4_2|avx)

If we normalize all entries so that ".noXXX" would means exactly the
opposite of ".XXX" in all cases (answering your question about
.nosse3), we'd have to clean these up and/or change their meanings..

If not, then I guess we have to go and define what all the ".noXXX"
flags mean, which in my opinion means just adding them to the existing
infrastructure.

Note I'm not really answering your question "if it is necessary".  Do
we have an idea how many people are using these directives?

-- 
Quentin


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