Как сохранить и восстановить CR2-CR4 в ppc64le

Как сохранить и восстановить только регистры CR2-CR4 в сборке ppc64le?

Я знаю инструкции mflr и mtlr. Но я хочу только cr2-cr4


person Ramya    schedule 13.12.2016    source источник


Ответы (1)


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), но они постепенно упраздняются.

person dja    schedule 14.12.2016