Определить возможности ARM ядра для условной сборки проекта

Интересует аппаратное умножение u64 = u32 * u32; Часть вариантов ARM ядер не имеют умножения, часть имеют аккумулятор u32. Мне нужно определить точное соответствие ресурсов ядра, для переключения участков кода. Есть наброски для распознавания математики одинарной и двойной точности, но работает плохо - за бортом остаётся слишком много архитектур. Есть подозрение, что где-то дальше все определения складываются в одну универсальную битовую структуру, но где и как - непонятно.

#if ((defined (__ARM_FP)) && (__ARM_FP == 14) && ARM_MATH_CM7)
#define _ARM_CODE_V   6
#elif ((defined (__ARM_FP)) && (__ARM_FP == 12) && ARM_MATH_CM7)
#define _ARM_CODE_V   5
#elif ((defined (__ARM_FP)) && (__ARM_FP == 4) && ARM_MATH_CM7)
#define _ARM_CODE_V   4
#elif ((defined (__ARM_FP)) && (__ARM_FP == 4) && ARM_MATH_CM4)
#define _ARM_CODE_V   3
#elif (ARM_MATH_CM3)
#define _ARM_CODE_V   2
#elif (ARM_MATH_CM0)
#define _ARM_CODE_V   1
#else
#define _ARM_CODE_V   0
#endif

Ответы (0 шт):