Для моего проекта я должны использовать встроенные инструкции по сборке такие как RDTSC рассчитать время выполнения инструкции Android 4.3 C ++ в стек. Я нашел похожую проблему в стеке потока, таких как 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 но ни один из них не решает проблему, которая у меня есть.
Я использовал следующий код:
{unsigned a, d;asm volatile("rdtsc" : "=a" (a), "=d" (d)); t0 = ((unsigned long)a) | (((unsigned long)d) << 32);}
//The C++ statement to measure its execution time
{unsigned a, d;asm volatile("rdtsc" : "=a" (a), "=d" (d)); t1 = ((unsigned long)a) | (((unsigned long)d) << 32);}
time = (t1-t0)/2-20;
Но я получаю сообщение об ошибке:
ошибка: невозможное ограничение в ‘asm’
Моя среда сборки:
Я пробовал приведенный выше код в отдельной программе C (в той же среде) и он работает нормально без проблем, но как только я встраиваю приведенный выше код в исходный код Android, я получаю сообщение об ошибке.
Моя цель:
Я создаю образ для эмулятора Android qemu на платформе x86_64-linux-gnu.
Задача ещё не решена.
Других решений пока нет …