Когда будут изменены биты CPSR GE[3:0]
Я прочитал в ARM документах, что:
GE[3:0], биты [19:16] Инструкции, описанные в Инструкциях по параллельному сложению и вычитанию на стр. A4-171, обновляют эти флаги, чтобы указывать результаты для отдельных байтов или полуслов слова операции. Эти флаги могут управлять более поздней инструкцией SEL.
Итак, по-видимому, GE[3:0] расшифровывается как "eq/lt/gt"?
Я столкнулся с парой странных проблем, которые я пока не знаю, но все они имеют значение CPSR xxxf0030, поэтому биты GE равны 0b1111? Что это означает? Это нормально для этих бит GE?
Заранее спасибо!
1 ответ
В ARMv7 ARM (который соответствует этому тексту) детали того, как устанавливаются флаги GE, находятся только в псевдокоде операций самих параллельных инструкций. К сожалению, они, кажется, удалили это хорошее описание прозы, которое было в ARMv6 ARM:
Инструкции, которые работают на полусловах:
- установить или очистить GE[3:2] вместе, основываясь на результате вычисления верхнего полуслова
- установить или очистить GE[1:0] вместе, основываясь на результате вычисления нижнего полуслова.
Инструкции, которые работают с байтами:
- установить или очистить GE[3] в соответствии с результатом вычисления старшего байта
- установить или очистить GE[2] в соответствии с результатом вычисления второго байта
- установить или очистить GE[1] в соответствии с результатом вычисления третьего байта
- установить или очистить GE[0] в соответствии с результатом вычисления нижнего байта.
Каждый бит устанавливается (в противном случае сбрасывается), если результаты соответствующего вычисления следующие:
- для добавления байта без знака, если результат больше или равен 2^8
- для добавления беззнакового полуслова, если результат больше или равен 2^16
- для вычитания без знака, если результат больше или равен нулю
- для знаковой арифметики, если результат больше или равен нулю.
Как арифметические флаги, они могут иметь любое старое значение (не определено при сбросе и может быть свободно записано в APSR), поэтому, пока вы не воспользуетесь одной из инструкций, которая их устанавливает, они в значительной степени бессмысленны и могут игнорироваться,