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

 
 
4 страниц V  « < 2 3 4  
Reply to this topicStart new topic
> Временные интервалы
=GM=
сообщение Jun 28 2010, 22:08
Сообщение #46


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(demiurg_spb @ Jun 28 2010, 16:14) *
endTime0 волатильный? Если да то нормально скомпилировал...

Где ж нормально? Сохраняет регистры r24-r27 и тут же загружает ТЕ ЖЕ САМЫЕ РЕГИСТРЫ тем, что только что сохранил, ну не идиотизм? Уж не говорю о том, что операция 4-х байтного вычитания вырабатывает флаг Z, так что после std самое оно оставить только brne.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jun 29 2010, 11:48
Сообщение #47


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(=GM= @ Jun 29 2010, 02:08) *
Где ж нормально? Сохраняет регистры r24-r27 и тут же загружает ТЕ ЖЕ САМЫЕ РЕГИСТРЫ тем, что только что сохранил, ну не идиотизм? Уж не говорю о том, что операция 4-х байтного вычитания вырабатывает флаг Z, так что после std самое оно оставить только brne.
А я настаиваю:-), что для volatile фактически так и должно быть.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jun 29 2010, 12:13
Сообщение #48


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Това-а-рищ Иванов, не надо настаивать на глупости компилятора :-).


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jul 1 2010, 10:07
Сообщение #49


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Для волатильных объектов компилятор фактически не применяет оптимизацию, поэтому
для if(--x) ... мы наблюдаем классику жанра по полной программе (read-modify-store).
Прочитали x декрементировали, сохранили, прочитали вновь, сравнили с нулём.
Естественно, можно было оптимизировать и не производить повторное чтение после записи, но gcc под это видимо не заточен.
Интересно глянуть бы на то как IAR это скушает.

PS: Был очень приятно удивлён Вашему звонку!
Приятно общаться не топча кнопокsmile.gif
Жаль что пивка с Вами не попить - уж больно далеко до Оксфорда.

Кстати как Англия пережила не засчитанный гол на чемпионате мира?
Теперь поди не будут артачится против внедрения видео повтора при вынесении судейских решений...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
XVR
сообщение Jul 2 2010, 06:22
Сообщение #50


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата
Естественно, можно было оптимизировать и не производить повторное чтение после записи,
Если компилировалось в режиме С++, то так оптимизировать тоже нельзя - в С++ префиксные операции возвращают референс на модифицируемую переменную. Например можно сделать так:
Код
(++i)*=2;

Цитата
но gcc под это видимо не заточен.
Видимо не мог wink.gif
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jul 2 2010, 12:45
Сообщение #51


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(XVR @ Jul 2 2010, 10:22) *
Если компилировалось в режиме С++, то так оптимизировать тоже нельзя - в С++ префиксные операции возвращают референс на модифицируемую переменную. Например можно сделать так:
Код
(++i)*=2;
Это понятно, но мы, я надеюсь, обсуждали Си компилятор:-)
Цитата
Видимо не мог wink.gif
мог, мог... всё (в пределах стандарта, конечно) ограничивается лишь фантазией и способностями разработчиков.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 04:54
Рейтинг@Mail.ru


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