Page 2 of 2

Re: madmouse

Posted: Wed May 30, 2012 11:16 am
by Serge

Code: Select all

mov   ebx,eax можно заменить на push eax
                                pop  ebx
Которые в микрокоде превратятся в

Code: Select all

    sub esp, 4 
    mov [esp], eax
    mov ebx, [esp]
    add esp, 4
И ещё создадут зависимость store/load.
Прежде чем заниматься оптимизациями пользуясь советами 35-летней давности лучше почитать Intel AMD AMD AMD

Posted: Wed May 30, 2012 3:21 pm
by Gluk
если используется macros.inc (или как-то так) из директории programs с репозитория, там я какие-то оптимизации видел для всего последующего кода, вроде как. Если я не ошибся, то можно о таких мелочах +- одна инструкция не беспокоиться.

Re: madmouse

Posted: Thu May 31, 2012 1:52 am
by Rock_maniak_forever
Serge Человек попросил совета по оптимизации, я его дал (все советы, оптимизируют код), а там, пусть сам думает, нужно ему это, или нет. Между прочем, этот push/pop, в macros.inc есть.

Re: madmouse

Posted: Thu May 31, 2012 8:09 am
by popovpa
Всем спасибо за советы!

Re: madmouse

Posted: Sun Jun 03, 2012 5:05 pm
by Mario
SVN r.2726 оптимизация некоторых вещей:
1) Перенес программу в отдельную директорию.
2) Использовать ф.5 в главном цикле это как минимум не правильный подход. Потому сделал обработку главного цикла по ф.10, предварительно установив маску событий ф.40. Теперь даже в Qemu в CPU отображена нулевая (000%) загрузка.
3) Использовать 1 Мб памяти для такой программы явное расточительство, теперь она занимает в памяти чуть более 1 Кб. Хотя физически она занимает 4 Кб, потому что страниц памяти меньшего размера в Колибри нет.
4) Синтаксис не стал переписывать на макросы, так как предыдущий автор против. Однако прописал файл макросов в исходник - это позволяет уменьшить размер бинарника автоматически.
5) Убрал дублирующийся код, вызывающий ф.18.9.4

Re: madmouse

Posted: Sun Jun 03, 2012 5:32 pm
by Mario
SVN r.2729 программа добавлена в автосборку.

Re: madmouse

Posted: Sun Jun 03, 2012 9:52 pm
by popovpa
Спасибо! За знания.