Как сохранить и восстановить только регистры CR2-CR4
в сборке ppc64le?
Я знаю инструкции mflr и mtlr. Но я хочу только cr2-cr4
Как сохранить и восстановить только регистры CR2-CR4
в сборке ppc64le?
Я знаю инструкции mflr и mtlr. Но я хочу только cr2-cr4
CRx
на самом деле не регистры, а 4-байтовые поля в 32-байтовом регистре. Вы можете получить более подробную информацию в Power ISA 2.07 - см. Раздел 2.3, стр. 30.
mtlr
/mflr
сохранить и восстановить регистр ссылок, который отличается: он используется для косвенного ветвления.
Вы можете сохранять и восстанавливать отдельные поля CR с помощью mfocrf
/mtocrf
: см. Раздел 3.3.16.1, стр. 112.
mfocrf r10,0x2
должен спасти CR2
mfocrf r10,0x4
должен спасти CR3
mfocrf r10,0x8
должен спасти CR4
Теоретически вы могли бы сделать это за один раз с помощью mfcrf
(или расширенных мнемоник mtcr
и mfcr
), но они постепенно упраздняются.