реклама на сайте
подробности

 
 
> Полубага ARM системы команд, Флаг N устанавливается без флага V
GetSmart
сообщение Aug 23 2015, 10:53
Сообщение #1


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Не пойму задумку разработчиков с overflow flag preserve во многих командах, устанавливающих флаги. В условных командах есть комбинация флагов Z, N и V ==> GT, LE (например BGT, BLE). После многих команд, меняющих флаги эти условия невозможно применить. Будь то MOVS, EORS и прочие.

-------

А за то, что RRX зажали для Thumb / CM0 (хоть для одного единственного регистра) минусануть бы карму этим разработчикам.

Сообщение отредактировал GetSmart - Aug 23 2015, 14:56


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SSerge
сообщение Aug 23 2015, 12:24
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



В упомянутых выше командах типа пересылок или логических флаг V (Overflow) на выходе АЛУ может быть только нулём.
У разработчиков архитектуры был выбор: флаг V после исполнения таких команд или становится нулём или не изменяется.
Они выбрали второе.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 23 2015, 14:53
Сообщение #3


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(SSerge @ Aug 23 2015, 16:24) *
...или становится нулём или не изменяется. Они выбрали второе.

Понятно, что нулём. Потенциальная грабля в overflow flag preserve. Никакой пользы в неустановке нет. В отличие от carry flag preserve. Инноваторы.

-----
RRX отличается от LSR #1 настолько минимально, что слов приличных нет в адрес разработчиков, таким недоразумением осложнивших декод LSB-битовых потоков. Оба недочёта сразу снизили пиковую производительность системы команд (RRX в Thumb(1)).

Любопытно, если для M3/M4 закомбинировать два условия в IT-блоке (Z-флаг IT-блоком, N-флаг условным переходом), то проц не споткнётся? sm.gif

PS.
Но в целом система команд шикарная.

Сообщение отредактировал GetSmart - Aug 24 2015, 11:41


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
misyachniy
сообщение Aug 24 2015, 07:00
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Цитата(GetSmart @ Aug 23 2015, 17:53) *
Понятно, что нулём. Потенциальная грабля в overflow flag preserve. Никакой пользы в неустановке нет. В отличие от carry flag preserve. Инноваторы.

Любопытно, если для M3/M4 закомбинировать два условия в IT-блоке (Z-флаг IT-блоком, N-флаг условным переходом), то проц не споткнётся? sm.gif



По поводу граблей не скажу.
По моему мнению это сделано для получения быстродействия команда/такт.
Если после команды, которая меняет флаг идет анализ флага, то идет задержка на такт.

По этому компиляторы стараются вставить команду не модифицирующую флаги между такой парой команд.
При программировании на ассемблере, нужно самому перетасовывать команды.

Вот пример
Код
CMP    R0, #0x40
STR    R2, [R7,#0x1C]
BCC    loc_8000760


Go to the top of the page
 
+Quote Post
jcxz
сообщение Aug 24 2015, 16:55
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(misyachniy @ Aug 24 2015, 13:00) *
Если после команды, которая меняет флаг идет анализ флага, то идет задержка на такт.

Вы точно не путаете с DSP???

Цитата(misyachniy @ Aug 24 2015, 19:12) *
Я анализировал коды после компилятора С.
И увидел коды, очень похожие по стилю на x86.
В x86 из за конвейерности обработки, порядок команд влияет на скорость работы.

Интересный способ изучения системы команд: гадание по листингу.
Вы судьбу по звёздам не предсказываете? :-D
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 02:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01378 секунд с 7
ELECTRONIX ©2004-2016