This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: GNU_PROPERTY_X86_* questions
On 10.10.2019 17:16, H.J. Lu wrote:
> On Thu, Oct 10, 2019 at 6:33 AM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> H.J.,
>>
>> I think I'm seeing a number of issues with the handling of these
>> properties in gas, but without the original commit referencing a
>> specification I can't really determine if some or all of these
>> are actually "working as designed".
>>
>> Some of the points are:
>> - What is the actual meaning of a set bit? I.e. should e.g. -O
>
> https://github.com/hjl-tools/x86-psABI/wiki/X86-psABI
>
>> converting between ISAs actually be reflected in the produced
>> note?
>
> It records what are in the object file.
>
>> - What is the rule of ISAs to get (or not get) a flag defined?
>> E.g. why are there AVX, AVX2, and FMA flags, but no XOP nor
>> FMA4 ones?
>
> One can propose them.
>
>> - What is the rule of register sets getting feature flags
>> defined? E.g. why are there XMM etc flags but there's no mask
>> register one?
>
> One can propose them.
The document above does not explain in any way what is supposed to
force on the individual GNU_PROPERTY_X86_FEATURE_2_* flags. While
one can reasonably deduce this for GNU_PROPERTY_X86_ISA_1_* (albeit
there's at least one bug in gas), but not for these. IOW it in
particular does not answer ...
>> - What are the rules for the feature flags actually getting set?
>> I find it puzzling that there are straight use
>> i.has_reg{x,y,z}mm flags (which could be easily done away
>> with), but for MMX quite a bit of extra logic is involved.
... this question.
> MMX is set for pure MMX related instructions.
Which only shift the question to "what is a pure MMX related
instruction". I'd assume one touching any MMX register. But I'd
also assume the same for e.g. GNU_PROPERTY_X86_FEATURE_2_XMM wrt
XMM registers, yet that's not spelled out anywhere. In turn only
the _exact_ spelling of this determines if there are further gas
bugs here.
Jan