Я пишу макрос сборки для C-программы, и, будучи совершенно новым с этим, я застрял на чем-то. Я пытаюсь написать макрос для перемещения данных из регистра общего назначения в регистр специального назначения.PowerPC, перемещающийся в переменную SPR
Моя проблема заключается в том, что синтаксис, который я нашел для перемещения данных из GPR в SPR, принимает значение постоянной SPR, в то время как я хочу использовать переменную, сохраненную в другом регистре.
# SPR is constant, rA is the value to be written
mtspr SPR, rA
Я после того, как что-то, что выглядит следующим образом:
# rA contains the number of the SPR, and rB the value to be moved.
AWESOMEmtspr rA, rB
Есть причина, есть в распоряжении нет таких макросов, и как бы я сделать это сам?
Большое спасибо заранее.
---- Edit: ---- Как это выглядит теперь у меня есть гигантский корпус выключателя в моей C-кода, который перескакивает к правильному mtspr сечению. У меня есть двадцать отдельных разделов для чтения и записи, которые содержат SPR: s, каждый из которых выглядит одинаково, но отличается постоянным значением.
Я полагаю, что вам будет не так хорошо, как с кодом. Я хотел бы сохранить как можно больше кода в C, но, полагаю, я соглашусь с тем, что у меня есть. Спасибо, в любом случае. – Nubsis
Нет ничего плохого в динамически сгенерированном коде, но я думаю, что вы должны пометить исполняемые страницы и сбросить кеш команд для соответствующих адресов (icbf?). Накладные расходы на кеш-память, вероятно, не стоит того. –