On 30/04/2025 18:34, Heiko Eißfeldt wrote:
>> - <li>FEAT_LRCPC2 (<code>+rcpc2</code>), enabled by default for
>> + <li>FEAT_RCPC2 (<code>+rcpc2</code>), enabled by default for
>>
>> and
>>
>> - FEAT_LRCPC3 instructions, when support for the instructions is
>> + FEAT_RCPC3 instructions, when support for the instructions is
>>
>> These are incorrect. The features really are FEAT_LRCPC2/3.
>>
>> Otherwise, I think these look generally like improvements.
>>
>> R.
>
>
> That is interesting. I did a grep on gcc trunk for 'FEAT_.*RCPC' and got this
> ./gcc/common/config/aarch64/cpuinfo.h: FEAT_RCPC,
> ./gcc/common/config/aarch64/cpuinfo.h: FEAT_RCPC2,
> ./gcc/common/config/aarch64/cpuinfo.h: FEAT_RCPC3,
> ./libgcc/config/aarch64/cpuinfo.c: setCPUFeature(FEAT_RCPC);
> ./libgcc/config/aarch64/cpuinfo.c: setCPUFeature(FEAT_RCPC2);
> ./libgcc/config/aarch64/cpuinfo.c: setCPUFeature(FEAT_RCPC3);
>
> Substring "LRCPC" I see only in conjunction with hardware capabilities but
> not features.
>
> The documentation
> (https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AArch64-Options.html#aarch64-feature-modifiers)
> lists in chapter 3.20.1.1 "-march and -mcpu Feature Modifiers"
>
> ‘rcpc’
> ‘rcpc2’
> ‘rcpc3’
>
> Finally, the substring LRCPC2 was not found in my repo at all.
>
> H.
Yes, this is confusing. I'd expect, though, that the FEAT_... names,
especially in documents like this would be referring to the official name in
the Arm ARM. That only documents FEAT_LRCPC{,2,3}. There's no mention at all
of FEAT_RPCC. I think this is why the text above references the GCC name
(+rcpc[23]) as well.
I'll double check this tomorrow, but I think these two hunks should be removed
if the other bits go in. At least until we're sure what is the right text.
R.