I am compiling the Intel TBB in an effort to optimize my code to the Cortex-M53, however, because I was still forced to use GCC 4.9 I'm getting some warning messages about the use of 32bit Thumb Instrucions in IT blocks:
Warning: It blocks containing 32-bit Thumb instructions are deprecated in ARMv8
I know it's a bug in this release and that may already be solved in GCC version 5.3 but still can not migrate this environment for a new version.
This can bring some instability to my code or can be ignored by time?
Hi Carlos Delfino,
You can ignore it.I checked the Cortex-A53 TRM.The warning should be produced only in the case that SCTLR_EL1.ITD is '1'.As the reset value of SCTLR_EL1.ITD is '0', the IT instruction functionality is enabled and there would be no restrictions.Therefore, it would be shown as a warning.Also I checked GCC 5.4, and found the same messages as GCC 4.9 were generated, but the word 'Warning' was omitted.As the results, you had not betther be worried about it.
It is probably also worth noting that these instructions are only "deprecated for performance reasons". That is, ARMv8 is warning that using these instructions in IT blocks might be detrimental to performance on some implementations. So far as I am aware, this is not the case on Cortex-A53. The purpose of the ITD bit is to provide a method to scan for such instructions on such implementations as a debugging aid. However, ITD is an optional control, meaning no operating system should be relying on it.