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: OR_AND semantics (was: GNU property saga)


On Fri, Mar 8, 2019 at 2:25 PM Jim Dehnert <dehnert@gmail.com> wrote:
>
>
>
> On Thu, Mar 7, 2019 at 10:06 PM Cary Coutant <ccoutant@gmail.com> wrote:
>>
>> > > Now the above language would include FEATURE_X in the output, but bit 4
>> > > would be reliable (set a.bit4 && b.bit4) while bit 5 would be unreliable
>> > > (it is zero, even if it is one in a.o and _would_ be one in b.o had we
>> > > used a newer producer).
>> >
>> > We can't add a bit to FEATURE_X in such a way that  FEATURE_X generated
>> > by older producers become invalid.   We must add the bit to FEATURE_Y which is
>> > unsupported to all prior producers.  Am I missing something obvious?
>>
>> Yes, I think so. This is the point Michael (and I) were making. By
>> using KNOWN bits, you can add new feature bits without having to start
>> a whole new word of bits.

So is this the only difference?  We don't always need to add a new set of
feature bits for a new feature if the new new feature will never be valid for
older producers like a new ISA bit.  But a new bit for the old ISA needs a
new set of bits.  This way, we only need to lookup one property for the
feature X instead of 2.

BTW, OR covers (b) in

(a) KNOWN = 0, USED = 0: The feature is not known to be used, but not
all objects provided a value.

(b) KNOWN = 0, USED = 1: The feature is used by at least one object,
but not all objects provided a value.

(c) KNOWN = 1, USED = 0: The feature is not used in any object, and
all objects provided a value.

(d) KNOWN = 1, USED = 1: The feature is used by at least one object,
and all objects provided a value.

since there is no functional difference for the feature X in output
object between

1. The feature is used by at least one object, but not all objects
provided a value.
2. The feature is used by at least one object, and all objects provided a value.

We only need to know if the feature X is used.   We do need "all
objects provided
a value" info for USED == 0 case.

>
> You also don't need to assume that a producer that has implemented support for the tenth feature bit is also generating valid values for the previously-defined nine, just because the words containing them are present.
>


-- 
H.J.


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