[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