2015-08-13 4 views
0

мне интересно, как можно идти о доступе к складированным регистрам, таким как sp_irq, sp_fiq и т.д.доступ накренился Регистры в AArch32

тонарма v8 ARM описывает описывает кодирование инструкции MRS/MSR, который позволяет программист для доступа к этому регистру напрямую, но по какой-то причине MSR sp_irq, r0 не компилируется, так как имя регистра не распознается.

Есть ли какая-то опция компилятора, которую я пропускаю, я использую неправильный синтаксис, или это то, что я делаю даже не возможно?

+0

@Notlikethat ARMv8 – squirem

+1

А, справа. Однако вам придется расширять свое бесполезное «похоже, не работает». Вы имеете в виду, что вы получаете сообщение об ошибке от ассемблера? Что-то другое? О какой toolchain мы даже говорим здесь? – Notlikethat

+0

@Notlikethat Извините, что я обновил вопрос. – squirem

ответ

1

Поскольку вопрос не говорит задать режим CPU (32/64) и не конкретного компилятора, я постараюсь ответить на основе моего опыта:

AARCH32: это может быть верхним/нижним вопрос выпуск. Попробуйте использовать комбинации, такие как SP_irq, sp_IRQ, SP_IRQ. Из-за этой проблемы с верхним/нижним регистром я столкнулся с проблемами в GCC.

AARCH64: 64-разрядные регистры GP имеют прямое сопоставление с 32-разрядными регистрами. Объясняется в Регистрирует отображения между состоянием AArch32 и состоянием AArch64 Справочного руководства по архитектуре ARM V8.

Например. SP_irq < ==> X17

Надеюсь, это поможет.