Печать содержимого регистра кэша c7 в ARM926EJ - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь увидеть содержимое регистра кеша и статус грязного бита в с7 до и после очистки D кеша.Эта ссылка:

https://developer.arm.com/docs/ddi0198/latest/programmers-model/register-descriptions/cache-operations-register-c7 говорит, что «Если в кеше содержатся грязные строки, бит 30 устанавливается в 0. Если в кеше нет грязных строк, бит 30 устанавливается в 1».У меня есть переменная c7Value, инициализированная 15 (Случайное число)

"tc_loop:   \n"

    "MRC p15, 0, %[c7Value], c7, c10, 3             \n"     //Read value of c7 after cleaning

    "BNE tc_loop            \n"
    :[c7Value] "=r"(c7Value)

    );

Когда я печатаю значение c7Value после вышеуказанного цикла, значение обнуляется.Я думал, что только 30-й бит будет установлен в 0, если он найдет какую-либо строку кэша грязной.

Кроме того, есть ли способ просто прочитать содержимое с7 без очистки?

Другие регистры, такие как c1, могут читаться как: «MRC p15, 0, R1, c1, C0, 0», но нет инструкции для чтения c7.

Поэтому, может, кто-нибудь подскажет, пожалуйста, знаете, как распечатать содержимое кеша и / или прочитать содержимое c7 (для проверки грязного состояния)?

...