2006-12-06 07:00:18

by H. J. Lu

[permalink] [raw]
Subject: Change x86 prefix order

On x86, the order of prefix SEG_PREFIX, ADDR_PREFIX, DATA_PREFIX and
LOCKREP_PREFIX isn't fixed. Currently, gas generates

LOCKREP_PREFIX ADDR_PREFIX DATA_PREFIX SEG_PREFIX

I will check in a patch:

http://sourceware.org/ml/binutils/2006-12/msg00054.html

tomorrow and change gas to generate

SEG_PREFIX ADDR_PREFIX DATA_PREFIX LOCKREP_PREFIX


H.J.


2006-12-06 16:42:35

by Randy Dunlap

[permalink] [raw]
Subject: Re: Change x86 prefix order

On Tue, 5 Dec 2006 23:00:14 -0800 H. J. Lu wrote:

> On x86, the order of prefix SEG_PREFIX, ADDR_PREFIX, DATA_PREFIX and
> LOCKREP_PREFIX isn't fixed. Currently, gas generates
>
> LOCKREP_PREFIX ADDR_PREFIX DATA_PREFIX SEG_PREFIX
>
> I will check in a patch:
>
> http://sourceware.org/ml/binutils/2006-12/msg00054.html
>
> tomorrow and change gas to generate
>
> SEG_PREFIX ADDR_PREFIX DATA_PREFIX LOCKREP_PREFIX

Hi,
Could you provide a "why" for this in addition to the
"what", please?

---
~Randy

2006-12-06 17:00:35

by H. J. Lu

[permalink] [raw]
Subject: Re: Change x86 prefix order

On Wed, Dec 06, 2006 at 08:43:17AM -0800, Randy Dunlap wrote:
> On Tue, 5 Dec 2006 23:00:14 -0800 H. J. Lu wrote:
>
> > On x86, the order of prefix SEG_PREFIX, ADDR_PREFIX, DATA_PREFIX and
> > LOCKREP_PREFIX isn't fixed. Currently, gas generates
> >
> > LOCKREP_PREFIX ADDR_PREFIX DATA_PREFIX SEG_PREFIX
> >
> > I will check in a patch:
> >
> > http://sourceware.org/ml/binutils/2006-12/msg00054.html
> >
> > tomorrow and change gas to generate
> >
> > SEG_PREFIX ADDR_PREFIX DATA_PREFIX LOCKREP_PREFIX
>
> Hi,
> Could you provide a "why" for this in addition to the
> "what", please?

LOCKREP_PREFIX is also used as SIMD prefix. DATA_PREFIX can be used as
either SIMD prefix or data size prefix for SIMD instructions. The new
order

SEG_PREFIX ADDR_PREFIX DATA_PREFIX LOCKREP_PREFIX

will make SIMD prefixes close to SIMD opcode.


H.J.

2006-12-06 17:53:23

by Mikael Pettersson

[permalink] [raw]
Subject: Re: Change x86 prefix order

On Wed, 6 Dec 2006 09:00:30 -0800, H. J. Lu wrote:
>On Wed, Dec 06, 2006 at 08:43:17AM -0800, Randy Dunlap wrote:
>> On Tue, 5 Dec 2006 23:00:14 -0800 H. J. Lu wrote:
>>
>> > On x86, the order of prefix SEG_PREFIX, ADDR_PREFIX, DATA_PREFIX and
>> > LOCKREP_PREFIX isn't fixed. Currently, gas generates
>> >
>> > LOCKREP_PREFIX ADDR_PREFIX DATA_PREFIX SEG_PREFIX
>> >
>> > I will check in a patch:
>> >
>> > http://sourceware.org/ml/binutils/2006-12/msg00054.html
>> >
>> > tomorrow and change gas to generate
>> >
>> > SEG_PREFIX ADDR_PREFIX DATA_PREFIX LOCKREP_PREFIX
>>
>> Hi,
>> Could you provide a "why" for this in addition to the
>> "what", please?
>
>LOCKREP_PREFIX is also used as SIMD prefix. DATA_PREFIX can be used as
>either SIMD prefix or data size prefix for SIMD instructions. The new
>order
>
>SEG_PREFIX ADDR_PREFIX DATA_PREFIX LOCKREP_PREFIX
>
>will make SIMD prefixes close to SIMD opcode.

That's still just "what" and doesn't explain why
this change is desirable.

Software x86 decoders clearly must handle any valid
prefix order, so they shouldn't care. (I've written one
recently. It's tedious but not rocket science.)

If hardware x86 decoders (i.e., Intel or AMD processors)
get measurably faster with the new order, that would be
a good reason to change it.

/Mikael

2006-12-06 18:00:50

by H. J. Lu

[permalink] [raw]
Subject: Re: Change x86 prefix order

On Wed, Dec 06, 2006 at 06:52:39PM +0100, Mikael Pettersson wrote:
>
> If hardware x86 decoders (i.e., Intel or AMD processors)
> get measurably faster with the new order, that would be
> a good reason to change it.

I was told that AMD processors had no preferences and Intel processors
preferred the proposed order.


H.J.