motofan logo
> 

Использование Assembler в приложениях для Motomagx, Примеры, помощь итд

DoomChisel
сообщение 17.2.2010, 6:32


Интересующийся
**

Группа: Пользователи
Сообщений: 97
Регистрация: 7.7.2008
Из: СПб
Пользователь №: 176 527
Модель телефона: Motorola EM30
Прошивка: PerfectMod 08.08.09

Рейтинг: 42.5



Собственно, есть ли у кого опыт использования ассемблера под нашу платформу?
А тот тут уже портировано много серьёзных приложений - может, где были ассемблерные вставки...
Были бы интересны исходный код, Makefile-ы.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
 
Ответ в темуСоздание новой темы
Ответов
DoomChisel
сообщение 27.9.2010, 15:15


Интересующийся
**

Группа: Пользователи
Сообщений: 97
Регистрация: 7.7.2008
Из: СПб
Пользователь №: 176 527
Модель телефона: Motorola EM30
Прошивка: PerfectMod 08.08.09

Рейтинг: 42.5



Цитата(EXL @ 25.9.2010, 17:23) *

Почему асм по скорости проигрывает gcc с -O3 ?

Это элементарно.

Когда компилируешь (или как там - ассемблируешь) ассемблерный код - сам ассемблер уже не может сделать никаких оптимизаций - он (нуу почти) собирает всё по порядку, один в один как написано в ассемблерном исходнике.

Компилятор же высокоуровневого языка имеет простор для оптимизации: может всё менять-удалять-переставлять; главное - чтоб не изменился результат работы программы.
А поскольку GCC - даже версии 3.4.3 - серьёзная штука, он умеет очень много в оптимизации. Однако, да - наш GCC не всегда лучшим образом использует навороты наших процессоров, в чём уже убедились в этой теме (на примере VFP.

Цитата(EXL @ 25.9.2010, 17:23) *

Ну так вопрос: Можно ли как-нибудь оптимизировать асм код, чтобы скорость была хотя бы наравне с gcc -O3?

Так вот: оптимизация на ассемблере - довольно скучное дело. Там не так просто даже разобраться, как сделать, чтоб было быстрее. Не всегда это однозначно. А ещё надо именно сделать это... Плюс к тому - ещё надо определить узкое место программы, что тоже не всегда очевидно. Для этого существуют такие инструменты, как profilers.

В итоге, на сегодняшний день перегнать в оптимизации компилятор - довольно сложная штука. Поскольку тут всё непросто, мой единственный опыт по оптимизации тогда не увенчался тем, что я сделал быстрее, чем с "-o3". Я лишь сделал, чтоб было не намного медленнее smile.gif

Но если кратко, ответ: скорее всего, слишком сложно.

Цитата(yakk @ 26.9.2010, 5:57) *

тупо выдрать код скомпиленный C из листинга дизассемблера - получишь скорость наравне..

Это - да, но:
Цитата(yakk @ 26.9.2010, 5:57) *

а оптимизировать дальше - это надо смотреть уже по коду..

Мне стрёмно как-то смотреть код после "-o3" - а уж тем более что-то там переписывать. Он ну не очень readable, тем более - maintainable smile.gif
Может, yakk и умеет.

Цитата(yakk @ 26.9.2010, 5:57) *

хотя как по мне для этой проги можно вообще обойтись без плавающей точки - это и было бы лучшей оптимизацией ))

Это - да. Fixed point arithmetics вместо floating point - часто даёт выигрыш. Заметь, что это - оптимизация не на ассемблере, а в коде исходной программы - на C++/C. Похоже, самый реальный вариант.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить

Сообщений в этой теме
DoomChisel   Использование Assembler в приложениях для Motomagx   17.2.2010, 6:32
DoomChisel   Да, было б хорошо для начала узнать модель процесс...   28.2.2010, 14:23
-=Strelok=-   В исходниках ezx эмуляторов от oopsware http://oop...   13.7.2010, 16:35
EXL   1. gpSP точно. Именно из-за него и не могут перене...   13.7.2010, 16:42
DoomChisel   Изивините, думал, что уже все болт забили, поэтому...   14.7.2010, 11:03
EXL   Я не знаю. Если кто-то скажет буду рад   14.7.2010, 18:46
rock88   DoomChisel, а ты в арм асме разбираешся? А можешь ...   22.7.2010, 17:51
DoomChisel   [b]DoomChisel, а ты в арм асме разбираешся? А мож...   22.7.2010, 20:11
rock88   DoomChisel, Вот что получилось Многовато, в архив...   23.7.2010, 2:06
DoomChisel   [b]DoomChisel, Вот что получилось Многовато, в а...   23.7.2010, 8:33
rock88   Не верю, что это - код под ARM :) Действительно,...   23.7.2010, 13:22
DoomChisel   Действительно, что-то я через gcc делал, щас чере...   25.7.2010, 19:10
DoomChisel   Есть успехи?   7.8.2010, 17:12
rock88   DoomChisel, покa особо нe копaлся. Сeйчaс в исходн...   9.8.2010, 14:10
EXL   DoomChisel, Почему асм по скорости проигрывает gc...   25.9.2010, 13:23
yakk   [b]DoomChisel, Ну так вопрос: Можно ли как-нибуд...   26.9.2010, 1:57
DoomChisel   Почему асм по скорости проигрывает gcc с -O3 ? Э...   27.9.2010, 15:15

Использование Assembler в приложениях для Motomagx, Примеры, помощь итд · Motorola на Linux OS · Forum
 

Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 11.5.2024, 12:37

Форум живёт: