Сообщение от
denpopov
и какой выбор? курить пыхапэ до посинения?
я просто спросил, потому что сам увидел после LoveMessage результат оптимизации, вот и захотелось осилить самому.
Ну в общем да. Я могу дать исходник. А хотя, там не сложно в общем то.
Формируется массив вида "адрес"->"байт" необходимых изменений. Потом движок пробегается по нему и если есть возможность сделать что-то типа:
Код:
ld hl, xxxx
ld (hl), a : inc h : ld (hl), a : inc h : ld (hl), a
То эти байты забираются из массива и генерится соответствующий исходник. Количество inc h : ld (hl), a может быть любое.
Еще проверятся возможность сгенерить такую конструкцию:
Код:
ld hl, xxxx
ld (hl), a : inc hl : ld (hl), a : inc hl : ld (hl), a
Потом там с регистром de есть небольшая оптимизация. Не суть, она почти ничего не решает.
В общем, после того, как все оптимальные данные собрали, всё остальное генерим в такой код:
Код:
ld a, #xx
ld (#xxxx), a
ld (#xxxy), a
ld a, #xy
ld (#xxyx), a
ld (#xxuy), a
Еще есть возможность поиска одинаковых последовательностей и выноса их в отдельные функции. Сейчас отключена, т.к. нагружает сервер офигенно, а толку почти нет.
И как бы можно двигаться еще дальше. Но там уже слишком жоский для меня матан начинается, да и нагрузка на сервер при переборе вариантов вырастает очень сильно.