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

 
 
> Глюки IAR ARM 5.4, Глючная оптимизация в IAR ARM 5.4
Ytrnj
сообщение Jan 18 2010, 14:35
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 21-12-06
Из: Питер
Пользователь №: 23 756



Привет всем!

Неожиданно проявилась проблема с IAR.
После перехода на версию 5.4 Full девайс на LPC1766 стал глючить.
Оптимизация - High/Balanced.

Анализ выявил следующее.

Заглючила строка сравнивающая старшее и младшее слово
Код
INT32U kc=key_code;  // key_code тоже INT32U
  if(!(0xFFFF&(kc^(kc>>16)))) {...}

Компилятор породил следущий код
Код
\   0000013C   080C               LSRS     R0,R1,#+16 // в R1 находится kc
\   0000013E   91EA000F           TEQ      R1,R0
\   00000142   4DD1               BNE.N    ??__int_display_2

Очевидно, что 0xFFFF проигнорирован напрочь.
Простая перестановка его в конец ничего не изменила.
Однако, после некоторых манипуляций, конструкция была изменена на
Код
   if((0xFFFF&kc)==(kc>>16)){...}


Что породило уже рабочую последовательность
Код
\   0000013C   88B2               UXTH     R0,R1 // в R1 находится kc
\   0000013E   B0EB114F           CMP      R0,R1, LSR #+16
\   00000142   4DD1               BNE.N    ??__int_display_2


Я, конечно, понимаю, что в IAR люди работают и ничего человеческое им не чуждо.
Посмотрел на сайте и скачал Evalution версии 5.41, однако ничего не изменилось!!!!
На мой взгляд, оба варианта сравнения идентичны по сути.
Может быть первоначальный вариант и не столь очевиден, НО компилятора это не должно касаться.
Такого рода конструкций в проге куча.
Что же теперь, всё перепроверять на понятность и адекватность компилятора?
Печально, но я IARу раньше доверял как родному.

Суть вопроса - версию 5.4 в топку или я чего-то не не понимаю?

Заранее благодарен.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MALLOY2
сообщение Jan 19 2010, 16:16
Сообщение #2


Знающий
****

Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317



Да это баг для Cortex-M3, на других ядрах работает нормально.
Go to the top of the page
 
+Quote Post
KRS
сообщение Jan 19 2010, 21:16
Сообщение #3


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(MALLOY2 @ Jan 19 2010, 19:16) *
Да это баг для Cortex-M3, на других ядрах работает нормально.

Ну да! Так под кортекс оптимизировать намного сложнее! Система комнад более гибкая, надо выбирать опрадвана ли будет 32 битная команда, еще IT блоки есть...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Ytrnj   Глюки IAR ARM 5.4   Jan 18 2010, 14:35
- - Ytrnj   Доброго времени суток. Посмотрел в старой копии, ...   Jan 18 2010, 18:02
|- - RabidRabbit   Цитата(Ytrnj @ Jan 18 2010, 21:02) Учитыв...   Jan 19 2010, 06:17
- - zltigo   Цитата(Ytrnj @ Jan 18 2010, 17:35) Такого...   Jan 18 2010, 18:43
- - KRS   А вы уверены в правильности своего кода? Дело в то...   Jan 18 2010, 21:40
|- - Сергей Борщ   Цитата(KRS @ Jan 18 2010, 23:40) Дело в т...   Jan 18 2010, 22:25
- - KRS   действительно с XORом какой то глюк! При прове...   Jan 18 2010, 23:00
|- - Ytrnj   Цитата(KRS @ Jan 19 2010, 03:00) действит...   Jan 19 2010, 07:14
- - IgorKossak   Никому не приходило в голову, что 16-ричная конста...   Jan 19 2010, 07:51
|- - Сергей Борщ   Цитата(IgorKossak @ Jan 19 2010, 09:51) Н...   Jan 19 2010, 08:23
||- - IgorKossak   Цитата(Сергей Борщ @ Jan 19 2010, 10:23) ...   Jan 19 2010, 08:56
||- - Сергей Борщ   Цитата(IgorKossak @ Jan 19 2010, 10:56) Э...   Jan 19 2010, 11:28
||- - KRS   Цитата(Сергей Борщ @ Jan 19 2010, 14:28) ...   Jan 19 2010, 11:44
||- - Сергей Борщ   Цитата(KRS @ Jan 19 2010, 13:44) Не всегд...   Jan 19 2010, 12:18
|- - KRS   Цитата(IgorKossak @ Jan 19 2010, 10:51) Н...   Jan 19 2010, 09:08
|- - _4afc_   Цитата(IgorKossak @ Jan 19 2010, 10:51) Н...   Jan 19 2010, 15:14
|- - IgorKossak   Цитата(_4afc_ @ Jan 19 2010, 17:14) Вы на...   Jan 19 2010, 16:14
- - IgorKossak   Проверяли только XOR или другие операции тоже?   Jan 19 2010, 09:22
|- - KRS   Цитата(IgorKossak @ Jan 19 2010, 12:22) П...   Jan 19 2010, 09:33
- - Alechek   Тема про компилятор 5.40 или 5.41? Я было плевался...   Jan 20 2010, 04:59
- - MALLOY2   ЦитатаТема про компилятор 5.40 или 5.41 Я тестиров...   Jan 20 2010, 06:25
|- - Ytrnj   Цитата(MALLOY2 @ Jan 20 2010, 10:25) Так ...   Jan 20 2010, 07:16
||- - IgorKossak   Цитата(Ytrnj @ Jan 20 2010, 09:16) Письмо...   Jan 20 2010, 07:32
|- - KRS   Цитата(MALLOY2 @ Jan 20 2010, 09:25) Я те...   Jan 20 2010, 10:48
|- - Alechek   Цитата(MALLOY2 @ Jan 20 2010, 11:25) Пото...   Jan 20 2010, 12:49
- - Ytrnj   Ну что, IAR ответил . Следует отметить, что дост...   Jan 21 2010, 15:48
|- - KRS   Цитата(Ytrnj @ Jan 21 2010, 18:48) sorry,...   Jan 21 2010, 16:14
|- - Ytrnj   Цитата(KRS @ Jan 21 2010, 20:14) Что то я...   Jan 22 2010, 08:54
- - MALLOY2   В версии 5.41.2 баги исправлены!!!...   Feb 25 2010, 13:42


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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 09:45
Рейтинг@Mail.ru


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