Хищник писал(а):
Forexample писал(а):
Вы не заметили как производительность нынешних процессоров "тает на глазах" во многом благодаря неразумному программированию. Эт оне тема для разговора - это тема для "обеспокоиться". Теперь ту же тенденцию мы внедряем последовательно в эмбедед. Верной дорогой шагаете товарищи, ...
И как "неразумное программирование" соотносится с наличием или отсутствием стека?
Все смешалось кони, люди
Ладно бессмысленный разговор получается. Я вам про Фому, вы мне про Ерему. Я вам не про стек, здесь у нас тред тянется про ресурсы. Так что шашкой про стек здесь не машите
Хищник писал(а):
Forexample писал(а):
Да таковых все меньше и меньше но грамотный эмбедер владеющий в совершенстве любым инструментом Си равно как и Асм, знает что такое макрокоманда EQU воспользуется, либо за него в инклуде поставщик ядра распишется.
Расписывать каждый call в минимум 2 команды и скрывать это макросом? Кто-то тут говорил о неразумном программировании?
Нет все же анекдот про внимательного и не брезгливого врача это про Вас точно
Мы о чем говорили то? о том что как это бедный эмбедер
воспримет mov r15, #const. Это у него такие проблемы начнутся что в пору валерьянку пить, вот я Вам и ответил что для того чтобы не забыть что r15 это PC. Стоит макросик накалякать PC EQU R15, ну или PC SET R15. А Вы мне тут про две команды....
Хищник писал(а):
Forexample писал(а):
Категорических его туда не включать тоже нет. Ну а то что кто то его не включает как говорится "в дурдоме еще не то делают..."
(Смазывая плюсомет) Что в данном случае является дурдомом?
Стреляйте, стреляйте, чего уж там
Хищник писал(а):
Так и представляю. Взять и написать код. Прямо в форум. Вот и кнопочка Code для этого есть. А "убивальщики"... где-то у меня была для них отдельная полочка...
Т.е. вариант с М4К на стек возвратов с командами размена верхушки стека возвратов с арифметическим стеком и отсутствие стека, а вместо него команды выгрузки адреса возврата на TOP Вам это только в Veriloge станет понятно? Вы серьезно? Если да тогда в очередь, будет готово скажу
Хищник писал(а):
Forexample писал(а):
Ну в тактах для двух архитектур я Вам практически привел, это конечно не аргумент.... но тогда что же аргумент? При вложенности 8-9 на АРМ в зависимости от задачи можно вообще не озабачиваться сохранением адреса возврата.
Я пока не видел кода и результатов синтеза под какую-нибудь (любую) платформу. Заодно мне крайне любопытно посмотреть на тот инструмент разработчика, который будет в реальном проекте отслеживать уровень вложенности (с учетом его возможной переменной длины) и правильно распределять адреса возврата по регистрам (?).
Да уж считаете компилятору в тягость будет отследить N вызовов процедур? И после N-ного вложения делать обязательный сброс регистра в память?
Да это одной строчков компиляторе будет прописано
if(count_proc > N) generate("mem[Reg++], R_N");
generate("mov R15, #proc_addr");
Хищник писал(а):
Еще раз повторяю вопрос: каким образом манипуляции с данными между регистрами могут отменить необходимость загрузки immediate value или смягчить негативные эффекты от них?
Слушайте Вы не домысливайте мне лишнеих сентенций, а? Мне прям по шагам нужно возвращаться к истоку, что бы ваш "запал" не затмевал Вам память. Мой пассаж в сторону immediate был направлен на то что бы объяснить, даже не Вам, что не надо литерал "называть" еще как то. Но вы настолько влезли в спор что уже и забыли с чего он начался. Про необходимость загрузки я Вам вообще не звука не сказал, мало того не вижу тут вообще никакой почвы потом что ответ однозначен, все равно он исходный операнд необходим как бы вы не пытались по нему адресоваться или модифицировать.
Хищник писал(а):
Forexample писал(а):
Это какое то сермяжное определение эффективности. Я бы сказал что в данном случае Вы классифицировали пока только избыточность. Эффективность параметр комплексный.
Как выглядит несермяжное? То есть из максимум 64k или даже 4G опкодов взять пару для организации call/ret - это неэффективно, а проигрывать в вызове подпрограмм (с учетом все большей тенденции к code reuse и размножению уровней драйверов, т.е. ко все более широкому использованию подпрограмм) - это с какой-то сферическо-вакуумной точки зрения эффективно? С какой именно? Где код, где проект, где профилирование для него? У меня пока что впечатления от реальных проектов совершенно противоположные.
откуда вязлось 4G? У Вас что 4 бита ассоциируются с 4 Гб возможных комбинаций? Вы помоему запутались, причем основательно в сути спора. Или может быть у Вас какие то впечталения от АРМ от их проектов? Может быть Вы хотели бы что то сказать разработчикам LSI-11 или MIPS? Они почему то считают по другому.
Хищник писал(а):
Forexample писал(а):
Тююю... как грубо А Вы задумайтесь а надо ли его передавать? Если уж не далее как два поста назад мы вышли на релативный джамп или команду вида add r, #const? Где #const вовсе не обязана иметь разрядность РОН. Это первое.
Это двадцать первое
Отлично, наделали синтетических тестов в идеальных для ядра условиях. Теперь отдали на проект. 500 кб драйверов, 200 кб стандартных библиотек, 100 кб нестандартных. Дальше пошел проект. Все relative call 16 в глубоком пролете, поскольку ограничение кода в 64 кб выглядит смехотворно. А прыгаем мы, ясно дело, из конца кода (высокоуровневой части проекта) к разным частям драйверов и библиотек. Что, не 16? Ах, 20... и в пролете теперь проекты больше 1 М? Что, уже 24? Или "этих мышей мы ловить не будем"?
Понимаете Хищник, Ваш поток сознания способно переварить только DSP, Вы мечетесь от одного к другому, я такие потоки не могу воспринимать адекватно да еще и под ночь. Вас бы не затруднило открыть даташит на АРМ и посмотреть что и ка там с адресацией. Или объяснитесь более вменяемо.
Хищник писал(а):
Forexample писал(а):
Например в том же АРМ. Почему я апеллирую АРМ а не к примеру MIPS потому что эта архитектура имеет огромные успехи в секторе мобильных устройств, что в принципе лишь доказывает ее потенциал.
Ага... особенно после добавления очень эффективной Thumb... и еще более эффективной Thumb2
Если читать между строк, то фраза "новая архитектура гораздо лучше старой" в действительности означает, что старая архитектура была
гораздо хуже...
Это тенденция наверное такая не понимать почему сделан Thumb. Я это не только за Вами замечаю. Тумб как палочка выручалочка когда команды с флеша хлещут, иначе в режиме ARM c максимальной скоростью только из RAM работать можно. С плотностью кода у ARM вполне нормально при нынешних ценах на память. Не оптимал конечно, но и далеко не WLIV.
Хищник писал(а):
Forexample писал(а):
против тройки моих в котрых стека нет как класса, да этак мы далеко с Вами уйдем.
А я что, запрещать собираюсь?
На здоровье, САПР бесплатны, ПЛИС дешевы, процессоров надо много. Может получиться и так, и эдак. Только зачем безапелляционно мешать с грязью все, что отличается от "генеральной линии партии"?
Ну да конечно "генеральная линия партии". Где ж безапелляционно - просто у Вас "кипит мой разум возмущенный" и Вы домысливаете больше, чем реально есть.
Мне кажется Вы слишком агрессивно настроены, может продолжать не стоит?