Что такое spsr_cxfs?

Я смотрю на код U-Boot, который разрешает использование режима гипервизора и повышает первоначальные привилегии до режима HYP. Однако загадочное имя регистра беспокоит меня, когда я пытаюсь понять код.

От 1_:

1:
        mov     lr, ip
        mov     ip, #(F_BIT | I_BIT | A_BIT)    @ Set A, I and F
        tst     lr, #1                          @ Check for Thumb PC
        orrne   ip, ip, #T_BIT                  @ Set T if Thumb
        orr     ip, ip, r6                      @ Slot target mode in
        msr     spsr_cxfs, ip                   @ Set full SPSR
        movs    pc, lr                          @ ERET to non-secure

Что такое spsr_cxfs? Я попытался найти его в Google, но результаты были предупреждением о том, что я могу искать результаты, касающиеся SPSR_CXSF, и кучу ассемблерных кодов, которые закодированы аналогичным образом.


person Arle Camille    schedule 19.07.2016    source источник


Ответы (1)


Реестр СПСР; остальное просто указывает, какие части нужно обновить.

Подводя итог определению в Справочном руководстве по архитектуре, операндом msr здесь является SPSR_<fields>, где <fields> «является последовательностью одного или нескольких» c, x, s, f, которые представляют биты 7:0, 15:8, 23. :16 и 31:24 соответственно.

Чего, однако, нет, так это какого-либо конкретного мандата определенного порядка для этой последовательности, поэтому я ожидаю, что любой разумный ассемблер тоже не будет заботиться.

person Notlikethat    schedule 19.07.2016