Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт фев 07, 2025 12:16

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 218 ]  На страницу Пред.  1 ... 11, 12, 13, 14, 15
Автор Сообщение
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Ср апр 03, 2024 11:24 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1304
Благодарил (а): 4 раз.
Поблагодарили: 19 раз.
Теперь осталось придумать зачем надо переусложнять систему на ровном месте)

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Ср апр 03, 2024 17:05 
Не в сети

Зарегистрирован: Вс авг 21, 2022 14:56
Сообщения: 41
Благодарил (а): 2 раз.
Поблагодарили: 5 раз.
Victor__v писал(а):
В общем на фасме обошёлся двумя макросами перед вызовами:

macro SKIP {
MOV RSI, RSP
SUB RSP, 15
SAR RSP, 4
SAL RSP, 4
SUB RSP, 32
}

macro OFF { MOV RSP, RSI }

Поскольку эти фрагменты теперь вызываются постоянно, то буду рад, если вы приведёте более быстрый код выравнивания, если вообще что-то есть быстрее сдвигов.


macro SKIP {
MOV RSI, RSP
OR RSP, 15
SUB RSP, 32+15
}



За это сообщение автора tsdima поблагодарил: Victor__v
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Чт апр 04, 2024 11:08 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1304
Благодарил (а): 4 раз.
Поблагодарили: 19 раз.
Заменил у себя.
Спасибо.

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Чт апр 04, 2024 14:19 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 527
Откуда: Москва
Благодарил (а): 58 раз.
Поблагодарили: 28 раз.
Ну тогда заодно и or esp,15 вместо or rsp,15, раз уж пошла такая пьянка


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Чт апр 04, 2024 14:23 
Не в сети

Зарегистрирован: Вс авг 21, 2022 14:56
Сообщения: 41
Благодарил (а): 2 раз.
Поблагодарили: 5 раз.
Точно.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Чт апр 04, 2024 16:25 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1304
Благодарил (а): 4 раз.
Поблагодарили: 19 раз.
Total Vacuum писал(а):
Ну тогда заодно и or esp,15 вместо or rsp,15, раз уж пошла такая пьянка

Вах, экономия 1 байт)

Можно ещё OR SP, 15 предложить, тогда)

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Чт апр 04, 2024 20:41 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 527
Откуда: Москва
Благодарил (а): 58 раз.
Поблагодарили: 28 раз.
Victor__v писал(а):
Можно ещё OR SP, 15
Да, но тут экономии не будет


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Пн янв 13, 2025 13:09 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1304
Благодарил (а): 4 раз.
Поблагодарили: 19 раз.
Продолжаю продолжать пилить свой форт.

Изменения в последней итерации:
Добавлена управляющая конструкция IF-SETS: ... IF-SETS; Позволяет внутри напихивать много IF ... ELSE , а THEN скомпилируется при вызове IF-SETS;. Практически аналог структуры CASE, но ему не тождественен.
Добавлены новые флаги слов: &CONST &STRUCT-ELEM &POSTCOMP и пр. Первые 2 являются одновременно метками типа слова (константа или элемент структуры) и специфическим подвидом инлайна. Флаг &POSTCOMP является признаком, что слово компилируется с помощью POSTPONE.
Расширен и приведён по красоте компилятор (слово FFA-COMPILE,) за счёт двух пунктов выше.

А ещё мне было скучно и я написал оптимизатор (да, очередной). Оптимизатор на этот раз использует парсер. Если есть совпадение, применяется оптимизирующая связка. Ничего необычно, тащемта. Просто уменьшает стекомахание в коде. А вот история написания оптимизатора тянет на демотиватор)

Реализация оптимизатора представляет собой дерево, но с одним ограничением – у любого элемента в дереве должен быть оптимизирующий код. Иначе будет полный Hello word (вылет то есть). Как-то обыгрывать не стал. Ибо оптимизировать надо всё, только хардкор!

Тесты проводились на одном новом слове H.S.CHANGE, которое подставляет вместо одной подстроки другую. Стартовый размер кода 950 байт, конечный размер 530. КМК, вполне неплохо. С учётом того, что это всё стекомахания различные.

_________________
Цель: сделать 64-битную Нову под Винду



За это сообщение автора Victor__v поблагодарил: NLObP
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 218 ]  На страницу Пред.  1 ... 11, 12, 13, 14, 15

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB