Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Деоптимизация простого вычитания
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
jcxz
Имеем:
Код
u8 *p;
int x1;
IAR6.50 компилирует выражение p -= x1 в:
Код
RSBS R1,R7,#+0
ADDS R1,R1,R2

Нафига??? Почему не простой SUBS???

В то же время, если записать это выражение по другому p = (u8 *)((int)p - x1), то всё ок:
Код
SUBS R1,R2,R7

Как будто специально не оптимизирует, а наоборот - увеличивает размер кода. sad.gif
Вроде такое только с указателями наблюдается, если-бы p была типа int, то тогда всё ок - одна SUBS.
Может надо что-то подправить в косерватории? Мелочь конечно, но неприятно. А писать каждый раз громоздкие приведения к int и обратно - не комильфо.
scifi
Цитата(jcxz @ Feb 17 2016, 16:11) *
Может надо что-то подправить в косерватории?

Можно написать bug report. Но у них это работает по каналу тех. поддержки легальных юзеров, если не ошибаюсь.

Цитата(jcxz @ Feb 17 2016, 16:11) *
А писать каждый раз громоздкие приведения к int и обратно - не комильфо.

А зачем? Без этого программа не работает? Или мучает бессонница? От последнего может помочь валерьянка biggrin.gif
KRS
а если объявить x1 как unsigned?
zltigo
QUOTE (scifi @ Feb 17 2016, 16:54) *
Можно написать bug report.

Незачем. Текущая версия IAR 7.40.7 ...7.50.2 компилирует без побочных эффектов.
jcxz
Цитата(zltigo @ Feb 19 2016, 03:35) *
Незачем. Текущая версия IAR 7.40.7 ...7.50.2 компилирует без побочных эффектов.

Хмммм.... похоже - надо обновлять
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.