SII (Стена обсуждения | вклад) |
SII (Стена обсуждения | вклад) |
||
Строка 50: | Строка 50: | ||
=== Примечания === |
=== Примечания === |
||
− | Если бит JE в главном регистре конфигурации равен нулю, а биты Rm[1:0] равны 10, результат будет непредсказуемым, поскольку команды набора ARM должны быть выровнены по границе слова. |
+ | 1. Если бит JE в главном регистре конфигурации равен нулю, а биты Rm[1:0] равны 10, результат будет непредсказуемым, поскольку команды набора ARM должны быть выровнены по границе слова. |
− | Если в качестве Rm указан счётчик команд, результат будет непредсказуемым. |
+ | 2. Если в качестве Rm указан счётчик команд, результат будет непредсказуемым. |
− | Адрес кода операции Jazelle определяется разновидностью архитектуры; обычно он находится в специальном регистре, JPC (Jazelle Program Counter). |
+ | 3. Адрес кода операции Jazelle определяется разновидностью архитектуры; обычно он находится в специальном регистре, JPC (Jazelle Program Counter). |
[[Категория:Архитектура ARM]] |
[[Категория:Архитектура ARM]] |
Текущая версия от 09:42, 24 сентября 2010
Если процессор поддерживает технологию 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 для данной разновидности архитектуры.
Примечания
1. Если бит JE в главном регистре конфигурации равен нулю, а биты Rm[1:0] равны 10, результат будет непредсказуемым, поскольку команды набора ARM должны быть выровнены по границе слова.
2. Если в качестве Rm указан счётчик команд, результат будет непредсказуемым.
3. Адрес кода операции Jazelle определяется разновидностью архитектуры; обычно он находится в специальном регистре, JPC (Jazelle Program Counter).