OSDev Wiki
(Новая страница: «800px|thumb|center|Формат инструкции BXJ Если процессор поддерживает технологию Jazell…»)
 
Строка 22: Строка 22:
   
 
if условие выполнено then
 
if условие выполнено then
  +
if бит JE в главном регистре конфигурации == 0 then
  +
CPSR.T = Rm[0]
  +
PC = Rm and 0xFFFFFFFE
  +
else
  +
JPC = значение, определяемое разновидностью архитектуры
  +
invalidhandler = значение, определяемое разновидностью архитектуры
  +
if технология Jazelle принимает код операции по адресу в JPC then
  +
if бит CV в регистре управления ОС Jazelle == 0 then
  +
PC = invalidhandler
  +
else
  +
CPSR.J = 1
  +
начало выполнения кода операции по адресу JPC
  +
else
  +
if (бит CV в регистре управления ОС Jazelle == 0) AND (условие, определяемое реализацией) then
  +
PC = invalidhandler
  +
else
  +
CPSR.T = Rm[0]
  +
PC = Rm and 0xFFFFFFFE
  +
  +
=== Использование ===
  +
  +
Эта инструкция должна использоваться только при соблюдении одного из следующих условий:
  +
  +
* бит JE в главном регистре конфигурации равен 0;
  +
* разрешённая виртуальная машина Java удовлетворяет всем ограничениям, накладываемым технологией Jazelle для данной разновидности архитектуры.
   
 
=== Примечания ===
 
=== Примечания ===

Версия от 09:31, 24 сентября 2010

BXJ (ARM)

Формат инструкции BXJ

Если процессор поддерживает технологию Jazelle, команда BXJ переключает его в состояние Jazelle. Если же такой поддержки нет, команда BXJ выполняется точно так же, как команда BX.

Синтаксис

BXJ{cond}  Rm

cond определяет, при каком условии команда будет выполнена.

Rm задаёт регистр общего назначения, содержащий в разрядах 31–1 адрес перехода на тот случай, если технология Jazelle не поддерживается. Младший бит равен 0 для перехода на код ARM и 1 для перехода на код Thumb.

Версии архитектуры

ARMv6 и выше, а также ARMv5TEJ.

Исключения

Отсутствуют.

Операция

if условие выполнено then
  if бит JE в главном регистре конфигурации == 0 then
    CPSR.T = Rm[0]
    PC = Rm and 0xFFFFFFFE
  else
    JPC = значение, определяемое разновидностью архитектуры
    invalidhandler = значение, определяемое разновидностью архитектуры
    if технология Jazelle принимает код операции по адресу в JPC then
      if бит CV в регистре управления ОС Jazelle == 0 then
        PC = invalidhandler
      else
        CPSR.J = 1
        начало выполнения кода операции по адресу JPC
    else
      if (бит CV в регистре управления ОС Jazelle == 0) AND (условие, определяемое реализацией) then
        PC = invalidhandler
      else
        CPSR.T = Rm[0]
        PC = Rm and 0xFFFFFFFE

Использование

Эта инструкция должна использоваться только при соблюдении одного из следующих условий:

  • бит JE в главном регистре конфигурации равен 0;
  • разрешённая виртуальная машина Java удовлетворяет всем ограничениям, накладываемым технологией Jazelle для данной разновидности архитектуры.

Примечания