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

 
 
> Вызов функций в mspgcc, зачем каждый раз сохранять r4 и r5 ?
MrYuran
сообщение Dec 25 2008, 07:56
Сообщение #1


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Сегодня "совершенно случайно" обнаружил, что каждый вызов каждой функции сопровождается сохранением регистров r4 и r5.
Зачем?
Код
00004c0c <InitSound>:
    4c0c:    05 12           push    r5    ;
    4c0e:    04 12           push    r4    ;
    4c10:    e2 d3 31 00     bis.b    #2,    &0x0031;r3 As==10
    4c14:    e2 c3 33 00     bic.b    #2,    &0x0033;r3 As==10
    4c18:    e2 d3 32 00     bis.b    #2,    &0x0032;r3 As==10
    4c1c:    34 41           pop    r4    ;
    4c1e:    35 41           pop    r5    ;
    4c20:    30 41           ret

Как бороться?
можно конечно все мелкие функции собрать в кучу и объявить static inline,
но может другие способы есть?

Просто inline и __inline__ почему-то игнорирует.
Вроде бы мелочь, но как-то нерационально расходуются байты и микросекунды...


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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