2015-04-21 2 views
0

я прочитал в ARM, что документы:Когда CPSR GE [3: 0] Биты быть изменены

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), так что пока вы специально использовали один из инструкций, которые устанавливают их, они» это довольно бессмысленно и может быть проигнорировано.