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

 
 
> Подозреваю IAR 4.10b, Может ли такое быть?
konoval1
сообщение Feb 12 2005, 09:20
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 5-02-05
Пользователь №: 2 439



Замечал несколько раз, что IAR 4.10b неправильно компилирует с С. Но потом обнаружил, что была включена оптимизация, и свалил на это.
А сегодня точно увидел, что одну и ту же программу компилирует по разному.

Flagi &= ~1 ; // sbros flaga PRM

0x400001F4 E59F3010 LDR R3, [PC, #+16] ; [0x4000020C] =Flagi (0x40002088)
0x400001F8 E593C000 LDR R12, [R3, #+0]
0x400001FC 00000001 ANDEQ R0, R0, R1
0x40000200 E583C000 STR R12, [R3, #+0]


Flagi &= ~1 ; // sbros flaga PRM

0x400001F4 E59F3010 LDR R3, [PC, #+16] ; [0x4000020C] =Flagi (0x40002088)
0x400001F8 E593C000 LDR R12, [R3, #+0]
0x400001FC E3DCC001 BICS R12, R12, #0x1
0x40000200 E583C000 STR R12, [R3, #+0]

И первый код, естественно, не работает. Как такое может быть? Может что поставил не так?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
NickS
сообщение Feb 12 2005, 14:55
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 101
Регистрация: 4-09-04
Пользователь №: 603



Обратите внимание, что в первом случае используется условная компиляция (andEQ), то есть, скорее всего, в Вашем C коде флаг сбрасывается по условию.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Feb 12 2005, 16:31
Сообщение #3


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(NickS @ Feb 12 2005, 17:55)
... скорее всего, в Вашем C коде флаг сбрасывается по условию.
*

Даже если и по условию, само тело инструкции ошибочно (R0, R1 ???).
Скорее всего, это таки глюк компилятора.
Советую обновиться.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 17th August 2025 - 06:26
Рейтинг@Mail.ru


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