[clang] [ARM] Using cp15 while mtp =auto and arch is arm_arch6k and support thumb2 (PR #130027)
Vladi Krapp via cfe-commits
cfe-commits at lists.llvm.org
Thu Mar 6 06:31:51 PST 2025
VladiKrapp-Arm wrote:
The updated version looks better.
I think we need to remove ARMV6T2 from the list, as it does not seem to support the feature.
https://developer.arm.com/documentation/ddi0290/g/system-control-coprocessor/system-control-processor-registers/c13--process-id-register?lang=en
This describes different functionality for mrc p15 c13 than that of ARMV6K, ARMV6KZ and later A/R architectures, for example
https://developer.arm.com/documentation/ddi0333/h/system-control-coprocessor/system-control-processor-registers/c13--thread-and-process-id-registers?lang=en
It seems the current version will select tpidruro mode for -mtp=auto for any architecture that supports it.
Note that this does not seem to be the gcc behaviour, as gcc will only set it for armv6k automatically, and for nothing else.
https://github.com/gcc-mirror/gcc/blob/fdf846fdddcc0467b9f025757f081c5d54319d08/gcc/config/arm/arm.cc#L3972-L3978
This seems a defect in gcc, rather than something to emulate.
https://github.com/llvm/llvm-project/pull/130027
More information about the cfe-commits
mailing list